Я хочу создать рабочий процесс, который начнется при создании нового проекта. Рабочий процесс должен создавать задачи утверждения для группы пользователей. Количество пользователей в группе может измениться. Итак, я использую ReplicatorActivity и устанавливаю InitialChildData для этой группы. Внутри Replicator у меня есть createTaskActivity, которая создает задачи для каждого пользователя в группе. Я следую руководству Microsoft по 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 был выполнен.
Что я делаю неправильно?