Within the context of process chain maintenance, an ABAP program is a process type.
Use the ABAP Program process type if you want to use a simple, independent program in a chain or if you want to use a program scheduled by a user or another program in the background. This allows you to schedule a program of your choice (ABAP report) in the process chain management, with or without program variants.
The scheduling options are as follows:
Specify the program name and variant under Program to be Called → Program. The program is started after the event for the predecessor process has been triggered.
The program is executed in the background on the same server on which the process chain is scheduled. The process chain waits until the program has finished before it continues with any possible successors.
Choose this option if your program is asynchronous.
An asynchronous process is also called a distributed process. Distributed processes are characterized as having different work processes involved in specific tasks. A program is asynchronous when it does not end the task which it started itself. In an asynchronous process, the process chain management does not equate the end of the process with the end of the background process. The process status remains active.
In asynchronous processes, successor events are not automatically triggered.You need to call the remote-enabled RSPC_ABAP_FINISH function module at the end of your program to signify the real end of your process. The process is then indicated as completed and the successor events are triggered.
Inform the function module of the process variant, with which your program is scheduled. To do this, you need to either hardcode the process variant in the program, or transfer the process variant to a program variant You need the following lines in your program to do this:
PARAMETERS variant TYPE rspc_variant.
The process chain management does not recognize the termination of your program.
Therefore, when you restart the chain it will also terminate, since the old run is not finished. To avoid this, you need to manually set the process to terminated in the chain log view in the process monitor (Process tab page). Do this prior to restarting.
Choose this option if your program is asynchronous (it effects a user decision or makes an asynchronous RFC); or if you want to start a scheduled program in the background. In this case, the program must be scheduled to wait for a batch event. Enter the event and, if necessary, the parameter under Program to be Called → Scheduled Program.
In this option you must schedule the program to be called on the target server to wait for an event.
Under Called From, enter the Destination for the target system and enter the event and, if necessary, the parameter by choosing Program to Be Called → Scheduled Program.
This option is only available for target systems as of service API 3.0A.
We recommend that you write a local program, in which you synchronously call a remote-enabled function module in the target system. Then choose the option Synchronous, Local. This allows you to monitor your process using process chain management.
You can write logs without much effort by issuing success messages. These logs are displayed, using the context menu for a process, in the process chain maintenance log view. Choose Display Messages →Tab Page Batch.
Error messages terminate the job. Therefore, write your logs as success messages. Furthermore, for this process type, it is not possible to evaluate the error messages as a status in the program so that you can trigger possible success processes By Error. If you require this function, seeImplementing Your Own Process Type.
We recommend you model more complex processes not covered by BI process types, usingImplementing Your Own Process Type .