Добавление рабочего процесса дочернего процесса диалогового окна в рабочий процесс по требованию

Мне было интересно, если кто-нибудь столкнется с тем же вопросом, с которым я сейчас сталкиваюсь.

То, что я пытаюсь сделать, это иметь рабочий процесс, который проверяет состояние поля (optionset) формы. Если в поле есть опция 1, 2 или 3, то создайте новую запись с определенными общими атрибутами, иначе начните дочерний рабочий процесс. Детский рабочий процесс - это процесс "Диалог", а не "рабочий процесс", который информирует пользователя о том, что запись не была создана и почему. По какой-то причине я не могу выбрать рабочий процесс диалога из раскрывающегося списка доступных дочерних рабочих процессов...

Как рабочий процесс родителя, так и процесс рабочего процесса "диалог" основаны на одном и том же объекте.

Если у кого-нибудь есть идеи о том, как я мог отлаживать эту или любые подсказки вообще, я был бы очень благодарен за ваши отзывы.

Спасибо, что нашли время, чтобы прочитать этот пост!

1 ответ

Невозможно вызвать диалог из рабочего процесса (см. Здесь). События рабочего процесса обычно инициируются событиями. Представьте себе последствия - какой пользователь получит диалог и что, если никто не войдет в систему?

Один из вариантов заключается в том, чтобы управлять всем с помощью JavaScript

  • Триггер по изменению набора опций
  • Создание записей
  • Запуск рабочего процесса
  • Запустить диалог
    • См. Раздел под заголовком "Открытие диалогового процесса с использованием URL-адреса" в MSDN здесь.
    • Скорее используйте URL, чем showModalDialog или showModelessDialog.

То, что может работать еще лучше, - это вызвать действие из JavaScript. Действие может выполняться синхронно и создавать все записи, запускать дочерние рабочие процессы и диалоги.

Синхронный рабочий процесс может остановить событие и вернуть пользователю сообщение об ошибке, но не может вернуть сообщения об успешном завершении - похоже, что это не соответствует вашим требованиям, но здесь есть пример Gareth Tucker.

licensed under cc by-sa 3.0 with attribution.