EulandaXtools — Funktionsreferenz
Führt den SFTP-Download für einen einzelnen Partner durch (inkl. Nachbearbeitung, Logging, Fehlerbenachrichtigung und Ergebnisobjekt).
Invoke-SftpDownload [-Partner] <hashtable> [[-TechnicalEmails] <string>] [-PartnerName] <string>
[-DataPath] <string> [[-LogFile] <string>] [[-MaxFiles] <int>] [-PreserveTimestamp]
[-RemoteTimeIsUtc]Diese Funktion verarbeitet den SFTP-Eingang eines EDI-Partners: Sie lädt alle passenden Dateien aus dem Remote-Verzeichnis herunter und führt anschließend die konfigurierte postAction aus (delete, move, rename, none).
Fehler und wichtige Aktionen werden über `Write-Log` protokolliert, im Fehlerfall zusätzlich als `Write-Warning` angezeigt. Bei einem Fehler wird optional auch eine E-Mail an den technischen Ansprechpartner gesendet.
Die Funktion gibt ein strukturiertes Ergebnisobjekt zurück, das Informationen über die Anzahl erfolgreicher und fehlgeschlagener Downloads enthält sowie eine Liste der geladenen Dateien und Fehlertexte.
-Partner
Type: hashtableDer Partner-Eintrag aus der JsonDb (einzelner Hashtable), inklusive Verbindungseinstellungen, Pfaden und postAction.
-TechnicalEmails
Type: string
Default: $nullOptional: E-Mail-Adressen für technische Fehlerbenachrichtigungen. Wenn diese nicht gesetzt ist, erfolgt kein Versand.
-LogFile
Type: string
Default: $nullOptional: Pfad zur Logdatei. Es wird nur geschrieben, wenn ein Fehler auftritt oder `-Verbose` aktiviert ist.
-PartnerName
Type: stringFalls kein Partnerobjekt übergeben wird: Name des Partners, der aus der JsonDb geladen werden soll.
-DataPath
Type: stringVerzeichnis, in dem sich die JSON-Datenbank für Mail- oder Partner definitionen befindet (z. B. database\mail.json).
-MaxFiles
Type: int
Default: 0Maximale Anzahl zu verarbeitender Dateien (0 = alle). Überzählige werden als "Skipped" gezählt und aufgelistet.
-PreserveTimestamp
Type: SwitchÜbernimmt den Zeitstempel (LastWriteTime, CreationTime, LastAccessTime) vom Remote-File auf die lokal gespeicherte Datei.
-RemoteTimeIsUtc
Type: SwitchInterpretation des Remote-Zeitstempels als UTC (wird lokal konvertiert). Ohne diesen Schalter wird die Zeit als lokal behandelt.
PSCustomObject mit den Feldern:# Führt den Download der Daten durch und loggt die Fehler im Logfile
$result = Invoke-SftpDownload -Partner $partner -LogFile "C:\Logs\sftp.log"
if (-not $result.Success) { ... }# Verwendet die Parameter der Hashliste $Partner und versendet im Fehlerfall ein Email an den technisch verantwortlichen
Invoke-SftpDownload -Partner $partner -TechnicalEmails "edi-support@firma.de"# Öffnent die JsonDb Tabelle für Partner und sucht den Datensatz ESSELUNGA um den Download durchzuführen
Invoke-SftpDownload -PartnerName 'ESSELUNGA' -DataPath C:\TempUnterstützt alle Authentifizierungsarten (PlainPassword, SecureString, PasswordPath, Certificate). Die Verarbeitung erfolgt robust, jede Datei wird unabhängig behandelt. Empfohlen für Zeitsteuerungsszenarien.