CRM-从另一个窗体检索选定的选项集



在我的报价表中,用户将输入"潜在客户"。完成此操作后,我希望能够从帐户表单中的选项集中检索已选择的选项,并将文本放入报价表中的文本字段中。

到目前为止,我有以下JS;

    var entityLogicalName= "account";
    var RetrieveAttributeName= "paymenttermscode";
    SDK.MetaData.RetrieveEntityAsync(SDK.MetaData.EntityFilters.Attributes,entityLogicalName, null, false,
    function (entityMetadata)
    {
      onSuccess(entityLogicalName, entityMetadata, RetrieveAttributeName); 
    }, 
    onError);

function onSuccess(logicalName, entityMetadata, RetrieveAttributeName)
{
 for(var i=0; i<entityMetadata.Attributes.length;i++)
 {
  var AttributeMetadata = entityMetadata.Attributes[i];
  if (success) break;
  if (AttributeMetadata.SchemaName.toLowerCase() ==RetrieveAttributeName.toLowerCase())
  {
    for (var o = 0; o<AttributeMetaData.OptionSet.Options.length; o++)
    {
      var option = AttributeMetadata.OptionSet.Options[o];
      if(option.OptionMetadata!=null&&option.OptionMetadata.Label!=null)
      {
        Xrm.Page.getAttribute("new_paymentterms").setValue(option.OptionMetadata.Label.UserLocalizedLabel.Label);
      break;
      }
    }
  }
 }
}
function onError(XmlHttpRequest,textStatus,errorThrown)
{
  alert(errorThrown);
}

然而,我不断收到一条错误消息,说明

无法获取未定义或空引用的属性RetrieveEntityAsync

这是因为我试图从另一个表单中检索数据吗?有人知道这个问题的解决方案吗,谢谢

更新

事实证明,当我使用Internet Explorer时,SDK.Metadata.js中的函数XPathEvaluator导致了一个错误,因为它不再支持

有人知道变通办法吗?

使用XPathEvaluator和IE特定XML函数(如selectSingleNode)的另一种选择是使用XrmServiceToolkit使用的jQuery的XML选择器。请参阅下面的链接。

https://xrmservicetoolkit.codeplex.com/

官方SDK.Metadata.js库中没有RetrieveEntityAsync()函数。你自己写的吗?或者从网上找图书馆?

无论哪种方式,只需调用标准的SDK.Metadata.ReviceEntity()函数,它是异步的,在IE.中工作得很好

此外,如果您全局声明entityLogicalName和RetrieveAttributeName,则不需要将它们传递给onSuccess方法,它们在那里已经可用。

最新更新