Skip to content

DP-700 · Domain 1: Implement and manage an analytics solution · 33% of the exam

Task 1.4: Orchestrate processes

Choosing between Dataflow Gen2, a pipeline and a notebook, schedules and event-based triggers, and orchestration with notebooks and pipelines, parameters and dynamic expressions.

Study it

  • Dataflow Gen2, pipeline or notebook

    Lesson coming

  • Schedules and event-based triggers

    Partly covered by: SQS vs SNS vs EventBridge

  • Parameters, dynamic expressions and NotebookUtils orchestration

    Lesson coming

Sample questions

Try each one before opening the answer. Every option is explained, with the Microsoft documentation page that proves it.

Question 1 · choose 1

Finance analysts who know Power Query from Excel must combine monthly workbooks from a SharePoint folder, unpivot them, fix data types and load the result to a lakehouse table. They don't write code, and the transformations change often. Which Fabric item should they build?

  1. AA notebook that reads the workbooks with PySpark
  2. BA pipeline with a Copy activity from SharePoint to the lakehouse
  3. CA Dataflow Gen2 with the lakehouse as its data destination
  4. DAn eventstream with a SharePoint source and a lakehouse destination
Show the answer and why
  • AA notebook that reads the workbooks with PySpark

    Incorrect

    Notebooks need Spark code, which these analysts don't write.

  • BA pipeline with a Copy activity from SharePoint to the lakehouse

    Incorrect

    The Copy activity suits ingestion with lightweight transformation, not unpivoting and reshaping workbooks.

  • CA Dataflow Gen2 with the lakehouse as its data destination

    Correct

    Dataflow Gen2 gives a low-code Power Query editor for wrangling, with many connectors including SharePoint.

  • DAn eventstream with a SharePoint source and a lakehouse destination

    Incorrect

    Eventstreams ingest and process event data, not folders of monthly workbooks.

Microsoft's decision guide places Dataflow Gen2 for data ingestion, transformation and wrangling with a no-code or low-code Power Query interface and 150+ connectors, aimed at data engineers, integrators and business analysts. Copy activities focus on movement with lightweight transformation, Spark on code, and Eventstream on event data.

Question 2 · choose 2

A pipeline has a RunDate parameter. Its Notebook activity must pass that date to the notebook, which uses a variable named run_date in its code. Which two steps are needed? (Choose TWO.)

  1. ACall notebookutils.notebook.exit(run_date) at the end of the notebook
  2. BAdd a Set Variable activity inside the notebook for run_date
  3. CMark the cell that defines run_date as the notebook's parameter cell
  4. DAdd a run_date base parameter set to @pipeline().parameters.RunDate
  5. EPut run_date and the RunDate pipeline parameter in a %%configure cell
Show the answer and why
  • ACall notebookutils.notebook.exit(run_date) at the end of the notebook

    Incorrect

    exit() returns a value from the notebook; it doesn't receive one.

  • BAdd a Set Variable activity inside the notebook for run_date

    Incorrect

    Set Variable is a pipeline activity and can't run inside a notebook.

  • CMark the cell that defines run_date as the notebook's parameter cell

    Correct

    Base parameters override variables defined in the notebook's parameter cell.

  • DAdd a run_date base parameter set to @pipeline().parameters.RunDate

    Correct

    Base parameters in the Notebook activity pass values into the notebook at run time.

  • EPut run_date and the RunDate pipeline parameter in a %%configure cell

    Incorrect

    %%configure sets session properties; it isn't how base parameters reach notebook variables.

A notebook receives parameters through a cell marked as the parameter cell. In a pipeline, the Notebook activity's base parameters (which can be auto-populated from that cell) pass values, such as an expression over pipeline parameters, and replace the defaults defined there.

Question 3 · choose 1

A notebook ends with try: ... notebookutils.notebook.exit(str(row_count)) except Exception: raise. A parent notebook calls it with notebookutils.notebook.run, and the returned value is always an empty string, even though the run succeeds. What should you change?

  1. AReturn an integer from exit() instead of str(row_count)
  2. BIncrease the timeout_seconds argument of notebookutils.notebook.run
  3. CMark the parent's first cell as a parameter cell to receive the value
  4. DCall exit() only after the try block and its handler have finished
Show the answer and why
  • AReturn an integer from exit() instead of str(row_count)

    Incorrect

    Exit values are always strings; the type isn't the problem.

  • BIncrease the timeout_seconds argument of notebookutils.notebook.run

    Incorrect

    A short timeout fails the run; it doesn't make it succeed with an empty value.

  • CMark the parent's first cell as a parameter cell to receive the value

    Incorrect

    Parameter cells receive inputs; run() returns the child's exit value.

  • DCall exit() only after the try block and its handler have finished

    Correct

    exit() doesn't take effect when it's wrapped in exception handling.

notebookutils.notebook.run() returns the exact string passed to notebookutils.notebook.exit(value) in the child, or an empty string if exit() isn't called. Microsoft notes that exit() won't take effect inside a try-catch block, so the call belongs outside the exception handling.

Question 4 · choose 1

A pipeline must run at 06:00 on weekdays and at 18:00 on Saturdays, without duplicating the pipeline. How should you schedule it?

  1. ACreate a copy of the pipeline for the Saturday run
  2. BAdd two schedules to the pipeline, one for each pattern
  3. CUse one daily schedule and an If Condition that checks the weekday
  4. DAdd a storage event trigger that starts the Saturday run
