When you google "ABAP CALL SYSTEM" you find a lot of entries that show code like the following:
DATA: command(255),
BEGIN OF tabl OCCURS 0,
line(255),
END OF tabl.
command = '...'.
CALL 'SYSTEM' ID 'COMMAND' FIELD command
ID 'TAB' FIELD tabl-*sys*.
Fist of all:
You shouldn't use CALL 'SYSTEM' at all. CALL 'SYSTEM' is vulnerable against system command injection and there is a profile parameter rdisp/call_system that can switch that call simply off. A runtime error occurs if you use CALL 'SYSTEM' and it is switched off. Do you want to risk that in your programs? If you have to use system calls, use function modules like SXPG_CALL_SYSTEM or SXPG_COMMAND_EXECUTE instead.
Second:
What is CALL 'SYSTEM'?
CALL 'SYSTEM' is simply a usage of the ABAP statement CALL cfunc. This statement should only be used internally in system programs to call system functions from the c-kernel. SYSTEM is simply one of those system functions. It passes system commands to the operating system and returns the results. You should not call this function at all, see above ...
Third:
What the heck is tabl-*sys*?
I suspect that most people writing in discussions about CALL 'SYSTEM' have copied their code from somewhere and that the original source is very, very old. If you believe that tabl-*sys* is somehow connected to CALL 'SYSTEM' - and I have the impression that some people do - you are perfectly wrong.
tabl-*sys* is the outdated and undocumented way of writing tabl[] in order to address the table body of an internal table with header line. That's all.
And of course, you don't even need an internal table with header line for CALL 'SYSTEM' (some people seem to believe that too ...)!
You could also write:
DATA: command TYPE char255,
tabl TYPE TABLE OF char255.
command = '...'.
CALL 'SYSTEM' ID 'COMMAND' FIELD command
ID 'TAB' FIELD tabl.
No black magic, and as I said you shouldn't use it anyway ...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
5 | |
3 | |
2 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 |