In Oracle BPM "Service task" is used for invoking Synchronous web-service calls. It wont be useful for Asynchronous service calls. To deal with Asynchronous service calls, Send/Receive or Throw/Catch events need to be used. There are few differences and similarities between Send/Receive and Throw/Catch Message events. Please have a look at them below. Send/Receive Task Throw/Catch Message Events Can it be used to initiate task? Yes Yes Can it be used to call/invoke Synchronous services/processes? No No Can it be used to call/invoke Asynchronous services/processes? Yes Yes Does correlation/conversation need to be set to deal with Asynchronous tasks? Yes Yes Can it have boundary events associated to it? Yes No Can these pair be used to create synchronous process /service? Yes Yes Can these pair be used to create Asynchronous process /service? Yes Yes Send and Receive task example with boundary events attached to it can be fou
This post talks about Oracle BPM process communication with Asynchronous service. When we talk about BPM process communication with other processes or services, Those processes or services can be synchronous or asynchronous. Synchronous process/service can be invoked with Service Call flow object in Oracle BPM. It will be a straight forward approach,just by adding WebService adapter at external references and using service task to invoke the service. In case of Asynchronous process /service,we must use send /receive task or throw/catch message events when designing flows in BPM. Summary : Asynchronous process wont wait for response to be returned immediately. As soon as its been invoked ,the process will be running in the background.Its the responsibility of calling process to make sure to look for callback response from asynchronous process for the sent request. In order to identify the correlation between request and response , the design has to be made in such a way to use