Introduction

  • A given workflow A starts workflow B by using the JS7 - AddOrder Instruction.
  • Workflow B runs asynchronously and in parallel to workflow A.
  • Workflow A should wait for completion of workflow B.

Solution

Workflow A

Download (upload .json): pdSequenceAddOrderSynchroneously.workflow.json

Workflow A is designed like this

  • The workflow executes a number of jobs and an JS7 - AddOrder Instruction for workflow B.
  • Starting from the AddOrder Instruction workflow B runs asynchronously and in parallel.
  • Subsequently a JS7 - ExpectNotices Instruction makes workflow A wait for completion of workflow B.
    • The ExpectNotice Instruction can be used immediately after use of the AddOrder Instruction.
    • The ExpectNotice Instruction can be used at any later node in workflow A.


Clicking the AddOrder Instruction is used to select the workflow which an order should be added for:

  • This includes specifying arguments that are be added to the order.
  • Argument names are suggested according to the variables declared in the target workflow.
  • Argument values can be specified with constant values and using variables that are available with the current order.

You need to upload the example from the Workflow B section below before you will be able to select the relevant Workflow like this:


The ExpectNotice Instruction allows a Notice Board to be selected.

You need to upload the example from the Notice Board section below before you will be able to select the relevant Notice Board like this:

Workflow B

Download (upload .json): pdSequenceReceiveOrderSynchroneously.workflow.json

Workflow B is designed like this:

  • The workflow executes a number of jobs and a JS7 - PostNotices Instruction.
  • The PostNotice Instruction sends a signal to any workflows expecting the Notice.
    • A number of workflows can wait for the same Notice from a PostNotice Instruction.
    • The same Notice from a PostNotice Instruction can be issued by any number of workflows.
    • The PostNotice Instruction does not necessarily have to be used as the last instruction in a workflow. In fact it can be used at any position in the workflow.


The PostNotice Instruction allows a Notice Board to be selected.

You need to upload the example from the Notice Board section below before you will be able to select the relevant Notice Board like this:

Notice Board

Download (upload .json): pdSequenceSynchroneously.noticeboard.json

The Notice Board is configured like this:

  • The Notice Board specifies the same rule used to match the expecting order from the ExpectNotice Instruction in workflow A and the posting order of the PostNotice Instruction in workflow B.
  • The selected Matching Daily Plan Date rule specifies that both orders for workflow A and B have to be in scope of the same Daily Plan date.
    • It is a frequently used rule for only matching orders that have been created for the same date.
    • The Notice Board allows the use of more complex rules, for example, matching the Daily Plan date and the order names that can be specified when adding orders.
  • A Notice is assigned a lifetime. The expecting order in workflow A should pass its ExpectNotice Instruction node within the lifetime of the Notice.
  • Users have the option of manually adding Notices from the Resources->Notice Boards view and they can delete Notices from the same view.
  • You will find further details in the JS7 - Notice Boards article.

Further Resources