cancel
Showing results for 
Search instead for 
Did you mean: 

Cloud Integration CPI - iFlow Properties getting mixed in parallel processing

brnalmeida13d
Explorer
0 Kudos

Hi experts,

We're triggering some massive and parallel tests in CPI and within a JS script we try to get a property information (message.getProperty() ), and it's returning data from another iFlow ( the same iflow which is running in parallel ) and the payload gets mixed information.

Have you ever been through this situation?

Flow execution steps:

1. iFlow with a Timer and an asynchronous SOAP receiver adapter

2. iFlow with a SOAP sender adapter where retrieves the pending payloads batch to be processed and within a loop deliveries a batch to another SOAP asynchronous receiver SOAP endpoint one by one.

3.iFlow that send to information to S/4Hana through oData adapter.

The issue happens at the second step, inside the mentioned JS before sending information to S/4Hana.

Bellow the step rigth before getting the property jsonDocumento to buit the payload, we can see the "chaveExterna": "TESTEBOB-93207" key field.

And here the next step where the data get mixed with other Message from the same process, where the documentoEtapaSend that's built by the previous jsonDocumento property get the wrong material as "Material":"TESTE-BOBV2-92306".

PS: we've checked that the Message ID is unique but the Correlation ID of the parallel messages are the same.

Any ideas please share with us!

Thanks and best regards.

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member666312
Active Participant
0 Kudos

Hi,

Can you please add few more details. Also one suggestion, if you are communicating between multiple flows (flow 1 -->Flow2) use the Process direct adapter instead of Soap adapter.

Thanks and Regards,

Vijay.

brnalmeida13d
Explorer
0 Kudos

Hi Vijay,

Follow below the iFlow that's triggering the Soap adapter to the iflow where data get mixed.

We need to user Soap adapter in order to have a asynchronous call and not wait the receiver finishes the process, so when it deliveries to the Soap receiver within the loop it can move to the next iteration immediatelly.

We could be able to see that it's happening always with the loop iterations sequence where are processing in parallel.

Thanks and best regards,

Bruno

Ajit_K_Panda
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Bruno,

When you say parallel processing, is the iflow getting called multiple times? If yes, there should not be any crossover of data between different calls.

Can you elaborate a little bit more, Just on the parallel processing part of it. How are you implementing it?

Best, Ajit

brnalmeida13d
Explorer
0 Kudos

Hi Ajit,

Yes, it's called multiple times and in a asynchronous way, in order to have multiple calls and not wait it to finish and move to the next loop iteration.

Above, the iFlow where it's started by a timer and we have the loop that's processing the batch payload one by one, and send it to the last iFlow mentioned first where the data get mixed.

Best regard,

Bruno