使用SOAP更新查找字段

时间:2011-09-28 18:14:17

标签: php soap crud dynamics-crm-2011

我正在使用CRM 2011开发人员培训实验室中提供的PHP SOAP CRUD类。

例程适用于标准读取,创建和放大更新。但是,我无法弄清楚如何定义GUID属性,例如如果我想更新联系人中的leadourceid。定义如下。结果不是错误 - 它只是没有完成更新。

    $accountsRequest = EntityUtils::getUpdateCRMSoapHeader($CRMURL, $securityData).
        '<s:Body><Update xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services">
            <entity xmlns:b="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                <b:Attributes xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
                    <b:KeyValuePairOfstringanyType>
                        <c:key>originatingleadid</c:key>
                        <c:value i:type="d:guid" xmlns:d="http://schemas.microsoft.com/2003/10/Serialization/">a9cc53ae-266f-e011-8d6c-1cc1de72e35e</c:value>
                    </b:KeyValuePairOfstringanyType>
                </b:Attributes>
                <b:EntityState i:nil="true"/>
                <b:FormattedValues xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic"/>
                <b:Id>'.$contactId.'</b:Id>
                <b:LogicalName>contact</b:LogicalName>
                <b:RelatedEntities />
            </entity></Update>
        </s:Body>
    </s:Envelope>';

1 个答案:

答案 0 :(得分:1)

要更新SOAP中的查找值,您需要使用实体引用。例如,以下更新记录的所有者。

<a:KeyValuePairOfstringanyType>
   <b:key>ownerid</b:key>
    <b:value i:type="a:EntityReference">
       <a:Id>{6710C3A0-6EE9-E211-B17C-984BE16D3DAA}</a:Id>
       <a:LogicalName>systemuser</a:LogicalName>
       <a:Name i:nil="true" />
    </b:value>
</a:KeyValuePairOfstringanyType>