2016-04-15 122 views
0

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

进出口但是成功验证中,当我尝试创建事件使用:

$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 

,我发现了以下错误:

You should specify a parent contact or account.-2147204080 You should specify a parent contact or account.2016-04-15T07:59:11.6607106Z-2147204080 You should specify a parent contact or account.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> 
    '; 

而我得到的错误:

DeserializationFailedThe formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://schemas.microsoft.com/xrm/2011/Contracts/Services:entity . The InnerException message was 'Error in line 68 position 57. 'EndElement' 'KeyValuePairOfstringanyType' from namespace ' http://schemas.microsoft.com/xrm/2011/Contracts ' is not expected. Expecting element 'value'.'. Please see InnerException for more details.

回答

1

它看起来像您可能会尝试将帐户ID值添加到Id属性中。 Id属性是指事件的Id ......最好让CRM为您生成id,所以不要为Id属性提供任何内容(除非您故意设置新事件的id)。

错误指的是EntityReference类型的customerid属性。 EntityReferences具有Id和LogicalName属性。将您的$accountId值放入customerid.Id,并使customerid.LogicalName成为“帐户”。 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>  
+0

看到我的更新,我试了一下。仍然得到相同的错误。 – mjhd

+0

@mjhd更新了我的答案 – Polshgiant