在我的报价表格中,用户将输入潜在客户'完成后,我希望能够从帐户表单中检索从选项集中选择的选项,并将文本放入引号形式的文本字段中。
到目前为止,我有以下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导致错误,因为它不再受支持
有没有人知道解决方法?
答案 0 :(得分:1)
使用XPathEvaluator和IE特定的XML函数(如selectSingleNode)的另一种方法是使用jQuery的XML选择器,XrmServiceToolkit使用它。请参阅以下链接。
答案 1 :(得分:0)
官方SDK.Metadata.js库中没有RetrieveEntityAsync()函数。你自己写的吗?或者从某个地方在线获取该库?
无论哪种方式,只需调用标准的SDK.Metadata.RetrieveEntity()函数,它是异步的,它在IE中运行良好。
此外,如果您在全局声明entityLogicalName和RetrieveAttributeName,那么您不需要将它们传递给onSucess方法,它们已经可以在那里使用。