Xrm.Page.getControl() не работает в центре продаж Dynamics 365

Xrm.Page.getControl("webResource1"). GetObject() работает нормально в Sales Dynamics 365, но не работает в Sales Hub.

Аналог должен использовать formContext, но как вызвать скрипт в веб-ресурсе из другого веб-ресурса.

Например. Xrm.Page.getControl("webResource1"). GetObject(). ContentWindow.function1() отлично работает в Sales, но не в Unified UI.

1 ответ

Xrm.Page устарел (Устаревшие методы здесь)

Теперь вы должны сделать следующее:

  • Когда вы регистрируете свое мероприятие, вы должны отметить Pass Execution Context as first parameter флажок
  • В вашей функции вы должны добавить новый параметр с именем executionContext (имя не имеет значения)

После того как вы сделали выше, вы можете получить доступ к новым formContext объект, который содержит большинство методов, включенных в Xrm.Page

Больше информации о formContext Вот

Например:

function myHandler(executionContext) 
{
  var formContext = executionContext.getFormContext();
  var myWebResource = formContext.getControl("webResource1");
}

Изменить по адресу null getObject ошибка

Объект вернулся из getControl() действительно есть getObject метод ( MSDN), который заявляет, что он возвратит либо:

  • IFRAME возвращает элемент IFrame из объектной модели документа (DOM).
  • Веб-ресурс Silverlight возвращает элемент Object из DOM, который представляет встроенный подключаемый модуль Silverlight.

Если вы получаете нулевой объект, вы, вероятно, получили ошибку с именем вашего веб-ресурса.

Откройте форму CRM в режиме конструктора и найдите свой веб-ресурс. Дважды щелкните, чтобы просмотреть его свойства. Вы ищете field name который в CRM Online имеет префикс "WebResource_"

Например:

Есть еще одно изменение дизайна, вызывающее это null когда используешь formContext.getControl("WebResourceName").getObject() потому что Центр продаж или вкладка формы UCI, имеющая веб-ресурс, еще не отображается, если по ней не щелкнуть / не перейти.

Аналогичная тема в ветке сообщества Dynamics

Проблема с GitHub