我想创建将在创建新项目时开始的工作流程。工作流程应为用户组创建批准任务。组中的用户数可能会发生变化。因此,我使用ReplicatorActivity并将InitialChildData设置为此组。在Replicator内部,我有一个createTaskActivity,可以为组中的每个用户创建任务。 I follow the microsoft tutorial on 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时出现问题,因为我希望工作流程将从项目创建开始。在这种情况下,工作流程从项目创建开始,复制器创建具有空属性的任务!任务数量正确且等于用户数。
在调试时,我看到所有属性都为null,尽管已经执行了ChildInitialized方法。
我做错了什么?
答案 0 :(得分:0)
复制器ExecutionType是否并行?如果是这样,我猜你应该创建一个包含其中所有属性的自定义活动,然后将其放入复制器中。它适用于我,但我仍在寻找另一种方法而不构建自定义活动。