Microsoft Dynamics CRM 4.0 | Daten einer Entität manuell als XML Datei exportieren (3/4)

 

Nun, dem ein oder anderen mögen die letzten Beiträge Teil I & II schon langweilig vorgekommen sein, doch auch Anfänger sollen die Chance haben, sich mit den verwendeten Methodiken vertraut zu machen…

Kommen wir in unserem heutigen dritten Teil zu der Konvertierung unserer Variablen in XML-Nodes und dem Aufbau eines korrekt formatierten XML-Dokuments.

Doch bevor ich Euch die XMLWriter-Klasse vorstelle, noch schnell zur Speicherung des Ergebnisses in eine Datei. Die im Internet-Explorer integrierten Sicherheitsmaßnahmen lassen uns hier sehr wenig Spielraum. Jedoch gibt es eine Möglichkeit, wie wir die Datei auf dem Client-Rechner sichern könnten:

function WriteToFile(sText,Filename)
{
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 
 var FileObject = fso.OpenTextFile("C:\\XMLDateien\\"+Filename+".xml", 2, true,-1); // 8=append, true=create if not exist, 0 = ASCII
 // Ihr könnt anstelle von C:\ übrigens auch ein Netzlaufwerk verwenden, sofern dieses permanent mit dem Client verbunden ist
 FileObject.WriteLine(sText)
 FileObject.close()
} 

Mit Hilfe dieser Funktion lässt sich eine Datei lokal erstellen, sofern ActiveX im Intranet auch von nicht sicheren Quellen erlaubt wurden. Da wir uns mit dem CRM bereits im Lokalen Intranet bewegen, stimme ich dieser kleinen Sicherheitslücke zu. Man könnte dies auch noch weiter absichern, jedoch soll dies nicht Bestandteil meines Beispiels sein.

Kommen wir nun also zur Integration einer XMLWriter-Objekt. Integriert wird diese in unser Projekt über

<script src="/ISV/JSHelper/XMLWriter.js" language="javascript"></script>

Wie Ihr seht, lege ich die Hilfsmethode im ISV-Pfad ab und integriere diese in meine .htm-Seite.

Das 1. XMLWriter – Objekt habe ich auf der Seite http://www.codeproject.com gefunden und wurde vom Author christhophilus geschrieben. Auch er hat nach einer simplen Methodik gesucht, via JavaScript eine XML-Datei zu erzeugen und bevor wir das Rad neu erfinden…

Bevor Ihr seinen Code verwendet, solltet Ihr entsprechend anfragen.

Sein XMLWriter-Objekt hat die folgenden Methoden

  • BeginNode (Name)
  • EndNode ()
  • Attrib (Name, Value)
  • WriteString (Value)
  • Node (Name, Value)
  • Close ()
  • ToString ()

     

    Und jene helfen uns, unsere Variableninhalte in ein XML-Dokument zu überführen.

    Wir initialisieren also zunächst unser Objekt und beginnen mit den Methoden unsere XML-Datei aufzubauen.

    var XML=new XMLWriter();
        XML.BeginNode("XMLDaten");
        XML.Node("ID", oIdstr);
        XML.Node("Mein Node", myValue);
        XML.EndNode();
        XML.EndNode();
        XML.Close();

    Nachdem wir unser XML-Dokument aufgebaut haben, möchten wir es natürlich noch in eine Datei überführen. Hierzu bietet uns christophilus erfreulicherweise die .ToString Methode.

    var XMLString = XML.ToString()
    var f_name = 'Mein_erster_XML_Export';
        WriteToFile(XMLString,f_name);
        

    Somit haben wir aus unserer Datensammlung erfolgreich eine XML-Datei erzeugt, die wir z.B. hernehmen können, um Sie in andere Fremdanwendungen einlesen zu können.

    Im 4. und letzten Teil stelle ich Euch ein weiteres XMLWriter-Objekt eines anderen Autors vor, welches uns noch mehr Möglichkeiten anbietet.

     

  • Hinterlasse einen Kommentar

    Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..