Introduction
Notice Boards implement dependencies between a number of workflows.
- One or more workflows wait for each other based on Notices that they expect and that they post. One or more posting workflows hold a JS7 - PostNotices Instruction while one or more expecting workflows include the JS7 - ExpectNotices Instruction or JS7 - ConsumeNotices Instruction. Expecting workflows wait until a Notice arrives from a posting workflow, optionally mounting dependencies to the Daily Plan.
- A Notice does not carry a value, it's a flag that exists or does not exist.
- Notice Boards are used to manage the creation of Notices and the desired dependency scheme:
- JS7 - Global Notice Boards implement hard dependencies that are applied without exception,
- JS7 - Schedulable Notice Boards implement soft dependencies based on the JS7 - Daily Plan and can be configured to consider dependencies for days only for which posting workflows are scheduled for execution by related orders.
- JS-2100Getting issue details... STATUS
FEATURE AVAILABILITY STARTING FROM RELEASE 2.7.4
Global Notice Boards
Notices are unlimited in scope and are global in the sense that they exist for any days independently from the Daily Plan.
Notices can be posted and can be deleted by workflows and by users. Notices are assigned a lifetime for automated expiration.
Notices from Global Notice Boards can match any orders from any Daily Plan dates. They can specify a Notice ID that is used to identify matching orders from the posting and expecting workflows. This offers certain granularity to identify matching orders:
- The Notice ID can hold a constant value which translates to the fact that any orders for posting and expecting workflows will match for any days.
- The Notice ID can hold a JS7 - Expressions for Variables that specifies for orders of both posting and expecting workflows the match criteria based on their Order IDs. For example, an expression can use the Daily Plan date available from the Order ID to match orders from posting and expecting workflows only that hold the same Daily Plan date.
Find a tutorial from the JS7 - Global Notice Boards article.
Schedulable Notice Boards
Notices are limited in scope to a specific Daily Plan date.
Notices can be posted and deleted by workflows and by users. Notices exist for the lifetime of the related instance of a Notice Board (Planned Board) unless they are deleted by workflows or users.
Notices from Schedulable Notice Boards specify a Notice ID that holds the Daily Plan date.
- For each Daily Plan date an instance of the Notice Board, the Planned Board, is created which is assigned the Notices and orders for the related day.
- Notices from posting and expecting workflows are announced when adding orders to the Daily Plan. On days for which no order for a posting workflow is announced, the expecting workflow can be configured to ignore the Notice condition.
- Behavior with Global Notice Boards:
- For the posting Workflow A orders are created for Mon-Fri. For the expecting Workflow B orders are created for Mon-Sun.
- As a result the Notice condition will not be resolved for Workflow B during weekends. The workflow will not continue unless a Notice is posted by the user.
- Behavior with Schedulable Notice Boards:
- For the posting Workflow A orders are created for Mon-Fri. For the expecting Workflow B orders are created for Mon-Sun.
- As no Notices are announced from Workflow A for weekends, the Workflow B can be configured to ignore the Notice condition and to continue as planned.
- Behavior with Global Notice Boards:
Schedulable Notice Boards are introduced starting from the following release:
FEATURE AVAILABILITY STARTING FROM RELEASE 2.7.4
Find a tutorial from the JS7 - Schedulable Notice Boards article.
Notice Boards
Dependencies
Workflow dependencies by use of Notice Boards can look like this:

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 Order 1 in Workflow 1 will complete without waiting for Order 2 to pick up the Notice and to execute Workflow 2.
- 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.
Notices
- A Notice is considered an event that the ExpectNotices or ConsumeNotices Instruction is waiting for. One or more corresponding PostNotices Instructions create the Notice from the same or from different workflows.
- Both PostNotices and ExpectNotices/ConsumeNotices Instructions reference a common Notice Board identified by its name. The Notice Board implements expressions for the PostNotices Instruction and for the ExpectNotices Instruction to identify a common Notice ID. The Notice ID typically is identified from a common part of each Order ID of the posting order and of the expecting order, for example from the daily plan date.
- Example
- An Order ID
#2021-07-24#T7142453954-myOrder1
is running in a workflow and meets a PostNotices Instruction. The Notice Board referenced by the 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 the date the Notice ID. - An expecting Order ID
#2021-07-24#T7142454683-myOrder2
meets an ExpectNotices Instruction in its workflow. The instruction 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 orders in the posting and expecting workflows.- If both instructions identify the same Notice ID, i.e. the Daily Plan date
2021-27-24,
then the condition is met and the order proceeds with the next step following the ExpectNotices Instruction. - If the condition is not met, for example if the Notice has not yet been created by an order for the posting workflow or if the Daily Plan date of the Notice ID is not the same for orders of the posting and expecting workflows, then orders for the expecting workflow will wait until a matching Notice becomes available.
- If both instructions identify the same Notice ID, i.e. the Daily Plan date
- An Order ID
- If no order is announved for the posting workflow for the date when an order in the expecting workflow meets an ExpectNotices Instruction, then
- for use with Global Notice Boards the order in the expecting workflow will wait.
- for use with Schedulable Notice Boards the order in the expecting workflow can be configured to wait or to ignore the Notice condition.
- Example
- Notices of Global Notice Boards are assigned a lifetime that starts after being posted.
- If an expecting order starts before expiration of a Notice's lifetime then the order can continue.
- If an expecting order starts after expiration of a Notice's lifetime then the order will wait for the next Notice of the same Notice Board.
- Any number of workflows can implement PostNotices Instructions and ExpectNotices/ConsumeNotices Instructions using the same or different Notice Boards.
Configuration
Notice Boards can be managed from the Configuration view as follows:
- A Notice Board is identified by a unique name and optionally can hold a title.
- The type of Notice Board is specified being global or schedulable:
Global Notice Boards
A Global Notice Board can look like this:
- The Notice IDs for posting and expecting orders are empty or hold the same, quoted arbitrary string, in the example:
'any'
- The Notice Board will match Notices created by orders scheduled for any Daily Plan date.
- The lifetime of the Notice is limited, for example to 24 hours, in case that it will not be deleted by a JS7 - ConsumeNotices Instruction or by the user.
Users can configure Notice Boards to match orders from the same Daily Plan date like this:
- The Notice IDs for posting and expecting orders hold the same expression that is respectively copied from the "Matching Daily Plan Date" select button.
- The "Notice ID for the posting order" specifies an expression that extracts the Daily Plan date from the Order ID of the posting order.
- The "Notice ID for the expecting order" applies the same expression. As a result both posting order and expecting order have to match the same Daily Plan date for synchronization.
- For details about expressions used to identify matching Notice IDs see JS7 - Expressions for Variables.
Schedulable Notice Boards
A Schedulable Notice Board can look like this:
- The Notice ID can be left empty or can be specified from an arbitrary, quoted string.
- A select button is available that offers use of the "Matching Order Name".
- If this option is selected, then orders will match only if they hold the same Order Name attribute.
- Notice IDs for posting and expecting orders are always the same.
Use Cases
Static Dependencies between Workflows
In this scenario orders are scheduled 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 PostNotices Instruction in Workflow 1 can be located at any position in the workflow, allowing for example to post Notice 1 before completion of the workflow.
- The ExpectNotices Instruction in Workflow 2 can be located at any position, allowing for example to execute a few jobs before expecting Notice 1.
For this scenario use of JS7 - Global Notice Boards is recommended.
Calendar based Dependencies between Workflows
In this scenario orders are scheduled 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 can 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 completion of Workflow 1.
- If no order is created for the European region for the same date then 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 it will start Workflow 2 without waiting for a Notice as no posting order from the Asian region is available for this date.
- If no order is created for the European region then neither Workflow 1 nor Workflow 2 will be executed.
For this scenario use of JS7 - Schedulable Notice Boards is recommended.
Dependencies for delayed Workflow Execution
The scenario starts from calendar based dependencies described above and handles delayed execution of orders. Users have a choice to use sequential or overlapping Daily Plans.
Sequential Daily Plan
The scenario includes to close the current day's Daily Plan before next day's Daily Plan can start.
- Undesired situation: If Order 1 and Order 2 are scheduled for Day 1 but Order 1 cannot proceed in Workflow 1 and remains for example in the failed or suspended state for a period longer than Day 1, then Order 2 will wait for Day 2, Day 3 etc. until Order 1 posts the required Notice 1.
- To prevent orders waiting for unresolved dependencies, users have to complete the current day's Daily Plan by dropping orders and Notices.
- This can be achieved by running the JS7 - JITL OrderStateTransitionJob for completion of the Daily Plan. The job can be configured to cancel outstanding orders and to be executed before begin of next day's Daily Plan.
- Alternatives are explained from the JS7 - How to clean up the Daily Plan from past Dependencies article.
- Last but not least, users can manually delete orders of past Daily Plan dates before starting next day's Daily Plan.
For this scenario use of JS7 - Schedulable Notice Boards is recommended as this will automatically drop Notices on completion of the Daily Plan.
Overlapping Daily Plan
The scenario includes to continue the current day's Daily Plan to the next day or any further date and to run jobs for next day's Daily Plan in parallel.
- The scenario applies if jobs are prepared to be running for a specific date ("business date"), independently from the date for which jobs effectively will be executed.
- This is the default behavior and does not require specific configuration.
For this scenario both use of JS7 - Global Notice Boards and JS7 - Schedulable Notice Boards is applicable.
Visualization and Navigation
Graphical View of Workflow Dependencies
From the Workflows view the
The graphical view of the current workflow (blue) displays workflow instructions and dependent objects.
For the PostNotices and ExpectNotices or ConsumeNotices Instructions related workflows are displayed in green:
Explanation:
- Clicking a job displays the job script.
- Clicking a green workflow navigates to the respective workflow that is displayd as indicated with the following screenshot.
Explanation:
- The view allows to navigate by clicking Notice Board objects.
- The view is updated with the respective workflow that expects/consumes/posts Notices from/to the respective Notice Board.
Tabular View of Workflow Dependencies
The Workflows view offers the
The tabular view displays dependencies for any ExpectNotices, ConsumeNotices and PostNotices Instructions included with the current workflow:
Explanation:
- For each ExpectNotices or ConsumeNotices Instruction, related workflows are displayed which include PostNotices Instructions for the same Notice Board.
- For each PostNotices Instruction, related workflows are displayed which include ExpectNotices Instructions for the same Notice Board.
Graphical View of Object Dependencies
The following page is invoked from the
Explanation:
- The green and grey workflows both post to the same Notice Board. A Notice is expected from the Notice Board by the currently selected workflow (blue)
- The current workflow (blue) and one more workflow (brown) both wait for a Notice from the same Notice Board.
- Use of the icon switches to the graphical view, use of the he icon displays the dependency view.
Execution View of Notice Boards and Notices
At run-time Notice Boards and Notices can be controlled from the Resources ->Notice Boards sub-view like this:
Explanation:
- The tree in the left panel allows navigation to folders to limit displayed results.
- For each Notice Board:
- the Posting Order's and the Expecting Order's Notice ID are displayed.
- expected Notices are displayed sorted by Notice ID, preferably including the Order's Daily Plan date.
- Orders are displayed that wait for the expected Notice to become available.
- The view offers actions:
- to post a Notice. The operation is similar to a Workflow executing the PostNotices Instruction. As a result any Orders waiting for the expected Notice will continue. The underlying use case is to simulate a Workflow's PostNotices Instruction and to manually resolve dependencies of Expecting Orders.
- to delete the indicated Notice. As a consequence any Orders that will later on expect the given Notice have to wait for a new Notice to be added. This operation can be used to revert a Workflow's PostNotices Instruction and to make Expecting Orders wait until the Notice is posted from a different Workflow or is manually posted in this view.
Post Notice
The operation to post a Notice is available from the Notice Board's action menu like this:
For Global Notice Boards this allows free choice of the Notice ID for which the Notice is posted.
Explanation:
- Users are free to modify the proposed Notice ID.
- The lifetime of the Notice has to be specified by an absolute or relative date and time.
- The lifetime is calculated for the indicated time zone. The time zone value is populated from JS7 - Profiles.
In addition, the operation to post a Notice is available from the Notice ID's action menu. The operation posts a Notice with the Notice ID expected by the waiting order.
Delete Notice
The operation to delete a Notice is available from the Notice ID's action menu like this:
When deleting a Notice, Orders that expect or consume the given Notice have to wait for a new Notice to be posted either from a workflow or from the corresponding Post Notice operation in the view.
Further Resources
- JS7 - Global Notice Boards
- JS7 - Schedulable Notice Boards
- JS7 - PostNotices Instruction
- JS7 - ExpectNotices Instruction
- JS7 - ConsumeNotices Instruction