【问题标题】:CRM 2011 Retrieving lookupCRM 2011 检索查找
【发布时间】:2013-10-31 15:00:41
【问题描述】:

我是 CRM 开发的新手。我知道一个基本的东西,比如“crm 2011 的最佳实践” 我现在想了解如何使用查找字段。而且我认为我为自己选择了最简单的方法。

我有一个服装实体“合同”,它还有 5 个字段,其中 2 个是查找。 第一次查找 (agl_contractId) - 它本身就是一个链接 第二次查找 (agl_ClientId) - 链接到客户端。

我需要什么?

当我选择填写 First lookup (agl_contractId) 时,脚本应该在此合同中找到一个客户并将其复制粘贴到当前表单中。

我已经完成了脚本,但它不起作用......(((

    function GetAccountFromContract()
{
    XrmServiceToolkit.Rest.Retrieve(Xrm.Page.getAttribute("agl_osnovnoy_dogovorid").getValue(),
       'agl_osnovnoy_dogovoridSet',
       null,null,
       function (result) {
           var Id = Xrm.Page.getAttribute("agl_osnovnoy_dogovorid").getValue();

           if (result.Id != null) {
               var LookupData = new Array();
               var LookupItem = new Object();
               var lookuptextvalue = lookupvalue[0].name;
               var lookupid = lookupvalue[0].id;
               var lokupType = lookupvalue[0].entityType;

               alert(lookupvalue);
               alert(lookupData);

               Xrm.Page.getAttribute("agl_accountid").setValue(lookupData);
           }
       },
            function (error) {
                equal(true, false, error.message);
            },
                    false
       );
  }

【问题讨论】:

    标签: dynamics-crm-2011 crm lookup trygetvalue


    【解决方案1】:

    如果我理解您的话:当您在 agl_osnovnoy_dogovorid 字段中选择合同时,您想从该合同中提取客户端属性并将其放入 agl_accountid 字段中?

    如果是这样的话:

    首先,获取所选合同的 ID(来自 agl_osnovnoy_dogovorid 字段)

    var selectedContract = new Array(); 
    selectedContract = Xrm.Page.getAttribute("agl_osnovnoy_dogovorid").getValue();
    {
         var guidSelectedContract = selectedContract[0].id; 
         //var name = selectedContract[0].name;     
         //var entType = selectedContract[0].entityType;
    }
    

    其次,从 agl_osnovnoy_dogovorid 检索客户端。您的 oData 查询将如下所示:

    http://crmserver/org/XRMServices/2011/OrganizationData.svc/ContractSet(guid'" + guidSelectedContract + "')/CustomerId
    

    (在示例中,我使用 CustomerId 字段。对于您的情况,请输入 客户字段的架构名称)。 现在,执行查询并将结果放入 agl_accountid 字段:

    $.getJSON(
    Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/ContractSet(guid'" + guidSelectedContract + "')/CustomerId", 
    function(data){
    if(data.d.CustomerId != null && data.d.CustomerId.Id != null && data.d.CustomerId.Id != "undefined")
    {
         //set agl_accountid field
         Xrm.Page.getAttribute("agl_accountid").setValue([{id:data.d.CustomerId.Id, name:data.d.CustomerId.Name, typename:data.d.CustomerId.LogicalName}]);
    }
    });
    

    【讨论】:

      【解决方案2】:

      您使用 REST 检索数据但也使用 FetchXml 示例设置 agl_accoutid 查找。 还有一些条件不清楚……无论如何……我已将更改合并到您的原始帖子中。

      function GetAccountFromContract()
      {
          var aodLookupValue = Xrm.Page.getAttribute("agl_osnovnoy_dogovorid").getValue();
          if (!aodLookupValue) return; 
      
          XrmServiceToolkit.Rest.Retrieve( aodLookupValue[0].id ,
             'agl_osnovnoy_dogovoridSet', null,null,
             function (result) {
                 var customer = result.d["your attribute name"];     
                 if (customer) {
      
                     var LookupData = new Array();
                     var LookupItem = new Object();
                     var lookuptextvalue = customer.Name;
                     var lookupid = customer.Id;
                     var lokupType = customer.LogicalName;
      
                     alert(lookupvalue);
                     alert(lookupData);
      
                     Xrm.Page.getAttribute("agl_accountid").setValue(lookupData);
                 }
             },
             function (error) {
                      equal(true, false, error.message);
             }, false );
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多