,我想這可能是一個有用的例子。 在javascript函數中,我需要檢索所有Subject實體記錄並將它們緩存在客戶端上。 我也需要將它們緩存在它們的層次中。 我想做到這一點的最好辦法是與它的ID和父ID返回每個主題記錄,這樣我就可以在JavaScript建立一個客戶端結構。Dynamics CRM中2011檢索目前,我正在學習CRM 2011年,它的工作,而所有科目
有誰與CRM的經驗有什麼建議,如何這應該爲查詢編碼?我對處理數據很滿意,只是不知道如何返回我需要的結果!
感謝
,我想這可能是一個有用的例子。 在javascript函數中,我需要檢索所有Subject實體記錄並將它們緩存在客戶端上。 我也需要將它們緩存在它們的層次中。 我想做到這一點的最好辦法是與它的ID和父ID返回每個主題記錄,這樣我就可以在JavaScript建立一個客戶端結構。Dynamics CRM中2011檢索目前,我正在學習CRM 2011年,它的工作,而所有科目
有誰與CRM的經驗有什麼建議,如何這應該爲查詢編碼?我對處理數據很滿意,只是不知道如何返回我需要的結果!
感謝
你的答案很可能有效,但TBH有太多的點擊我。
這是我如何做它到底。 cacheSubjects的主要功能是:
var sgc_subjectCache = [];
var sgc_subjectCacheCount = 0;
function cacheSubjectsCallback(data) {
// update subjects
// loop through retrieved subjects and add to cache
for(i=0; i < data.length; i++)
{
var subject = data[i];
subject.Root = subject.Title;
// var subjectid = subject.SubjectId;
sgc_subjectCache.push(subject);
sgc_subjectCacheCount += 1;
}
}
function cacheSubjectsComplete() {
// now update title with ancestors
var done = false;
while(done==false)
{
done = true;
// outer loop
var len = sgc_subjectCache.length;
for(var i=0; i < len-1; i++)
{
subject = sgc_subjectCache[ i ];
// inner loop
for(var j=0; j < len-1; j++)
{
subject2 = sgc_subjectCache[ j ];
if(subject.ParentSubject.Id === subject2.SubjectId)
{
// found the parent
var newTitle = subject2.Title + ' : ' + subject.Title;
sgc_subjectCache[ i ].Title = newTitle;
sgc_subjectCache[ i ].Root = subject2.Root;
sgc_subjectCache[ i ].ParentSubject.Id = subject2.ParentSubject.Id;
done = false; // more to do
}
}
}
}
}
function cacheSubjects() {
sgc_subjectCache = [];
var options = "$select=Title,SubjectId,ParentSubject";
SDK.REST.retrieveMultipleRecords("Subject", options, cacheSubjectsCallback, function(error) {
alert(error);
}, cacheSubjectsComplete);
}
我使用OData服務發現是回到您在客戶端的JavaScript需要信息的最佳方式:CRM 2011, Getting started with OData。
並配有位研究到$選擇和$擴展語法,你可以返回的關係是你需要。 – glosrob