CRM4.0多个实体关联查询
C#代码实现如下
LinkEntity link = new LinkEntity(); link.LinkFromEntityName = "new_ddxy"; link.LinkFromAttributeName = "new_salesorder"; link.LinkToEntityName = "salesorder"; link.LinkToAttributeName = "salesorderid"; ConditionExpression cond = new ConditionExpression(); cond.AttributeName = "ordernumber"; cond.Operator = ConditionOperator.Equal; cond.Values = new string[] { "ORD-04412-708MJ0" }; FilterExpression filter = new FilterExpression(); filter.Conditions = new ConditionExpression[] { cond }; filter.FilterOperator = LogicalOperator.And; link.JoinOperator = JoinOperator.Inner; link.LinkCriteria = filter; LinkEntity link2 = new LinkEntity(); link2.LinkFromEntityName = "new_ddxy"; link2.LinkFromAttributeName = "new_productpricelevel_kz"; link2.LinkToEntityName = "new_productpricelevel_kz"; link2.LinkToAttributeName = "new_productpricelevel_kzid"; ConditionExpression cond2 = new ConditionExpression(); cond2.AttributeName = "new_sftb"; cond2.Operator = ConditionOperator.Equal; cond2.Values = new object[] { true }; link2.JoinOperator = JoinOperator.Inner; FilterExpression filter2 = new FilterExpression(); filter2.FilterOperator = LogicalOperator.And; filter2.Conditions = new ConditionExpression[] { cond2 }; link2.LinkCriteria = filter2; QueryExpression query = new QueryExpression(); query.EntityName = "new_ddxy"; query.ColumnSet = new AllColumns(); query.LinkEntities = new LinkEntity[] { link, link2 }; BusinessEntityCollection entities = (BusinessEntityCollection)service.RetrieveMultiple(query);
//********************开始查询***************** 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\">" + " <soap:Header>" + " <CrmAuthenticationToken xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" + " <AuthenticationType xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">0</AuthenticationType>" + " <OrganizationName xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">SZYQ</OrganizationName>" + " <CallerId xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">00000000-0000-0000-0000-000000000000</CallerId>" + " </CrmAuthenticationToken>" + " </soap:Header>" + " <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>new_ddxy</q1:EntityName>" + " <q1:ColumnSet xsi:type=\"q1:AllColumns\" />" + " <q1:Distinct>false</q1:Distinct>" + " <q1:LinkEntities>" + " <q1:LinkEntity>" + " <q1:LinkFromAttributeName>new_salesorder</q1:LinkFromAttributeName>" + " <q1:LinkFromEntityName>new_ddxy</q1:LinkFromEntityName>" + " <q1:LinkToEntityName>salesorder</q1:LinkToEntityName>" + " <q1:LinkToAttributeName>salesorderid</q1:LinkToAttributeName>" + " <q1:JoinOperator>Inner</q1:JoinOperator>" + " <q1:LinkCriteria>" + " <q1:FilterOperator>And</q1:FilterOperator>" + " <q1:Conditions>" + " <q1:Condition>" + " <q1:AttributeName>ordernumber</q1:AttributeName>" + " <q1:Operator>Equal</q1:Operator>" + " <q1:Values>" + " <q1:Value xsi:type=\"xsd:string\">ORD-04412-708MJ0</q1:Value>" + " </q1:Values>" + " </q1:Condition>" + " </q1:Conditions>" + " </q1:LinkCriteria>" + " </q1:LinkEntity>" + " <q1:LinkEntity>" + " <q1:LinkFromAttributeName>new_productpricelevel_kz</q1:LinkFromAttributeName>" + " <q1:LinkFromEntityName>new_ddxy</q1:LinkFromEntityName>" + " <q1:LinkToEntityName>new_productpricelevel_kz</q1:LinkToEntityName>" + " <q1:LinkToAttributeName>new_productpricelevel_kzid</q1:LinkToAttributeName>" + " <q1:JoinOperator>Inner</q1:JoinOperator>" + " <q1:LinkCriteria>" + " <q1:FilterOperator>And</q1:FilterOperator>" + " <q1:Conditions>" + " <q1:Condition>" + " <q1:AttributeName>new_sftb</q1:AttributeName>" + " <q1:Operator>Equal</q1:Operator>" + " <q1:Values>" + " <q1:Value xsi:type=\"xsd:boolean\">true</q1:Value>" + " </q1:Values>" + " </q1:Condition>" + " </q1:Conditions>" + " </q1:LinkCriteria>" + " </q1:LinkEntity>" + " </q1:LinkEntities>" + " </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; alert(resultXml.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"> <soap:Body> <RetrieveMultipleResponse xmlns="http://schemas.microsoft.com/crm/2007/WebServices"> <RetrieveMultipleResult EntityName="new_ddxy" MoreRecords="0" PagingCookie=""> <BusinessEntities xmlns="http://schemas.microsoft.com/crm/2006/WebServices"> <BusinessEntity xmlns:q1="http://schemas.microsoft.com/crm/2007/WebServices" xsi:type="q1:new_ddxy"> <q1:statecode formattedvalue="可用">Active</q1:statecode> <q1:new_cklsxx name="否">0</q1:new_cklsxx> <q1:new_productpricelevel_kz name="网上申报(一年)" dsc="0">{200754BD-2390-DF11-8C10-000C29C44AE5}</q1:new_productpricelevel_kz> <q1:createdon date="2010-7-27" time="14:56">2010-07-27T14:56:59+08:00</q1:createdon> <q1:new_yxbz name="否">0</q1:new_yxbz> <q1:new_tbyxq name="否">0</q1:new_tbyxq> <q1:new_yxqz date="2010-7-13" time="0:00">2010-07-13T00:00:00+08:00</q1:new_yxqz> <q1:new_ddxyid>{CCC8A526-4C99-DF11-9F44-000C29C44AE5}</q1:new_ddxyid> <q1:new_yxqq date="2010-7-21" time="0:00">2010-07-21T00:00:00+08:00</q1:new_yxqq> <q1:ownerid name="CRM系统定制员" dsc="0" type="systemuser">{35F91B00-7B64-DF11-BEB9-000C29692715}</q1:ownerid> <q1:modifiedon date="2010-7-27" time="16:35">2010-07-27T16:35:59+08:00</q1:modifiedon> <q1:statuscode name="可用">1</q1:statuscode> <q1:new_name>2101140000001866264L</q1:new_name> <q1:timezoneruleversionnumber formattedvalue="0">0</q1:timezoneruleversionnumber> <q1:modifiedby dsc="0" name="SYSTEM">{AD97F2C4-DDD5-41B2-8D59-359ED8DE1598}</q1:modifiedby> <q1:owningbusinessunit>{A02CA4E9-315B-DF11-9A5A-000C29692715}</q1:owningbusinessunit> <q1:new_fwbh>90000000000001265744</q1:new_fwbh> <q1:new_sfqetk name="否">0</q1:new_sfqetk> <q1:createdby name="SYSTEM" dsc="0">{AD97F2C4-DDD5-41B2-8D59-359ED8DE1598}</q1:createdby> <q1:new_salesorder name="陈刚" dsc="0">{8C9C6320-4C99-DF11-9F44-000C29C44AE5}</q1:new_salesorder> <q1:new_sftb name="否">0</q1:new_sftb> </BusinessEntity> </BusinessEntities> </RetrieveMultipleResult> </RetrieveMultipleResponse> </soap:Body> </soap:Envelope>
posted on 2010-07-27 17:17 HelloHongfu 阅读(571) 评论(0) 编辑 收藏 举报