My Table Mover(Part 1)
November 27, 2007I am currently doing more development work than I want to or supposed to do. So, I will start this blog on a rather technical note by taking you through a small development I did the other day. Hopefully someone finds this useful.
I needed to move a table from one SAP system to another system in a different landscape. It was the ideal opportunity to do a bit of interesting coding for a change (you can normally do this using a transport, once you get past the bureaucracy).
Now, I am not going to discuss the merits of the program I did develop or if it should even be used in an SAP system. All I am going to say is that changing SAP tables directly is extremely risky and should never be done in Productive Systems. It just turns out that this program was ideal for showing some not so common ABAP techniques.
My requirements definition for the Table Mover were as follows:
- Download multiple tables at once
- Upload multiple tables at once
- Be able to open/edit the downloaded file in Excel
Ok, so in order to meet requirement 1 and 2 I needed to include the table name in download structure. Requirement 3 meant I needed to use tab-delimited text or CSV. So I ended up with the following definition for a line type:

So this program will upload and download files in Ascii format. The first 16 characters will contain the table name and the rest of the row will be table contents in tab delimited format.
The old GUI_UPLOAD, GUI_DOWNLOAD, etc. Function Modules have been flagged as Obsolete in NetWeaver 7.0(AKA 2004s or whatever SAP decides to rename it to in future). Therefore I used the following methods to do my file processing:
- cl_gui_frontend_services=>file_open_dialog
- cl_gui_frontend_services=>gui_upload
- cl_gui_frontend_services=>gui_download
I had to upload and download the files without taking the tab-separator into account because I don’t know the structure of the table until I have uploaded the record.
In the next post I will discuss the details of the uploading and downloading mechanism.
In the meantime, here is the source code of the program. I wrote the program very quickly, so apologies for lack of error checking, testing, structure, etc. Source Code – Table Mover






[...] 13 05 2008 Ok, so I
My Table Mover(Part 2) « Johan van Zijl’s Weblog | May 13, 2008[...] 13 05 2008 Ok, so I finally found some time to write Part 2(took me a couple of months). Part 1 of this blog only dealt with what the Table Mover program does and the broad mechanics used. In [...]
Somehow i missed the point. Probably lost in translation :)
Indianization | June 20, 2008Somehow i missed the point. Probably lost in translation
Anyway … nice blog to visit.
cheers, Indianization!!!
Akismet flagged my first real comment as spam? The source
Johan van Zijl | June 22, 2008Akismet flagged my first real comment as spam? The source IP seems to sit in Japan, but URL is UK based, wonder if that is somehow Akismet criteria?
WRT comment… Thanks I think? But, if you don’t need to download or upload a SAP table directly, you should rather not use this program.