Xrm.Navigation.openForm не соблюдает formid

Я пытаюсь следовать приведенным здесь примерам, которые объясняют, как использовать Xrm.Navigation.openForm способ открыть форму CRM для новой сущности.

Моя целевая сущность имеет несколько форм, и я пытаюсь указать идентификатор формы в entityFormOptions объект, как описано в ссылке выше. Я скопировал соответствующий текст здесь (с соответствующей строкой, выделенной жирным шрифтом):

entityFormOptions

Параметры формы сущности для открытия формы. Объект содержит следующие атрибуты:

  • cmdbar: (необязательно) логическое значение. Указывает, отображать ли панель команд. Если этот параметр не указан, панель команд отображается по умолчанию.
  • createFromEntity: (необязательно) поиск. Обозначает запись, которая будет предоставлять значения по умолчанию на основе сопоставленных значений атрибута. Объект поиска имеет следующие свойства String: entityType, id и name (необязательно).
  • entityId: (Необязательно) Строка. Идентификатор записи объекта для отображения формы.
  • entityName: (Необязательно) Строка. Логическое имя объекта для отображения формы.
  • formId: (Необязательно) Строка. Идентификатор экземпляра формы для отображения.
  • высота: (необязательно) номер. Высота окна формы для отображения в пикселях.
  • navBar: (необязательно) строка. Определяет, отображается ли панель навигации и доступна ли навигация приложения с использованием областей и подрайонов, определенных в карте сайта. Допустимые значения: "on", "off" или "entity".

Однако это не похоже на работу для меня. Идентификатор моей формы 375DE297-C0AF-4711-A811-5F1663FAE5DA

Вот мой код:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["formId"] = "375DE297-C0AF-4711-A811-5F1663FAE5DA";
Xrm.Navigation.openForm(entityFormOptions);

Откроется новая форма объекта; однако он использует форму по умолчанию, а не указанную форму.

Я работаю системным администратором, и я подтвердил, что у меня есть доступ ко всем формам для указанной сущности, поэтому я не думаю, что это проблема безопасности формы.

Кто-нибудь пробовал этот метод открытия форм в Dynamics 365?

3 ответа

Решение

Это похоже на ошибку в документации или ошибку в динамике.

Предыдущая реализация (v8 и ранее) принимала форму в объекте параметров: https://msdn.microsoft.com/en-us/library/jj602956.aspx

Хотя в текущей документации говорится, что formId должен быть установлен в entityFormOptions, на самом деле это не соблюдается. Но это честь, когда вы помещаете его в старый добрый formParameters.

Таким образом, это делает трюк:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
var formParameters = {};
formParameters ["formid"] = "375DE297-C0AF-4711-A811-5F1663FAE5DA";
Xrm.Navigation.openForm(entityFormOptions, formParameters);

PS Обратите внимание, что строчные "formid".

Это может быть немного поздно, но, надеюсь, поможет кому-то другому.

Документация верна. Вы можете указать formId, как показано. Вам нужно только убедиться, что форма добавлена ​​в приложение на основе модели в конструкторе приложений (вы добавляете форму, проверяя ее на панели справа)

      var pageInput = {
    pageType: "entityrecord",
    entityName:"icon_case",
    entityId: recordId,
    formId: v_formId
    };

Мы также можем использовать приведенный ниже код, чтобы открыть конкретную форму сущности:

var entityFormOptions = {};
entityFormOptions["entityName"] = "nrw_contact";//Logical name of the entity
entityFormOptions["entityId"] = "nrw_contact_ID"; //ID of the entity record
entityFormOptions["formId"] = "CF8D885B-256D-43E6-8776-CBBB7AA88EF5"; //FormId
Xrm.Navigation.openForm(entityFormOptions);

Пожалуйста, обратитесь по этой ссылке для получения дополнительной информации: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-navigation/openform

Другие вопросы по тегам