handleTransition in BPM Flow.

Hi All,

We have simple BPM flow as (Event1(start)->Task1->Gateway->either task2 or Task3->endEvent)
When I publish some specific document process get started and completed successfully.And as per our code if we publish again ProcessTransitionVol with necessay input like processInstanceID,sourceStep,targetStep,pipeline document,then it will again re-execute the same process evaluting all the step and get completed.
And this design is successfully working with 8.2 environment but not with 9.8 server.
In 9.8 when ever we are publishing some ProcessTransitionVol document with necessary input and targetStep(eg step for Task1),then it is only processing this step only,not going through the rest of the step.

I have run the service in debug mode of PRT.There is some difference is observed in step execution level.

=============Server log during manually publishing transition document=============
2015-10-24 17:11:35 IST [BPM.0102.0278D] 796d53a0-dccd-1361-bc29-de65dd7ac9a7:2, S10: handling transition event from S4
2015-10-24 17:11:35 IST [BPM.0102.0310D] 796d53a0-dccd-1361-bc29-de65dd7ac9a7:2, S10: starting step execution
2015-10-24 17:11:35 IST [BPM.0102.0312D] 796d53a0-dccd-1361-bc29-de65dd7ac9a7:2, S10: running step on same execution thread
2015-10-24 17:11:35 IST [BPM.0102.0335D] 796d53a0-dccd-1361-bc29-de65dd7ac9a7:2, S10: start step execution
2015-10-24 17:11:35 IST [BPM.0102.0336D] 796d53a0-dccd-1361-bc29-de65dd7ac9a7:2, S10: end step execution
2015-10-24 17:11:35 IST [BPM.0102.0341T] 796d53a0-dccd-1361-bc29-de65dd7ac9a7:2, S10: after step pipeline:

=============Server log during normal execution===================
2015-10-24 16:56:49 IST [BPM.0102.0278D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: handling transition event from S4
2015-10-24 16:56:49 IST [BPM.0102.0310D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: starting step execution
2015-10-24 16:56:49 IST [BPM.0102.0312D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: running step on same execution thread
2015-10-24 16:56:49 IST [BPM.0102.0335D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: start step execution
2015-10-24 16:56:49 IST [BPM.0102.0340T] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: before step pipeline:
2015-10-24 16:56:49 IST [BPM.0102.0406D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: transition condition %doc123/doc123/name% = “A” is True
2015-10-24 16:56:49 IST [BPM.0102.0397D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: sending live transition to S5
2015-10-24 16:56:49 IST [BPM.0102.0405D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: transition condition !(%doc123/doc123/name% = “A”) is False
2015-10-24 16:56:49 IST [BPM.0102.0396D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: sending dead transition to S11
2015-10-24 16:56:49 IST [BPM.0102.0401D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: no track count change
2015-10-24 16:56:49 IST [BPM.0102.1401D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S11: sending Dead Path PTE to S6 on Default
2015-10-24 16:56:49 IST [BPM.0102.0060D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S11: sending dead transition to S6
2015-10-24 16:56:49 IST [BPM.0101.0158D] Sending wm.prt.dispatch:ProcessTransitionVol over webMethods Messaging to S6
2015-10-24 16:56:49 IST [BPM.0102.0399D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: publishing transition to S5 on Default
2015-10-24 16:56:49 IST [BPM.0102.0055D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: sending live transition to S5
2015-10-24 16:56:49 IST [BPM.0101.0158D] Sending wm.prt.dispatch:ProcessTransitionVol over webMethods Messaging to S5
2015-10-24 16:56:49 IST [BPM.0102.0373D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: sent 1 output events
2015-10-24 16:56:49 IST [BPM.0102.0336D] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: end step execution
2015-10-24 16:56:49 IST [BPM.0102.0341T] 8a55bf90-fee4-10fe-ac40-96e068084ad5:1, S10: after step pipeline:

Any one having any idea what may be the others mandatory(or hidden input) needs to be populated in ProcessTransitionVol document to process successfully for all the step.

Attaching one simple document extracted from 8.2 server which may help in better understanding of the requirment.(Please ignore this attachment)

Thanks
Baharul Islam
Monitoring Process Service.docx (95.5 KB)

attaching the correct document
processStep.docx (286 KB)

Any one have got time to look into this?

Why are you publishing a ProcessTransitionVol document? That’s an internal document.

Percio

As per our design needs to update same process (need to update if gateway if different branch condition satisfy),if same set of data we receive(eg if we receive same productid).Hope attached document in the original post will help much in undetstanding the exact scenerio.
This is also a long back service and working correctly on 82 environment.We are facing issue while trying to make similar type of process on 98 server.

Please share if you have any alternative way to achive this.

Thanks
Baharul Islam

Baharul,

Interesting implementation but I do believe you should reconsider your design because (1) you’re using an internal document and because (2) your current implementation can be a bit confusing. For example, you’re reaching a terminate step but your design still allows a transaction to rejoin that same instance, which is counter intuitive.

As for a new way to address this, I would first need to understand: why do you have to rejoin the same instance? Why can’t you just start a new instance? If possible, that would be my recommendation because it makes it clear which path was taken for each instance and users don’t have to look into step iterations to understand what happened.

If you MUST rejoin the same instance, I recommend you look into using a Correlation field or service. That is the proper method of having multiple transactions join the same instance. You should also consider remodeling your process to indicate that the instance is still active. In other words, instead of having a single outgoing transition from your tasks to the terminate step, perhaps you should also have transition going back to the receive step to indicate that the instance is still waiting for more documents (having a gateway in the middle would be helpful.) You could then add conditions to the transitions that clearly state what causes the process to remain active and what causes it to terminate.

Percio

Thanks for your reply.

Actually this one of monitoring process.User can trace full flow of a particular product(product-ID is being logged as custom instance-ID)from a single process instead of going over for number of process.

Tried using correlation,some how it can solve the purpose but process view itself is getting complex. PFA for both the process instance.

One more thing to be noted,if there can be any performance effect in PRT if there is too many process is in started/waiting step.

Thanks
Baharul Islam