Skip to Content

Many times user may have requirement during uploading the data into SAP as below points.


  • Upload the Long Text into SAP Using Excel Sheet (i.e. here I am explaining about a PO Text in MM Screen).
  • Long Text Readable within text area no need to use horizontal bar

/wp-content/uploads/2013/08/l0_295342.png

Screen Shot # 1

Solution:

  •   Create a Copy of “ALSM_EXCEL_TO_INTERNAL_TABLE” SAP Standard Function Module

           into Custom Function Module “YALSM_EXCEL_TO_INTERNAL_TABLE” .

L1.png

Screen Shot # 2

L2.png

Screen Shot # 3

Create a “Z” Copy of “ALSMEX_TABLINE” and Increase the “Value” Field Size i.e. here I am use 2000 character , you can take as per your requirement .

L3.png

Screen Shot # 4

  •   Create Custom Upload Program using above Custom Functional Module.

“Data Declaration

  TYPES: BEGIN OF TY_ITAB ,

         MATNR(18)    TYPE C,

         LMAKTX(2000) TYPE C,

         ROW TYPE I,

         TSIZE TYPE I,

         END OF TY_ITAB.

Data Declarations – Internal Tables

DATA: I_TAB          TYPE STANDARD TABLE OF TY_ITAB  INITIAL SIZE 0,

       IT_EXLOAD      LIKE ZALSMEX_TABLINE  OCCURS 0 WITH HEADER LINE,

       IT_LINES       LIKE STANDARD TABLE OF TLINE WITH HEADER LINE,

       IT_TEXT_HEADER LIKE STANDARD TABLE OF THEAD WITH HEADER LINE,

       WA             TYPE TY_ITAB ,

       P_ERROR TYPE  SY-LISEL ,

       LEN TYPE I .

“Selection Screen

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.

PARAMETERS:PFILE TYPE RLGRAP-FILENAME OBLIGATORY, “Excel File Name with Path

           W_BEGIN TYPE I OBLIGATORY,                                      “Excel Row beginning

           W_END TYPE I OBLIGATORY.                                          “Excel End Row     

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN.

  IF PFILE IS INITIAL.

    MESSAGE S368(00) WITH ‘Please input filename’. STOP.

  ENDIF.

START-OF-SELECTION.

REFRESH:I_TAB.

  PERFORM EXCEL_DATA_INT_TABLE.   

  PERFORM EXCEL_TO_INT.

  PERFORM CONTOL_PARAMETER.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PFILE.

  PERFORM F4_FILENAME.

“ F4 Help getting Excel File Name with Comlete Path

FORM F4_FILENAME .

  CALL FUNCTION ‘F4_FILENAME’

  EXPORTING

    PROGRAM_NAME        = SYST-CPROG

    DYNPRO_NUMBER       = SYST-DYNNR

  IMPORTING

    FILE_NAME                  = PFILE .

ENDFORM. 

“Read Legacy Data Transfer from Excel using Custom Function Module

FORM EXCEL_DATA_INT_TABLE .

  CALL FUNCTION ‘YALSM_EXCEL_TO_INTERNAL_TABLE

    EXPORTING

      FILENAME    = PFILE

      I_BEGIN_COL = ‘0001’               “Excel Beginning Column           

      I_BEGIN_ROW = W_BEGIN     

      I_END_COL   = ‘002’                  “Excel End Column    

      I_END_ROW   = W_END                                  

    TABLES

      INTERN      = IT_EXLOAD.

ENDFORM.                    ” EXCEL_DATA_INT_TABLE

“Transfer Excel data into internal table

FORM EXCEL_TO_INT .

  LOOP AT IT_EXLOAD .

    CASE  IT_EXLOAD-COL1.

      WHEN ‘0001’.

        WA-MATNR   = IT_EXLOAD-VALUE.        “Material Number Leading with Zero

      WHEN ‘0002’.

        WA-LMAKTX   = IT_EXLOAD-VALUE.      “ Material Long Text

    ENDCASE.

    AT END OF ROW1.

      WA-TSIZE = STRLEN( WA-LMAKTX ) .         “Finding String Length using STRLEN

      WA-ROW = IT_EXLOAD-ROW1 .                  “Adding Current Row Num into Internal table    

      APPEND WA TO I_TAB.

      CLEAR WA .

    ENDAT.

  ENDLOOP.

ENDFORM.                    ” EXCEL_TO_INT

“Maintain Header, Item data and pass into “SAVE_TEXT” to save to Long Text

