cancel
Showing results for 
Search instead for 
Did you mean: 

Interface dependent message processing BPMN scenario

Former Member
0 Kudos

Hi

I have 3 async interfaces which runf rom file to soap services

My requirement is to develop a Async/Sync BPMN process to to fetch responses and send to database using JDBC receiver channel however all these 3 interfaces run one after other

Lets say 1st interface has 5 messages to process then second interface should run only once we revive all the five responses form the first interface

I have gone through blogs of async/sync with new BPN process and I need to work on that but can you please assist me developing the BPMN scenario to process these interface one after other

Accepted Solutions (1)

Accepted Solutions (1)

Snavi
Active Participant
0 Kudos

Hi Arun,

you can use the attached bpmn process as an example for your scenario

  1. ICO1 triggers the BPM (file to BPM)
  2. the automated activity (Split n Messages) in the BPM can be used to split the messages and call soap receiver wsdl.
  3. the control then transfers to the (Interface Response) intermediate event, where it will wait for the response message and merge messages until count reaches your defined number. this will be your ICO2 , collect response and call BPM
    1. you need to set a correlation conditions based on the payload, or filename
  4. once all the response messages are collected, the control transfers to the (Interface 2) automated activity.
  5. control passes to the response message intermediate event. this is ICO3
  6. update JDBC with the response message. ICO4

for the automated activities as defined in BPM, you can either use ICO to call soap receiver or can call soap endpoint directly from BPM

note, you need to also work on some error handling on the automated activities. rename the attachment as .bpmn

Former Member
0 Kudos

sorry for the delay

Thanks for your inputs. Let me be clear with my requirement

1) 3 file to soap scenarios with 3 different message types/service interfaces and ICO's

2) async/sync BPMN

3) Second interface should process only once we receive the response from soap service for first interface and the third should process of the second interface receives the resposne

Question:

how do i start all 3 different service interface with one start interface option in BPM

Do i need to use embedded process

how do i make sure the dependency of first interface ad second and third interfaces are processing in sequence

Thanks

Snavi
Active Participant
0 Kudos

Hi Arun,


how do i make sure the dependency of first interface ad second and third interfaces are processing in sequence

1. ICO1, file to BPM (async)

2. BPM automated activity calls ICO2 , BPM to SOAP (sync)

3. BPM automated activity calls ICO3, BPM to SOAP (sync) , in the mapping of this ICO , write udf to pick the file and send to soap receiver. note, this ICO is no longer file to SOAP.

4. ICO4 BPM to JDBC (async)

arrange these activities in sequence in BPM

this is just a way for your scenario, but if there is a chance, you may be able to redesign your scenario based on your business requirements and may be able to accomplish everything without BPM.


how do i start all 3 different service interface with one start interface option in BPM

you cannot use 3 different interface to start BPM process. there will be one start event, and then there can be intermediate message events which will wait for additional events to join the running BPM process based on some correlation condition. but in your case as the interfaces are triggered from file sender, and if second interface is triggered before the BPM is instantiated from first process, your second interface message will be lost as there is no intermediate event waiting to this message.

so you can achieve your scenario using the above option where you pick the files in mapping.

Former Member
0 Kudos

Thanks for the fast reply

1. ICO1, file to BPM (async)

Question : how do i get the response back to firs ICO and untill and unless I get response second ICO should not start and so the third

For a moment lets forget the third scenario so that I can better understand this scenario

Now lets say first interface should be processed as async/sync using BPM and the responses should be written to file systems then the second interface should be initiated using async/sync bpm and the responses should be written to file system

> ICO1 > Async > BPM >SYNC>responses written to file

> ICO2 > Automated activity>

i just want to know the connection of dependency when and how should i start the second ICO

Do i need to use intermediate message or embedded process

thanks for your help. i am new to this try to do a proof of concept

can you share the diagram, will award points for your time

Thaks

Snavi
Active Participant
0 Kudos

Hi Arun,

ICO1 is to read the file and trigger BPM, the ICO2 will be sync call from BPM to SOAP, the BPM will get the sync response back and only then the next step executes

In the next automated activity you can either write the response to file, or another BPM to SOAP.

these activities are all sequential so will execute one after another.

hope this helps,

Former Member
0 Kudos

I understood it better now the last question is

The automated activity takes all the messages at once and sends back all the responses or just one message at a time. do i need to loop it to process all the request message ?

Snavi
Active Participant
0 Kudos

Hi Arun,

It depends on your scenario, looping will let you execute the activities multiple times, but please note, these will be executed in parallel and not in sequence, and you need to append the response messages from output mapping to your local objects in the context.

Former Member
0 Kudos

Hi Navdeep

In that case I don't need to use your design to split and merge response I can do a simple way

file to start BPM and use automated activity in sequential flow

Thank you for your help

Snavi
Active Participant
0 Kudos

Hi Arun,

The merge response is required as separate intermediate message if you have request and response independent interfaces running in async mode,

request : bpm to soap (async)

response: file to bpm (async)

in that case you need to wait for response and correlate to the running BPM.

as you mentioned in your first question that all interfaces are async, but then we discussed different scenarios and as you are doing this for your proof of concept you can start with this, and let me know if that works.

Former Member
0 Kudos

Hi,

I tried its failing due to second ICO file sender adapter polling time is initiated as per poll time and bpm receives the message in the middle of flow, not sure how to handle two ICO's to make them dependent to process one after another, can you share a design

Snavi
Active Participant
0 Kudos

Hi Arun,

this is what i explained in my response on Jun 28, 2016

  • your async response will only be ready after the request is initiated to the provider, and the provider generates the response. (in a real time business scenario)
  • you can still put timer in the BPM and fetch the response files in your mapping in the next step (and not using ICO with file sender) , as mentioned in my previous response
  • BPM is not to make ICO's dependent on each other, but to create a real business scenario.
  • as i understand you are only doing this for learning and do not have a real business scenario, you can modify your design in many other ways.
Former Member
0 Kudos

That's not true. I have a requirement and I accept that I am in learning phase

The issue is still not fixed

I don't have any specific counts of messages, so I cannot assign the count to wait for number of message to be processed

My requirement is simple to process A interface async>sync>sync then process B interface async>sync>sync however


- A and B interface message types are different and interface A and Interface B can be initiated any point of time on the process so BPM should make sure all the time interface A is processed get the response and then interface B should get initiated for request and response


- When A interface does not have any messages to be processes B interfaces messages should automatically processed- it should not wait for any A interface message


- The dependency between interface A and B is only when interface A has messages to be process then it should be in sequence if not interface B can process messages as an individual interface

Thanks

Answers (0)