Reset Previous Activity in Process BPT

Reset Previous Activity in Process BPT

  

I am very new to BPT and am now using BPT in my new project. There are 4 decision making steps in the process and if first decision is changed, subsequent steps need to be reset. For example, current state is at third decision and if first decision is changed, second decision has to be made again.

One solution is to terminate the current process using ProcessTerminate API and create new ProcessId.

ttps://www.outsystems.com/help/servicestudio/9.0/Language_Reference/System_Actions_and_Functions/ProcessTerminate_Action.htm


Please help advise if you have any better solution or if there is any bad implication with the above solution. Thanks in advanced. 




Hi Aung,

The whole idea of a BPT process is, that it is a largely ordered set of events. So after decision 1 has been taken, it should normally not be possible to make a different decision when follow-up steps have already been taken!

(I realize that's not a helpful answer, but perhaps BPT is in this case not the right tool for the job?)

I worked about 1.5 years at Jerónimo Martins, probably the Portuguese corporation that uses more BTP. BPT maintenance is hard, you must be very careful when you change a process. On some cases is better to build a new process and keep the old one until all active processes are closed.

If you terminate the old processes the users must start again, they will lose their work. They won't be happy with that for sure.

Kilian Hekhuis wrote:

Hi Aung,

The whole idea of a BPT process is, that it is a largely ordered set of events. So after decision 1 has been taken, it should normally not be possible to make a different decision when follow-up steps have already been taken!

(I realize that's not a helpful answer, but perhaps BPT is in this case not the right tool for the job?)

Thanks Kilian for your comment. All 4 decision making is a long process and we allow certain days for each to make decision. after expiry day, system will notify the decision maker. 

Could you please advise why BPT is not suitable for this case?


Nelson Inácio wrote:

I worked about 1.5 years at Jerónimo Martins, probably the Portuguese corporation that uses more BTP. BPT maintenance is hard, you must be very careful when you change a process. On some cases is better to build a new process and keep the old one until all active processes are closed.

If you terminate the old processes the users must start again, they will lose their work. They won't be happy with that for sure.

Thanks Nelson, Could you please share what are the issue using BPT in your exprience?  We also heard about some performance issue with BPT. 


aung thiha wrote:

Nelson Inácio wrote:

I worked about 1.5 years at Jerónimo Martins, probably the Portuguese corporation that uses more BTP. BPT maintenance is hard, you must be very careful when you change a process. On some cases is better to build a new process and keep the old one until all active processes are closed.

If you terminate the old processes the users must start again, they will lose their work. They won't be happy with that for sure.

Thanks Nelson, Could you please share what are the issue using BPT in your exprience?  We also heard about some performance issue with BPT. 


Sometimes we some automatic activities that were with "executing" status for several days, we never figure out why. Probably because of concurrency, we had tousands of processes running.


On a human activity if the close condition was the create of a record and later you change for the update, the active human activites will keep closing with old trigger. You need logic to handle that scenario.

When you a change a process that is already in production always check on test enviroments if after publsh there's suspended processes. If so, you will need to resume each process.

A process is suspended after 10000 activites. Be careful with BPT loops with wait activites. I had a situation where a decision goes to wait, the closes after 5 minutes and goes to decision again, if false returns to wait. Those situations will generate many activities on a process. Try to avoid this.

Nelson Inácio wrote:

aung thiha wrote:

Nelson Inácio wrote:

I worked about 1.5 years at Jerónimo Martins, probably the Portuguese corporation that uses more BTP. BPT maintenance is hard, you must be very careful when you change a process. On some cases is better to build a new process and keep the old one until all active processes are closed.

If you terminate the old processes the users must start again, they will lose their work. They won't be happy with that for sure.

Thanks Nelson, Could you please share what are the issue using BPT in your exprience?  We also heard about some performance issue with BPT. 


Sometimes we some automatic activities that were with "executing" status for several days, we never figure out why. Probably because of concurrency, we had tousands of processes running.


On a human activity if the close condition was the create of a record and later you change for the update, the active human activites will keep closing with old trigger. You need logic to handle that scenario.

When you a change a process that is already in production always check on test enviroments if after publsh there's suspended processes. If so, you will need to resume each process.

A process is suspended after 10000 activites. Be careful with BPT loops with wait activites. I had a situation where a decision goes to wait, the closes after 5 minutes and goes to decision again, if false returns to wait. Those situations will generate many activities on a process. Try to avoid this.

Thanks again Nelson for sharing your experience with BPT.


aung thiha wrote:

I am very new to BPT and am now using BPT in my new project. There are 4 decision making steps in the process and if first decision is changed, subsequent steps need to be reset. For example, current state is at third decision and if first decision is changed, second decision has to be made again.

One solution is to terminate the current process using ProcessTerminate API and create new ProcessId.

ttps://www.outsystems.com/help/servicestudio/9.0/Language_Reference/System_Actions_and_Functions/ProcessTerminate_Action.htm


Please help advise if you have any better solution or if there is any bad implication with the above solution. Thanks in advanced. 




Hi Anug,

As much as i know about BPT.

I don't think you can do it in current running thread of process. If you have taken any wrong decision at first steps all the subsequent steps will be execute based on the decision you have already made at first steps.

For any correction, you have to terminate that process and have to run it again.

On Terminate, You can also write proper rollback mechanism.

Also there is an option to suspend the process but if you have to do it instantly. Whenever we suspend any running process and run again it gets start from the activity where it get suspend. 

Sachin

Hi Aung,

From the sort of behaviour you are describing you need, you will want to design your process to support decision-changing from the start. Either you abort the current process and start a new process "Modify Decision" (add a Conditional Start tool ending in a Terminate tool) or; you include steps to validate you can continue or you should go back to an earlier step to redo it.


BPT process is also good to design a process diagram. On some cases when I'm not using BPT, that help me to have an overview of the process or to explain to someone how the process works