Zum Inhalt

Platzhalter & Zustellungsreferenz

Die Nachschlagetabellen hinter jeder Integrationsseite: welche {{ … }}- Variablen es wo gibt, wie sie gerendert werden und was die Status- und Fehlerfelder in Fetch-Reports und Zustellungsprotokollen bedeuten.

Platzhalter

Ein Platzhalter ist {{ name }} (Leerraum innerhalb der Klammern ist erlaubt). Namen werden beim Speichern der Source oder des Bindings geprüft, sodass ein Tippfehler oder eine in diesem Geltungsbereich unbekannte Variable eine 422 mit dem Namen in der Meldung ist — nie eine Überraschung zur Laufzeit.

Envelope-Felder — nur Outbound Bindings

Die Werte stammen aus dem Ereignis, das die Zustellung ausgelöst hat. Verwendung ohne Namensraum: {{ session_id }}.

Platzhalter Wert Leer bei
event_type z. B. session.checked —
session_id Session-UUID —
organization_id Organisations-UUID —
project_id Projekt-UUID —
data_provider_id Data-Provider-UUID Sessions ohne Provider
data_contract_id Data-Contract-UUID —
period Die Lieferperiode, z. B. 2026-08 —
status Aktuelle Pipeline-Stufe, z. B. checked —
verdict passed / warnings / failed — Ergebnis der automatischen Prüfungen Ereignissen vor einem Prüfergebnis (created, uploaded, parsed, transformed)
phase technical (session.parsed, session.failed bei parse), context (session.failed bei context_fetch / context_validation), content (session.transformed, session.checked, session.failed bei transform / validation_gating / validate / check) Jedem anderen Ereignis
parse_error_count Parse-Befunde der Schwere error über alle Dateien (eine gar nicht lesbare Datei zählt als einer) Jedem Ereignis außer session.parsed und session.failed bei parse
parse_warning_count Parse-Befunde der Schwere warning Jedem Ereignis außer session.parsed und session.failed bei parse
health Dashboard-Zustand: created, in_progress, blocked, attention, ready, completed —
run_id UUID des Pipeline-Laufs Jedem Ereignis, das kein Lauf-Ereignis ist: session.parsed, session.transformed, session.checked und session.failed tragen sie
occurred_at ISO-8601-Zeitstempel des Ereignisses —
stage Fehlgeschlagene Stufe: context_validation, context_fetch, parse, transform, validation_gating, validate, check Jedem Ereignis außer session.failed
reason Kurzer Fehlercode (context_invalid, context_fetch_failed, context_fetch_timeout, parse_error, blocking_violations, …) Jedem Ereignis außer session.failed
message Lesbare Fehlererklärung, z. B. welche Kontextquelle warum fehlgeschlagen ist; null, wenn die Stufe stattdessen Befunde hinterlassen hat Jedem Ereignis außer session.failed

Exportdetails (data.export.*) sind aus einem Mapping nicht adressierbar.

context.* — Bindings und Context Sources

{{ context.<name> }} für jeden im Kontextschema des Projekts deklarierten Skalar (Tabellen unter _tables sind nicht adressierbar). Der Wert ist, was der Session-Kontext zum Zeitpunkt der Zustellung bzw. des Fetch enthält.

  • In einem Binding rendert ein deklarierter Skalar, den die Session nie gesetzt hat, als null — ein optionales Feld bleibt leer, ein Eintrag in required_fields schlägt mit dem Feldnamen fehl. Ein im Schema nicht deklarierter Name wird beim Speichern abgelehnt.
  • In einer Context Source muss der referenzierte Skalar beim Start des Fetch bereits im Session-Kontext sein — vom Aufrufer bei der Session-Erstellung geliefert. Werte, die andere Sources desselben Fetch erzeugen, stehen nicht als Platzhalter zur Verfügung.

session.* — Bindings und Context Sources

Drei freigegebene Session-Attribute, als Strings gerendert:

Platzhalter Wert
session.id Session-UUID
session.period Perioden-String
session.data_provider_id Data-Provider-UUID oder null

