Invoke Process Tracking
Zuletzt geändert: 14.03.2026 05:56

Invoke-ProcessTracking #

ÜBERSICHT #

Verarbeitet Tracking-Informationen aus einer Dachser-XML-Bestätigung und aktualisiert die Lieferdaten in der Datenbank.

SYNTAX #

Invoke-ProcessTracking [-Xml] <xml> [[-DeliveryNo] <int>] [-TestMode]

BESCHREIBUNG #

Diese Funktion liest die Tracking-Informationen aus dem übergebenen XML-Dokument. Je nach Versandart (ShippingRoute) wird die passende Logik angewendet:

  • UPS : Trackingnummern werden in über SSCC-Verweise gefunden. Es müssen gültige 1Z-Nummern vorhanden sein.
  • FEE : (FedEx Economy) Trackingnummern stehen direkt in , dürfen aber keine 1Z-Nummern sein.
  • SPE : Spedition/Palette, keine Trackingnummern vorgesehen.
  • ABH : Abholung, keine Trackingnummern vorgesehen.

Für Transportarten ohne Tracking (SPE, ABH) wird lediglich ein Hinweis ausgegeben, aber es werden keine Datenbankeinträge erzeugt.

Anschließend wird – falls zutreffend – die Datenbank mit den Trackingnummern aktualisiert, der Lieferstatus (vollständig, teilweise, komplett fehlend) in die Eigenschaften-Baumstruktur der Lieferungen eingetragen und ein HTML-Block für Warnungen erzeugt.

PARAMETER #

-Xml #

Type: xml
Mandatory: True

Das XML-Dokument (DeliveryOrderConfirmation) mit den Trackingdaten.

-DeliveryNo #

Type: int

Lieferscheinnummer in EULANDA, auf die die Trackingdaten angewendet werden sollen.

-TestMode #

Type: switch

Wenn gesetzt, werden vorhandene Tracking-Eigenschaften vorher gelöscht, damit Testläufe nicht kumuliert werden.

AUSGABEN #

Gibt einen HTML-String zurück, der bei Warnungen (fehlende Tracking-

Nummern) in E-Mails eingebunden werden kann.

BEISPIELE #

# Trackingdaten einer Dachser-XML einlesen und verarbeiten
$xml = [xml](Get-Content 'RUCK_20250918.xml')
Invoke-ProcessTracking -Xml $xml -DeliveryNo 4711 -Verbose

HINWEISE #

  • Im Kontext der Spezialanwendung ist ‘ArticleNo’ eigentlich der BARCODE in der ERP EULANDA.
  • In Standardsystemen ist ‘ArticleNo’ das native Feld ‘ARTNUMMER’ gemeint.
  • Diese abweichende Bedeutung ist bei allen Abgleichen zu berücksichtigen.

$udlFile = “C:\ProcosSystem\Eulanda_1 ProcosUSA.udl”

$conn = new-object -comObject ADODB.Connection $conn.CursorLocation = $adUseClient $conn.ConnectionString = “File Name=$Script:udlFile” $conn.CommandTimeout = $adTimeout $conn.Open()

UPS #

$xmlFile = “C:\ProcosSystem\clients\US\DACHSER_US\inbox\finished\RUCKP2A6_371_2025.07.31-17-00-20.XML” [xml]$xml = Get-Content -Path $xmlFile -Raw $deliveryNo = 439059 Invoke-ProcessTracking -xml $xml -DeliveryNo $deliveryNo -Verbose -WhatIf

FEDEX #

$xmlFile = “C:\ProcosSystem\clients\US\DACHSER_US\inbox\finished\RUCKP2BR_606_2025.09.17-22-16-50.XML” [xml]$xml = Get-Content -Path $xmlFile -Raw $deliveryNo = 439623 Invoke-ProcessTracking -xml $xml -DeliveryNo $deliveryNo -Verbose -WhatIf

SPE #

$xmlFile = “C:\ProcosSystem\clients\US\DACHSER_US\inbox\error\RUCKP2BK_525_2025.09.11-16-52-34.XML” [xml]$xml = Get-Content -Path $xmlFile -Raw $deliveryNo = 439442 Invoke-ProcessTracking -xml $xml -DeliveryNo $deliveryNo -Verbose -WhatIf

#BUG UPS ohne Tracking $xmlFile = “C:\ProcosSystem\clients\US\DACHSER_US\inbox\error\RUCKP2A1_352_2025.07.28-17-54-59.XML” [xml]$xml = Get-Content -Path $xmlFile -Raw $deliveryNo = 438383 Invoke-ProcessTracking -xml $xml -DeliveryNo $deliveryNo -Verbose -WhatIf

Bug UPD #

$xmlFile = “C:\ProcosSystem\clients\US\DACHSER_US\inbox\error\RUCKP283_120_2025.05.08-21-40-42.XML” [xml]$xml = Get-Content -Path $xmlFile -Raw $deliveryNo = 438166 Invoke-ProcessTracking -xml $xml -DeliveryNo $deliveryNo -Verbose -WhatIf

Suchnummer #

$searchNumber = ‘68175-00000263651-9’

Startordner #

$basePath = ‘C:\ProcosSystem’

Rekursiv alle passenden Dateien durchsuchen #

Get-ChildItem -Path $basePath -Recurse -Filter ‘RUCK*.xml’ -File | Select-String -Pattern $searchNumber | ForEach-Object { [PSCustomObject]@{ File = $.Path Line = $.LineNumber Text = $_.Line.Trim() } }