Versions Compared

Key

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

...

  • Notice Boards implement dependencies between jobs and between workflows.
  • A Notice Board allows a workflow to post a notice and allows the same or different workflow to await a notice.
  • A notice is a Notices are JS7 - Expressions for Variables that is are specified for both the poster and the reader of a notice. Expressions make use of the Order ID or parts of it, for example to match the daily plan date in both Order IDs of the poster posting order and of the reader.

Notice Boards

...

  • expecting order.

Notice Boards

A workflow dependency by use of Notice Boards can look like this:

Flowchart
order1 [shape="ellipse",label="Order ID: #2021-07-24#T7142453954-myOrder1",fillcolor="white"]
workflow1 [label="Workflow 1",fillcolor="orange"]
job1a [label="Job 1a",fillcolor="white"]
job1b [label="Job 1b",fillcolor="white"]
postnotice1b [shape="ellipse",label="Post Notice 1",fillcolor="white"]
job1c [label="Job 1c",fillcolor="white"]

order2 [shape="ellipse",label="Order ID: #2021-07-24#T7142454683-myOrder2",fillcolor="white"]
workflow2 [label="Workflow 2",fillcolor="orange"]
expectnotice1b [shape="ellipse",label="Expect Notice 1",fillcolor="white"]
job2a [label="Job 2a",fillcolor="white"]
job2b [label="Job 2b",fillcolor="white"]
job2c [label="Job 2c",fillcolor="white"]

noticeboard1 [label="   Notice Board   ",fillcolor="lightskyblue"]
notice1b [shape="ellipse",label="   Notice 1   ",fillcolor="lightskyblue"]

order1 -> workflow1 -> job1a -> job1b -> postnotice1b -> job1c
order2 -> workflow2 -> expectnotice1b -> job2a -> job2b -> job2c

postnotice1b -> notice1b -> noticeboard1
expectnotice1b -> noticeboard1

Explanation:

  • Order 1 in Workflow 1 executes Job 1a and Job 1b, then posts a Notice 1 and continues with Job 1c. Posting a notice is a non-blocking operation, therefore Workflow 1 will complete without waiting for some other workflow to pick up the notice.
  • Order 2 in Workflow 2 expects Notice 1 with its first instruction. This workflow will not start unless Notice 1 has been posted by Workflow 1.

Notice

  • 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