Rendering-Regeln

  • Ein String, der genau ein Platzhalter ist, wird durch den Rohwert ersetzt — Zahlen bleiben Zahlen, null bleibt null.
  • Ein in einen längeren String eingebetteter Platzhalter (FIBU {{ period }}) wird als Text gerendert.
  • Ist das Ziel SQL (PostgreSQL-Sources), werden Platzhalter als Parameter gebunden; ist es JSON (BuiltAPI, Salesforce), werden sie in die JSON-Struktur eingesetzt. Nie in URLs oder Bezeichner.
  • value_maps (Bindings) laufen nach dem Rendern und vor der required_fields-Prüfung: Ein "*"-Fallback kann ein Pflichtfeld füllen.

Kontext-Fetch-Report

An der Session als context_fetch_report gespeichert; auf der Session-Seite sichtbar und vom Re-Fetch-Endpunkt zurückgegeben.

status Bedeutung
pending Der Fetch ist eingereiht oder läuft. Die Pipeline wartet.
completed Jede Source war erfolgreich; Kontext gemischt und erneut validiert.
failed Mindestens eine Source ist fehlgeschlagen. Die Pipeline ist blockiert, bis ein erneuter Lauf gelingt.

Je Source: name, status (ok / error), rows, error_kind, message, overwrote_caller_value.

Fehler beim Kontext-Fetch

error_kind Ausgelöst wenn
connection_error Das System ist nicht erreichbar, läuft in ein Timeout oder antwortet 5xx; PostgreSQL-Verbindungs-Timeout.
auth_error Token, Passwort oder Zugangsdaten abgelehnt; keine Zugangsdaten hinterlegt.
query_error Die Abfrage ist fehlerhaft oder verletzt ein Limit (ungültige Entity-ID, Nicht-SELECT-SQL, zu viele Zeilen, Statement-Timeout, Skalar mit mehr als einer Spalte, fehlende workspace_id).
empty_result Ein Pflicht-Ziel hat keine Zeilen / keinen Wert erhalten.

Zustellungsprotokoll

Outbound-Binding-Zustellungen teilen sich die Tabelle mit Webhook-Zustellungen (GET /api/webhook-deliveries?connection_id=…); Binding-Zustellungen tragen connection_id, project_id und binding_name statt endpoint_id.

status Bedeutung
pending Wartet auf den nächsten Versuch; next_retry_at sagt wann.
in_progress Ein Versuch läuft.
succeeded Der Datensatz wurde erzeugt; last_response_excerpt enthält die Datensatz-ID des Zielsystems.
failed Dead-Letter: Versuche erschöpft oder ein permanenter Fehler.

last_error trägt <kind>: <message>:

Kind Retry? Typische Meldung
connection_error ja, mit Backoff Salesforce returned 503, Token endpoint unreachable: ConnectTimeout
delivery_rejected nein Salesforce rejected the record (HTTP 400), Required mapping field(s) resolved to an empty value: …, Query placeholder 'run_id' has no value in this session
auth_error nein Token endpoint rejected the credentials (HTTP 400), Salesforce rejected a freshly issued token (HTTP 401)

Fehler vor dem Adapterlauf werden ohne Kind-Präfix gespeichert:

last_error Bedeutung
connection_missing Die Connection wurde gelöscht oder gehört einer anderen Organisation.
connection_inactive Die Connection ist deaktiviert.
binding_missing Das Binding wurde aus dem Projekt entfernt (oder umbenannt).
binding_inactive Das Binding ist deaktiviert — von Hand oder durch Auto-Deaktivierung.
adapter_missing / adapter_not_outbound Der Connection-Typ hat keinen Outbound-Adapter (sollte bei einem validierten Binding nicht vorkommen).
credential_decrypt_failed Das gespeicherte Geheimnis ließ sich nicht entschlüsseln — Zugangsdaten rotieren.

Retry-Zeitplan

Gemeinsam mit Webhook-Endpunkten: Basisverzögerung 30 s, exponentielles Backoff bis 1 h, Jitter je Versuch, 6 Versuche, dann Dead-Letter. Nach 10 aufeinanderfolgenden Dead-Letters wird ein Binding automatisch deaktiviert; ein Erfolg setzt den Zähler zurück. Adapteraufrufe laufen nach 15 s in ein Timeout (Salesforce, BuiltAPI).