Как изменить значение выбора людей в форме инфопата после каждого обновления формы

У меня есть рабочий процесс конечного автомата и связанные задачи. Задание можно редактировать до тех пор, пока оно не будет удовлетворять некоторым условиям. Задание сформировано инфопатом. Эта задача содержит одно поле выбора людей. Я назначаю 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, ';')"), "..") Это правильно обрабатывает несколько записей, если вы имеете в виду, что вы получаете только первую в списке.

Другие вопросы по тегам