Skip to Content

Hi SAP community, this final blog tie on my previous blogs

This blog illustrates how sub processes can be called asynchronously and first and foremost how these sub processes can reactivate / awake the main process (where the sub process was started from). This scenario will also implement offline interaction by using Adobe Forms.

In my opinion using Adobe Forms is a default use case with interaction of intermediate message events and that’s one of the reasons why I wanna share my experience in implementing this. By using Adobe Forms I assume that you have already some experience in using and creating them because at this blog I will not explain in detail how to create forms.

If you need some information belonging Adobe Forms please have a look at:

Adobe Forms Information:

Part 3of3: Loosely coupled sub process using intermediate message events and Adobe Form response

My system: SAP NetWeaver CE 7.20 SP3

Process description:

Below example will be embedded in the main process which was already created and enriched in blog Part 1 and 2. The process starts by ordering some stocks at task “Order Request” which will be approved in synchronously called referenced sub process “Order Approval”.

If the order was approved we start the creation of the order at the R/3 backend by starting belonging sub process asynchronously at step “Send Order to R/3 Backend”. Due to the fact that we triggered the R/3 asynchronously we do not have to wait till R/3 is finished!

As bridge to part 3 of this blog series we check if the amount of stock order is bigger then 5000 or not.

If the request is above 5000 we have to brief the CFO about this order by sending him an Adobe Form with the order information (name, stock amount). This will be triggered asynchronously by calling automated activity “Send Info Form to CFO”.  Afterwards we can do any other stuff, in this case starting an embedded process, because the handling of the form works parallel. However the process will stop at the intermediate message event “Wait for CFO feedback” at the latest which waits for the previously started sub process (Response from CFO). In the end we wanna inform the responsible about the CFO comment by mail.

The sub process which will be triggered by automated activity “Send Info Form to CFO” looks like shown below. The Adobe Form is assigned to this human activity like any other GUI from Visual Composer or Web Dynpro. It has to be implemented, like any other process, in a separate process model. For illustrating purposes the process can be added to the main process as an inactive pool. This simplify the “reading” and understanding of the main process.

At task “Send Adobe Form to CFO” the form will be send to the CFO with given information out of data object DO_StartOut. There, the CFO has the possibility to comment the order. In this case the CFO has to response within 1 hour otherwise completion exception will be raised and human activity will be automatically completed. This has to be done because we have to ensure, that the process is going on and not interrupted due to missing CFO response. By calling the automated activity “Recall Main Process” we awake the main process by passing the comment of the CFO (Also done by asynchronous call).

In the main process we are using intermediate message events (Event “Wait for CFO comment”) which will wait for response of the sub process above. To get both processes linked together, correlation conditions hast to be set. The correlation condition  matches the incoming message to the process context and thus evaluates  which particular message does the intermediate message event expect. As condition you can use a self created “Process ID” or “Order ID” for example. Be aware that this has to be already set when starting the sub process and delivered back when reactivating the main process. Otherwise it won’t be possible to check whether the condition is true or not.

 

Next the creation of the service interfaces will be explained in detail:

Service interfaces implementation (For detailed information how to create service interfaces see Part 1 or 2):

1. Create asynchronous service interface and message trigger for starting sub process

  • Define operation name
  • Delete output message
  • Delete wsdl:output block
  • Build WSDL base (Create type “InputType” and assign to input element)
  • Define input parameter for  InputType (Do not forget to define correlation condition element which will be send back to main process, e.g. “stockOrderID”)
  • Create message trigger for service interface
  • Assign  message trigger to sub process start event
  • Assign service interface  to automated activity “Send Info Form to CFO” in main process

2. Create asynchronous  service interface and message trigger for recalling main process

  • Define operation name
  • Delete output message
  • Delete wsdl:output block
  • Build WSDL base (Create type “InputType” and assign to input element)
  • Define input parameter for  InputType (Do not forget to define element for correlation condition which has to be send back to main process, usually the same as retrieved from start event – in this case “stockOrderID”)
  • Create message trigger for service interface
  • Assign  message interface to intermediate message event “Wait for CFO feedback”
  • Assign service interface to automated activity “Recall Main Process” in  sub process

 

Adobe Forms implementation (Addon implementation – not mandatory in combination with intermediate message events) :

Prerequisite: Adobe Form configured for CE server (see Configuring Adobe Document Services for CE)- see Links above!

  • Create in XSD file the data structure for Adobe Form. In this case like:

  • Create Adobe Form with Adobe LiveCycle Designer on the basis of previous XSD

  • Make settings to the task as you like, e.g User Texts, Time constraints. In my case the “Completion Deadline” exception has to be set.

As final step there are “only” the mappings which have to be defined.

Summary:

With this words I will finish my blog series. The blogs should illustrate the use of synchronous, asynchronous process calls and the use of intermediate message events on a detailed technical level. It should show  primarily how the different start event triggers, or rather service  interfaces, could be implemented and how Adobe Forms could be used in  combination with intermediate message events. 

I hope the context was accordingly your expectations. 

Feedback, comments are appreciated!!!

Regards

Martin Baeuml, Siemens AG

 

Annex:

Whole process picture;

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply