How to Upload Long Text into SAP Using Excel Sheet and SAVE_TEXT Function Module
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.
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” .
Screen Shot # 2
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 .
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
Screen Shot # 13
Screen Shot # 14
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
Hi,
Nice Document for Go-Live Phase.
Thanks
Bisweswar
🙂 thanks Bisweswar ...
Regard's
Smruti
Hi Smruti..
Good Document.... Thanks for sharing....
Regards,
Ramesh.T
Thanks Ramesh.. 🙂
Regard's
Smruti
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
Yeah Sure ..
Thanks Asif .. 🙂
Good One...Many Thanks.
Best Regards,
Naresh K.
Thamks 🙂
Regard's
Smruti
Good work Smruti. This is the one which is always missed by LSMW.
Surely helpful.
Regards,
Ravi
Thanks Ravi 🙂
Regard's
Smruti
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.
Good advice Jurgen.
Thanks for Good Advice 🙂 , Now the Document is Updated .
Regard's
Smruti
Thumbs up, much better now.
Good effort dear Smruti !!! 🙂
Thanks Amala 🙂
Regard's
Smruti
Hi Smruthi,
Nice Document....thanks for sharing.
Best Regard's,
Shashi Kanth
Thanks Shashi 🙂
Regard's
Smruti
Now it really helpful to copy & use.
Regards,
Bisweswar
Excellent !!!
Thanks 🙂
Regard's
Smruti
Good detailed document there.
Thanks Jothivenkatesh.. 🙂
Regard's
Smruti
It's a great article to share. Thanks, and hopefully you would be able to bring out more!
Thanks Wang... 🙂
Regard's
Smruti
Nice Article.
Thanks for sharing
Thanks Akberhusain .. 🙂
Regard's
Smruti
Well done! Thanks.
Thanks Erek 🙂
Regard's
Smruti
Thanks for sharing .Nice one.
Thanks Jaffer .. 🙂
Regard's
Smruti
Very Nice 🙂
Regard's,
Hiriz
Nice Job!.
Thanks Uday 🙂
Regard's
Smruti
smruti bhaiyaa....
GOOD ONE....!!!!
Thanks Jinto... 😉
Regard's
Smruti
Helpful..thanks for sharing 🙂
Thanks Farid 🙂
Regard's
Smruti
Hi Smruti,
Nice Job...Great Work...Thanks for sharing.
Regards,
Krishna Chaitanya.
Thanks Krishna 🙂
Regard's
Smruti
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
Thanks Om 🙂
Regard's
Smruti
Very good article on using of FM SAVE_TEXT
Thanks Ashish 🙂
Regard's
Smruti
Thanks for your contribution to the Community.
Thanks German Meyer 🙂
Regard's
Smruti
Well explained. Thanks for sharing
Regards
Anoop
Thanks Anoop 🙂
Regard's
Smruti
Hi ,
Helpful document 🙂
Thanks Kiran 🙂
Regard's
Smruti
Hi,
Very helpful document and thanks a lot sharing knowledge.
Thanks,
Riju.
Thanks Riju Thomas.. 🙂
Regard's
Smruti
Hi,
Its very Help full document for Functional Consultant. Thanx for Sharing.
Regards
Priyaranjan
Thanks Priyaranjan ... 🙂
Regard's
Smruti
Informative information Smruti Ranjan Mohanty
Thanks Hemanth.. 🙂
Regard's
Smruti
Simple and useful INFO, Thanks For Sharing.
Regards,
Giri
Thanks Giri Peram... 🙂
Regard's
Smruti
nice article thanks
Martin
Thanks Martin 🙂
Regard's
Smruti
Hello,
Thank you for sharing knowledge! ➕
Perfect and excellent. Thank you very much. 🙂
all the best Erwin
Thanks Erwin Leitner 🙂
Regard's
Smruti
Good Article ... Thanks for sharing... 🙂
Thanks rajesh bethamcharla 🙂
Regard's
Smruti
Thanks for sharing...learned a lot.Was very interesting. Looking forward for some more doc like this in near future.
Yeah Sure.Amaranatha Madhaba..Thanks 🙂
Regard's
Smruti
Nice document with detailed steps.
Thanks Modadugu Hemanth Kumar 🙂
Regard's
Smruti
Nice document 🙂 ..............
Thanks ravindra devarapalli 🙂
Regard's
Smruti
Good to know such functionality.Really helpful dear Smruti Ranjan Mohanty.
But I have one question when you are uploading the long text it is going to save in which PO as I not found any PO no in the upload screen.
Thanks,
Suman$
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
Thanks for the expalnation Smruti Ranjan Mohanty 🙂
Anyway great to know such things.
Nice document. thanks for sharing.
Thanks Srinivas S 🙂
Regard's
Smruti
Useful one!!! 🙂
Thanks Chandra Shekhar Agarwal 🙂
Regard's
Smruti
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
How to Upload Long Text into SAP Using Excel Sheet and SAVE_TEXT Function Module - ABAP Developme...
Check above Wiki link. and you need create some custom objects ..for Refer this Document Screen Shot # 2, 3, 4.
Regard's
Smruti
Good Work. Thank you for sharing Knowledge!
Regards,
Sharda
Thanks SHARDA DAS ..
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.
My question relates to the long text, but it does not relate with extraction or anything like that. I'm drawing blanks on how to activate the long text button located in document data tab inside of the material master?? I need to get this activated in order to input information relating between the document that's listed in that particular material master.