When you want to run an external program as a job step that is executed in a background process, the following steps are executed:
1. A request for the execution is sent from the background process via the dispatcher to the local instance gateway.
2. The gateway calls the program sapxpg with the requested external program as an argument.
Depending on the location specified in the job step, the gateway starts sapxpg locally (using fork/exec) or remotely (using remote shell/remote execute mechanisms, offered by the operating system).
3. The program sapxpg starts the execution of the external program.
4. The external program is executed.
5. When the external program finishes control is given back to the program sapxpg.
6. The program sapxpg gives the control back to the gateway.
7. The gateway returns the results of the execution via the dispatcher to the batch work process.
Since external commands called from background jobs have to pass through the gateway, the secinfo file can be used to disallow their execution. However, if you have specified a secinfo file and you want to allow the execution of external programs, you have to make an entry for the program sapxpg in the secinfo file. (See also Authorizations in the RFC/ICF Security Guide.)
For the execution of external commands within background processing jobs, the user needs to have the appropriate authorization for the object S_LOG_COM.