cancel
Showing results for 
Search instead for 
Did you mean: 

Prevent further execution if an error occurred in a snap

jibin_s
New Contributor II

Dear Community - 

Thanks for your help/support!

In this pipeline, how do I prevent In-Memory Lookup to execute when the REST Get snap fails? I see the sequence of execution is also incorrect. The snap In-Memory Lookup runs even before the REST Get snap runs. Please advise!

 

jibin_slalom_0-1699053212139.png

jibin_slalom_2-1699053518189.png

 

7 REPLIES 7

alchemiz
Contributor III

Hi @jibin_s ,

Good day, had a similar scenario before...as a resolution I decoupled the pipeline then in the child pipeline set the all snaps "when error occurs" to "Stop Pipeline Execution" in this way any error that will occur in that child pipeline all on-going process will be aborted thus failing the pipeline then error will bubble-up to the parent pipeline from the pipeline execute ( if possible the child pipeline is reusable ) you can then trap/log the error

The refactored pipeline will be looking something like this ... 
Parent/Main pipeline

alchemiz_0-1699142671812.png

Child Pipeline (2)

alchemiz_1-1699142717984.png

EmEm

jibin_s
New Contributor II

Thanks, @alchemiz!

I tried the solution but unfortunately it did not help me. Following is the screenshot of the execution. In it you could see that the Pipeline Execute is failed but still the In Memory Lookup executed successfully. 

jibin_s_0-1699164384960.png

 

Hi @jibin_s .. you should also include the in-memory lookup in the child pipeline if you want it this way try setting up the output from the REST as the left hand side then the streaming copied document as the right side this way if there's no matching output from REST it will not stream

alchemiz_0-1699184509573.png

 

jibin_s
New Contributor II

Thanks, @alchemiz!

  1. If I use the In-Memory Lookup in the child pipeline, I'm unsure to pass the content from Copy snap (i.e: Workday documents in this case) to the lookup.
  2. Yes, it will work if I swap the inputs in In-Memory Lookup. But if I change the inputs, I'll not be able to achieve the logic of comparing the data to be processed further.

I have managed to restructure my pipeline by adding following components:

  • Pipeline Execute - Executes REST Get snap to retrieve documents from API
  • Gate - Combines the inputs
  • Router - Check if there there are any errors from REST Get input? If so, execute Exit else proceed further
  • Mapper - Split the inputs and supplies them to In-Memory Lookup