<operate>
¶
Das <operate>
Element bietet leistungsstarke Batch-Operationen auf Vorlagen zur Datenumwandlung. Es unterstützt sowohl XML (unter Verwendung von XPath) als auch JSON (unter Verwendung von JSONPath) Vorlagen mit umfangreichen Betriebsmöglichkeiten.
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 |
template-dir |
No | Base directory for template files | - |
CSV Dateiformat¶
Die CSV-Datei muss Folgendes enthalten:
- id
: Eindeutige Kennung für jedes Artefakt
- template
: Pfad zur Vorlagendatei (relativ zum template-dir, falls angegeben)
- 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 9 |
|
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_action
basierend auf den Anforderungen - Verwende
warn
für Entwicklung,error
fü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 nahtlos 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 |
|