我创建了一个执行一项特定任务的Windows Workflow 4工作流程。这些需求随着软件开发的变化而变化,现在工作流需要多次完成这项任务。Windows工作流中的子活动未发出跟踪数据
我的解决方案是创建另一个工作流程,每次在集合中执行第一个工作流程。这工作正常。但是,我们的跟踪参与者不会为现在的子流程发布任何记录。
参与者仍然为主工作流程发出数据,但它并不理想,因为它只包含有关循环收集的信息。在执行内部工作流程时,我们可以看到详细的输出。
有没有什么我们在设置我们的跟踪缺少?最好我不想以不同的方式构建工作流程,因为我们可以想象,当我们开发工作流程时,我们会再次遇到这种情况,并且需要类似的解决方案。
StatusTrackingParticipant stp = new StatusTrackingParticipant
{
TrackingProfile = new TrackingProfile
{
Queries =
{
//Querying all states.
new ActivityStateQuery
{
ActivityName = "*",
States = { "*" }
},
//querying all activty schedules ? not sure on the terminology here.
new ActivityScheduledQuery
{
ActivityName = "*",
ChildActivityName = "*"
},
new BookmarkResumptionQuery
{
Name = "*"
},
new CancelRequestedQuery
{
ActivityName = "*",
ChildActivityName = "*"
},
new CustomTrackingQuery
{
ActivityName = "*",
Name = "*"
},
new FaultPropagationQuery
{
FaultHandlerActivityName = "*",
FaultSourceActivityName = "*"
},
//Querying all workflow instances ? not sure on the terminology here.
new WorkflowInstanceQuery
{
States = { "*" }
},
}
}
};
我已将参与者的创作添加到我的问题中。当你说“你必须主动指定你想要跟踪的查询和状态”这是否意味着你不能指定“*”,所有状态?基本上我们想把所有的跟踪信息转储到数据库中以备以后处理。 –
您可以使用'“*”'。你*应该*使用它,如果你想追踪一切,当然。 – Joao
好的。正如你在上面的代码中看到的那样,我认为我已经设置了几乎所有的事情。但是,我的“内在”工作流程仍然没有排出跟踪记录。 –