2015-10-22 2 views
3

Я написал плагин для CRM. Он обновляет поле Entity A при создании нового Entity B. У меня есть форму для Entity A и в этой форме у меня есть вкладка для Entity B. Когда я создаю новый Entity B с этой вкладки, мое поле смены плагина в Entity A. Но я не вижу этого изменения, пока не перезагружу страницу браузера.Обновления полей, только если я обновляю браузер в динамике crm

Adding entity B from tab

Saving entity B

Filed doesnt change until page will be reloaded

+3

Это ожидаемое поведение - эта страница не заставит себя перезагрузиться, если вы не сообщите об этом (вызовите Xrm.Page.data.refresh()). Даже если вы обновите его, значение может не обновляться к моменту обновления страницы (если плагин зарегистрирован асинхронно). –

+0

Какое событие следует использовать для вызова Xrm.Page.data.refresh()? Мой плагин синхронный. –

+0

Хороший вопрос - плагины живут на стороне сервера, и вам нужно будет вызвать событие на стороне клиента. Вы можете попытаться найти grid.refresh через F12 (для ответов на события) и переопределить это, чтобы обновить всю страницу, а не только сетку. –

ответ

1

Вы как-то упустить из виду тот факт, что ваш плагин работает на сервере, и обновляет данные в базе данных на другом сервере. Нет встроенного метода обновления базы данных, инициирующего уведомление для конкретного клиента (или всего). Таким образом, у вас есть два варианта:

  1. развязывание Xrm.Page.data.refresh (или сохранить будет работать, как хорошо, так как это будет тянуть вниз новые значения) в контексте Entity A, после выполнения сейва Entity B ,
  2. Используйте опрос и конечную точку CrmWebApi или odata, чтобы запросить CRM для обновления этого значения на стороне сервера, а затем обновить его и на клиенте.

Ваш вопрос был немного трудно понять, но # 1 может быть трудно, если у вас нет никакого способа узнать, в контексте Entity A, что пользователь должен быть создан в Entity B. # 2 будет работать, но не будет хорошо масштабироваться, если у вас есть сотни пользователей, сидящих там с опросом.

Смежные вопросы