工作流 activity 状态记录
Workflow activity status logging
我是工作流程的新手。我创建了一个小型工作流程。并在其中放置一些自定义活动。
现在我想记录此活动完成时的状态以及输入和输出参数的位置。
与我们在 TFS Build 中看到的类似。
您可以将 TrackingParticipant
定义为要为 WorkflowApplication
添加的扩展名。
Custom Tracking Participant
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}");
}
}
}
Register the Custom Tracking Participant
var wfApp = new WorkflowApplication(myActivity);
wfApp.Extensions.Add(new MyTrackingParticipant());
wfApp.Run();
我是工作流程的新手。我创建了一个小型工作流程。并在其中放置一些自定义活动。
现在我想记录此活动完成时的状态以及输入和输出参数的位置。
与我们在 TFS Build 中看到的类似。
您可以将 TrackingParticipant
定义为要为 WorkflowApplication
添加的扩展名。
Custom Tracking Participant
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}");
}
}
}
Register the Custom Tracking Participant
var wfApp = new WorkflowApplication(myActivity);
wfApp.Extensions.Add(new MyTrackingParticipant());
wfApp.Run();