Xrm.Navigation.openForm не поддерживает formid в унифицированном интерфейсе

Я использовал технику в следующем посте:

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

который прекрасно работает в классическом интерфейсе.

Я обновил свой JavaScript до следующего:

function OpenSpecificForm(primaryControl)
    {
        const FORMID = "A696976B-EA8A-42F3-B4DC-F35DC9204D58";                      

        var formContext       = primaryControl;
        var parameters        = { formid: FORMID };
        var entityFormOptions = {};
        entityFormOptions["entityName"] = "new_entity_name";

        var recordId = formContext.data.entity.getId();                    
        var recordName   = formContext.getAttribute("new_name").getValue();    

        if (recordId != null)   { parameters["new_targetentityfieldid"] = recordId; }
        if (recordName != null) { parameters["new_targetentityfieldname"] = recordName; }

        Xrm.Navigation.openForm(entityFormOptions, parameters);
    }

и установите ленточный верстак следующим образом:

Crm Параметр

Этот код продолжает работать, как и ожидалось, в классическом пользовательском интерфейсе, но, похоже, не работает в новом унифицированном интерфейсе. Форма сущности открывается, но открывается последняя, ​​которую CRM запоминает, а НЕ та, которую я указал в formId.

Кому-нибудь удалось открыть конкретную форму в новом интерфейсе?

1 ответ

Я вижу пару потенциальных проблем с вашим кодом.

Первый связан с тем, как генерируется контекст формы, потому что его действительно нужно получить с помощью метода getFormContext ( документация кажется неправильной) из primaryControl объект:

var formContext = primaryControl.getFormContext();

Второй параметр - это имя параметра formId, которое в соответствии с документацией должно быть написано заглавными буквами I. Это может не быть проблемой, но помните, что спецификация json гласит следующее:

Все имена членов, которыми обмениваются между Клиентом и Сервером и которые рассматриваются для сопоставления любого рода, должны рассматриваться с учетом регистра. Термины функция, метод и процедура могут считаться взаимозаменяемыми.

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