Control Flow Activities¶
Branching, looping, waiting, and explicit failure.
fabric_data_pipelines.IfCondition ¶
Bases: Activity
Execute activities based on a boolean expression.
Nested activities are passed via if_true_activities /
if_false_activities. Dependencies among nested activities are scoped
to that branch.
Example::
from fabric_data_pipelines import IfCondition, Wait, Expression, expr
branch = IfCondition(
name="If_LockNotAcquired",
expression=Expression(value=expr.not_(expr.equals(...))),
if_true_activities=[Wait(name="Wait_For_Lock", wait_time_in_seconds=60)],
if_false_activities=[],
)
fabric_data_pipelines.ForEach ¶
Bases: Activity
Iterate over a collection and run nested activities for each item.
Example::
from fabric_data_pipelines import ForEach, Copy, Expression, expr
loop = ForEach(
name="for_each_table",
items=Expression(value=expr.activity_output("get_tables", "value")),
activities=[Copy(name="copy_one", source=..., sink=...)],
is_sequential=True,
)
fabric_data_pipelines.Switch ¶
Bases: Activity
Execute different activity lists based on an expression value.
Example::
from fabric_data_pipelines import Switch, SwitchCase, Expression, Fail
switch = Switch(
name="by_mode",
on=Expression(value=expr.parameter("mode")),
cases=[
SwitchCase(value="full", activities=[...]),
SwitchCase(value="partial", activities=[...]),
],
default_activities=[Fail(name="bad_mode", message="unknown", error_code="1")],
)
fabric_data_pipelines.SwitchCase ¶
Bases: FabricModel
A single case branch inside a Switch activity.
Example::
SwitchCase(value="full", activities=[...])
fabric_data_pipelines.Until ¶
Bases: Activity
Repeat nested activities until an expression evaluates to true.
Example::
from fabric_data_pipelines import Until, Script, Expression
until = Until(
name="Until_TryAcquireLock",
expression=Expression(value="@equals(...)"),
timeout="02:00:00",
activities=[script, if_condition],
)