Export-ArticleXml #
ÜBERSICHT #
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.
SYNTAX #
Export-ArticleXml [-Conn] <__ComObject> [[-WorkingDir] <string>] [[-OutputXml] <string>]
[[-ArticleId] <int[]>] [[-ArticleNo] <string[]>] [[-BreadcrumbRoot] <string>]
[-IncludeBreadcrumbTree] [-IncludeBreadcrumbs] [[-XsdFile] <string>] [-ValidateXml]
[-CommentXml] [-ChangedSinceShopExport] [<CommonParameters>]
BESCHREIBUNG #
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.
PARAMETER #
-Conn #
Type: __ComObject
Offene EULANDA ADODB-Connection zur SQL-Datenbank. Diese wird für Datenbankabfragen benötigt.
-WorkingDir #
Type: string
Default: $null
Arbeitsverzeichnis für die Pfadauflösung von Eingabe- und Ausgabedateien. Optional.
-OutputXml #
Type: string
Default: $null
Zielpfad 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: switch
Wenn gesetzt, wird der hierarchische Merkmalbaum (Breadcrumb) mit in das XML eingefügt. Standardmäßig wird kein Merkmalbaum angehängt.
-IncludeBreadcrumbs #
Type: switch
Wenn 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 <MERKMALLISTE><MERKMAL>…</MERKMALLISTE>.
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: $null
Pfad zur optionalen XSD-Datei für Kommentierung und Validierung. Wenn nicht angegeben, wird ‘EULANDA-article.xsd’ im Modulverzeichnis verwendet.
-ValidateXml #
Type: switch
Wenn gesetzt, wird das erzeugte XML gegen das angegebene XSD-Schema validiert. Voraussetzung: gültige XSD-Datei.
-CommentXml #
Type: switch
Wenn gesetzt, werden automatisch Feldkommentare aus dem XSD als XML-Kommentare in die Ausgabedatei eingefügt.
AUSGABEN #
string
Pfad zur erzeugten XML-Datei.
BEISPIELE #
# 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)."
}