GetWorkflowEvent
Pushes the name of the current workflow event onto the stack.
<wf:Operation Name="GetWorkflowEvent" />
None.
String containing the current workflow event.
A workflow instance can pass through several states during the course of its execution. For example, a workflow instance may become idle, or it may be suspended. Every time the workflow instance changes state, it emits a workflow status event to the runtime tracking infrastructure. The Windows Workflow Foundation BAM interceptor supports most of the events defined by the System.Workflow.Runtime.Tracking.TrackingWorkflowEvent
enumeration, as shown in the following table.
Activity event | Description |
---|---|
Changed | A workflow change has occurred on the workflow instance. |
Completed | The workflow instance has completed. |
Created | The workflow instance has been created. |
Exception | An unhandled exception has occurred. |
Idle | The workflow instance is idle. |
Loaded | The workflow instance has been loaded into memory. |
Persisted | The workflow instance has been persisted. |
Resumed | A previously suspended workflow instance has resumed running. |
Started | The workflow instance has been started. |
Suspended | The workflow instance has been suspended. |
Terminated | The workflow instance has been terminated. |
Unloaded | The workflow instance has been unloaded from memory. |
Note
You cannot use both GetWorkflowEvent
and GetActivityEvent
in the same OnEvent element.
The following sample contains a filter that is configured to find a specific activity—"FoodAndDrinksPolicy"—in a workflow. In the sample, a filter is configured to find the activity named "FoodAndDrinksPolicy" in a closed workflow. This is done by comparing the value returned by GetWorkflowEvent
to the constant "Created".
<ic:Filter>
<ic:Expression>
<wf:Operation Name="GetWorkflowEvent" />
<ic:Operation Name="Constant">
<ic:Argument>Created</ic:Argument>
</ic:Operation>
<ic:Operation Name="Equals" />
</ic:Expression>
</ic:Filter>
This operation is useful for tracking the lifetime of a workflow and for detecting exceptions or other problems with the workflow.
System.Workflow.Runtime.Tracking.TrackingWorkflowEvent enumeration