Wie führe ich FetchXML in CRM 2011 mit einem CRM 2011 Webservice und JavaScript aus?

8

Ich möchte FetchXML-Abfragen in einer CRM 2011-Umgebung mit den CRM 2011 SOAP-Webdiensten und JavaScript ausführen.

Ich habe eine Reihe von Artikeln gefunden wie diese > zeigt, wie man den 4.0 Web Service benutzt, der in der Umgebung von 2011 noch verfügbar ist, aber ich möchte das nicht tun.

Dieser Link scheint darauf hinzuweisen, dass IOrganizationService.RetrieveMultiple mit FetchXML umgehen kann. Allerdings möchte ich dafür keinen verwalteten Code verwenden.

Ich bin auf diesen Link gestoßen, der im Wesentlichen zeigt, was ich in der RetrieveMultiple-Funktion, aber ich möchte vorhandene FetchXML übergeben, die ich geschrieben habe, nicht einen neuen Filterausdruck.

    
Paul 03.05.2011, 23:40
quelle

4 Antworten

7

Um fetchxml-Abfragen mit JavaScript auszuführen, stehen eine Reihe von Frameworks / Bibliotheken zur Verfügung:

Anstatt den Code manuell zu schreiben, bieten diese Bibliotheken eine einfache Möglichkeit, mehrere Operationen auszuführen und auf die Ergebnisse zuzugreifen. Beachten Sie jedoch, dass nicht alle Bibliotheken (derzeit) Cross-Browser unterstützen (Q2.2012).

    
thuld 15.05.2012, 07:51
quelle
2

Von dem Link, den Sie auf dem Microsoft SDK gepostet haben, werden Sie sehen, wie Sie vorgehen Verbindung zum ODATA-Dienst herstellen. Wie Sie vielleicht bereits herausgefunden haben, erlaubt Ihnen ODATA nicht, fetch auszuführen.

Stattdessen müssen Sie den SOAP-Dienst ( /XrmServices/2011/Organization.svc ) verwenden und Ihren Abruf mit Retrieve Multiple übergeben.

Hier ist ein detaillierterer Blick auf die Verwendung des Dienstes 2011 durch JavaScript: Ссылка

Hier ist ein weiterer Blogpost, der das zurückgegebene XML analysiert und ein leicht konsumierbares JavaScript-Objekt erstellt: Ссылка

Der 2011er Organisationsdienst ist in seiner Rückkehr ziemlich anders, also wird es nicht plug-n-play von Ihren 4.0 Sachen sein; Der Endpunkt 2011 hat jedoch viele schöne Verbesserungen.

    
Paul Way 07.05.2011 05:05
quelle
2

Im Abschnitt "Capture-Beispiel für HTTP-Anforderung und -Antwort" von diesem MSDN-Artikel wird beschrieben, wie Sie vorgehen Abrufen einer SOAP-Nachricht, die aus verwaltetem Code an CRM 2011 gesendet wird.

Der Abschnitt "Ausführen der Abfrage" von diesem MSDN-Artikel enthält ein Beispiel für die Verwendung von 2011 IOranganizationService.RetrieveMultiple im verwalteten Code, um eine FetchXML-Abfrage auszuführen.

Mit diesen beiden Beispielen können Sie eine SOAP-Beispielnachricht für RetrieveMultiple extrahieren, die eine FetchXML-Abfrage enthält.

Der Abschnitt "Erstellen einer JScript-Bibliothek" von dem ersten MSDN-Artikel zeigt, wie Sie vorgehen müssen eine Execute-Anforderung in JavaScript für den SOAP-Endpunkt 2011. Ersetzen Sie die SOAP-Anforderung in diesem Beispiel durch die RetrieveMultiple SOAP-Nachricht, die Sie beim Ausführen des verwalteten Codes erhalten haben.

Damit können Sie eine FetchXML-Anfrage in JavaScript für den SOAP-Endpunkt 2011 ausführen.

Hier sind ein paar Schnipsel aus einer JavaScript-Bibliothek, die ich mit den obigen Informationen geschrieben habe:

%Vor%     
Paul 06.05.2011 17:52
quelle
1
  

"REST ist ein Architekturstil, bei dem jede Ressource mit einem eindeutigen URI angesprochen wird."    Ссылка

Sie können den REST-Endpunkt nicht verwenden, wenn Sie FetchXml verwenden müssen.

Alternativ können Sie eine SOAP-Nachricht erstellen, wie Sie sie in Ihren CRM4-Beispielen gesehen haben. Ich habe das selbst noch nicht gemacht, aber vielleicht könnten Sie ein Tool wie Fiddler verwenden, um zu sehen, wie die SOAP-Nachricht aussieht, damit Sie sie in Ihrer Umgebung replizieren können, die Ihre modifizierte FetchXml.

Wie auch immer, nur eine Idee fürs Erste. Lassen Sie mich wissen, wie es geht, und wenn Sie es lösen können, vielleicht post Ihre Lösung.

    
Luke Baulch 04.05.2011 00:50
quelle