2009-07-27 2 views
3

Es scheint also, dass die Verwendung von FetchXML keine Spalte zurückgibt, wenn in CRM keine Daten dafür gespeichert sind.MS CRM 4.0. FetchXML gibt Spalten auch dann zurück, wenn sie leer sind

Zum Beispiel:

<fetch mapping="logical" count="50"> 
<entity name="contact"> 
    <attribute name="contactid" /> 
    <attribute name="emailaddress1" /> 
    <attribute name="firstname" /> 
    <attribute name="jobtitle" /> 
    <attribute name="lastname" /> 
    <attribute name="mobilephone" /> 
    <attribute name="parentcustomerid" /> 
    <attribute name="telephone1" /> 
    <filter> 
     <condition attribute="parentcustomerid" operator="eq" value="94bf630f-b364-de11-8f1d-001cc02e75b4" /> 
    </filter> 
</entity> 

jedoch die zurückgegebene XML ist wie folgt

<resultset morerecords="0" paging-cookie="&lt;cookie page=&quot;1&quot;&gt;&lt;contactid last=&quot;{86805DB5-E06B-DE11-81EE-001CC02E75B4}&quot; first=&quot;{7CBC9B9A-E06B-DE11-81EE-001CC02E75B4}&quot; /&gt;&lt;/cookie&gt;"> 
<result> 
    <contactid>{7CBC9B9A-E06B-DE11-81EE-001CC02E75B4}</contactid> 
    <emailaddress1>[email protected]</emailaddress1> 
    <firstname>tommy</firstname> 
    <jobtitle>Dude</jobtitle> 
    <lastname>Smith</lastname> 
    <parentcustomerid yomi="" name="Tom's bike shoppe" dsc="0" type="1">{94BF630F-B364-DE11-8F1D-001CC02E75B4}</parentcustomerid> 
</result> 
<result> 
    <contactid>{86805DB5-E06B-DE11-81EE-001CC02E75B4}</contactid> 
    <emailaddress1>[email protected]</emailaddress1> 
    <firstname>jason</firstname> 
    <lastname>Finch</lastname> 
    <parentcustomerid yomi="" name="Tom's bike shoppe" dsc="0" type="1">{94BF630F-B364-DE11-8F1D-001CC02E75B4}</parentcustomerid> 
</result> 

Der zweite Datensatz keine Jobtitel hat und keiner der Aufzeichnungen hat ein Mobiltelefon Nummer zum Beispiel. Dies macht die Bindung an die Datensteuerung schwierig.

Also im Grunde meine Frage ist, ist es möglich, CRM zu zwingen, diese Felder mit Leer- oder Nullwerte zurückzusetzen?

Antwort

2

Kurz gesagt, nein.

Ich kenne die Details Ihrer Bindungssituation nicht, aber könnten Sie nur eine benutzerdefinierte Modellklasse haben, die Sie mit Ihren Fetch-Ergebnissen füllen und dann an diese binden, anstatt an die XML zu binden?

+0

Ich habe am Ende diese Route gehen und erforderlichen Spalten hinzufügen, wenn sie nicht im Abruf zurückgegeben wurden. – Fishcake

1

Die andere Option besteht darin, das FetchXML-Teil der API nicht zu verwenden und die stark typisierten BusinessEntity-Datensätze mit RetrieveMultiple abzurufen.