operate Element¶
Das <operate>-Element führt Batch-Operationen auf Vorlagen zur Datenumwandlung aus. Unterstützt werden sowohl XML (über XPath) als auch JSON (über JSONPath).
Note
Für JSON nutzen create-missing-Operationen eine strikte Objektpfad-Teilmenge von JSONPath und nicht die vollständige JSONPath-Abfragesprache.
Ubersicht¶
The operate element reads operation definitions from a CSV file and applies them to templates, enabling: Das operate Element liest Betriebsdefinitionen aus einer CSV-Datei und wendet sie auf Vorlagen an, wodurch Folgendes ermöglicht wird: - Batch-Datenumwandlungen - Vorlagenmodifikationen vor der Datengenerierung - Dynamische Wertinjektion mit Generatoren - Komplexe Strukturoperationen - Funktionsausführung
Attribute¶
| Attribute | Erforderlich | Beschreibung | Standard |
|---|---|---|---|
source |
Yes | CSV file path containing operations and models | - |
operation_prefix |
No | Prefix for operation column names in CSV | op |
template_not_found_action |
No | Action when template is missing: warn, error, ignore |
warn |
operation_not_matched_action |
No | Action when operation is invalid: warn, error, ignore |
warn |
CSV Dateiformat¶
Die CSV-Datei muss Folgendes enthalten:
- id: Eindeutige Kennung für jedes Artefakt
- template: Pfad zur Vorlagendatei
- Betriebsspalten: Benannt mit dem operation_prefix (z. B. op1, op2, op3)
Operationstypen¶
Basic Operations¶
set¶
Updated oder erstellt einen Wert am angegebenen Pfad.
XML Beispiel:
1 2 | |
JSON Beispiel:
1 2 | |
delete¶
Entfernt einen Knoten/Eigenschaft am angegebenen Pfad.
XML Beispiel:
1 2 | |
JSON Beispiel:
1 2 | |
Fortgeschrittene Strukturoperationen¶
XML-spezifische Operationen¶
-
replaceChildren: Ersetzt alle Kinder eines Knotens
1 2
op1 replaceChildren(//root/data,<item>New Item</item>) -
appendChild: Fügt einem Knoten ein Kind hinzu
1 2
op1 appendChild(//root/metadata,<updated>2025-07-17</updated>) -
upsertNode: Aktualisiert oder fügt einen Knoten ein
1 2
op1 upsertNode(//root/status,active) -
mergeAttributes: Attribute in einen Knoten werden zusammen geführt
1 2
op1 mergeAttributes(//root,id="test-123" enhanced="true") -
clearChildren: Entfernt alle Kinder eines Knotens
1 2
op1 clearChildren(//root/temp) -
upsertAttribute: Aktualisiert oder fügt ein Attribut ein
1 2
op1 upsertAttribute(//root,version="2.0")
JSON-Spezifische Operationen¶
-
mergeObject: Objekte zusammenführen
1 2
op1 mergeObject($.config,{"timeout": 30, "ssl": true}) -
upsertProperty: Aktualisiert oder fügt eine Eigenschaft ein
1 2
op1 upsertProperty($.metadata.version,2.0) -
replaceArray: Ersetzt ein ganzes Array
1 2
op1 replaceArray($.items,[{"id": 3, "name": "New Item"}]) -
appendItem: Fügt ein Element zu einem Array hinzu
1 2
op1 appendItem($.tags,new_tag) -
clearArray: Leert ein Array
1 2
op1 clearArray($.temp)
Dynamische Operationen¶
Benutze Generatoren und Variablen innerhalb von Operationen:
1 2 | |
Komplexe Beispiele¶
Beispiel 1: Basis XML Operationen¶
Setup (datamimic.xml):
1 2 3 | |
CSV (operations.opctl.csv):
1 2 3 | |
Beispiel 2: JSON mit komplexen Pfaden¶
1 2 3 | |
Beispiel 3: Healthcare Business Domain¶
Setup:
1 2 3 4 5 6 7 8 | |
CSV:
1 2 | |
Beispiel 4: Fehlerbehandlung¶
1 2 3 4 5 6 | |
Best Practices für <operate>¶
- Operation Reihenfolge: Planen Sie die Reihenfolge der Operationen sorgfältig
- Avoid modifying nodes after deletion
- Vermeide das Modifizieren von Knoten nach der Löschung
-
Erstelle Elternknoten vor Kindknoten
-
Pfad validierung: Stelle sicher, dass Pfade vor Operationen existieren
- Verwende Upsert-Operationen für unsichere Pfade
-
Behandle fehlende Pfade mit Fehleraktionen
-
Dynamische Inhalte: Verwende Generatoren und Variablen für dynamische Werte
- Nutze Generatoren für variable Inhalte
-
Kombiniere mit Variablen für dynamische Pfade
-
Performance: Für große Datensätze
- Gruppiere verwandte Operationen zusammen
- Verwende Batch-Operationen, wenn möglich
-
Berücksichtige die Komplexität der Vorlagen
-
Fehlerbehandlung:
- Setze
template_not_found_actionbasierend auf den Anforderungen - Verwende
warnfür Entwicklung,errorfür Produktion -
Überwache Protokolle auf Betriebswarnungen
-
Maintainability:
- Verwende beschreibende IDs in CSV-Dateien
- Dokumentiere komplexe Operationen
- Halte Vorlagen in logischen Verzeichnissen organisiert
Logische Validierung¶
Das Operate-System erkennt und meldet ungültige Betriebsequenzen: - Operationen auf gelöschten Knoten - Widersprüchliche Modifikationen - Ungültige Pfade nach strukturellen Änderungen
Integration mit Generatoren¶
Operate integriert sich mit DATAMIMIC-Generatoren: - Verwende Generatorausdrücke in Set-Operationen - Kombiniere mit Variablen für dynamische Inhalte - Unterstützung für alle DATAMIMIC-Generator-Typen
Beispiele nach Geschäftsfeldern¶
E-commerce Product Catalog¶
1 2 | |
Financial Services¶
1 2 | |
Government Permits¶
1 2 | |