Asynchronous Application Integration Callable Object Type
Scenario:
In a Business process modeled with SAP NetWeaver - Guided Procedure (GP), web service call is made from GP to pass the control to external application (outside the GP context). In order to come back to Guided Procedure context system has to wait on external application to finish its execution. The process comes back to Guided Procedure context by web-service call.
Solution with Custom Step in Guided Procedure:
With current Guided Procedure capability, custom step can be built as Background or WebDynpro Callable object which will store the external process context (ID) information in CAF Core. This callable object will not contain completion step (No Complete API called). External Web Service call will explicitly complete the step. The resulted Guided Procedure will look as below:
Block | Action | Context Data In | Context Data Out | External Application | Comment |
External Application Control Block | | | | | |
| Web Service [1] | | Ext Process ID | | This web Service call initiate the external application |
| | | | External Application Execution [2] | External Application is executed, GP context is brought to hold phase |
| Back Ground/ WebDynpro Callable Object [Without Completion Step] [3] | Ext Process ID | | | This action provides the message to User and wait for completion from external application |
| | | | External Application Web Service [4] | This web service call is made to complete the previous action |
| Next Action..[5] | | | | |
Above solution provides the way to integrate external application within the Guided Procedure, but the downside of above pattern is one always have to build a custom callable object which needs to be completed from external service call.
Solution with Asynchronous External Application Callable Object Type
This Callable Object Type would simulate the wait phase for Guided Procedure and will get completed through external service call. It is a Callable Object of its own type so does not need to be implemented through any other callable Object. This callable object also has a capability to take the message as configuration which would be displayed to user while it’s waiting for external application to complete its execution.
Callable Object – Attribute | Value |
Name | External Application Integration |
Object Definition | Message |
Input Parameter | External Process Id |
Output Parameter | None |
Configuration | None |
State Diagram
Table below illustrates the Guided Procedure design with “Asynchronous External Application Callable Object Type”
Block | Action | Context Data In | Context Data Out | External Application | Comment |
External Application Control Block | | | | | |
| Web Service [1] | | Ext Process ID | | This web Service call initiate the external application |
| | | | External Application Execution [2] | External Application is executed, GP context is brought to hold phase |
| Asynchronous Callable Object [3] | Ext Process ID Message | | | This is “Asynchronous Callable Object” which simulates the wait phase. |
| | | | External Application Web Service [4] | This web service call is made to complete the previous action |
| Next Action..[5] | | | | |
Above solution clearly has a distinct advantage over previous solution. By utilizing the custom “Asynchronous Callable object” you don’t need to build any WD forms or any other form of custom developed step. This callable object also provides the way to display the custom message while waiting on external application to complete the step. Once deployed and registered this callable object will appear under Custom Callable Object Section. Steps below provide the details of how to use this callable object.
Create External Application Integration Callable Object
Click on Custom --> Select External Callable Object, Provide Name, Description, and Folder to store.
Define Object
Provide the message which will displayed to user while waiting on external system to finish its task.
Define Input
This screen shows the input required for the callable object. In this case it is process Identifier.
Define Output: This Callable Object does not have any output
No Output is configured for this callable object.
Finish
This screen is to show that Callable Object creation is finished. It can be opened from here or can be navigated back for changes.
Testing Callable Object
On Click of test tab, Callable object comes with test screen which can be tested by providing the process id of external application.
Callable Object Execution
This screen shows the output of callable upon execution.
Callable Object Usage
Following GP configuration explains the usage of “Asynchronous External Application Integration Callable Object”. Callable object “WaitOnProcurement” is of the type “Asynchronous External Application Integration” which takes the “processID” of the external application initiated in previous step and waits to be completed from external Web Service call.