Несколько задач в Replicator в projectSequence

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

Что я делаю неправильно?


person SunFiery    schedule 17.04.2014    source источник


Ответы (1)


Является ли репликатор ExecutionType Parallel? Если это так, я думаю, вам следует создать пользовательскую активность со всеми свойствами внутри нее, а затем поместить ее в репликатор. Это работает для меня, но я все еще ищу другой подход без создания пользовательской активности.

person Vladimir Titkov    schedule 11.09.2014
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. - person Rich; 11.09.2014
comment
Если кто-то знает лучшее решение, почему бы не ответить здесь? Итак, в этом случае я думаю, что мой подход (обходной путь) - лучший способ решить проблему. Я прекрасно понимаю, что имеет в виду автор, потому что тоже столкнулся с этой проблемой. - person Vladimir Titkov; 11.09.2014