我试图通过他们的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 的信息。
答案 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>