それぞれ 1 つのフォームを持つ 4 ~ 5 個のカスタム エンティティがあります。たとえば、最初のエンティティ「予約画面」には 1 つのフォームがあり、入力後、ユーザーは次のエンティティに移動し、そのフォームに入力し、次のフォームに入力します。
最初の予約画面で割り当てられる予約番号に基づいてアップロードされる前に入力されたフォームに基づいて、進行中のフォームにいくつかの情報を取得する必要があります。
たとえば、予約画面フォームには次のものがあります。
名、姓、予約番号 (一意の ID) およびその他の情報...次のフォームで一意の ID を入力し、最初のフォームから名前フィールドまたはその他の情報を自動入力するオプションが必要です。
ワークフローまたは 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 番号を取得する必要があります。 ..
どうすればいいですか?
私の最終的なコードですが、フォームフィールドに値を設定していません function getContactDetails() { var lookUpObjectValue = Xrm.Page.getAttribute("inmate_lookupbookingscree").getValue(); 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); }
});
}
}