FORM CONTOL_PARAMETER.

  DATA OFF TYPE I VALUE ‘0’.

  LOOP AT I_TAB INTO WA.

    * Create Header

    IT_TEXT_HEADER-TDID     = ‘BEST’.                 “ Text ID for Material Master

    IT_TEXT_HEADER-TDSPRAS  = SY-LANGU .    “ Login Language Key

    IT_TEXT_HEADER-TDNAME   = WA-MATNR.     “Material Number leading with Zero 

    IT_TEXT_HEADER-TDOBJECT = ‘MATERIAL’.     “ Text Object

    MOVE WA-TSIZE TO LEN .    

    LEN =  LEN / 53  + 1.                                           “Finding Number of Row’s taken by Long Text

    “ Note :  Number of Row Required for Long Text Display

              = Total length of long text / Number Character’s in one Row + 1 

               Here I am taken 53 number of character in each row ,

               because in Material Master Long Text Area Display 53 Character without using Horizontal Bar . “

    DO LEN TIMES .

      MOVE ‘*’ TO IT_LINES-TDFORMAT.

      MOVE  WA-LMAKTX+OFF(53) TO IT_LINES-TDLINE.

      SHIFT IT_LINES-TDLINE LEFT DELETING LEADING ‘ ‘.

      OFF = OFF + 53 .

      APPEND IT_LINES.

      CLEAR IT_LINES .

    ENDDO.

Using SAVE_TEXT Functional Module Save Long Text to SAP

    AT END OF ROW.

      CALL FUNCTION ‘SAVE_TEXT’                  

        EXPORTING

          CLIENT                     = SY-MANDT

          HEADER                   = IT_TEXT_HEADER

          INSERT                     = ‘ ‘

          SAVEMODE_DIRECT = ‘X’

        TABLES

          LINES                        = IT_LINES

        EXCEPTIONS

          ID                              = 1

          LANGUAGE               = 2

          NAME                        = 3

          OBJECT                     = 4

          OTHERS                    = 5.

* Check the Return Code

      IF SY-SUBRC <> 0.

        MESSAGE ID SY-MSGID TYPE SY-MSGTY

            NUMBER SY-MSGNO

              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 INTO P_ERROR.

        EXIT.

      ENDIF.

      CLEAR: WA ,LEN , OFF.

      REFRESH IT_LINES .

    ENDAT.

  ENDLOOP.

ENDFORM.                    ” CONTOL_PARAMETER

  • Output

L12.png

Screen Shot # 13

L13.png

Screen Shot # 14

/wp-content/uploads/2013/08/l00_264600.png

Screen Shot # 15

Reference :

Note – 933420 – ALSM_EXCEL_TO_INTERNAL_TABLE

Source Code Available in Wiki : How to Upload Long Text into SAP Using Excel Sheet and SAVE_TEXT Function Module – ABAP Developme…

Regard’s

Smruti



To report this post you need to login first.

82 Comments

You must be Logged on to comment or reply to a post.

  1. Asif Mohammad

    Thanks Smruti  πŸ™‚

    Thanks for sharing Good Document…….

    This document is helpful for us, we work on the similar concept.!

    Keep posting…..   with New Ideas……

    Regards,

    Asif

    (0) 
  2. JΓΌrgen L

    It could have been a real good document.

    But somehow the new style of documenting seems to be to just post screen shots of content that could easily posted as text in the document itself

    No explaining words, of course an ABAPer can read the screen shots, but you tagged it as well for beginners… beginner would need some explanation

    And not to forget the SCN search searchs for words, it is not able to search by words that are contained in screen shots.

    (0) 
  3. Omkar L

    Hi Smruti,

    You have done good document. many of them geting problem with uploading the long text so it will use ful for us.

    Regards,

    OmChandra

    (0) 
    1. Smruti Ranjan Mohanty Post author

      Thanks Suman Sardar πŸ™‚

      As per your question , i am used above example to uploading ‘Long Text‘ to Material Master (i.e. MM02 ), here you find Material Number , Not PO Number .

      Note: The main focus area How To Upload Long Text in to SAP Using Excel Sheet .

      Regard’s

      Smruti

      (0) 
  4. rajesh bethamcharla

    Hi Ranjan,

    Thanks for sharing such a useful info.

    I don’t know how many people tried this logic, but when I tried you logic i am unable to upload more than 255 character from excel into internal table

    Can you please share sample code as in ZIP format that really helps to me.

    Regards,

    Rajesh

    (0) 
  5. James Wambulwa

    Thanks Smruti for sharing the document. Its reall informative.

    However, i when i upload the long text, i cannot see it in po text view in mm03 but when i use READ_TEXT FM i can see the Uploaded text.

    what could be issue?

    regards,

    James.

    (0) 

Leave a Reply