Дэвид Дженнауэй опубликовал несколько возможных решений на форуме Microsoft:
"создайте правило рабочего процесса, которое запускается только при обновлении интересующего вас атрибута, возможно, запишите имя атрибута впользовательское поле, а затем вызвать второй рабочий процесс, который выполняет основную работу. "- хотя это не будет работать в моем случае, потому что значение атрибута не всегда изменяется при его обновлении.
Однако он также предлагает:
"Альтернативный подход заключается в написании плагина, который может сравнивать предварительные и последующие значения атрибута. Одним из вариантов будет использование плагина для установки атрибута на объекте, чтобы указать, является ли оно подлинным обновлением, и чтобы рабочий процесс считал этот атрибут. В качестве альтернативы, плагин может удалитьатрибут из InputParameters, если его значение не меняется, что остановит запуск рабочего процесса. "- это вариант, который я рассмотрю более подробно.
Взято из - http://social.microsoft.com/Forums/en-US/crmdevelopment/thread/1816656f-f34a-4df9-b98f-181a38f053c3/#85c9e290-b059-4e4a-b58f-facc02c73ebe