工作流活动状态记录

时间:2016-05-02 13:55:53

标签: c#-4.0 workflow-foundation-4

我是Work Flows的新手。我创建了一个小工作流程。并在其中放置一些自定义活动。

现在我想记录这些活动的状态,以及它们何时完成以及输入和输出参数的位置。

与我们在TFS Build中看到的类似。

1 个答案:

答案 0 :(得分:1)

您可以将TrackingParticipant定义为要为WorkflowApplication添加的扩展程序。

  

自定义跟踪参与者

using System.Activities.Tracking;

public class MyTrackingParticipant : TrackingParticipant
{
    protected override void Track(TrackingRecord record, TimeSpan timeout)
    {
        if (record is WorkflowInstanceRecord)
        {
            var wfInstanceRecord = record as WorkflowInstanceRecord;
            Console.WriteLine($"My workflow's current state: {wfInstanceRecord.State}");
        }

        if (record is ActivityStateRecord)
        {
            var activityStateRecord = record as ActivityStateRecord;
            Console.WriteLine($"Activity: {activityStateRecord.Activity.Name} State: {activityStateRecord.State} Timestamp: {activityStateRecord.EventTime}");
        }
    }
}
  

注册自定义跟踪参与者

var wfApp = new WorkflowApplication(myActivity);
wfApp.Extensions.Add(new MyTrackingParticipant());
wfApp.Run();