2016-04-15 10 views
0

Ich versuche, einen Vorfall auf dem Dynamics CRM über ihre API zu erstellen.Dynamics CRM Incident erstellen

Im erfolgreich authing aber wenn ich versuche, um den Vorfall zu erstellen mit:

$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 

ich die folgende Fehlermeldung erhalten:

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

Alle Ideen, was ich fehle?

Bearbeiten aktualisiert und versucht, dies:

' 
     <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> 
    '; 

Aber immer noch denselben Fehler

Edit # 2, auch versucht:

' 
     <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> 
    '; 

Und bin immer Fehler:

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.

Antwort

1

Es sieht so aus Möglicherweise versuchen Sie, einen Konto-ID-Wert in das Id-Attribut einzugeben. Das ID-Attribut bezieht sich auf die ID des Vorfalls ... es ist besser, wenn CRM IDs für Sie generiert. Geben Sie also nichts für das ID-Attribut an (es sei denn, Sie versuchen absichtlich, die ID des neuen Vorfalls festzulegen).

Der Fehler bezieht sich auf das customerid Attribut vom Typ EntityReference. EntityReferences haben die Eigenschaften Id und LogicalName. Setzen Sie Ihren $accountId Wert in die customerid.Id und machen Sie customerid.LogicalName "account". EntityReferences haben auch eine Name-Eigenschaft, die Sie jedoch nicht angeben müssen.

Ihre Bearbeitung Nr. 2 sieht aus, als hätte sie Probleme mit dem Namespacing. Versuchen Sie Folgendes:

<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

Siehe mein Update, ich habe es versucht. Immer noch den gleichen Fehler. – mjhd

+0

@mjhd aktualisierte meine Antwort – Polshgiant