Xrm.Page.getControl () не работает в Dynamics 365 Sales Hub

Xrm.Page.getControl("webResource1").getObject() отлично работает в Sales Dynamics 365, но не работает в Sales Hub.

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

Например. Xrm.Page.getControl("webResource1").getObject().contentWindow.function1() отлично работает в продажах, но не в едином пользовательском интерфейсе.


person sudhir    schedule 15.01.2019    source источник


Ответы (2)


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");
}

Изменить на нулевой адрес getObject ошибка

У объекта, возвращенного из getControl(), есть метод getObject (MSDN), в котором указано, что он вернет либо:

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

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

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

Например:

введите здесь описание изображения

person jasonscript    schedule 15.01.2019
comment
Согласовано. Пробовал и этот, но как мне получить веб-содержимое этого веб-ресурса? formContext.getControl (webResource1) не имеет функции getObject или всегда возвращает null - person sudhir; 15.01.2019
comment
getObject существует (docs.microsoft. com / en-us / Dynamics365 / customer-Engagement /), поэтому имя вашего веб-ресурса должно быть неправильным. Смотрите мое редактирование - person jasonscript; 16.01.2019

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

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

Проблема с GitHub

person Arun Vinoth    schedule 19.02.2020