我想创建将从创建新项目开始的工作流。工作流应该为用户组创建批准任务。组中的用户数可能会发生变化。因此,我使用 ReplicatorActivity 并将 InitialChildData 设置为该组。在 Replicator 内部,我有一个 createTaskActivity,它为组中的每个用户创建任务。 我按照微软在 msdn 上的教程,它工作正常。我的工作流程图等于教程图。
在 Replicator ChildInitialized 方法中,我为在 TaskActivity 中传递的批准任务设置属性
private void replicateTasks_ChildInitialized(object sender, ReplicatorChildEventArgs e)
{
spTaskActivity1.TaskTitle = "New Project Approve";
spTaskActivity1.TaskDescription = "Approve the project";
spTaskActivity1.TaskAssignedTo = e.InstanceData.ToString();
spTaskActivity1.TaskDueDate = DateTime.Today.AddDays(7);
}
在 TaskActivity 我为创建任务设置此属性
private void CreateApprovalTask_Invoking(object sender, EventArgs e)
{
//Create Task
TaskId = Guid.NewGuid();
TaskProp.Title = TaskTitle;
TaskProp.Description = TaskDescription;
TaskProp.AssignedTo = TaskAssignedTo;
TaskProp.StartDate = DateTime.Today;
TaskProp.DueDate = TaskDueDate;
}
所有作品。任务已创建,其所有属性均正确且不为空。
当我在我的工作流中添加 projectSequence 并将 ReplicatorActivity 移动到其中时出现问题,因为我希望工作流将在项目创建时开始。在这种情况下,工作流程从项目创建开始,复制器创建具有空属性的任务!任务数正确且等于用户数。
在调试时,我看到所有属性都是空的,尽管已经执行了 ChildInitialized 方法。
我做错了什么?