Вызов веб-сервисов из плагина CRM - PullRequest
0 голосов
/ 07 февраля 2011

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

Многие из этих бизнес-расчетов выполняются в устаревших системах с использованием нескольких различных технологий.

Вопрос: нужно ли перенести этот код в плагин как код C #, или мы можем вызвать его через веб-сервис из плагина?

Ответы [ 3 ]

2 голосов
/ 10 февраля 2011

Пользовательский подключаемый модуль рабочего процесса - это действие Windows Workflow Foundation.Все, что вы можете сделать в рабочем процессе, вы можете сделать как плагин рабочего процесса - так что ответ - да.Однако вы можете указать параметры конфигурации в качестве входных данных для действия рабочего процесса (т. Е. URL-адрес службы) или сохранить их в пользовательском объекте.Таким образом, все можно настроить из CRM.Вы даже можете экспортировать рабочий процесс xaml, изменить его в конструкторе и снова импортировать в CRM.В CRM 2011 это даже поддерживаемый подход (так они говорят).Обратите внимание, что для CRM онлайн настраиваемые действия рабочего процесса не поддерживаются.

1 голос
/ 08 февраля 2011

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

0 голосов
/ 10 июня 2015

Вы упомянули, что плагины будут «вызываться из рабочего процесса в CRM», что может означать несколько разных вещей:

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

У вас есть несколько различных вариантов хранения информации о конфигурации (например, URL-адрес конечной точки службы и т. Д.):

  1. Жесткий код этих данных в сборке.
  2. Создание объекта конфигурации в CRM и получение соответствующих записей конфигурации во время выполнения с использованием веб-службы CRM (т. Е. Экземпляра IOrganizationService из контекста).
  3. Создание настраиваемого действия в CRM, котороевозвращает информацию о конфигурации ( ссылка ).
  4. Для плагина передайте информацию о конфигурации конструктору плагина, добавив информацию to шаги «Небезопасная конфигурация» или «Безопасная конфигурация» при регистрации шагов сборки модуля с помощью инструмента регистрации плагинов.
  5. Для пользовательского рабочего процесса передайте информацию о конфигурации в действие через InParameter.Аргумент.

У каждого из этих подходов есть свои плюсы и минусы, которые зависят от множества факторов, которые зависят от вашего сценария:

  • Как вы обрабатываете другие битыинформации о конфигурации в вашем развертывании?
    • Если вы уже используете объект конфигурации или настраиваемое действие, может быть предпочтительнее добавить туда новое поле, чем «скрывать» информацию о конфигурации на этапах регистрации плагина (и наоборот).
  • Как изменится информация о конфигурации в разных средах / организациях?
    • Если конфигурация статическая и «никогда» ее не нужно изменять, вы можете жестко закодировать ее в сборку.
    • Если конфигурация статическая и вы используете штекерво-вторых, вы можете поместить информацию в регистрацию плагина, и ее можно перенести как часть решения.
  • Какую версию CRM вы используете?
    • Настраиваемые действия доступны только с CRM 2013 года.
  • Нужно ли решение работать в автономных сценариях?
    • Пользовательские действия могут не работать в таких сценариях.
  • Сколько различных шагов плагина необходимо зарегистрировать?/ Сколько процессов будет использовать пользовательскую активность рабочего процесса?
    • Если их много, то может оказаться невозможным указывать информацию в каждом месте, где она необходима, и объект конфигурации / действие могут быть предпочтительнее.
  • Ктобудет иметь доступ (и кому нужно) изменить информацию о конфигурации?
    • Если вы используете настраиваемое действие и нетехнические бизнес-пользователи имеют доступ к изменению рабочих процессов, использующих это действие, то вам может не потребоваться передавать информацию в качестве параметра в действие (из-завозможность введения пользовательской ошибки).
  • Каков профиль производительности модуля plug-in / custom?
    • Если вам нужна максимальная производительность, вы можете не захотеть получать информацию о конфигурации из пользовательского объекта или действия.

И т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...