Откройте Microsoft SQL Server Management Studio, выберите базу Вашей организации в выпадающем списке доступных баз данных и выполните следующий скрипт:
Update SdkMessageFilter
Set IsCustomProcessingStepAllowed = 1
Where SdkMessageId in
(Select SdkMessageId From SdkMessage Where Name = 'Rollup')
После этого появляется возможность регистрировать свои шаги плагинов на Rollup сообщение. Открыв plugin registrator, вы сможете сами в этом убедиться:

Первая интересная особенность, которую я заметил это то что оба свойства PrimaryEntityName и SecondaryEntityName заполнены (PrimaryEntityName - сущностью, по которой выполняется поиск - activitypointer, annotation, incident и т.п., а SecondaryEntityName - сущностью из которой Вы выполняете просмотр подчинённых записей - contact, account и т.п., все комбинации могут быть найдены в SDK).

Следующая интересная особенность это содержимое свойства InputParameters:
"Target" - это массив объектов. Первый объект это строка с названием типа родительской сущности. Второй объект это экземпляр CrmMoniker класса, который содержит название типа сущности и идентификатор записи. Третий объект это экземпляр класса QueryExpression и он содержит фильтры на основании который будет получен массив интересующих дочерних записей.
"RollupType" - дополнительный маркер на основании которого будут фильтроваться записи. Свойство типа перечисления RollupType.

Следующая интересная особенность была найдена в свойстве OutputParameters:
BusinessEntityCollection - собственно коллекция полученных записей на основании фильтров, которые переданы в свойстве InputParameters.

Каким образом это может быть использовано разработчиками? Различными. Например я наконец знаю ответ на вопрос, который мне задали тут - смогли ли Вы разобраться как перехватывать сообщение Rollup для того, чтобы посчитать количество активностей или инцидентов связанных с какой нибудь сущностью - теперь я знаю. Другой вариант использования данной функциональности - это изменение фильтров данного сообщения таким образом, каким захочет разработчик.
Но помните, что данная кастомизация неподдерживаемая!
Комментариев нет:
Отправить комментарий