#dynamics-crm-online #webresource
#dynamics-crm-online #webresource
Вопрос:
Я пытаюсь открыть форму быстрого создания объекта из веб-ресурса HTML из навигации по объекту. Для начала я использую Xrm.Utility.openQuickCreate(«entityname», null, null).
Я получаю сообщение об ошибке, в котором говорится, что JQueryApi не определен в консоли браузера.
Однако другие функции, такие как Xrm.Utility.openEntityForm и Xrm.Utility.isActivityType(entityname) действительно работает.
Есть предложения? Спасибо.
Комментарии:
1. Однако это отлично работает с использованием формы сущности.
Ответ №1:
Попробуйте зайти в родительскую форму, чтобы вызвать метод: parent.Xrm.openQuickCreate("entityname", null, null)
Комментарии:
1. Да, это может сработать. Я еще не пробовал. На самом деле я не хотел использовать parent, поскольку он не поддерживается.
2. Доступ к API Xrm с веб-ресурса через родительский ресурс определенно поддерживается (если они недавно не изменили руководство). Если вы попытались связаться с родительским сервером, а затем изменить DOM или получить доступ к недокументированной части API, это не будет поддерживаться.
Ответ №2:
@Polshgiant — Спасибо! У меня была именно эта проблема, и, хотя я правильно ссылался на идентификатор родительского объекта, я не сделал то же самое для вызова openQuickCreate . Жаль, что я не нашел этот ответ 10 часов назад. Вот мой полный код, на случай, если он кому-то понадобится (или может предложить предложения по его улучшению):
function YOURFUNCTIONNAME() {
var parentContact = {
entityType: "contact",
id: window.parent.Xrm.Page.data.entity.getId().substring(1, 37)
};
// You can set parameters here to pre-fill the form; I haven't
var parameters = {
};
parent.Xrm.Utility.openQuickCreate("YOURLOGICALENTITYNAME", parentContact, parameters)
.then(function(lookup) { successCallback(lookup); }, function(error) { errorCallback(error); });
function successCallback(lookup) {
alert("lookup: " lookup.savedEntityReference.id);
alert("lookup: " lookup.savedEntityReference.name);
}
function errorCallback(e) {
alert("Error: " e.errorCode " " e.message);
}
}