Xml Import
Zuletzt geändert: 14.03.2026 10:13

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