Zum Inhalt

E-Post Brief Statusabfrage (mehrere IDs)

Der Service Task „E-Post Brief Statusabfrage (mehrere IDs)“ ruft den aktuellen Status mehrerer Hybridbriefe über die E-POSTBUSINESS API ab. IDs können direkt übergeben oder aus Letter-Objekten extrahiert werden. Das Ergebnis kann als Liste oder als Map { letterid: statusObj } zurückgegeben werden.

Input-Parameter

{
  "letterIDs": ["c9c8e9f0-...", "a1b2c3d4-..."],
  "letters": [
    { "letterid": "c9c8e9f0-..." },
    { "letterID": "a1b2c3d4-..." }
  ],
  "options": {
    "asMap": false
  },
  "login": {
    "vendorID": "OPTIONAL_OVERRIDE",
    "ekp": "OPTIONAL_OVERRIDE",
    "secret": "OPTIONAL_OVERRIDE",
    "password": "OPTIONAL_OVERRIDE",
    "vendorSubID": "OPTIONAL",
    "tokenDuration": 1440
  }
}
  • letterIDs: Array von Brief-IDs.
  • letters: Alternative bzw. ergänzende Quelle für IDs (letterid oder letterID).
  • options.asMap: Bei true erfolgt die Rückgabe als Objekt-Map { [letterid]: statusObj } (Standard: Array).
  • login: Optional; ohne dieses Objekt werden hinterlegte Defaults verwendet, einzelne Felder lassen sich überschreiben.

Output

Standard-Rückgabe ist ein Array von Statusobjekten (Keys kleingeschrieben, Zeitstempel in UTC):

[
  {
    "letterid": "c9c8e9f0-...",
    "filename": "Invoice_4711.pdf",
    "statusid": 210,
    "statusdetails": "Übergeben an Druckzentrum",
    "createddate": "2025-09-05T08:12:03.000Z",
    "processeddate": "2025-09-05T08:15:10.000Z",
    "printuploaddate": "2025-09-05T08:16:00.000Z",
    "printfeedbackdate": "2025-09-05T08:28:30.000Z",
    "registeredletter": false,
    "noofpages": 3,
    "costcenter": "AB1234",
    "errorlist": [],
    "pluginfeedbacklist": []
  }
]

Bei options.asMap = true erfolgt die Rückgabe als Lookup-Map:

{
  "c9c8e9f0-...": { "...status wie oben..." },
  "a1b2c3d4-...": { "...status wie oben..." }
}

Verhalten und Validierung

  • ID-Ermittlung: IDs werden aus letterIDs sowie letters[*].letterid|letterID gesammelt, dedupliziert und leere Werte verworfen.
  • UTC-Zeitstempel: Datumsfelder werden auf UTC-ISO (...Z) normalisiert.
  • Login-Caching: Token werden tenant-spezifisch gecacht; login kann Defaults überschreiben.
  • Performance/Häufigkeit: Die Post verlangt ≥ 5 s Abstand zwischen Statusabfragen; interne Retries (bei 429) mit Jitter sind implementiert.
  • Sicherheit/Filter: Ergebnisse werden tenant-seitig über costcenter gefiltert.

JSON-Beispiele

{
  "letterIDs": ["c9c8e9f0-...", "a1b2c3d4-..."]
}
{
  "letters": [
    { "letterid": "c9c8e9f0-..." },
    { "letterID": "a1b2c3d4-..." }
  ],
  "options": { "asMap": true }
}
{
  "letterIDs": ["c9c8e9f0-..."],
  "login": {
    "ekp": "EKP123456",
    "password": "****"
  }
}

JSONata-Beispiele

{
  "letterIDs": $.submitResult[].letterid,
  "options": { "asMap": true }
}
{
  "letterIDs": $.letters.(
    $id := letterid ? letterid : letterID;
    $id
  )
}

Hinweise

  • Fehlerfälle: Bleiben nach Bereinigung keine gültigen IDs übrig, bricht der Task mit Fehler ab.
  • Mapping: Alle Keys im Output sind kleingeschrieben und folgen dem Pantarey-Schema.
  • Weiterverarbeitung: Für wiederholte Polls empfiehlt sich options.asMap = true (schneller Zugriff per letterid).