Introduction
JS7 offers a number of strategies for error handling that are explained with the articles in this section.
- Error handling includes
- JS7 - How to detect job errors
- JS7 - How to handle job errors
- to decide if a job error can be handled automatically and
- an order can continue in the workflow,
- an order should leave the workflow.
- to decide if a job error requires user intervention,
- to decide if a job error can be handled automatically and
The following matrix shows possible combinations for the handling of job errors and warnings:
Use Case | Job | Order | Order History | Notification | User Intervention | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
No. | On Error | On Warning | Stopped | Continued | Finished | Successful | Failed | Optional | Resume Order | Suspend Order | Cancel Order |
Use Case 1 | yes | no | yes | no | no | - | - | yes | yes | yes | yes |
Use Case 2 | yes | no | no | yes | no | - | - | yes | - | - | - |
Use Case 3 | yes | no | no | no | yes | no | yes | yes | - | - | - |
Use Case 4 | yes | no | no | no | yes | yes | no | yes | - | - | - |
Use Case 5 | no | yes | no | yes | no | - | - | yes | - | - | - |
Use Cases
Use Case 1: Job error makes order stop
In this scenario an order stops subsequently to a job error. The order is put in the failed state. This is the default behavior if no workflow instructions for error handling are used.
- The History outcome is not determined: as the order remains in the workflow. The History outcome will be determined from later User Intervention.
- Notifications can optionally be sent.
- User Interventions include:
- Resume Order: The order will be continued at the same, at a previous or at a later Workflow Instruction
- Suspend Order: The order will be suspended and will be resumed or cancelled later on.
- Cancel Order: The order will be cancelled and the History outcome will indicate the failed order execution.
Explanation:
- If any of
job1
,job2
orjob3
raises an error then the order stops and is put in the failed state. - User Intervention is required to resume, to suspend or to cancel the order.
Use Case 2: Job error lets order continue
In this scenario a job error is caught and is handled in a way that lets the order continue in the workflow:
- The History outcome is not determined: as the order continues in the workflow. The History outcome will be determined from later workflow instructions.
- Notifications can optionally be sent.
- No User Interventions is applied.
Explanation:
- if any of
job1
orjob2
in the Try block raises an error then the empty Catch block lets the order continue. - Leaving the Catch block the order will continue with
job3
.
Explanation:
- if any of
job1
orjob2
in the Try block raises an error then the order will enter the Catch block. - In the Catch block
job2a
is executed.- If
job2a
completes successfully then the order will leave the Catch block and will continue withjob3
. - If
job2a
fails then the order will be put in the failed state, will be stopped and will remain in the Catch block to wait for User Intervention - Consider that Try-Catch instructions can be nested, i.e. in a Catch block another Try-Catch instruction can be used for error handling.
- If
Use Case 3: Job error makes order leave the workflow with failed history outcome
In this scenario a job error is caught and is handled in a way that makes the order leave the workflow:
- The History outcome is specified to be failed.
- Notifications can optionally be sent.
- No User Interventions is applied.
Explanation:
- if any of
job1
orjob2
in the Try block raises an error then the order enters the Catch block. - In the Catch block the Fail instruction makes the order leave the workflow. The Fail instruction can be parameterized to either stop an order or to make an order leave the workflow.
- An order that entered the Catch block will never execute
job3
.
Use Case 4: Job error makes order leave workflow with successful history outcome
Similar to use case 3 in this scenario a job error is caught and is handled in a way that makes the order leave the workflow:
- The History outcome is specified to be successful.
- Notifications can optionally be sent.
- No User Interventions is applied.
Explanation:
- if any of
job1
orjob2
in the Try block raises an error then the order enters the Catch block. - In the Catch block the Finish instruction makes the order leave the workflow.
- An order that entered the Catch block will never execute
job3
.
Use Case 5: Job warning lets order continue
In this scenario job errors are considered being warnings based on a selection of job return codes. Such warnings do not require specific error handling, instead the order will continue in the workflow.
- The History outcome is not determined: as the order continues in the workflow. The History outcome will be determined from later workflow instructions.
- Notifications can optionally be sent.
- No User Interventions is applied.
Explanation:
- If any of
job1
,job2
orjob3
completes with return code 1 this is considered a warning. Any other non-zero return codes are considered errors. - In case of job warnings the order continues with the next instruction in the workflow.
- No User Intervention is applied.
Resources
Pages
Navigation