Что делают атрибуты фильтрации в инструменте регистрации плагинов CRM 2011?

Я предположил, что для плагина Обновления, он определил список атрибутов, которые, если изменяются, вызывают плагин для запуска.

Так что, если я зарегистрирую плагин против Fooс указанием только одного атрибута фильтрации Barкаждый раз Foo объект обновлен, CRM выполняет проверку, чтобы увидеть, Bar был обновлен, если он есть, он запускает мой плагин. Таким образом, с кодом ниже, я ожидаю, что мой плагин будет выполняться один раз.

Foo foo = new Foo();
foo.Bar = 0;
foo.Id = service.Create(foo);
foo.Bar = 1;
service.Update(foo.Bar); // My plugin would execute
service.Update(foo.Bar); // Bar hasn't changed, I would assume the plugin will not  execute

Прав ли я в этом предположении?

2 ответа

Решение

Хотя ваш первоначальный анализ не совсем корректен (то есть атрибуты фильтрации вызывают срабатывание плагина только в случае изменения одного или нескольких атрибутов фильтрации), это не совсем точно.

Когда сущность изменяется, например, адрес электронной почты контакта, платформа (и, следовательно, ваш плагин) получает только дельту. В моем примере будет сущность в Target InputParameter, который содержит только один атрибут (email). Это имеет место, даже если запись контакта содержит гораздо больше данных - только то, что изменилось, отправляется на платформу. (кроме того, именно здесь появляются изображения сущностей "До" и "После", поскольку они позволяют получить доступ к значениям сущности, которые не были изменены, без необходимости извлекать данные).

Таким образом, с учетом этого будет правильно сказать, что атрибуты фильтрации означают, что плагин будет запускаться только в том случае, если в запросе присутствует один или несколько атрибутов фильтрации. Пользовательский интерфейс CRM обычно не отправляет значение, если оно не изменилось (forceubmit отменяет это поведение). В вашем примере Daryl плагин сработает дважды, так как атрибут фильтрации присутствует в обоих запросах.

Это должно сузить исполнение плагина. Плагин срабатывает только в случае изменения одного или нескольких зарегистрированных атрибутов.

Другие вопросы по тегам