У меня есть от 4 до 5 пользовательских объектов с одной формой. Будет определенный прогресс от одной формы к другой, например, первая сущность «Экран бронирования» имеет одну форму, после ее заполнения пользователь перейдет к следующему объекту и заполнит его форму, а затем и так далее.Как автоматически заполнить поле в форме на основе уникального значения и значений из другой формы
Я хочу, чтобы форма обработки получала некоторую информацию на основе ранее заполненных форм, которые будут загружены на основе номера бронирования, который будет назначен на первом экране бронирования.
Например Форма заказа Экран имеет:
Имя, фамилия, номер брони (уникальный идентификатор) и другую информация ... Я хотел бы следующую форму, чтобы иметь возможность ввести уникальный идентификатор и затем автоматически заполнить поля имени или другую информацию из первой формы.
Мы можем либо сделать это с помощью рабочего процесса или скрипта java? Я бы предпочел использовать java-скрипт, поскольку рабочие процессы асинхронны.
Как я могу это сделать?
Используя вышеуказанные библиотеки и некоторый поиск я пришел с этим
function retrieveRecord(id, odataSetName, successCallback, errorCallback) {
var context = Xrm.Page.context;
var serverUrl = context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
//Asynchronous AJAX function to Retrieve a CRM record using OData
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "(guid'" + id + "')",
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
if (successCallback) {
successCallback(data.d, textStatus, XmlHttpRequest);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (errorCallback)
errorCallback(XmlHttpRequest, textStatus, errorThrown);
else
errorHandler(XmlHttpRequest, textStatus, errorThrown);
}
});
}
Но это только способ установить вызов извлечения правильно?
Я добавил json2 и Jquery 1.4.1.min библиотеку.
Теперь я добавил это в свое событие ONLOAD формы, которую хочу заполнить. Я хочу, чтобы при добавлении номера бронирования в мою форму (это будет происходить на событии ON CHANGE в текстовом поле, которое, я думаю), оно должно получить имя, фамилию, второе имя, SSN # из основной формы, т.е. экран бронирования ..
Как это сделать?
мой окончательный код, но он не устанавливает каких-либо значений по полям формы функции getContactDetails() { вар lookUpObjectValue = Xrm.Page.getAttribute ("inmate_lookupbookingscree") ПолучитьЗначение(). if ((lookUpObjectValue! = Null)) { var lookuptextvalue = lookUpObjectValue [0] .name;
var lookupid = lookUpObjectValue[0].id;
//alert(lookupid);
var serverUrl = Xrm.Page.context.getServerUrl();
//The XRM OData end-point
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
//var odataSetName = "ContactSet";
var odataSelect = serverUrl + ODATA_ENDPOINT + "/" + "(guid'" + lookupid + "')";
//alert(odataSelect);
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataSelect,
beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
success: function (data, textStatus, XmlHttpRequest) {
var result_contact= data.d;
//alert(result_contact.AccountNumber);
//replace the fields with the fields on your entity
Xrm.Page.getAttribute("inmate_firstname").setValue(result_contact.inmate_firstname);
Xrm.Page.getAttribute("inmate_lastname").setValue(result_contact.inmate_lastname);
},
error: function (XmlHttpRequest, textStatus, errorThrown) { alert('OData Select Failed: ' + odataSelect); }
});
}
}
Похоже, у вас есть хорошее начало с вашим запросом отаты. Не заполняются ли поля вашего имени и фамилии? Кроме того, как предполагает Campey, вероятно, это приведет к более чистым дизайнам, если вы не включили имя и фамилию на первом экране, но вместо этого разрешили им выбирать/создавать контакт (вы могли бы даже создать настраиваемую форму контакта только для этого процесса). Вы не хотите, чтобы было возможно, чтобы имена были разными между 4-5 сущностями, которые у вас есть. – Daryl
Да, они не заселяются. Нет Мне нужны имена на экране бронирования (первый экран). Они будут прочитаны только в том виде, в котором я хочу быть автозаполненным. – hkhan
Серьезные ребята Мне нужна помощь, почему это не работает? !!! , и я уже использовал имя схемы здесь setValue (result_contact.inmate_FirstName); и он все еще не работает – hkhan