Show the answer and why
  • ACreate a copy of the pipeline for the Saturday run

    Incorrect

    Copies double the maintenance; one pipeline can hold several schedules.

  • BAdd two schedules to the pipeline, one for each pattern

    Correct

    A pipeline can have up to 20 schedules, each with its own frequency and times.

  • CUse one daily schedule and an If Condition that checks the weekday

    Incorrect

    The 06:00 run would still happen on Saturday and the 18:00 run would never fire.

  • DAdd a storage event trigger that starts the Saturday run

    Incorrect

    Event triggers start runs when files arrive or change, not at set times.

You can set multiple schedules for a pipeline (up to 20), each with its own frequency, start and end dates and times, and time zone. Every schedule needs both a start and an end date; for long-running schedules, set the end date far in the future.

Question 5 · choose 1

A pipeline is started by an Azure Blob Storage event trigger when a file lands in the incoming folder. Its Copy activity must read exactly the file that raised the event. Which expression gives that file's name?

  1. A@pipeline()?.TriggerEvent?.FileName
  2. B@pipeline().parameters.SourceFileName
  3. C@item().name
  4. D@pipeline().TriggerTime
Show the answer and why
  • A@pipeline()?.TriggerEvent?.FileName

    Correct

    Data Factory parses the file name from the event's subject into this trigger parameter.

  • B@pipeline().parameters.SourceFileName

    Incorrect

    No SourceFileName parameter exists unless you define one; the trigger fills trigger parameters.

  • C@item().name

    Incorrect

    That expression doesn't read the storage event, so it can't name the file that raised it.

  • D@pipeline().TriggerTime

    Incorrect

    TriggerTime returns when the run was triggered, not which file arrived.

Storage event triggers are built on eventstreams and Activator. When a file event starts the pipeline, Data Factory sets built-in trigger parameters from the event's Subject and Topic, such as @pipeline()?.TriggerEvent?.FileName; the ? operators handle the null values you get during manual test runs.

Question 6 · choose 1

A Web activity must send the literal text @daily as a header value. Written as @daily, the pipeline treats it as an expression. How do you escape it?

  1. AWrite it as \@daily
  2. BWrite it as @{daily}
  3. CWrite it as @@daily
  4. DWrite it as '@daily'
Show the answer and why
  • AWrite it as \@daily

    Incorrect

    Backslash isn't the escape character for @ in pipeline expressions.

  • BWrite it as @{daily}

    Incorrect

    Braces don't escape the at sign; the value is still evaluated.

  • CWrite it as @@daily

    Correct

    A literal string that starts with @ is escaped by doubling it.

  • DWrite it as '@daily'

    Incorrect

    The quotes become part of the literal value, so the header would carry them.

Expressions start with @. To use a literal string that starts with @, escape it by typing @@.

Question 7 · choose 1

You create a storage event trigger from a pipeline's Home ribbon. Where does the trigger definition live afterwards?

  1. AInside the pipeline definition, like a schedule
  2. BIn a Reflex item for Activator in the workspace you chose
  3. CIn a variable library linked to the pipeline
  4. DIn the capacity settings of the Fabric admin portal for that capacity
Show the answer and why
  • AInside the pipeline definition, like a schedule

    Incorrect

    Event triggers are separate Activator items, not part of the pipeline JSON.

  • BIn a Reflex item for Activator in the workspace you chose

    Correct

    Triggers use Activator alerts, and the trigger appears as a Reflex item.

  • CIn a variable library linked to the pipeline

    Incorrect

    Variable libraries hold configuration values, not triggers.

  • DIn the capacity settings of the Fabric admin portal for that capacity

    Incorrect

    Triggers aren't capacity settings.

Pipeline event triggers use Fabric platform features, eventstreams and Activator alerts. When you create one from the pipeline's Trigger button, you pick a workspace to store the trigger items and name the trigger as a Reflex item, which you can open to view or edit it.

Question 8 · choose 1

Inside a ForEach activity that loops over table names, a Copy activity must use the current table name as its source. Which expression returns it?

  1. A@pipeline().parameters.item
  2. B@activity('ForEach1').output
  3. C@variables('item')
  4. D@item()
Show the answer and why
  • A@pipeline().parameters.item

    Incorrect

    This reads a pipeline parameter named item, not the loop's current element.

  • B@activity('ForEach1').output

    Incorrect

    ForEach doesn't expose the current element through activity output.

  • C@variables('item')

    Incorrect

    This reads a pipeline variable, which the loop doesn't set.

  • D@item()

    Correct

    @item() refers to the item being processed in the ForEach loop.

In a ForEach activity, child activities can use the @item() iterator anywhere that supports dynamic content to refer to the current item from the Items list.

Question 9 · choose 1

A pipeline must pause for ten minutes after starting a remote export before it checks for the export file. Which activity provides the pause?

  1. AAppend Variable
  2. BWait
  3. CSet Variable
  4. DFail
Show the answer and why
  • AAppend Variable

    Incorrect

    Append Variable adds a value to an array variable; it doesn't pause.

  • BWait

    Correct

    The Wait activity pauses the pipeline for the time you specify.

  • CSet Variable

    Incorrect

    Set Variable doesn't pause the pipeline.

  • DFail

    Incorrect

    Fail doesn't pause the pipeline.

The Wait activity pauses a pipeline for a specified period before it continues with subsequent activities.

Practice domain 1 →Practice all domains →