Dynamics CRM创建事件

时间:2016-04-15 08:03:37

标签: dynamics-crm-2011 dynamics-crm

我试图通过他们的API在Dynamics CRM上创建一个事件。

我尝试使用以下方法创建事件时成功进行了authing:

    $accountsRequest = EntityUtils::getCreateCRMSoapHeader($CRMURL, $securityData).
'
      <s:Body>
            <Create 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>title</c:key>
                        <c:value i:type="d:string" xmlns:d="http://www.w3.org/2001/XMLSchema">Its a sunday web case - second</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>'.$accountId.'</b:Id>
                <b:LogicalName>incident</b:LogicalName>
                <b:RelatedEntities xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic"/>
            </entity>
            </Create>
        </s:Body>
    </s:Envelope>
    ';

$accountId looks like this:
dabc10e9-df02-e611-80d9-5065f38a9b01

我收到以下错误:

  

您应该指定父联系人或帐户。-2147204080您应该   指定父联系人或   account.2016-04-15T07:59:11.6607106Z-2147204080你应该指定一个   家长联系或帐号.2016-04-15T07:59:11.6607106Z

我缺少什么想法?

编辑已更新并尝试了此操作:

'
      <s:Body>
            <Create 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>title</c:key>
                        <c:value i:type="d:string" xmlns:d="http://www.w3.org/2001/XMLSchema">Its a sunday web case - second</c:value>
                    </b:KeyValuePairOfstringanyType>
                    <b:KeyValuePairOfstringanyType>
                        <c:key>customerid</c:key>
                        <c:value i:type="d:string" xmlns:d="http://www.w3.org/2001/XMLSchema">19622e39-e502-e611-80da-5065f38ada41</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>00000000-0000-0000-0000-000000000000</b:Id>
                <b:LogicalName>incident</b:LogicalName>
                <b:RelatedEntities xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic"/>                    
            </entity>
            </Create>
        </s:Body>
    </s:Envelope>
    ';

但仍然是同样的错误

编辑#2,也尝试过:

'
      <s:Body>
            <Create 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>title</c:key>
                        <c:value i:type="d:string" xmlns:d="http://www.w3.org/2001/XMLSchema">Its a sunday web case - second</c:value>
                    </b:KeyValuePairOfstringanyType>
                    <b:KeyValuePairOfstringanyType>
                        <c:key>customerid</c:key>
                        <b:value i:type="a:EntityReference">
                           <a:Id>19622e39-e502-e611-80da-5065f38ada41</a:Id>
                           <a:LogicalName>account</a:LogicalName>
                           <a:Name i:nil="true" />
                        </b: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>00000000-0000-0000-0000-000000000000</b:Id>
                <b:LogicalName>incident</b:LogicalName>
                <b:RelatedEntities xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic"/>                    
            </entity>
            </Create>
        </s:Body>
    </s:Envelope>
    ';

我收到错误:

  

反序列化失败格式化程序在尝试时抛出异常   反序列化消息:尝试时出错   反序列化参数   http://schemas.microsoft.com/xrm/2011/Contracts/Services:entity。该   InnerException消息是'第68行第57位的错误。'EndElement'   来自命名空间的'KeyValuePairOfstringanyType'   不期望'http://schemas.microsoft.com/xrm/2011/Contracts'。   期待元素'价值'。'。有关更多信息,请参阅InnerException   的信息。

1 个答案:

答案 0 :(得分:1)

看起来您可能正在尝试将帐户ID值放入Id属性中。 Id属性是指事件的ID ...最好让CRM为您生成ID,因此不要为Id属性提供任何内容(除非您故意尝试设置新事件的ID)。 / p>

该错误指的是EntityReference类型的customerid属性。 EntityReferences具有Id和LogicalName属性。将您的$accountId值放入customerid.Id,并将customerid.LogicalName设为“account”。 EntityReferences也有Name属性,但您不必提供它。

您的编辑#2看起来可能有一些命名空间问题。试试这个:

<b:KeyValuePairOfstringanyType>
    <c:key>customerid</c:key>
    <c:value i:type="b:EntityReference">
       <b:Id>19622e39-e502-e611-80da-5065f38ada41</b:Id>
       <b:LogicalName>account</b:LogicalName>
       <b:Name i:nil="true" />
    </c:value>
</b:KeyValuePairOfstringanyType>