WF 4.0 with SP1
我们正在尝试加载工作流并根据用户操作执行状态遍历。因此,当用户说批准时,我们会通过以下内容:
var activity = new StateMachineApprovalFlow();
WorkflowApplication application = new WorkflowApplication(activity);
var approval = new Approval();
approval.Status = ApprovalStatus.Completed;
activity.Approval = approval;
SetupInstanceStore();
application.InstanceStore = store;
application.Extensions.Add(new OracleTrackingParticipant());
application.Load(instanceId);
这个breaks.First是正确的方法,还是我应该使用书签。我对工作流程很陌生,所以这个例子会有所帮助。
由于
答案 0 :(得分:2)
首先,您需要创建一个创建书签的活动。然后,您必须运行工作流,直到它等待该书签空闲为止。
然后,按照您的方式加载工作流程,然后按
进行操作var result = application.ResumeBookmark(bookmarkName, data);
请务必检查结果以确定它已恢复正常。 Microsoft.Activities(可在CodePlex上使用)有一些扩展方法,可以使这更容易。有关示例,请参阅Microsoft.Activities.UnitTesting - How do I test an activity with bookmarks?
答案 1 :(得分:1)
这种传递参数的方式仅在您的Approvals是不可变类型时才有效。使用词典适用于所有输入类型。有关详细信息,请参阅here。