Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Sharathmg
Active Contributor
Hello Everyone,

The blog is inspired from a real life challenge I faced while trying to upload a excel to the custom Z Table.

At the start, considering the vast amount of ABAP content, this seemed like a straight forward job. I wanted to finish it in 30 minutes. It took me 3 days.

Caveat: I am not a Pro-ABAPer. I m one who knows ABAP but works on UI/UX.

As a developer, my first step towards writing code:

I Googled It.


The results were many, which immediately boosted by confidence of accomplishing the task. However, I found that most of solutions which were proposed, were not relevant to S4HANA(1709) system, which was the one I was working on.

The function module : ALSM_EXCEL_TO_INTERNAL_TABLE does not exist

The function module : TEXT_CONVERT_XLS_TO_SAP does not exist



 

So, final resort, GUI_UPLOAD .

The code approach is very simple.

Solution:

  1. Convert the .XLSX to TXT(Tab delimited file).


HOW ? - Open the .XLSX file and choose option File-Save As and choose the file type as Text(Tab-Delimited) (*.txt)



2. Ensure that there is no header line ex: Column names are removed and only data is retained in the TXT file.

 

3. Create a executable program in SE38.

 

4. Call the function module - GUI_UPLOAD using Pattern option.

 

5. To the function module, pass the following parameters:

a. Path to the file in your local disk - FILENAME

b. field separator "#" - HAS_FIELD_SEPARATOR

c. An internal table of the type of the actual ZTable. ex: DATAZINTERNAL TYPE TABLE OF ZCUSTOMTABLE.

6. (Optional) Sit back and watch the data load into the internal table in debug mode. 🙂

 

7. Finally, look through internal table, and insert into the actual ZTable using the temporary work area.
DATA: ZINTERNALTABLE TYPE TABLE OF ZCUSTOMTABLE.
DATA: WA_ZINTERNALTABLE TYPE ZCUSTOMTABLE.

PARAMETERS: P_FILE TYPE STRING DEFAULT '<Path to your actual text file>' OBLIGATORY. " File Name

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = P_FILE
HAS_FIELD_SEPARATOR = '#'
TABLES
DATA_TAB = ZINTERNALTABLE.

IF SY-SUBRC EQ 0.
LOOP AT ZINTERNALTABLE INTO WA_ZINTERNALTABLE.
INSERT ZCUSTOMTABLE FROM WA_ZINTERNALTABLE.
ENDLOOP.
ENDIF.

Thats it.

Hopefully, its not TLDR.

Hope it helps.

 

Disclaimer: The opinions expressed in this blog are purely personal and has to relevance to anything/anyone else.

 
16 Comments