Создание или изменение пользовательских действий из рабочего процесса
Эта тема относится к Dynamics 365 Customer Engagement (on-premises). Версию этой темы для Power Apps см. по адресу: Настройка пользовательских действий из бизнес-процесса
Можно включить пользовательское действие из бизнес-процесса без написания программного кода. Дополнительные сведения см. в статье Вызов пользовательских действий из бизнес-процесса.
Также можно создать действие, чтобы разработчик использовал его в коде, либо изменить ранее определенное действие. Как и в случае с бизнес-процессами, проанализируйте следующее.
Что должно делать это действие?
При каких условиях должно выполняться это действие?
В отличие от бизнес-процессов, задавать следующие параметры не требуется.
Условия запуска. действия начинаются, когда код вызывает созданное для них сообщение.
Область. Действия всегда выполняются в контексте вызывающего пользователя.
Запуск в фоновом режиме. Действия всегда являются бизнес-процессами в реальном времени.
Действия также, в отличие от бизнес-процессов, обладает вводимыми и выводимыми аргументами. Дополнительные сведения см. в разделе Определение аргументов процесса
Создание действия
Внимание
При создании действия, которое будет включено как часть решения, которое будет распределено, создайте его в контексте решения. Перейдите к Параметры>Решения и найдите неуправляемое решение, частью которого будет это действие. Затем в строке меню выберите Создать>Процесс. Это обеспечит согласованность префикса настройки, связанного с именем действия, с другими компонентами в решении. После создания действия изменить префикс невозможно.
Как и бизнес-процессы, действия обладают следующими свойствами в диалоговом окне Создание процесса.
Имя процесса
После ввода имени для процесса для него будет создано уникальное имя путем удаления из имени пробелом или специальных символов.
Категория
Это свойство устанавливает, что этот процесс — действие. Изменить его после сохранения процесса невозможно.
Сущность
С процессами в виде действий можно выбрать сущность для предоставления контекста бизнес-процесса, как и других типов процессов, однако имеется также возможность выбрать значение Нет (глобальный). Используйте этот вариант, если действие не требует контекста конкретной сущности. Изменить его после сохранения процесса невозможно.
Тип
Используйте это свойство, чтобы выбрать, строить ли новое действие с нуля или воспользоваться существующим шаблоном.
Редактирование действия
Необходимо деактивировать процессы, прежде чем их можно будет редактировать.
Действие, созданное как часть неуправляемого решения или включенное в решение, установленное в организации, можно редактировать. Если решение является управляемым, возможно, отредактировать действие не удастся. Издатель решения имеет возможность изменить управляемые свойства действия, чтобы нельзя было редактировать действие, установленное с управляемым решением.
При сохранении действия создается уникальное имя на базе имени процесса. Это уникальное имя имеет префикс настройки, который добавляется из издателя решения. Это имя сообщения, которое разработчик будет использовать в коде.
При редактировании действия доступны следующие варианты.
Название процесса
После создания процесса и генерирования уникального имени из имени процесса, можно редактировать имя процесса. Возможно, имеет смысл применить конвенцию наименования, чтобы упростить нахождение конкретных процессов.
Уникальное имя
При сохранении действия создается уникальное имя на базе имени процесса. Это уникальное имя имеет префикс настройки, который добавляется из издателя решения. Это имя сообщения, которое разработчик будет использовать в коде. Не изменяйте уникальное имя, если процесс был активирован и код на месте, ожидая вызвать действие с помощью того же имени.
Внимание
После активации действия и создания кода для использования уникального имени, уникальное имя не должно меняться без внесения изменений в код, который на него ссылается.
Включить откат
Как правило, процессы, поддерживающие транзакции, будут отменять (или откатывать) всю операцию, если какая-либо их часть завершится сбоем. В этом правиле несколько исключений. Некоторые действия, выполняемые разработчиками в коде и инициируемые этим действием, могут не поддерживать транзакции. Например, если код выполняет действия в других системах, за пределами области транзакции. Невозможно выполнить их откат выполнением действия в приложении. Некоторые сообщения на платформе не поддерживают транзакции. Однако все что вы можете сделать с использованием одного только ИП действия, будет поддерживать транзакции. Все действия, являющиеся частью реального бизнес-процесса, учитываются в транзакции, однако при использовании действий от такого подхода можно отказаться.
Необходимо посоветовать с разработчиком, который будет использовать это сообщение, чтобы определить, должно ли оно находиться в транзакции или нет. Обычно действие должно быть в транзакции, если действия, выполняемые бизнес-процессом, не имеют смысла за исключением случаев, когда все они выполнены успешно. Классический пример — перемещение средств между двумя банковскими счетами. Если вывести средства с одного счета, необходимо положить их на другой. Если какая-либо операция завершится ошибкой, весь процесс должен завершиться ошибкой.
Заметка
Нельзя включить откат, если настраиваемое действие вызвано непосредственно из бизнес-процесса. Можно включить откат, если действие запущено сообщением веб-служб Dynamics 365 Customer Engagement (on-premises).
Активировать как
Как и все процессы, можно активировать процесс как шаблон и использовать его в качестве усовершенствованной начальной точки для процессов, реализуемых по такой же схеме.
Определение аргументов процесса
В этой области нужно указать любые данные, с которых планируется начать действие, и указать, какие данные будут переданы из выполненного действия. Дополнительные сведения см. в разделе Определение аргументов процесса
Добавление стадий, условия и действия
Как и другие процессы, необходимо указать, какие действия необходимо выполнить и когда. Дополнительные сведения см. в разделе Добавление этапов и шагов
Определение аргументов процесса
Используя сообщение, разработчик может начать с некоторых данных, которые можно передать в сообщение. Например, чтобы создать запись нового обращения, может иметься значение заголовка обращения, которое передается в качестве входного аргумента.
Когда сообщение будет завершено, разработчику может потребоваться передать некоторые данные, которые были изменены или созданы сообщением, другой операции в коде. Эти данные являются выходным аргументом.
Оба аргумента (входные и выходные) должны иметь имя, тип и некоторые сведения о том, всегда ли требуется этот аргумент. Можно также указать описание.
Название сообщения и информация обо всех аргументах процесса представляет "подпись" сообщения. После активации действия и его использования в коде подпись не должна меняться. Если эта подпись изменяется, любой код, использующий это сообщение, завершится сбоем. Единственное исключение — это изменение одного из параметров, чтобы он не требовался всегда.
Можно изменить последовательность аргументов путем сортировки или перемещения вверх и вниз, поскольку аргументы идентифицируются по имени, а не порядку. Кроме того, изменение описания не нарушит код, в котором используется сообщение.
Типы аргументов процесса действия
В следующей таблице описываются типы аргументов процесса действия.
Тип | Описание |
---|---|
Boolean | Значение true или false . |
Дата и время | Значение, хранящее информацию о дате и времени. |
Десятичное число | Числовое значение с точностью до десятых. Используется, если точность чрезвычайно важна. |
Сущность | Запись для определенной сущности. При выборе сущности включается раскрывающееся меню, в котором можно выбрать тип сущности. |
EntityCollection | Коллекция записей сущностей. |
EntityReference | Объект, содержащий имя, ИД и тип записи сущности, который однозначно определяет ее. При выборе EntityReference включается раскрывающееся меню, в котором можно выбрать тип сущности. |
С плавающей точкой | Числовое значение с точностью до десятых. Используется, когда данные попадают из измерения, не являющегося абсолютно точным. |
Целое число | целое число. |
Деньги | Значение, сохраняющее данные о сумме денег. |
Picklist | Значение, представляющее параметр для атрибута OptionSet. |
String | Текстовое значение. |
Заметка
Значения аргумента EntityCollection нельзя задать в пользовательском интерфейсе для условий или действий. Они предоставляются для использования разработчиками в пользовательском коде. Дополнительные сведения см. в статье Создание собственных действий
Добавление этапов и шагов
Действия — это тип процесса, схожий с реальными бизнес-процессами. Все шаги, которые можно использовать в реальных бизнес-процессах, можно использовать и в действиях. Сведения о шагах, которые можно использовать в реальных бизнес-процессах и действиях, см. в разделе Этапы и шаги бизнес-процессов.
Помимо шагов, которые можно использовать в случае бизнес-процессов в реальном времени, действия также имеют шаг Присвоить значение. В действиях их можно использовать только для задания выходных аргументов. Можно использовать помощника по формам для задания конкретных значений для выходных аргументов или, что более вероятно, значений из записи, относительно которой выполняется действие, записей, связанных с этой записью отношением "много к одному", записей, созданных на более раннем этапе, или значений, являющихся частью самого процесса.
См. также
Действия
Вызов пользовательских действий из бизнес-процесса
Мониторинг бизнес-процессов реального времени и действий
Процедуры бизнес-процесса
Обзор последовательности операций бизнес-процесса
Мониторинг и управление операциями бизнес-процесса
Создание собственных действий