XML-Import und -Export (VBScript) #
VBScript-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.
Option Explicit
Dim xmlEul
Set xmlEul = Client.CreateObject("XMLLIB")
xmlEul.LoadFromFile Client.Properties("FOLDER.DESKTOP") & "\ARTIKEL.XML"
xmlEul.SaveToDB "SALESARTICLE"
Set xmlEul = Nothing
Artikel programmatisch erzeugen und importieren #
Dieses Script erzeugt ein XML-Dokument im Speicher, fügt zwei Artikel hinzu und importiert sie in die Datenbank.
Option Explicit
Main
Sub AddElement(xmlDoc, root, ElementName, ElementValue)
Dim element
Set element = xmlDoc.CreateElement(ElementName)
root.appendChild(element)
root.lastChild.text = ElementValue
End Sub
Sub Main
Dim xmlEul, xmlDoc, metadata, root, artikelListe, artikel
Set xmlEul = Client.CreateObject("XMLLIB")
Set xmlDoc = Client.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.loadXML "<?xml version=""1.0"" encoding=""WINDOWS-1252""?>" & vbCrLf & _
"<EULANDA></EULANDA>"
Set root = xmlDoc.documentElement
' Metadaten
Set metadata = xmlDoc.createNode(1, "METADATA", "")
root.appendChild(metadata)
AddElement xmlDoc, metadata, "VERSION", "1.1"
AddElement xmlDoc, metadata, "GENERATOR", "VBScript"
AddElement xmlDoc, metadata, "DATEFORMAT", "ISO8601"
AddElement xmlDoc, metadata, "FLOATFORMAT", "US"
AddElement xmlDoc, metadata, "FIELDNAMES", "NATIVE"
AddElement xmlDoc, metadata, "DATE", ellib.DateTimeToXmlStr(Date + Time)
AddElement xmlDoc, metadata, "PCNAME", "PC"
AddElement xmlDoc, metadata, "USERNAME", "USER"
AddElement xmlDoc, metadata, "DATABASEVERSION", "4.69"
' Artikelliste
Set artikelListe = xmlDoc.createNode(1, "ARTIKELLISTE", "")
root.appendChild(artikelListe)
' Erster Artikel
Set 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
Set 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
Set artikel = Nothing
Set artikelListe = Nothing
Set metadata = Nothing
Set root = Nothing
Set xmlDoc = Nothing
Set xmlEul = Nothing
End Sub