State Workflow Activity Machine
State Workflow Activity Machine
State Workflow Activity Machine
This API is now obsolete.
Serves as the root container for state machine workflows. Contains event-driven activities and states.
public ref class StateMachineWorkflowActivity : System::Workflow::Activities::StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")] [System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")] [System.Runtime.InteropServices.ComVisible(false)] [System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))] public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
type StateMachineWorkflowActivity = class inherit StateActivity
Public Class StateMachineWorkflowActivity Inherits StateActivity
The following code example shows how to create a new instance of the StateMachineWorkflowActivity class and use it to implement a basic state machine to transition between three states. This code example is part of the SimpleStateMachineWorkflow SDK sample from the StateMachineWorkflow.cs file. For more information, see Simple State Machine.
this.WhileLoop = new System.Workflow.Activities.WhileActivity(); this.Parallel = new System.Workflow.Activities.ParallelActivity(); this.Sequence1 = new System.Workflow.Activities.SequenceActivity(); this.Sequence2 = new System.Workflow.Activities.SequenceActivity(); this.ConsoleMessage1 = new System.Workflow.Activities.CodeActivity(); this.ConsoleMessage2 = new System.Workflow.Activities.CodeActivity(); // // WhileLoop // this.WhileLoop.Activities.Add(this.Parallel); codecondition1.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.WhileCondition); this.WhileLoop.Condition = codecondition1; this.WhileLoop.Name = "WhileLoop"; // // Parallel // this.Parallel.Activities.Add(this.Sequence1); this.Parallel.Activities.Add(this.Sequence2); this.Parallel.Name = "Parallel";
Me.WhileLoop = New System.Workflow.Activities.WhileActivity() Me.Parallel = New System.Workflow.Activities.ParallelActivity() Me.Sequence1 = New System.Workflow.Activities.SequenceActivity() Me.Sequence2 = New System.Workflow.Activities.SequenceActivity() Me.ConsoleMessage1 = New System.Workflow.Activities.CodeActivity() Me.ConsoleMessage2 = New System.Workflow.Activities.CodeActivity() ' ' WhileLoop ' Me.WhileLoop.Activities.Add(Me.Parallel) AddHandler codecondition1.Condition, AddressOf Me.WhileCondition Me.WhileLoop.Condition = codecondition1 Me.WhileLoop.Name = "WhileLoop" ' ' Parallel ' Me.Parallel.Activities.Add(Me.Sequence1) Me.Parallel.Activities.Add(Me.Sequence2) Me.Parallel.Name = "Parallel"
This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.
The StateMachineWorkflowActivity is an activity container used to create workflows that follow a state machine model.
The StateMachineWorkflowActivity is a CompositeActivity, which means the StateMachineWorkflowActivity can contain other activities. The StateMachineWorkflowActivity and the EventDrivenActivity activities are the only permitted child activities of the StateMachineWorkflowActivity. EventDrivenActivity activities are permitted because the root activity itself behaves like a state. Therefore, you can have EventDrivenActivity activities at the root level that are used by all the State activities in the StateMachineWorkflowActivity. EventDrivenActivity activities at this level provide a global mechanism for processing workflow events and automate state transitions. StateActivity activities provide a mechanism to define the various stages in the model.
The StateMachineWorkflowActivity has properties that are required for the execution of the state machine workflow. Most notably, the StateMachineWorkflowActivity has two properties that are important: InitialStateNameProperty and CompletedStateNameProperty.
The InitialStateNameProperty of the state machine is the state in which the state machine is when an instance of the state machine is created. The InitialStateNameProperty property is mandatory and must be provided when a StateMachineWorkflowActivity is created. The InitialStateNameProperty of the state machine is like any other state activity that is contained within the state machine. The state activity can be a direct child of the StateMachineWorkflowActivity root activity and a StateMachineWorkflowActivity can have only one InitialStateNameProperty.
The CompletedStateNameProperty of the StateMachineWorkflowActivity is a StateActivity activity that is designated as the end state of the StateMachineWorkflowActivity. When a transition is made to the CompletedStateNameProperty, the workflow execution is completed. The CompletedStateNameProperty is not mandatory. This means that you can have a StateMachineWorkflowActivity that is not completed. This does not mean that the state machine workflow is always active in memory. The StateMachineWorkflowActivity might be unloaded as it waits for an event.
StateMachineWorkflowActivity activities that never complete are especially useful in processing long running business transactions, as in the case of a purchase order received by a supplier. The fact that the purchase order was fulfilled does not mean that the purchase order process is over. The goods that are part of the purchase order might be returned or the purchase order might be amended and have additional items added to it after the fulfillment. Sometimes there might be a requirement to keep the purchase order records for an extended period of time for legal or other purposes. The fact that a workflow does not finish just means that the workflow remains in an unloaded state. There may be a case for retiring the workflows, which means that after a set period of time the workflow instance may be forced to shut down.
|StateMachineWorkflowActivity() StateMachineWorkflowActivity() StateMachineWorkflowActivity() StateMachineWorkflowActivity()||
Initializes a new instance of the StateMachineWorkflowActivity class.
|StateMachineWorkflowActivity(String) StateMachineWorkflowActivity(String) StateMachineWorkflowActivity(String) StateMachineWorkflowActivity(String)||
Initializes a new instance of the StateMachineWorkflowActivity class using the name of the activity.
|CompletedStateNameProperty CompletedStateNameProperty CompletedStateNameProperty CompletedStateNameProperty|
|InitialStateNameProperty InitialStateNameProperty InitialStateNameProperty InitialStateNameProperty|
|SetStateQueueName SetStateQueueName SetStateQueueName SetStateQueueName|
|StateChangeTrackingDataKey StateChangeTrackingDataKey StateChangeTrackingDataKey StateChangeTrackingDataKey||
Holds the string value of the change tracking data key; "StateActivity.StateChange". This field is a constant.(Inherited from StateActivity)
|Activities Activities Activities Activities||
Gets the object representing the collection, ActivityCollection, of all child activities.(Inherited from CompositeActivity)
|CanModifyActivities CanModifyActivities CanModifyActivities CanModifyActivities||
Gets or sets a value which controls whether the individual activities within Activities can be modified.(Inherited from CompositeActivity)
|CompletedStateName CompletedStateName CompletedStateName CompletedStateName||
Gets or sets the end StateActivity of the workflow.
|CurrentStateName CurrentStateName CurrentStateName CurrentStateName||
Gets the name of the currently executing StateActivity.
|Description Description Description Description||
Gets or sets the user-defined description of the Activity.(Inherited from Activity)
|DesignMode DesignMode DesignMode DesignMode||
Gets the value that indicates whether this instance is in design or run-time mode.(Inherited from DependencyObject)
|DynamicUpdateCondition DynamicUpdateCondition DynamicUpdateCondition DynamicUpdateCondition||
Gets or sets an ActivityCondition that determines whether dynamic updates can be made in the workflow, when overridden in a derived class.
|Enabled Enabled Enabled Enabled||
Gets or sets a value that indicates whether this instance is enabled for execution and validation.(Inherited from Activity)
|EnabledActivities EnabledActivities EnabledActivities EnabledActivities||
Gets the read-only collection that represents the subset of Activities that are enabled.(Inherited from CompositeActivity)
|ExecutionResult ExecutionResult ExecutionResult ExecutionResult||
Gets the ActivityExecutionResult of the last attempt to run this instance.(Inherited from Activity)
|ExecutionStatus ExecutionStatus ExecutionStatus ExecutionStatus||
Gets the current ActivityExecutionStatus of this instance.(Inherited from Activity)
|InitialStateName InitialStateName InitialStateName InitialStateName|
|IsDynamicActivity IsDynamicActivity IsDynamicActivity IsDynamicActivity||
Gets information about whether the activity is executing within the default ActivityExecutionContext of the workflow instance.(Inherited from Activity)
|Name Name Name Name||
Gets or sets the name of this instance. This name must conform to the variable naming convention of the programming language that is being used in the Workflow project.(Inherited from Activity)
|Parent Parent Parent Parent||Activity)|
|ParentDependencyObject ParentDependencyObject ParentDependencyObject ParentDependencyObject||DependencyObject)|
|PreviousStateName PreviousStateName PreviousStateName PreviousStateName||
Gets the name of the previously executed StateActivity.
|QualifiedName QualifiedName QualifiedName QualifiedName||
Gets the qualified name of the activity. Qualified activity names are always unique in a workflow instance.(Inherited from Activity)
|Site Site Site Site||DependencyObject)|
|UserData UserData UserData UserData||
Gets an IDictionary that associates custom data with this class instance.(Inherited from DependencyObject)
|WorkflowInstanceId WorkflowInstanceId WorkflowInstanceId WorkflowInstanceId||
Gets the Guid associated with the instance.(Inherited from Activity)
|Canceling Canceling Canceling Canceling||
Occurs when the activity execution is canceled.(Inherited from Activity)
|Closed Closed Closed Closed||
Occurs when an Activity has completed execution.(Inherited from Activity)
|Compensating Compensating Compensating Compensating||
Occurs when running a compensation method on the Activity.(Inherited from Activity)
|Executing Executing Executing Executing||
Occurs when the Activity is run.(Inherited from Activity)
|Faulting Faulting Faulting Faulting||
Occurs when an exception is raised during the running of the instance.(Inherited from Activity)
|IComponent.Disposed IComponent.Disposed IComponent.Disposed IComponent.Disposed||
Represents the method that handles the Disposed event of a component.(Inherited from DependencyObject)
|StatusChanged StatusChanged StatusChanged StatusChanged||Activity)|