Xrm.Page.getControl () не работает в центре продаж Dynamics 365 - PullRequest
0 голосов
/ 15 января 2019

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

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

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

1 Ответ

0 голосов
/ 15 января 2019

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_"

Например:

enter image description here

...