Skip to Content
0
Jan 22, 2020 at 01:51 PM

Infotype 1002 Job Description Upload.

290 Views

I need to maintain Job Descriptions in Infotype 1002. I have succesfully uploaded the description but it's alignment is an issue for me as it is breaking the word and going to next line. My requirement is that no word should break when uploading the long text.I have read Excel file into internal table. Then I have used RSDG_WORD_WRAP / IQAPI_WORD_WRAP / RKD_WORD_WRAP . All these function modules are not serving the purpose. I dont want to use seperator just need it done on the line size. After this i use FM RH_OBJECT_DESCRIPTION_WRITE and upload the data from excel to IT1002.
DATA:
  it_ptxt1002  TYPE STANDARD TABLE OF zpt1002 WITH HEADER LINE, "TABLES PARAM
  wa_ptxt1002  LIKE LINE OF it_ptxt1002.
DATA:
  ld_plvar TYPE hrp1000-plvar,
  ld_otype TYPE hrp1000-otype,
  ld_objid TYPE hrp1000-objid,
  ld_begda TYPE p1000-begda,
  ld_endda TYPE p1000-endda,
  ld_subty TYPE p1002-subty,
  ld_duty   TYPE sy-input,
  ld_vtask TYPE hrrhap-vtask.
PARAMETERS : p_infile LIKE rlgrap-filename.
INCLUDE bdcrecx1.
DATA: itab LIKE zalsmex_tabline OCCURS 0 WITH HEADER LINE.
DATA :
       obj(8) TYPE i.
TYPES: BEGIN OF t_record,
         plan_ver    LIKE itab-value,
         otype       LIKE itab-value,
         objid       LIKE itab-value,
         infotype    LIKE itab-value,
         subtype     LIKE itab-value,
         plan_status LIKE itab-value,
         val_begin   LIKE itab-value,
         val_end     LIKE itab-value,
         text        LIKE itab-value,
         row         TYPE i,
         tsize       TYPE i,
       END OF t_record.
DATA: i_tab          TYPE STANDARD TABLE OF t_record  INITIAL SIZE 0,
      it_lines       LIKE STANDARD TABLE OF tline WITH HEADER LINE,
      it_text_header LIKE STANDARD TABLE OF thead WITH HEADER LINE.
DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,
      wa_record TYPE t_record.
DATA: gd_currentrow TYPE i.
DATA: off     TYPE i VALUE '0',
      p_error TYPE  sy-lisel,
      len     TYPE i,
      beg     TYPE dats,
      end     TYPE dats.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile .
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_infile.
START-OF-SELECTION.
  CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = p_infile
      i_begin_col             = '1'
      i_begin_row             = '2'  "require headings
      i_end_col               = '30'
      i_end_row               = '50000'
    TABLES
      intern                  = itab
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                 = 3.
  IF sy-subrc <> 0.
    MESSAGE e010(zz) WITH TEXT-001. "Problem uploading Excel Spreadsheet
  ENDIF.
* Sort table by rows and colums
  SORT itab BY row1 col1.
* Get first row retrieved
  READ TABLE itab INDEX 1.
* Set first row retrieved to current row
  gd_currentrow = itab-row1.
  LOOP AT itab.
*   Reset values for next row
    IF itab-row1 NE gd_currentrow.
      APPEND wa_record TO it_record.
      CLEAR wa_record.
      gd_currentrow = itab-row1.
    ENDIF.
    CASE itab-col1.
     WHEN '0001'.
        wa_record-plan_ver = itab-value.
      WHEN '0002'.
        wa_record-otype = itab-value.
      WHEN '0003'.
        wa_record-objid   = itab-value.
      WHEN '0004'.
        wa_record-infotype   = itab-value.
      WHEN '0005'.
        wa_record-subtype = itab-value.
      WHEN '0006'.
        wa_record-plan_status = itab-value.
      WHEN '0007'.
        wa_record-val_begin = itab-value.
      WHEN '0008'.
        wa_record-val_end = itab-value.
      WHEN '0009'.
        wa_record-text = itab-value.
    ENDCASE.
    AT END OF row1.
      wa_record-tsize = strlen( wa_record-text ) .        " “Finding String Length using STRLEN
      wa_record-row = itab-row1 .               "   “Adding Current Row Num into Internal table
      APPEND wa_record TO i_tab.
      CLEAR wa_record .
    ENDAT.
  ENDLOOP.
START-OF-SELECTION.
  LOOP AT i_tab INTO wa_record.
CALL FUNCTION 'RSDG_WORD_WRAP'
  EXPORTING
    textline                  = wa_record-text
   DELIMITER                 = '.'
   OUTPUTLEN                 = 72
* IMPORTING
*   OUT_LINE1                 =
*   OUT_LINE2                 =
*   OUT_LINE3                 =
 TABLES
   OUT_LINES                 = it_ptxt1002
* EXCEPTIONS
*   OUTPUTLEN_TOO_LARGE       = 1
*   OTHERS                    = 2 .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
    CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
      EXPORTING
        date_external = wa_record-val_begin
*       ACCEPT_INITIAL_DATE            =
      IMPORTING
        date_internal = beg
* EXCEPTIONS
*      DATE_EXTERNAL_IS_INVALID       = 1
*       OTHERS        = 2
      .
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
    CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
      EXPORTING
        date_external = wa_record-val_end
*       ACCEPT_INITIAL_DATE            =
      IMPORTING
        date_internal = end
* EXCEPTIONS
*       DATE_EXTERNAL_IS_INVALID       = 1
*       OTHERS        = 2 .
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
    ld_plvar = wa_record-plan_ver.
    ld_otype = wa_record-otype.
    ld_objid = wa_record-objid.
    ld_subty = wa_record-subtype.
    CALL FUNCTION 'RH_OBJECT_DESCRIPTION_WRITE'
      EXPORTING
        langu                = sy-langu
        plvar                = ld_plvar "wa_record-plan_ver
        otype                = ld_otype "wa_record-otype
        objid                = ld_objid "wa_record-objid
        begda                = beg "'19000101'
        endda                = end "'99991231'
        subty                = ld_subty "wa_record-subtype "'0001'
        duty                 = ' '
        vtask                = 'D'
      TABLES
        ptxt1002             = it_ptxt1002
      EXCEPTIONS
        object_not_found     = 1
        description_required = 2
        no_authority         = 3
        error_during_insert  = 4
        invalid_date         = 5
        undefined            = 6
        OTHERS               = 7..
    CLEAR : it_ptxt1002 , beg , end , ld_plvar , ld_otype , ld_objid , ld_subty.
  ENDLOOP.

Attachments

c1.png (37.0 kB)