Zum Inhalt

Automatische Ablage von Zolldokumenten

Anpassung des Scripts

Das Script "FetchCustomsDocuments.ps1" ist eine Vorlage, um mit der Atlas API Dokumente abrufen zu können. Eine Anpassung des Scripts auf die eigenen Anforderungen kann erforderlich sein.

Das Script kann hier heruntergeladen werden: Script

Beispielsweise ist es möglich einen Filter beim Abrufen der Dokumente vorzubelegen, wenn es nicht nötig ist nachträglich geänderte Dokumente erneut herunterzuladen. Der Filter kann über das Starten des Scripts als Parameter übergeben werden oder im Script selbst als Standardfilter eingetragen werden:

Hier kann das erste '#' entfernt werden und der Filter ist aktiv, solange kein Parameter den Standardwert überschreibt.

Im Filterwert ist es zu empfehlen das '' mit einem Gravis ` zu escapen. Ansonsten könnte von Powershell "filter" als Variable erkannt und Werte ersetzet werden.

Der Filter "?$filter=lastDownloadTimestamp lt 0001-01-01T00:00:00Z" beschränkt die Ergebnisse der API-Page auf alle Zolldokumente, die noch nie abgerufen wurden.

Dokumentenabhängige Aktionen

Das Script erwartet eine JSON Liste an Atlas Dokumenten, anhand dessen ein Download ausgeführt wird oder nicht. In der JSOn gibt es folgende Informationen:

  • SystemId = SystemID from record
  • ReferenceNo = CESA Order Primary Key
  • ReferenceNoIsRegistered = Flag if Order is registered or not
  • DocumentType = Type of the customs document (ABD, AGV, Log, etc.)
  • DocumentLink = Filename where PDF was saved
  • CreationTime = Timestamp when Document was retrieved in Business Central
  • LastModifiedTime = Timestamp when Document was last updated in Business Central
  • lastDownloadTimestamp = Timestamp when Document was downloaded via Powershell
  • FileName = Filename (Type_ReferenceNo.pdf)
  • PDFDirectory = Directory from Atlas Setup, depending on type of document
  • FileBase64 = File Content as Base64 String
  • DocumentChanged = Document changed since last Download (Filtern bei REST-Call auf diesen Wert funktioniert leider nicht)

Die Document Types bestehen aus:

  • 'Export Declaration' - ABD
  • 'Certificate of Export' - AGV
  • 'Functional Errors' - Fachliche Fehler
  • 'Statusreport' - Statusreport
  • 'Log' - Logbuch
  • 'Techn. Errors' - Techn. Fehler
  • 'Supplemental Documents' - Zusatzdokumente
  • 'Follow Up' - Wiedervorlage
  • 'Control Measure' - Kontrollmaßnahme
  • 'Log with EDI' - Logbuch mit EDI
  • 'Rejection' - Rückweisung zur Ausfuhr

Jeder Eintrag in der JSON wird iteriert und je nach "timeLastDownload" und "timeLastModified" eine der drei Prozeduren aufgerufen:

  • NewDownload()
  • FileChanged()
  • FileAlreadyFetched()

NewDownload()

Ein Zolldokument, welches noch nicht heruntergeladen wurde.

Je nach DocumentType kann der Download ein- und ausgeschaltet werden. Beispielsweise kann das Log-buch mit EDI abgeschaltet werden:

Anschließend muss mit der Funktion "Send-DownloadSuccess" ein erfolgreiches Herunterladen der Datei an Business Central zurück bestätigt werden.

FileChanged()

Manche Zolldokumente ändern sich nach dem erstmaligen Abrufen, beispielsweise das Logbuch oder der Statusreport. In diesem Fall wird die Funktion aufgerufen und es ist auch hier wieder möglich anhand des Dateityps den Download zu starten oder andere Dinge auszuführen.

Sollte mit dem oben genannten Dataset Filter gearbeitet werden, wird diese Funktion nicht mehr aufgerufen.

Aufgabenplaner

Das Script kann mittels Aufgabenplaner periodisch ausgeführt werden.

Dazu im Aufgabenplaner eine neue einfache Aufgabe anlegen

Wiederholung alle 1 Tage

Programm starten

Programm Powershell

Folgende Parameter sind erforderlich: -file "" -apiUrl "http://bcserver:7048/BC/api/comsol/exposysAtlas/v1.0/exportCustomsDocuments " -username "User-name" -WebserviceKey "Password"

Fertig stellen

Nach dem Fertigstellen kann in den Eigenschaften der Aufgabe bei "Trigger" noch der Ausführungsintervall geändert werden

z.B. auf alle 5 Minuten oder jede Stunde