Как изменить значение выбора людей в форме инфопата после каждого обновления формы
У меня есть рабочий процесс конечного автомата и связанные задачи. Задание можно редактировать до тех пор, пока оно не будет удовлетворять некоторым условиям. Задание сформировано инфопатом. Эта задача содержит одно поле выбора людей. Я назначаю 3 поля с этими значениями:
private void createTask_Operator_MethodInvoking(object sender, EventArgs e)
{
this.createTask_Id = Guid.NewGuid();
this.createTask_Properties.ExtendedProperties["ows_TaskDisplayName"] = "user1";
this.createTask_Properties.ExtendedProperties["ows_TaskAccountId"] = @"SP\user1";
this.createTask_Properties.ExtendedProperties["ows_TaskAccountType"] = "User";
}
Это работает, я могу видеть в своей форме значение этих пользователей. Но когда я меняю пользователя (например, "user2") и отправляю форму, я не могу получить значение поля, измененное вручную, оно всегда возвращает значения "user1".
private void onTaskChanged_Operator_Invoked(object sender, ExternalDataEventArgs e)
{
this.onTaskChanged_AfterProperties = this.onTaskChanged.AfterProperties;
this.onTaskChanged_BeforeProperties = this.onTaskChanged.BeforeProperties;
// here I cannot retrieve changed field value, always returns: SP\user1
this.workflowProperties.Item["UserName"] =
this.onTaskChanged_AfterProperties.ExtendedProperties["TaskAccountId"].ToString();
this.workflowProperties.Item.Update();
}
Пожалуйста, если вы столкнулись с такой проблемой, помогите мне с этим...
1 ответ
У меня небольшие проблемы с пониманием вашей проблемы, но вот два ответа. Чтобы успешно установить значение поля выбора людей, необходимо правильно заполнить все три поля: DisplayName, AccountId и AccountType. AccountType всегда "Пользователь", но два других должны соответствовать вашей AD или откуда вы получаете ваши пользовательские данные. Чтобы получить данные из подборщика людей, лучшее решение часто включает в себя двойной трюк: eval(eval(person, "concat(my:AccountId, ';')"), "..")
Это правильно обрабатывает несколько записей, если вы имеете в виду, что вы получаете только первую в списке.