Обновить поле поиска с помощью SOAP - PullRequest
1 голос
/ 28 сентября 2011

Я использую классы PHP SOAP CRUD, представленные в учебных курсах для разработчиков CRM 2011.

Подпрограммы работают нормально для стандартного чтения, создания и обновления.Однако я не могу понять, как определить атрибут GUID, например, если я хочу обновить LeadSourceid в контакте.Определение ниже.Результат не является ошибкой - он просто не завершает обновление.

    $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 Ответ

1 голос
/ 23 июля 2013

Чтобы обновить значение поиска в SOAP, вам нужно использовать Entity Reference. Следующее обновляет владельца записи, например.

<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>
...