Показывать предупреждение (НЕ ошибка) пользователю из плагина - PullRequest
3 голосов
/ 19 марта 2019

В решении CRM, над которым я работаю, есть случай, когда пользователю необходимо показать предупреждающее сообщение на основе результатов выполнения плагина после отправки определенной формы. Операция все еще должна завершиться успешно, поэтому исключение из плагина не является хорошим решением.

Судя по всему, не существует простого способа сделать это.

Является ли единственной возможностью сохранить содержимое предупреждающего сообщения в настраиваемом поле какой-либо сущности и использовать функцию javascript в форме, чтобы определить, когда показывать ее пользователю?

Ответы [ 3 ]

3 голосов
/ 20 марта 2019
  1. Реализация пользовательского рабочего процесса с бизнес-логикой, которую в настоящее время выполняет ваш плагин.

  2. Создайте и активируйте действие, которое использует это действие рабочего процесса.

  3. Код JS-функции, связанной с событием OnSave формы, которое вызывает это действие: выполняет запрос WebApi .И, наконец, после обработки действия вы можете вызвать из коробки setFormNotification Клиентский API для создания настраиваемого предупреждающего сообщения в верхней части формы.

Выв итоге получится красивое настраиваемое сообщение, подобное этому:

enter image description here

1 голос
/ 20 марта 2019

Ну, вы можете использовать действия.

Создать действие с выходным параметром. Зарегистрируйте свой плагин в пользовательском сообщении (действие). Вызовите Действие, используя JavaScript на событии Save формы. Вы получите выход из действия в JavaScript, то же самое можно показать в форме.

Мы знаем, что можем показывать Уведомления с помощью JavaScript, и мы вызываем действие, которое выполнит Плагин, зарегистрированный для Пользовательского сообщения, и Вы получите переменную Вывод в Javascript, которую вы можете показать только с помощью Javascript.

Для работы с действиями перейдите по этой ссылке. https://www.magnetismsolutions.com/blog/dominicjarvis/2017/09/18/how-to-trigger-plugins-on-custom-messages-using-actions-in-dynamics-365

1 голос
/ 20 марта 2019

Да, прямого пути нет.

Вы можете иметь фиктивное поле в той же записи объекта, установить / обновить значение этого поля из плагина в соответствии с потребностью в вашем предупреждающем сообщении, и onChange этого поля будетсрабатывает в пользовательском интерфейсе при успешном выполнении плагина.

Вы можете отобразить сообщение пользователю из этого обработчика onChange. Подробнее

Документация говорит:

Поле OnChange событие

Это событие такжепроисходит, когда изменения данных на сервере извлекаются для обновления поля при обновлении формы, например, после сохранения записи.

Таким образом, вы можете иметь успешное выполнение плагина без выброса InvalidPluginExecutionException, может избежать пользовательской сущности, пользовательских действий и т. д.

...