Dynamic CRM 2011 SOAP RetrieveMultiple xml,用于从两个表中查询

时间:2015-04-17 14:49:56

标签: soap dynamics-crm-2011

我被Dynamics CRM 2011困住了。我想创建SOAP RetrieveMultiple xml,它将使用基于外键的内部联接从两个不同的表中获取数据。

我尝试了很多方法但却无法取得成功。

对于我的场景,我们假设表A和B在那里。 A - (id,name,address_id) B - (srno,address_id,area,city,zip)

现在,我想从表A和表中获取详细信息。 B基于以下查询,

选择A.id,A.name,B.area,B.city,B.zip 来自A. INNER JOIN B ON A.address_id = B.address_id

我对Dynamics CRM 2011完全陌生。

如果你能分享一些有价值的例子,那就太棒了。

提前致谢。

我的SOAP XML

<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
    <s:Body>
        <RetrieveMultiple xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <query i:type='a:QueryExpression' xmlns:a='http://schemas.microsoft.com/xrm/2011/Contracts'>
                <a:EntityName>A</a:EntityName>
                <a:ColumnSet>
                    <a:AllColumns>false</a:AllColumns>
                    <a:Columns xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>
                        <b:string>name</b:string>
                        <b:string>area</b:string>
                        <b:string>city</b:string>
                        <b:string>zip</b:string>
                    </a:Columns>
                </a:ColumnSet>
                <a:Distinct>address_id</a:Distinct>

                <a:LinkEntities>
                    <a:LinkEntity>
                        <a:LinkFromAttributeName>address_id</a:LinkFromAttributeName>
                        <a:LinkFromEntityName>A</a:LinkFromEntityName>
                        <a:LinkToEntityName>B</a:LinkToEntityName>
                        <a:LinkToAttributeName>address_id</a:LinkToAttributeName>
                        <a:JoinOperator>Inner</a:JoinOperator>
                        <a:LinkCriteria>
                            <a:FilterOperator>And</a:FilterOperator>
                            <a:Conditions>
                                <a:Condition>           
                                    <a:AttributeName>address_id</a:AttributeName>
                                    <a:Operator>Equal</a:Operator>
                                    <a:Values>
                                        <a:Value xsi:type="xsd:string">123454</q1:Value>
                                    </a:Values>
                                </a:Condition>
                            </a:Conditions>
                        </a:LinkCriteria>
                    </a:LinkEntity>
                </a:LinkEntities>
            </query>
        </RetrieveMultiple>
    </s:Body>
</s:Envelope>

此致 Ashish Mishra

1 个答案:

答案 0 :(得分:0)

您只能在相关实体(1:N),where a.Id = b.aId之间进行内部联接,您需要从该地址检索记录,并从该地址检索B记录。