0

我想创建将从创建新项目开始的工作流。工作流应该为用户组创建批准任务。组中的用户数可能会发生变化。因此,我使用 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 方法。

我做错了什么?

4

1 回答 1

0

复制器 ExecutionType 是并行的吗?如果是这样,我想您应该创建一个包含所有属性的自定义活动,然后将其放入复制器中。它对我有用,但我仍在寻找另一种不构建自定义活动的方法。

于 2014-09-11T05:42:48.210 回答