Activity.Execute(ActivityExecutionContext) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wird von der Workflowlaufzeit zum Ausführen einer Aktivität aufgerufen.
protected public:
virtual System::Workflow::ComponentModel::ActivityExecutionStatus Execute(System::Workflow::ComponentModel::ActivityExecutionContext ^ executionContext);
protected internal virtual System.Workflow.ComponentModel.ActivityExecutionStatus Execute (System.Workflow.ComponentModel.ActivityExecutionContext executionContext);
abstract member Execute : System.Workflow.ComponentModel.ActivityExecutionContext -> System.Workflow.ComponentModel.ActivityExecutionStatus
override this.Execute : System.Workflow.ComponentModel.ActivityExecutionContext -> System.Workflow.ComponentModel.ActivityExecutionStatus
Protected Friend Overridable Function Execute (executionContext As ActivityExecutionContext) As ActivityExecutionStatus
Parameter
- executionContext
- ActivityExecutionContext
Der ActivityExecutionContext, der Activity und der Ausführung zuzuordnen ist.
Gibt zurück
Der ActivityExecutionStatus der Ausführungsaufgabe, die bestimmt, ob die Aktivität im Ausführzustand verbleibt oder in den Zustand Geschlossen wechselt.
Beispiele
Im folgenden Codebeispiel wird eine Implementierung der Execute
-Methode veranschaulicht. In diesem Beispiel wird eine Outlook-E-Mail-Nachricht erstellt und gesendet. Dieses Beispiel stammt aus dem Outlook Workflow Wizard SDK-Beispiel. Weitere Informationen finden Sie unter Beispiel für den Outlook-Workflow-Assistenten.
protected override ActivityExecutionStatus Execute(ActivityExecutionContext context)
{
// Create an Outlook Application object.
Outlook.Application outlookApp = new Outlook.Application();
Outlook._MailItem oMailItem = (Outlook._MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
oMailItem.To = outlookApp.Session.CurrentUser.Address;
oMailItem.Subject = "Auto-Reply";
oMailItem.Body = "Out of Office";
//adds it to the outbox
if (this.Parent.Parent is ParallelActivity)
{
if ((this.Parent.Parent.Parent.Activities[1] as DummyActivity).TitleProperty != "")
{
MessageBox.Show("Process Auto-Reply for Email");
oMailItem.Send();
}
}
else if (this.Parent.Parent is SequentialWorkflowActivity)
{
if ((this.Parent.Parent.Activities[1] as DummyActivity).TitleProperty != "")
{
MessageBox.Show("Process Auto-Reply for Email");
oMailItem.Send();
}
}
return ActivityExecutionStatus.Closed;
}
Protected Overrides Function Execute(ByVal executionContext As System.Workflow.ComponentModel.ActivityExecutionContext) As System.Workflow.ComponentModel.ActivityExecutionStatus
' Create an Outlook Application object.
Dim outlookApp As Outlook.Application = New Outlook.Application()
Dim oMailItem As Outlook._MailItem = CType(outlookApp.CreateItem(Outlook.OlItemType.olMailItem), Outlook._MailItem)
oMailItem.MailTo = outlookApp.Session.CurrentUser.Address
oMailItem.Subject = "Auto-Reply"
oMailItem.Body = "Out of Office"
Dim dummy As Activity
If TypeOf Me.Parent.Parent Is ParallelActivity Then
dummy = Me.Parent.Parent.Parent.Activities.Item(1)
If Not (CType(dummy, DummyActivity).Title = "") Then
MessageBox.Show("Process Auto-Reply for Email")
oMailItem.Send()
End If
End If
If TypeOf Me.Parent.Parent Is SequentialWorkflowActivity Then
dummy = Me.Parent.Parent.Activities.Item(1)
If Not (CType(dummy, DummyActivity).Title = "") Then
MessageBox.Show("Process Auto-Reply for Email")
oMailItem.Send()
End If
End If
Return ActivityExecutionStatus.Closed
End Function
Hinweise
Mit ActivityExecutionContext werden Informationen zur derzeit ausgeführten Aktivität und zum Workflow sowie Dienste aus der Laufzeitumgebung abgerufen.
Die Ausführung vollzieht sich synchron, wobei die Steuerung bei Beenden der Aktivität oder bei Erreichen eines temporären Zustands wieder dem Aufrufenden übergeben wird.