MS CRM - получение поля, вызвавшего сохранение формы - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть форма MS CRM 4, в которой при изменении определенных полей мне нужно, чтобы эти поля были записаны в таблицу Excel.

Итак, я отредактировал событие onchange поля формы для вызова crmform.save (), который запускает плагин, который записывает значение поля в именованный диапазон (1 ячейка) листа Excel.

Однако я не знаю, какое поле вызвало сохранение.Есть ли способ получить эту информацию?(Не все поля в форме нужно переходить на лист Excel)

Если я использую это: DynamicEntity target = (DynamicEntity) Context.InputParameters [ParameterName.Target];Я могу посмотреть на конкретные поля, но у меня нет возможности узнать, какие из них изменились.

Есть предложения?

Ответы [ 5 ]

1 голос
/ 08 апреля 2010

По моему опыту, только измененные поля будут иметь значение (в DynamicEntity) при обновлении сущности. Допустим, у вас есть объект с именем и фамилией. Если вы только измените Фамилию и сохраните. LastName будет иметь значение FirstName с нулевым значением (если у вас нет сом-кода javascript, который заставляет FirstName быть отправленным)

0 голосов
/ 26 мая 2010

Я рекомендую использовать изображения до и после публикации в соответствии с предложением @Forgotten Semicolon. Кроме того, установите Фильтрующие атрибуты , чтобы плагин срабатывал только при изменении полей, которые вас интересуют.

0 голосов
/ 03 мая 2010

Да, полностью изменил способ, которым я подошел к этому. Я использую jquery в iframe, чтобы передать все точные поля (пары имя / значение). Я хочу метод ASPX-файла, работающего в папке ISV, который выполняет необходимое действие. Спасибо за предложения всем!

0 голосов
/ 24 апреля 2010

Похоже, вы уже идете другим путем, но другое предложение заключается в создании скрытого поля - «FieldThatChanged». В вашем поле javascript on-change установите для этого поля имя измененного поля, а затем получите доступ к нему в своем плагине.

0 голосов
/ 06 апреля 2010

Если ваш плагин запущен в пред-событии Обновления вашей сущности, вы сможете сравнить IPluginExecutionContext.PreEntityImages с вашим DynamicEntity, который вы выбрали из Target.

Или, если ваш плагин запускается после события обновления, вы сможете сравнить IPluginExecutionContext.PreEntityImages с IPluginExecutionContext.PostEntityImages.

...