Changes

Workflow Designer

4,539 bytes added, 06:40, 22 July 2013
/* Standard activities */
| If|| ControlFlow || The If activity selects a child activity for execution based on the value of a Boolean expression; if the Boolean expression ''Condition'' yields True (and “Then” activity is configured), the ''Then'' activity is scheduled; if the expressions yields False (and ''Else'' activity is set), the ''Else'' expression is scheduled
|- align="left"
| Parallel|| ControlFlow || -Parallel activity allows parallel execution of its children; it operates by scheduling each WorkflowElement in its ''Branches'' collection at the beginning of its execution; it completes when all of its Branches complete or when its ''CompletionCondition'' property evaluates to true
|- align="left"
| ParallelForEach<T>|| ControlFlow || -The ParallelForEach activity enumerates the elements of a collection(''Values'') and executes an ''Activity'' for each element of the collection, in a similar way than the ForEach activity does; the main difference is that the embedded statement is executed in a parallel fashion; just like the Parallel Activity, ParallelForEach has a ''CompletionCondition'', so that the ParallelForEach activity could complete early if the evaluation of the CompletionCondition returns true; the CompletionCondition is evaluated after each iteration is completed
|- align="left"
| Pick|| ControlFlow || The Pick Activity provides event-based control flow modeling in WF; the only valid children for a Pick activity are PickBranches; at the beginning of a Pick execution, all the Trigger activities from all its ''Branches'' are scheduled; when the first Trigger completes its corresponding Action activity is scheduled, and all other Trigger activities are canceled
| Rethrow|| ErrorHandling || -
|- align="left"
| Throw|| ErrorHandling || -Throw activity throws an exception within a workflow; Throw activity has an Exception property that contains the exception that will be thrown at execution time
|- align="left"
| TryCatch|| ErrorHandling || -TryCatch activity is similar to the try...catch construct in C#: all activities in the ''Try'' block are executed and if an exception occurs, it will schedule the ''Catch'' block that best matches that exception (if no matching catch is found, the workflow is aborted); all Catch blocks are contained in a collection called Catches; TryCatch activity also has a ''Finally'' block that is executed after the Try (and any eventual Catch); a note on unhandled exceptions: TryCatch provides exception handling at the workflow level; when an unhandled exception is thrown, the workflow is aborted and therefore the Finally block won’t be executed; this behavior is consistent with C#
|- align="left"
| FlowChart|| FlowChart || -This is the root for a Flowchart; since Flowchart is an activity like any other, it can be composed inside any container activity; for example, we can add a Flowchart inside of a Sequence or a Flowchart inside another Flowchart; the green ball in the image at the right represents the start node of the Flowchart
|- align="left"
| FlowSwitch<T>|| FlowChart || -FlowSwitch activity selects a next node depending on the value of an ''expression''; FlowSwitch can be seen as the equivalent of the procedural Switch activity in the Flowchart world
|- align="left"
| FlowDecision|| FlowChart || -FlowDecision models conditional forks within a Flowchart; tt can be seen as the equivalent of the procedural If activity in the Flowchart world; this activity contains a Boolean expression ''Condition''; if the expression evaluates to “True”, the true path is executed (otherwise, the false path is scheduled)
|- align="left"
| Assign|| Primitives || -The Assign activity assigns the value of its ''Value'' argument to its ''To'' argument; the types of both arguments must be compatible; this compatibility is verified at runtime
|- align="left"
| Assign<T>|| Primitives || -The Assign<T> activity assigns the value of its ''Value'' argument to its ''To'' argument; the types of both arguments must be compatible; this compatibility is verified at design time
|- align="left"
| Delay|| Primitives || -Delay Activity, as its name suggests, will block the current workflow execution path for a ''Duration'' specified by user; after the duration expires, the workflow continues execution as expected; the duration of the delay is set using a TimeSpan
|- align="left"
| InvokeMethod || Primitives || -InvokeMethod is the activity that allows you to call an existing CLR instance or static method; to invoke a method all you need to do is provide the owner of the method (''TargetType'' for static methods, ''TargetObject'' for instance methods), the ''MethodName'', and its ''Parameters''
|- align="left"
| WriteLine|| Primitives || -Writes text to the configured output console
|- align="left"
| Persist|| Runtime || -Persists the workflow instance. Persistence will be done using the configuration of the WorkflowInstance that is being executed (this activity doesn’t have any arguments)
|- align="left"
| TerminateWorkflow|| Runtime || -
|- align="left"
| CancellationScope|| Transaction|| -The CancellationScope activity consists of two main parts, the ''Body'' and the ''CancelHandler''; the body is the code path that normally executes; if the activity gets canceled, then the cancel handler is called
|- align="left"
| CompensableActivity|| Transaction|| -CompensableActivity is used to define a potentially long running activity with accompanying ''Compensation'' and ''Confirmation'' logic; compensation allows the user to specify corrective action to be taken on an activity based upon activity which occurs after the successful completion of the ''Body'' of the activity
|- align="left"
| Compensate|| Transaction|| -Compensate is used to explicitly invoke the compensation handler of a CompensableActivity
|- align="left"
| Confirm|| Transaction|| -Confirm is used to explicitly invoke the confirmation handler of a CompensableActivity
|- align="left"
| TransactionScope|| Transaction|| -The TransactionScopeActivity provides the mechanism for initializing a new transaction, making the transaction handle ambient (a workflow execution property) and calling complete on the transaction once the ''Body'' of the TransactionScope activity has completed
|}