EulandaXtools — Funktionsreferenz
Exportiert Artikelstammdaten aus der EULANDA-Datenbank als XML-Datei im firmenspezifischen Format. Unterstützt optional die Einfügung von Breadcrumbs (Merkmals-Pfaden) pro Artikel sowie die Anfügung eines vollständigen Merkmalbaums (Tree) am Dokumentkopf.
Export-ArticleXml [-Conn] <__ComObject> [[-WorkingDir] <string>] [[-OutputXml] <string>]
[[-ArticleId] <int[]>] [[-ArticleNo] <string[]>] [[-BreadcrumbRoot] <string>]
[-IncludeBreadcrumbTree] [-IncludeBreadcrumbs] [[-XsdFile] <string>] [-ValidateXml]
[-CommentXml] [-ChangedSinceShopExport] [<CommonParameters>]Diese Funktion erstellt aus den EULANDA-Artikelstammdaten ein strukturiertes XML-Dokument. Es enthält einen METADATA-Block mit Zeit- und Zeitzoneninformationen sowie optional einen hierarchischen Merkmalbaum (Breadcrumb) und eine optionale Pfadliste (Breadcrumbs) zu jedem Datensatz. Die XML-Ausgabe kann optional kommentiert und gegen ein XSD-Schema validiert werden. Die Funktion unterstützt die gezielte Auswahl von Artikeln per ID oder Artikelnummer.
-Conn
Type: __ComObjectOffene EULANDA ADODB-Connection zur SQL-Datenbank. Diese wird für Datenbankabfragen benötigt.
-WorkingDir
Type: string
Default: $nullArbeitsverzeichnis für die Pfadauflösung von Eingabe- und Ausgabedateien. Optional.
-OutputXml
Type: string
Default: $nullZielpfad für die erzeugte XML-Datei. Wenn nicht angegeben, wird 'EULANDA-article.xml' im Arbeitsverzeichnis verwendet.
-ArticleId
Type: int[]Optionales Array von Artikel-IDs zur gezielten Filterung der zu exportierenden Artikel.
-ArticleNo
Type: string[]Optionales Array von Artikelnummern zur gezielten Filterung. Wird alternativ oder ergänzend zu 'ArticleId' verwendet.
-BreadcrumbRoot
Type: string
Default: '\Shop'Pfad des Startknotens für den Merkmalsbaum (z. B. '\Shop'). Dieser Wert legt fest, ab welchem Wurzelpfad die hierarchische Struktur der Merkmale zu den Artikeln in das XML eingefügt wird. Standard ist '\Shop'.
-IncludeBreadcrumbTree
Type: switchWenn gesetzt, wird der hierarchische Merkmalbaum (Breadcrumb) mit in das XML eingefügt. Standardmäßig wird kein Merkmalbaum angehängt.
-IncludeBreadcrumbs
Type: switchWenn gesetzt, werden zu jedem Artikel die zugehörigen Merkmals-Pfade (Breadcrumbs) aus der Tabelle 'Merkmale' geladen und in die jeweilige Artikelstruktur eingefügt. Die Breadcrumbs erscheinen im XML als Abschnitt `
Diese Option wirkt unabhängig von `-IncludeBreadcrumbTree`. Während `-IncludeBreadcrumbs` die individuellen Pfade pro Artikel ergänzt, fügt `-IncludeBreadcrumbTree` einen globalen, hierarchischen Merkmalbaum am Anfang des XML-Dokuments an.
-XsdFile
Type: string
Default: $nullPfad zur optionalen XSD-Datei für Kommentierung und Validierung. Wenn nicht angegeben, wird 'EULANDA-article.xsd' im Modulverzeichnis verwendet.
-ValidateXml
Type: switchWenn gesetzt, wird das erzeugte XML gegen das angegebene XSD-Schema validiert. Voraussetzung: gültige XSD-Datei.
-CommentXml
Type: switchWenn gesetzt, werden automatisch Feldkommentare aus dem XSD als XML-Kommentare in die Ausgabedatei eingefügt.
stringPfad zur erzeugten XML-Datei.
# Exportiert die beiden Artikel mit den Nummern A1000 und A2000 in die Datei 'artikel.xml'.
$udl = "C:\Eulanda\EULANDA_1 Mustermann.udl"
$conn = Get-ConnByUdl -Udl $udl
Export-ArticleXml -Conn $conn -OutputXml 'artikel.xml' -ArticleNo 'A1000', 'A2000'# Exportiert alle Artikel, fügt Kommentare hinzu und validiert die Datei gegen das Standardschema.
$udl = "C:\Eulanda\EULANDA_1 Mustermann.udl"
$conn = Get-ConnByUdl -Udl $udl
Export-ArticleXml -Conn $conn -ValidateXml -CommentXml# Export MIT Merkmalbaum
$udl = "C:\Eulanda\EULANDA_1 Mustermann.udl"
$conn = Get-ConnByUdl -Udl $udl
Export-ArticleXml -Conn $conn -ArticleNo 'A1000' -IncludeBreadcrumbTree# Komplettes Beispiel eines Exports über einen Merkmalpfad
Import-Module .\EulandaXTools.psm1 -Force
$udl = ".\source\tests\pester.udl"
$breadcrumbPath = '\KEYWORDS\Software'
$outputXml = '.\ARTIKEL-TEST.xml'
$conn = Get-ConnByUdl -Udl $udl
# Breadcrumb-Knoten suchen
$id = Get-BreadcrumbId -Conn $conn -TableName 'Artikel' -BreadcrumbPath $breadcrumbPath
if ($id -gt 0) {
# IDs aller Artikel unterhalb dieses Knotens holen
$sql = "SELECT ObjektId FROM MerkmalElement WHERE KopfId = $id"
$ids = Invoke-AdodbQuery -Conn $conn -Sql $sql | ForEach-Object { $_.ObjektId }
# Artikel exportieren
Export-ArticleXml -Conn $conn -ArticleId $ids -OutputXml $outputXml
}
else {
Write-Warning "Der Merkmalpfad ergab kein Ergebnis (ID=$id)."
}