XML-Import und -Export (JScript) #
JScript-Beispiele für den XML-Import und -Export mit EULANDA. Die vollständige Objektreferenz finden Sie unter XMLLIB-Objekt.
Artikel aus XML-Datei importieren #
Dieses Script liest eine XML-Datei vom Desktop und importiert die enthaltenen Artikel in EULANDA. Es wird als iScript-Menübefehl in der SQL-Registry hinterlegt.
var xmlEul = Client.CreateObject("XMLLIB");
xmlEul.LoadFromFile(Client.Properties("FOLDER.DESKTOP") + "\\ARTIKEL.XML");
xmlEul.SaveToDB("SALESARTICLE");
xmlEul = null;
Artikel programmatisch erzeugen und importieren #
Dieses Script erzeugt ein XML-Dokument im Speicher, fügt zwei Artikel hinzu und importiert sie in die Datenbank.
function AddElement(xmlDoc, root, elementName, elementValue) {
var element = xmlDoc.createElement(elementName);
root.appendChild(element);
root.lastChild.text = elementValue;
}
function Main() {
var xmlEul = Client.CreateObject("XMLLIB");
var xmlDoc = Client.CreateObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(
'<?xml version="1.0" encoding="WINDOWS-1252"?>\n' +
'<EULANDA></EULANDA>'
);
var root = xmlDoc.documentElement;
// Metadaten
var metadata = xmlDoc.createNode(1, "METADATA", "");
root.appendChild(metadata);
AddElement(xmlDoc, metadata, "VERSION", "1.1");
AddElement(xmlDoc, metadata, "GENERATOR", "JScript");
AddElement(xmlDoc, metadata, "DATEFORMAT", "ISO8601");
AddElement(xmlDoc, metadata, "FLOATFORMAT", "US");
AddElement(xmlDoc, metadata, "FIELDNAMES", "NATIVE");
AddElement(xmlDoc, metadata, "DATE", ellib.DateTimeToXmlStr(new Date()));
AddElement(xmlDoc, metadata, "PCNAME", "PC");
AddElement(xmlDoc, metadata, "USERNAME", "USER");
AddElement(xmlDoc, metadata, "DATABASEVERSION", "4.69");
// Artikelliste
var artikelListe = xmlDoc.createNode(1, "ARTIKELLISTE", "");
root.appendChild(artikelListe);
// Erster Artikel
var artikel = xmlDoc.createNode(1, "ARTIKEL", "");
artikelListe.appendChild(artikel);
AddElement(xmlDoc, artikel, "ID.ALIAS", "4711");
AddElement(xmlDoc, artikel, "ARTNUMMER", "4711");
AddElement(xmlDoc, artikel, "KURZTEXT1", "Mein Kurztext zu 4711");
AddElement(xmlDoc, artikel, "LANGTEXT", "Mein Langtext zu 4711");
AddElement(xmlDoc, artikel, "VK", ellib.FloatToXmlStr(47.23));
// Zweiter Artikel
artikel = xmlDoc.createNode(1, "ARTIKEL", "");
artikelListe.appendChild(artikel);
AddElement(xmlDoc, artikel, "ID.ALIAS", "0815");
AddElement(xmlDoc, artikel, "ARTNUMMER", "0815");
AddElement(xmlDoc, artikel, "KURZTEXT1", "Mein Kurztext zu 0815");
AddElement(xmlDoc, artikel, "LANGTEXT", "Mein Langtext zu 0815");
AddElement(xmlDoc, artikel, "VK", ellib.FloatToXmlStr(66.65));
// Import ausführen
xmlEul.LoadFromXml(xmlDoc.documentElement.xml);
xmlEul.SaveToDB("SALESARTICLE");
// Aufräumen
artikel = null;
artikelListe = null;
metadata = null;
root = null;
xmlDoc = null;
xmlEul = null;
}
Main();