MS CRM рекурсивный рабочий процесс и производительность - PullRequest
3 голосов
/ 22 сентября 2009

Я собираюсь написать рабочий процесс в CRM, который будет вызываться каждый день. Это рекурсивный рабочий процесс.

Он будет работать с полмиллиона объектов каждый день и деактивировать запись, если она не была обновлена ​​за последние 3 дня.

Я беспокоюсь о производительности, кто-нибудь еще сделал это.

Ответы [ 2 ]

3 голосов
/ 22 сентября 2009

Лично я не реализовал ничего подобного, но это 500 000 записей, которые плавают в БД, которые должна отслеживать асинхронная служба, что облагается налогом на ваше оборудование. Кроме того, CRM отслеживает рекурсивные экземпляры рабочих процессов. У меня нет точных спецификаций передо мной, но если рабочий процесс вызывает себя определенное количество раз в течение определенного периода времени, CRM убьет рабочий процесс.

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

РЕДАКТИРОВАТЬ: Ах, теперь я вижу, вы могли подумать об одном рабочем процессе, который выполняется на всех записях, в отличие от рабочих процессов, работающих на каждой записи. Совет Бенджинито имеет смысл, если вы идете по этому пути, хотя я все еще думаю, что запланированное задание будет более подходящим, чем использование рабочего процесса.

1 голос
/ 22 сентября 2009

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

Я предполагаю, что вы будете максимально эффективны в определении того, какие записи следует деактивировать.(т.е. выражение запроса вернет только те записи, которые вы деактивируете).

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

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