You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/data-factory/tutorial-pipeline-failure-error-handling.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ Azure Data Factory and Synapse Pipeline orchestration allows conditional logic a
27
27
28
28
:::image type="content" source="media/tutorial-pipeline-failure-error-handling/pipeline-error-1-four-branches.png" alt-text="Screenshot showing the four branches out of an activity.":::
29
29
30
-
You may add multiple branches following an activity, with one exception: _Upon Completion_ path can't co-exist with either _Upon Success_ or _Upon Failure_ path. For each pipeline run, at most one path will be activated, based on the execution outcome of the activity.
30
+
You may add multiple branches following an activity, with one exception: _Upon Completion_ path can't coexist with either _Upon Success_ or _Upon Failure_ path. For each pipeline run, at most one path is activated, based on the execution outcome of the activity.
31
31
32
32
## Error Handling
33
33
@@ -61,7 +61,7 @@ Approach | Defines | When activity succeeds, overall pipeline shows | When activ
61
61
62
62
### How pipeline failure are determined
63
63
64
-
Different error handling mechanisms will lead to different status for the pipeline: while some pipelines fail, others succeed. We determine pipeline success and failures as follows:
64
+
Different error handling mechanisms lead to different status for the pipeline: while some pipelines fail, others succeed. We determine pipeline success and failures as follows:
65
65
66
66
* Evaluate outcome for all leaves activities. If a leaf activity was skipped, we evaluate its parent activity instead
67
67
* Pipeline result is success if and only if all nodes evaluated succeed
@@ -115,15 +115,15 @@ Here, the follow-up wait activity will only execute when both web activities wer
115
115
116
116
:::image type="content" source="media/tutorial-pipeline-failure-error-handling/conditional-and-1.png" alt-text="Screenshot showcasing pipeline proceeds only if both web activities succeed.":::
117
117
118
-
And here, the follow-up wait activity will execute when _ActivitySucceeded_ passes and _ActivityFailed_ completed. Note, with "Upon Success" path _ActivitySucceeded_ has to succeed, whereas _ActivityFailed_ on the "Upon Completion" path runs with best effort, that is, may fail.
118
+
And here, the follow-up wait activity executes when _ActivitySucceeded_ passes and _ActivityFailed_ completed. Note, with "Upon Success" path _ActivitySucceeded_ has to succeed, whereas _ActivityFailed_ on the "Upon Completion" path runs with best effort, that is, may fail.
119
119
120
120
121
121
:::image type="content" source="media/tutorial-pipeline-failure-error-handling/conditional-and-2.png" alt-text="Screenshot showcasing pipeline proceeds when first web activity succeeds and second web activity completes.":::
122
122
123
123
### Or
124
124
Second common scenarios are conditional "or": run an activity if any of the dependencies succeeds or fails. Here we need to use "Upon Completion" paths, [If Condition activity](control-flow-if-condition-activity.md) and [expression language](control-flow-expression-language-functions.md).
125
125
126
-
Before we dive deep into code, we need to understand one more thing. After an activity ran and completed, you may reference its status with _@activity('ActivityName').Status_. It will be either _"Succeeded"_ or _"Failed"_. We'll use this property to build conditional or logic.
126
+
Before we dive deep into code, we need to understand one more thing. After an activity ran and completed, you may reference its status with _@activity('ActivityName').Status_. It's either "Succeeded"_ or _"Failed"_. We use this property to build conditional or logic.
127
127
128
128
#### Shared error handling logging step
129
129
In some cases, you may want to invoke a shared error handling or logging step, if any of the previous activities failed. You can build your pipeline like this:
@@ -134,7 +134,7 @@ In some cases, you may want to invoke a shared error handling or logging step, i
* Note: the graph will look exactly like the previous scenario. The only difference is the expression language used
153
+
* Note: the graph looks exactly like the previous scenario. The only difference is the expression language used
154
154
155
155
:::image type="content" source="media/tutorial-pipeline-failure-error-handling/conditional-or-2.png" alt-text="Screenshot showcasing pipeline proceeds to next step if any of the activities pass.":::
156
156
@@ -169,11 +169,11 @@ The pattern is a combination of two: conditional and + error handling. The pipel
169
169
170
170
171
171
### Try-Catch-Proceed
172
-
The pattern is equivalent to try catch block in coding. It states that if either the activity or the error handling code succeeds, the pipeline should proceed. We have simplified and streamlined the implementation for our customers. Try catch block does not need an if block.
172
+
The pattern is equivalent to try catch block in coding. It states that if either the activity or the error handling code succeeds, the pipeline should proceed. We've simplified and streamlined the implementation for our customers. Try catch block doesn't need an if block.
173
173
174
174
* Add first activity
175
175
* Add error handling to the UponFailure path
176
-
* Add second actvity, but do not connect to the first activity
176
+
* Add second activity, but don't connect to the first activity
177
177
* Connect both UponFailure and UponSkip paths from the error handling activity to the second activity
178
178
179
179
:::image type="content" source="media/tutorial-pipeline-failure-error-handling/conditional-complex-2.png" alt-text="Screenshot showcasing pipeline with try catch block.":::
0 commit comments