2011-10-17 65 views
2

我有實體叫做RegisteredUser和RegisteredApplication。 RegisteredUser具有一個名爲new_applicationid的必填字段,該字段使用以RegisteredApplication實體爲目標的Lookup進行填充。使用JS獲取特定的實體

因此,當我使用CRM中的表單創建新用戶時,我必須單擊查找,找到相關應用程序,然後單擊確定。

我的問題是:目前只有一個RegisteredApplication,我希望在表單加載時預先填充Lookup。

我想我在尋找沿

function FormLoad() 
{ 
    var app = GetApplications()[0]; 

    //Set a lookup value 
    var value = new Array(); 
    value[0] = new Object(); 
    value[0].id = app.id;        // is this right? 
    value[0].name = app.name;       // is this right? 
    value[0].entityType = "new_registeredapplication"; // is this right? 

    Xrm.Page.getAttribute("new_applicationid").setValue(value); 
} 

function GetApplications() 
{ 
    // what do I need to do in here to get a list of 
    // all the registered applications 
} 

線的東西任何人都可以建議如何我可能接近這樣的事情?

回答

2

像這樣的工作

function FormLoad() { 
    //could use OData here 
    var url = Xrm.Page.context.getServerUrl() + '/XRMServices/2011/organizationData.svc/RegisteredApplicationSet'; 
    var request = new XMLHttpRequest(); 
    request.open("GET", serverUrl, true); 
    request.setRequestHeader("Accept", "application/json"); 
    request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
    request.onreadystatechange = function() { 
     RequestComplete(request); 
    } 
    request.send(); 
} 

function RequestComplete(request) { 
    if (request.readyState == 4 && request.status == 200) { 
     //parse out first result from returned results 
     var results = JSON.parse(request.responseText); 
     //we could use logic to select partic result here, for now just choose first one 
     var selectedApp = results.d.results[0]; 

     //Set a lookup value 
     var value = new Array(); 
     value[0] = new Object(); 
     value[0].id = selectedApp.new_registeredapplicationid;//guid of entity here        
     value[0].name = selectedApp.new_name;//display property here 
     value[0].type = <objecttypecode of entity here>; 
     Xrm.Page.getAttribute("new_applicationid").setValue(value); 
    } 
} 

有關使用OData的這裏的好處是,你可以實現的邏輯來選擇當/如果你有一個以上的特定RegisteredApplication。

退房的OData Query DesignerMSDN article on using OData with MSCRM

我將離開你實現足夠的空/未定義檢查。

+0

看起來不錯。我會檢查出來的。 – dlarkin77

+1

如果有效,請將答案標記爲可接受,以幫助其他遇到類似問題的人 – glosrob

+0

這就像一個魅力! – dlarkin77

相關問題