Передача значений из формы InfoPath в задачу рабочего процесса

Я ранее приводил ряд ссылок на описание рабочих процессов с использованием форм InfoPath для задач.
Сегодня я хочу рассказать про одну особенность этих форм.

Все мы знаем, что поменять свойства задачи в РП, который написан в Visual Studio, не так просто, как кажется. Надо вставлять активити UpdateTask, заполнять его свойства и т.д.
При использовании форм InfoPath для редактирования задач РП у нас есть еще одна возможность — передавать значения элемента задачи прямо из формы редактирования задачи. Как Вы уже знаете, мы можем получать значения из элемента задачи, указав дополнительный источник данных в форме InfoPath с именем ItemMetadata, перечислив нем все столбцы с приставкой ows_. Для того, чтобы передать данные обратно в элемент задачи, нам достаточно в основном источнике данных создать поля, которые должны называться точно также, как и поля в элементе задачи.
В момент, когда мы делаем Submit на форме InfoPath, значение полей из формы будет записано в элемент задачи.
Для примера возьмем Срок (DueDate).

  1. Создадим в форме, в основной источнике данных поле DueDate, указав тип DateTime.
  2. Добавим на форму DateTimePicker, ассоциировав его с полем DueDate
  3. Добавим кнопку OK, назначив ей одно правило, которое делает Submit нашей формы.
  4. Создадим простой РП, который создает задачу, укажем созданную нами форму в настройка РП как форму для редактирования задачи.
  5. Запустим РП, откроем задачу для этого РП, введем какую-либо дату в поле и нажмем ОК.
  6. В итоге в свойствах нашей задаче, в поле Срок вы увидите введенное значение из формы.

Но данную особенность надо всегда помнить — если вы случайно назовете поле в форме также, как одно из полей в элементе задачи, последствия могут крайне неожиданными.

Реклама