Export-ArticleXml

EulandaXtools — Funktionsreferenz

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 ``.

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)."
}

VERWANDTE LINKS

Export-InvoiceXml

Export-OrderXml

Export-ServiceArticleXml