【问题标题】:Using JS to get a particular entity使用JS获取特定实体
【发布时间】:2011-10-17 13:44:27
【问题描述】:

我有名为 RegisteredUser 和 RegisteredApplication 的实体。 RegisteredUser 有一个名为 new_applicationid 的必填字段,该字段使用针对 RegisteredApplication 实体的查找填充。

因此,当我在 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
}

谁能建议我如何处理这样的事情?

【问题讨论】:

    标签: dynamics-crm-2011


    【解决方案1】:

    这样的事情会起作用

    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

    我会让你实现足够的空/未定义检查。

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 2021-01-18
      • 2022-09-27
      相关资源
      最近更新 更多