Testing und Werkzeuge
Custom Mapping testen
Testen Sie PHP-Konfigurationen für benutzerdefinierte Datenzuordnungen
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:
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
// 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.
[
{
"key": "value",
"items": [1, 2, 3]
},
{
"nested": {
"property": "value"
}
}
]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
- Custom Mapping Regeln: Verwaltung und Zuordnung der getesteten Regeln
- Modules & Validierungen Use Case: Fachliche Hintergründe zur Datenanreicherung
- Output.Rocks-Syntax: Referenz für Template-Expressions, die auf
mappedDatazugreifen