2011-10-17 16 views
2

私はRegisteredUserとRegisteredApplicationというエンティティを持っています。 RegisteredUserには、RegisteredApplicationエンティティを対象とするルックアップを使用して作成されたnew_applicationidという必須フィールドがあります。JSを使って特定のエンティティを取得する

したがって、CRMのフォームを使用して新しいユーザーを作成する場合、ルックアップをクリックして、関連するアプリケーションを見つけて、OKをクリックする必要があります。

私の問題は、現在のところ1つの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 Designer そしてMSDN article on using OData with MSCRM

をチェックしてください。

+0

いいですね。確かめます。 – dlarkin77

+1

それがうまくいけば、同様の問題を抱えている他の人々を助けるために回答をマークしてください。 – glosrob

+0

それは魅力的なように機能しました! – dlarkin77

関連する問題