StateMachineWorkflowActivity.CompletedStateName Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets the end StateActivity of the workflow.
public:
property System::String ^ CompletedStateName { System::String ^ get(); void set(System::String ^ value); };
public string CompletedStateName { get; set; }
member this.CompletedStateName : string with get, set
Public Property CompletedStateName As String
Property Value
The end StateActivity of the workflow.
Examples
The following code example shows how to set the value of the CompletedStateName property. This code example is part of the SimpleStateMachineWorkflow SDK sample from the StateMachineWorkflow.cs file. For more information, see Simple State Machine.
this.CanModifyActivities = true;
this.setCompletedState = new System.Workflow.Activities.SetStateActivity();
this.code2 = new System.Workflow.Activities.CodeActivity();
this.state1Delay = new System.Workflow.Activities.DelayActivity();
this.setState1 = new System.Workflow.Activities.SetStateActivity();
this.code1 = new System.Workflow.Activities.CodeActivity();
this.startStateDelay = new System.Workflow.Activities.DelayActivity();
this.eventDriven2 = new System.Workflow.Activities.EventDrivenActivity();
this.eventDriven1 = new System.Workflow.Activities.EventDrivenActivity();
this.CompletedState = new System.Workflow.Activities.StateActivity();
this.state1 = new System.Workflow.Activities.StateActivity();
this.StartState = new System.Workflow.Activities.StateActivity();
//
// setCompletedState
//
this.setCompletedState.Name = "setCompletedState";
this.setCompletedState.TargetStateName = "CompletedState";
//
// code2
//
this.code2.Name = "code2";
this.code2.ExecuteCode += new System.EventHandler(this.Code2Handler);
//
// state1Delay
//
this.state1Delay.Name = "state1Delay";
this.state1Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:02");
//
// setState1
//
this.setState1.Name = "setState1";
this.setState1.TargetStateName = "state1";
//
// code1
//
this.code1.Name = "code1";
this.code1.ExecuteCode += new System.EventHandler(this.Code1Handler);
//
// startStateDelay
//
this.startStateDelay.Name = "startStateDelay";
this.startStateDelay.TimeoutDuration = System.TimeSpan.Parse("00:00:05");
//
// eventDriven2
//
this.eventDriven2.Activities.Add(this.state1Delay);
this.eventDriven2.Activities.Add(this.code2);
this.eventDriven2.Activities.Add(this.setCompletedState);
this.eventDriven2.Name = "eventDriven2";
//
// eventDriven1
//
this.eventDriven1.Activities.Add(this.startStateDelay);
this.eventDriven1.Activities.Add(this.code1);
this.eventDriven1.Activities.Add(this.setState1);
this.eventDriven1.Name = "eventDriven1";
//
// CompletedState
//
this.CompletedState.Name = "CompletedState";
Me.CanModifyActivities = True
Me.CompletedState = New System.Workflow.Activities.StateActivity
Me.code2 = New System.Workflow.Activities.CodeActivity
Me.state1Delay = New System.Workflow.Activities.DelayActivity
Me.setState1 = New System.Workflow.Activities.SetStateActivity()
Me.code1 = New System.Workflow.Activities.CodeActivity()
Me.startStateDelay = New System.Workflow.Activities.DelayActivity()
Me.eventDriven2 = New System.Workflow.Activities.EventDrivenActivity()
Me.eventDriven1 = New System.Workflow.Activities.EventDrivenActivity()
Me.CompletedState = New System.Workflow.Activities.StateActivity()
Me.state1 = New System.Workflow.Activities.StateActivity()
Me.StartState = New System.Workflow.Activities.StateActivity()
'
' setCompletedState
'
Me.setCompletedState.Name = "setCompletedState"
Me.setCompletedState.TargetStateName = "CompletedState"
'
' code2
'
Me.code2.Name = "code2"
AddHandler Me.code2.ExecuteCode, AddressOf Me.Code2Handler
'
' state1Delay
'
Me.state1Delay.Name = "state1Delay"
Me.state1Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:02")
'
' setState1
'
Me.setState1.Name = "setState1"
Me.setState1.TargetStateName = "state1"
'
' code1
'
Me.code1.Name = "code1"
AddHandler Me.code1.ExecuteCode, AddressOf Me.Code1Handler
'
' startStateDelay
'
Me.startStateDelay.Name = "startStateDelay"
Me.startStateDelay.TimeoutDuration = System.TimeSpan.Parse("00:00:05")
'
' eventDriven2
'
Me.eventDriven2.Activities.Add(Me.state1Delay)
Me.eventDriven2.Activities.Add(Me.code2)
Me.eventDriven2.Activities.Add(Me.setCompletedState)
Me.eventDriven2.Name = "eventDriven2"
'
' eventDriven1
'
Me.eventDriven1.Activities.Add(Me.startStateDelay)
Me.eventDriven1.Activities.Add(Me.code1)
Me.eventDriven1.Activities.Add(Me.setState1)
Me.eventDriven1.Name = "eventDriven1"
'
' CompletedState
'
Me.CompletedState.Name = "CompletedState"
Remarks
When a transition is made to the CompletedStateName, the workflow execution is completed. The CompletedStateName 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.
For more information about InitialStateName and CompletedStateName, see StateMachineWorkflowActivity.