ADF - Can validation activity timeout be suppressed and not be shown as a failure ?

Kothai Ramanathan 946 Reputation points Microsoft Employee
2020-08-21T08:35:30.593+00:00

I have a pipeline which process based on the availability of files in a folder. I have a validation activity, which validates whether files are available or not. If files are not available, nothing needs to be done.

19382-image.png

In this pipeline, the run is fine. I get a timeout, and the 'Do nothing' activity succeeds. However, now I am calling this pipeline from a parent pipeline with the executepipeline activity. Now when files are not found, the parent pipeline's executepipeline activity is failing with the message : "Operation on target Validate if files exist failed". I do not want the parent pipeline to fail when there are no files found, as this is not actually a failure.

How can I do this ? Any pointers will be helpful, thanks

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,623 questions
{count} votes

1 answer

Sort by: Most helpful
  1. HarithaMaddi-MSFT 10,146 Reputation points
    2020-08-21T15:28:01.71+00:00

    Hi @Kothai Ramanathan ,

    Thanks for posting the question.

    When we have success and failure flows and if any activities under success flow are skipped, the pipeline shows as "Failed". If the child pipeline fails, by design, the parent pipeline also fails. This scenario can be avoided by using skip connector between every success flow activity and failure flow activity indicating to ADF that they can be skipped. In this case when files are not found as well, parent pipeline would not fail. Kindly check the below snap for the same.

    Couple of workarounds to avoid this scenario would be as below.

    • If it is activity other than 'set variable', 'If Condition' activity can be used to check the status of the activity with following example for "Copy Activity". However, this has limitation that we cannot use 'Foreach activity' inside IF activity. Ex: activity('Copy_Activity1').output.executionDetails[0].status
    • To have parent pipeline trigger the actual pipeline as child pipeline using "Execute Pipeline" activity and handle error logging in parent pipeline, but this has limitation if specific failed activity information is needed from Child Pipeline that caused the error.

    There is a request for adding OR condition between success and failure flows in ADF similar to SSIS. Please consider to upvote the idea if you think its good feature to have. All the feedback you share, is closely monitored by the Product team and implemented in future releases.

    35616982-allow-choosing-logical-and-or-logical-or-in-activi

    Hope this helps! Please let me know for more questions and I will be glad to assist further.

    19488-skipconnector.png


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.