根据关系 1:N 检索其他实体的记录
Retrieve the records of the other entities based on relation 1:N
下面的代码有助于从帐户实体的查找cs24_erpaccounttomergeid
检索数据到我们刚刚创建的帐户。我的问题是 如何根据与同一查找cs24_erpaccounttomergeid
相关的关系 1:N 检索其他实体的记录?
if (crmForm.all.cs24_erpaccounttomergeid.DataValue != null)
{
var l = crmForm.GetLookup('cs24_erpaccounttomergeid');
var ERPS = GetERPSourceName(l.id);
if (ERPS == null)
{
crmForm.all.cs24_erpaccounttomergeid.DataValue = null;
}
}
// ERP SrourceName retrieve ==============
function GetERPSourceName(Act) {
var xml = "" +
"<?xml version='"1.0'" encoding='"utf-8'"?>" +
"<soap:Envelope xmlns:soap='"http://schemas.xmlsoap.org/soap/envelope/'" xmlns:xsi='"http://www.w3.org/2001/XMLSchema-instance'" xmlns:xsd='"http://www.w3.org/2001/XMLSchema'">" +
GenerateAuthenticationHeader() +
"<soap:Body>" +
"<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
"<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query'" +
" xsi:type='q1:QueryExpression'>" +
"<q1:EntityName>account</q1:EntityName>" +
"<q1:ColumnSet xsi:type='q1:ColumnSet'>" +
"<q1:Attributes>" +
"<q1:Attribute>cs_erpsourcename</q1:Attribute>" +
"</q1:Attributes>" +
"</q1:ColumnSet>" +
"<q1:Distinct>false</q1:Distinct>" +
"<q1:Criteria>" +
"<q1:FilterOperator>And</q1:FilterOperator>" +
"<q1:Conditions>" +
"<q1:Condition>" +
"<q1:AttributeName>accountid</q1:AttributeName>" +
"<q1:Operator>Equal</q1:Operator>" +
"<q1:Values>" +
"<q1:Value xsi:type='xsd:string'>" + Act + "</q1:Value>" +
"</q1:Values>" +
"</q1:Condition>" +
"</q1:Conditions>" +
"</q1:Criteria>" +
"</query>" +
"</RetrieveMultiple>" +
"</soap:Body>" +
"</soap:Envelope>" +
"";
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction", " http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
var Request = resultXml.getElementsByTagName("BusinessEntity");
if (Request.length == 0) return null;
else
{
if (Request[0].getElementsByTagName("q1:cs_erpsourcename")[0] != null)
{
var ERPSourceName = resultXml.selectNodes("//BusinessEntity/q1:cs_erpsourcename");
return ERPSourceName[0].text;
}
else return null;
}
}
有人可以帮我实现这一目标吗!?谢谢你的时间
我建议首先迁移您的代码以使用公共库来生成 XML 请求。XrmServiceToolkit 是一个常用的工具包。一旦你使用它,做一个RetrieveMultiple调用就简单多了。
https://xrmservicetoolkit.codeplex.com/
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- 根据关系 1:N 检索其他实体的记录
- 如何使用实体键(或其他对象)从html javascript调用
- 依靠其他实体在微风中创建实体
- 在一个具有规范化状态的React / Redux应用中,如何以及在哪里解析对其他实体的引用
- Prototype.js或其他js函数来解码html实体
- Symfony2表单实体添加其他选项