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