06.08.2014, 16:26 | #1 |
Участник
|
CRM 2013. Рекурсивные рабочие процессы.
Коллеги, снова прошу помощи.
Создал два идентичных РП, рекурсивно вызывающих друг друга. В общих чертах, задача РП отловить наступление некоторого момента времени и выполнить некоторые действия. РП стартует каждые 5 минут. Родительский РП стартует на событие создания Обращения (Кейса). Собственно проблема в следующем - на седьмом рестарте, если ранее условия завершения процесса не выполнились, РП отваливается с ошибкой Infinite loop ровно на седьмом рестарте: http://prntscr.com/4a3iss Собственно ошибка с логикой РП: http://prntscr.com/4a3jpv Логику проверял, вроде всё корректно. Может быть я чего-то не знаю и где-то есть ограничения на рекурсию? Можно это как-то победить? Оба РП абсолютно идентичны, кроме шага запуска дочернего РП (дочерний\родительский). |
|
06.08.2014, 17:01 | #2 |
Консультант-джедай
|
Цитата:
http://www.magnetismsolutions.com.au...infinite-loops http://www.dynamicscrmteam.com/mscrm...g-for-plugins/ http://msdynamics2011.blogspot.ru/20...n-plugins.html http://practical-crm.blogspot.ru/201...detection.html
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
06.08.2014, 17:14 | #3 |
Участник
|
Отличная защита. В плагинах даже уже знаком с context.Depth.
Если из http://practical-crm.blogspot.ru/201...detection.html убрать философию, в чистом остатке получается, что ЦРМ не позволяет рекурсию чаще, чем 8 раз в час? Я прав? Соответственно надо либо менять логику на без рекурсии, либо увеличивать таймаут? |
|
06.08.2014, 19:28 | #4 |
Консультант-джедай
|
Цитата:
Цитата:
Обычно в CRM рекурсию выносят во вне - либо делают вин-сервис, либо консольку, которую стартует стандартный планировщик винды.
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
07.08.2014, 10:15 | #5 |
Участник
|
|
|
|
|