Что делают атрибуты фильтрации в инструменте регистрации плагинов 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 плагин сработает дважды, так как атрибут фильтрации присутствует в обоих запросах.
Это должно сузить исполнение плагина. Плагин срабатывает только в случае изменения одного или нескольких зарегистрированных атрибутов.