Import-SalesOrder #
ÜBERSICHT #
Importiert einen EULANDA-Auftrag aus einer XML-Datei in die Warenwirtschaft.
SYNTAX #
Import-SalesOrder [-XmlFile] <string> [-Conn] <__ComObject> [-CreateAddress] [-CreateArticle]
[-SkipDuplicateCheck] [<CommonParameters>]
BESCHREIBUNG #
Diese Funktion verarbeitet eine EULANDA-konforme AUFTRAG-XML-Datei und legt den Auftrag mit Kopf- und Positionsdaten über die COM-API in der EULANDA-Datenbank an. Dabei erfolgt zunächst die Adressauflösung über MATCH, GLN, USTID oder EMAIL. Falls keine Adresse gefunden wird aber -CreateAddress gesetzt ist, wird diese implizit angelegt.
Gleiches gilt für Artikelinformationen, wenn kein Artikel gefunden wird und -CreateArticle gesetzt ist, wird der Artikel anhand der Positionsdaten im Artikelstamm neu angelegt.
Mengen- und Preisinformationen werden berücksichtigt, sowie BRUTTOFLG worüber festgelegt wird ob VK mit oder ohne MwSt. zu handhaben ist.
POSITIONS-TEXTE: IDENT, LANGTEXT und KURZTEXT1 #
Das XSD-Schema kennt auf Positionsebene zwei Textfelder: IDENT (Pflicht) und LANGTEXT (optional). EULANDA trennt diese auf Positionsebene in zwei Spalten: AuftragPos.Kurztext1 und AuftragPos.Langtext. Sind die Positions-Spalten leer, zieht EULANDA beim Lesen automatisch die entsprechenden Werte aus dem Artikelstammsatz (Artikel.Kurztext1 bzw. Artikel.Langtext). Nur wenn die Position selbst einen Wert trägt, gewinnt dieser gegenüber dem Stammsatz.
Der Import setzt die Positions-Spalten deshalb so:
<LANGTEXT>->AuftragPos.Langtext: Eins-zu-eins übernommen. Fehlt das Element im XML, bleibt die Spalte leer und der Stammsatz-Langtext gewinnt.
<IDENT>->AuftragPos.Kurztext1: Nur wennIDENTsich vonARTNUMMERunterscheidet. Sender dieIDENTaus der gleichen Quelle wieARTNUMMERfüllen (typisch bei simplen CSV-Integrationen) bekommen damit keinen Kurztext1-Override, und der Stammsatz-Kurztext gewinnt. Nur wenn der Sender bewusst einen eigenen Kurztext inIDENTmitliefert, überschreibt er den Stammsatz.
- Artikelneuanlage (
-CreateArticle): Hier wandert<IDENT>zusätzlich als Kurzbeschreibung in den neuen Artikelstammsatz.
Damit bleibt die EULANDA-Stammsatz-Mechanik intakt: wer etwas Abweichendes liefern will, kann das - wer nichts liefert, bekommt automatisch die Stammsatz-Werte.
PARAMETER #
-XmlFile #
Type: string
Pfad zur EULANDA-AUFTRAG-XML-Datei.
-Conn #
Type: __ComObject
Eine gültige COM-Connection zur EULANDA-Datenbank (z.B.. via VBScript oder PowerShell COM).
-CreateAddress #
Type: switch
Legt die Adresse automatisch neu an, wenn keine anhand der übergebenen Kriterien gefunden wird.
-CreateArticle #
Type: switch
Legt Artikel automatisch neu an, wenn keine passende Artikelnummer oder GTIN gefunden wird.
-SkipDuplicateCheck #
Type: switch
Überspringt die Eindeutigkeitsprüfung der Käufer-Bestellnummer in ‘New-SalesOrder’. Der Aufrufer ist dann selbst für die Vermeidung von Dubletten verantwortlich.
AUSGABEN #
nullable[int]
Gibt die interne ID des in EULANDA erstellten Auftrags zurück. Falls ein Fehler auftritt, erfolgt kein Rückgabewert und es wird eine Ausnahme ausgelöst.
BEISPIELE #
$eulanda = New-Object -ComObject "Eulanda.Client"
$eulanda.Connect("...")
$salesOrderId = Import-SalesOrder -XmlFile "auftrag.xml" -Conn $eulanda -CreateAddress -CreateArticle
Write-Host "Angelegter Auftrag mit ID: $salesOrderId"
HINWEISE #
- Die Funktion prüft intern auf Mussfelder und eindeutige Zuordnungen.
- Fehler führen zu einem sofortigen Abbruch.
- Die Verarbeitung ist vollständig transaktionslos - Commit-Logik muss ggf. extern erfolgen.