Der Test-Custom-Mapping-Bereich ermöglicht es, PHP-Konfigurationen für das Umschreiben und logische Bearbeiten von Rendering-Daten durchzuspielen, bevor sie produktiv verwendet werden.

Hier finden Sie eine Einleitung zu Custom Mapping Regeln.


Erstellte Regeln landen anschließend im Bereich Vorlagen-Management -> Custom Mappings.

Sie validieren damit z.B. komplexe Datenanreicherungen, führen ID-to-Label Extrahierungen durch oder setzen Mailserver-Identifikatoren.

Diese Seite zeigt eine Liste aller Elemente, und darüber diverse Aktionen, die du ausführen kannst:

Custom Mapping testen

PHP-Konfiguration

Die linke Editor-Spalte stellt einen PHP-Editor mit Syntax-Highlighting bereit. Der Button Test rendert die aktuelle Konfiguration und liefert unten das Mapping-Ergebnis.

PHP Konfiguration
Test
<?php

// Beispiel: Brand-Mapping 
// anhand internalProcessId Zuordnung
// und Mailserver/Webhook setzen

$mappedData = $data['or'] ?? [];

$internalProcessId = $data['contract']['internalProcessId'] ?? null;
if ($internalProcessId === '84') {
    $mappedData['brand_id'] = 'stadtwerk-west';
    $request['template'] = 'invoice-brand-router';
    $request['emailServer'] = 'smtp-stadtwerk';
    $request['webhook'] = 'brand-west-webhook';
} else {
    $mappedData['brand_id'] = 'default-brand';
    $request['emailServer'] = 'default-smtp';
    $request['webhook'] = 'default-webhook';
}

return [
    'request' => $request,
    'mappedData' => $mappedData,
];

Dieses Beispiel übernimmt die im Payload enthaltene contract.internalProcessId, setzt ein Brand-Mapping und aktualisiert Template, Mailserver & Webhook. Wichtig: Rückgabewert muss ein Array mit request und mappedData sein.

Bei bereits vor dem Test ausgeführten Mapping-Regeln können Werte in data.or hinterlegt haben. Der Ausdruck $mappedData = $data['or'] ?? []; übernimmt diese vorhandenen Ergebnisse, damit Ihr Custom Mapping sie nicht überschreibt, sondern ergänzt oder anpasst.

JSON & Testdaten

Für aussagekräftige Tests benötigen Sie Payload-Daten. Nutzen Sie gespeicherte Testdatensätze oder geben Sie JSON manuell ein.

Testdaten laden
[
{
"key": "value",
"items": [1, 2, 3]
},
{
"nested": {
"property": "value"
}
}
]
Ein JSON-Array mit strukturierten Daten für Custom Mapping.

Verwenden Sie den "Testdaten laden" Button, um schnell gespeicherte Testdaten aus dem Testdaten-Bereich zu laden.

Test-Custom-Mapping benötigt einen vollständigen RenderRequest. Verwenden Sie also nicht nur den Payload, sondern das komplette Objekt mit request-Feldern und data, wie im folgenden Beispiel gezeigt.

{
  "externalId": "external-id-bleibt-unveraendert",
  "template": "my-invoice",
  "format": "pdf",
  "webhook": "my-webhook",
  "comment": "",
  "emailServer": "default-smtp",
  "metadata": {
    "reference": "my-reference-123",
    "info": {}
  },
  "data": {
    "contract": { 
      "isSpecial": true,
      "internalProcessId": "84"
    },
    "invoiceNumber": "123456",
    "payloadKey": "payloadValue",
    "payloadObject": []
  }
}

Ergebnis & Fehler

Nach dem Klick auf Test erscheint rechts das Ergebnis: die finale PHP-Konfiguration sowie das Array mit request/mappedData. Zusätzlich werden Loader und Fehlermeldungen angezeigt.

Ergebnis

{
  "externalId": "external-id-bleibt-unveraendert",
  "template": "invoice-brand-router",
  "format": "pdf",
  "webhook": "neuer-webhook-identifier",
  "comment": "Brand gemappt und Webhook + SMTP angepasst",
  "emailServer": "smtp-stadtwerk",
  "metadata": {
    "reference": "ref-bleibt-konstant",
    "info": []
  },
  "data": {
    "or": {
      "brand_id": "stadtwerk-west",
      "mapped_key": 84
    },
    "contract": {
      "isSpecial": true
    },
    "invoiceNumber": "123456",
    "payloadKey": "payloadValue",
    "payloadObject": []
  }
}

Wie auch unter Datenmapping-Regeln beschrieben, bleiben die vorhandenen Request-Keys bestehen, nur ihre Werte können verändert werden (z.B. Template oder Mailserver). Innerhalb von data dürfen Keys hinzukommen oder entfallen – hier ergänzt das Mapping z.B. brand_id und mapped_key.

Angelegte $mappedData['key'] = 'value'; werden immer automatisch unter data.or Objekt gespeichert, damit sie in Templates über <<or.*>> verfügbar sind.

Fehlermeldungen

Fehlermeldungen

Syntaxfehler oder ungültige Rückgabewerte werden hier angezeigt. Für PHP-Syntax, verfügbare Funktionen und Fehlermeldungen finden Sie die Referenz z.Bsp. unter php.net.

Prüfen Sie insbesondere, dass return ['request' => ..., 'mappedData' => ...]; vorhanden ist.

Verwandte Bereiche