BAM Continuation Option in Business Process
  • 20 Oct 2022
  • 2 Minutes to read
  • Dark
    Light
  • PDF

BAM Continuation Option in Business Process

  • Dark
    Light
  • PDF

Article summary

Atomic Scope track Activity from three different resources: BizTalk, Azure, and APIs. Each activity is a transaction that has several stages. The MainActivityIds and Previous Stage Names are used to connect these stages. These properties will be included in the message context in BizTalk, but when it comes to Azure or APIs, they must be passed manually.

We have a concept called Global properties , which you can map with stages to track your respective properties. Assume we have a stage that receives an OrderId and another stage that returns the order response with the same OrderId . Instead of mapping these two stages with Main ActivityId and Previous Stage Name, we must map them with the OrderId.

That's why we formed BAM Continuation , a feature that allows you to link between stages by using a global property.

Let me explain how to configure the continuation and how it works.
• First and foremost, we can only configure BAM continuation for Global properties.
• Since BatchID and CorelationID are Global default properties, we cannot assign continuation to these two properties.

How to configure the continuation

Consider two stages: NestedLogicApp_child, Parent_Stage1 and Parent_Stage2. Because we have three stages in the transaction, we should create global properties with the name MessageId in all three stages with the same value.
While configuring your stages, we can mark properties that are used for BAM continuation, or we can go to the respective stage and click the edit icon on the respective property configured.

Continuation in BP.gif

Note : We can mark the continuation more than one property as per the requirement.

We should mark BAM continuation for Parent_stage1 and Parent_Stage2 for MessageId property. We should not mark continuation for first stage (NestedLogicApp_child).

At runtime, NestedLogicApp child is the first to execute, and the property has a value of PO001. So, when the Parent Stage1 runs, it checks to see if any properties have been marked for continuation; in this case, we got MessageId. So, it checks to see if there are any other stages with the same property and value and then links to that stage.

If there are more than two properties marked for continuation, it would check for both the properties and if it exists it links with the respective stage. By doing this, we don’t need of MainActivityId and Previous Stage Name.

Important

• BAM Continuation property should not be created in first stage of any transaction
• The marked property and values must be the same in all stages for the process to continuation
• If the values are different, it will be addressed as a different stage and will not be mapped to the appropriate stage during runtime. Some sample properties like InvoiceNo, SenderID, Country, SKU etc.

Normal configuration in Logic Apps

Please see the gif for normal configuration in logicapps with previous stage and mainactivityID, and we don't want to create the same property with the same value in business process configuration.

Normal logic.gif

Logic Apps configuration with continuation option in Business process

Please see the gif for Logic Apps continuation without previous stage and MainActivityID, and in Business process configuration, we should create the same property with the same value in all stages.

Normal logic.gif

Message flow for both configuration

image.png


Was this article helpful?