Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • A Notice is considered an event that the ExpectNotice Instruction is waiting for. One or more corresponding PostNotice Instructions create the Notice from the same or from different workflows.
  • Both PostNotice and ExpectNotice Instructions reference a common Notice Board identified by its name. The Notice Board implements expressions for the PostNotice Instruction and for the ExpectNotice Instruction to identify a common Notice ID. The Notice ID typically is identified from a common part of the Order ID, for example from the daily plan date.
    • Example
      • An Order ID #2021-07-24#T7142453954-myOrder1 is running in a workflow and meets a PostNotice Instruction. The Notice Board referenced by this instruction includes an expression for the posting order to create a Notice ID based on the daily plan date included with the Order ID. The expression extracts the date from the Order ID, i.e. 2021-27-24 and makes this date the Notice ID.
      • An expecting Order ID #2021-07-24#T7142454683-myOrder2 meets an ExpectNotice Instruction in its workflow. The instruction similarly applies the expression from the referenced Notice Board to create a Notice ID. In most situations the rule what to extract from an Order ID is the same for the posting order and for the expecting order.
        • If both instructions identify the same Notice ID, i.e. the daily plan date 2021-27-24, then the expectation is met and the order proceeds with the next step following the ExpectNotice Instruction.
        • If the expectation is not met, for example if the Notice has not yet been created by a posting order or if the daily plan date of the Notice ID is not the same for the posting order and for the expecting order then the expecting order will wait until the Notice becomes available.
    • If no posting order exists at the point in time when an expecting order meets an ExpectNotice Instruction then the expecting order continues and ignores the instruction.
      • This behavior boils down to the fact that Notices are intended for synchronization. If there is no posting order that could create the Notice, e.g. due to calendar restrictions to specific days, then expecting orders continue.
      • Only an existing posting order that did not yet arrive with its PostNotice Instruction, e.g. being in a SCHEDULED state, can make an expecting order wait with the ExpectNotice Instruction.
  • Any number of workflows can implement PostNotice Instructions and ExpectNotice Instructions referencing the same or different Notice Boards.

Use Cases

Static Dependency of Workflows

In this scenario you schedule orders for both Workflow1 and Workflow 2

  • If Order 2 for Workflow 2 starts earlier than Notice 1 has been created by Order 1 then Order 2 will wait until Notice 1 becomes available.
  • The business requirement includes
    • to start Workflow 1 at any point in time during the day.
    • not to start Workflow 2 before - optionally partial - completion of Workflow 1.
    • to start repeated executions of Workflow 2 immediately if Workflow 1 was successfully executed once during the same daily plan date.
  • As there is an Order 1 for each day that an Order 2 is created this practically means that Order 2 for Workflow 2 can start only after a number of jobs or after all jobs in Workflow 1 completed successfully.
    • The PostNotice Instruction in Workflow 1 can be at any position in the workflow, allowing e.g. to post Notice 1 before completion of the workflow.
    • The ExpectNotice Instruction in Workflow 2 can be at any position, allowing e.g. to execute a few jobs before expecting Notice 1.

Calendar based Dependency of Workflows

In this scenario you schedule orders for Workflow 1 and Workflow 2 based on different calendars. Let's assume

  • Workflow 1 runs for Asian stock exchanges based on specific working days and non-working days in this region.
  • Workflow 2 runs for European stock exchanges based on specific working days and non-working days in this region.
  • The business requirement includes
    • to delay the start of Workflow 2 until Workflow 1 completed for working days in the Asian region.
    • for non-working days in the Asian region to immediately start Workflow 2.

The dependency could look like this:

  • If there is a working day in the Asian region then an order will be created for Workflow 1.
    • If an order is created for the European region for the same date then this order will wait for (partial) completion of Workflow 1.
    • If no order is created for the European region for the same date then this this does not affect Workflow 1.
  • If there is a non-working day in the Asian region then no order is created for Workflow 1.
    • If an order is created for the European region then this will start Workflow 2 without waiting for a notice as there is no posting order available for this date.
    • If no order is created for the European region then neither Workflow 1 nor Workflow 2 will be executed.

Dependencies for delayed Order Execution 

In this scenario we assume