Page History
...
The Options Instruction rules error handling for a number of other instructions:
- JS7 - ConsumeNotices Lock Instruction
- JS7 - ConsumeNotices Instruction
If the Options Instruction is in place and specifies the Stop on Failure attribute then failed orders will remain with the failing instruction, for example a job.
- This configuration is used if Locks are not considered resources for shared access by jobs but are used to prevent entry of parallel orders to a number of subsequent instructions.
- For example, if a Lock Instruction spawns a complete workflow to prevent parallel orders from entering the workflow before the current order leaves the workflow.
- For example, if a Notice is not consumed by a number of workflows but is used to prevent repeated execution of the same workflow for the same Daily Plan date.
If no Options Instruction is in place then orders that fail within one of the instructions will be moved to the begin of the instruction and will remain in a failed state.
- The motivation for this behavior being that Locks and Notices are considered resources that should not be blocked by failed orders.
- For example, if a Lock Instruction is used to limit access to a database by parallel jobs. In case of failure of a job the order moves to the begin of the Lock Instruction to free the resource.
- For example, if a ConsumeNotices Instruction is used to expect and to delete a Notice in transactional manner. In case of failure the order moves to the begin of the ConsumeNotices Instruction to allow other ConsumeNotices Instructions in parallel workflows to delete the Notice and not to delay deletion by a failed order.
- This behavior applies to use of nested Lock Instructions and nested ConsumeNotices Instructions.
- A failed order will be moved to the outmost Lock Instruction or ConsumeNotices instruction to free any resourced resources blocked by nested instructions.
If the Options Instruction is in place and specifies the Stop on Failure attribute then failed orders will remain with the failing instruction, for example a job.
- This configuration is used if Locks are not considered resources for shared access by jobs but are used to prevent entry of parallel orders to a number of subsequent
- instructions
- For example, if a Lock Instruction spawns a complete workflow to prevent parallel orders from entering the workflow before the current order leaves the workflow.
- For example, if a Notice is not consumed by a number of workflows but is used to prevent repeated execution of the workflow for the same Daily Plan date.
Display feature availability | ||
---|---|---|
|
...
ConsumeNotices Instruction
Use with
...
with StopOnFailure Option
This example introduces a situation when users find a nested JS7 - ConsumeNotices Instruction.
...
The example implements nested use of ConsumeNotices Instructions :with orders remaining at their workflow position in case of failure.
- the first ConsumeNotices Instruction expects the
Notice01
Notice being present. - the second ConsumeNotices Instruction occurs inside the first instruction and expects the
Notice02
Notice being present.
...
- the failed order remains with the failed job.
- the
Notice01
andNotice02
Notices are consumed by respective ConsumeNotices Instructions and are not removed before the order leaves the instruction block.
Use without
...
StopOnFailure Option
This example introduces a situation when users find a nested JS7 - ConsumeNotices Instruction.
Download (upload .json):
- pdErrorNoticeFailWithNotice.workflow.json
- pdErrorNotice01.noticeboard.json
- pdErrorNotice02.noticeboard.json
The example implements nested use of ConsumeNotices Instructions with orders moving to the outmost ConsumeNotices Instruction in case of failure.
- the first ConsumeNotices Instruction expects the
Notice01
Notice being present. - the second ConsumeNotices Instruction occurs inside the first instruction and expects the
Notice02
Notice being present.
In the Configuration view the workflow looks like this:
At run-time in the Workflows view the workflow looks like this for a failed order:
- the failed order moves to the outmost ConsumeNotices Instruction.
- the
Notice01
andNotice02
Notices are freed and remain available for parallel ConsumeNotices Instructions in other workflows.