Scripting API¶
Die Scripting API bietet schreibgeschützten Zugriff auf DATAMIMIC-Kontextdaten aus benutzerdefinierten Python-Skripten. Verwende sie, um wiederverwendbare Funktionen zu erstellen, die aus script=-Ausdrücken aufgerufen werden können.
Übersicht¶
| Feature | Beschreibung |
|---|---|
| Zweck | Zugriff auf Kontextdaten aus benutzerdefinierten Python-Funktionen |
| Zugriff | Schreibgeschützt (gibt Kopien zurück, keine Live-Referenzen) |
| Geltungsbereich | Funktioniert nur während der Ausdrucksauswertung |
Schnellstart¶
1. Python-Skript erstellen¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
2. In XML-Modell verwenden¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
API-Referenz¶
Import¶
1 2 3 4 5 6 7 8 9 | |
Funktionen¶
load_memstore(product_name) -> list[dict]¶
Alle Datensätze aus einem Memstore laden.
load_memstore_page(product_name, skip, limit) -> list[dict]¶
Eine Seite von Datensätzen aus dem Memstore laden (für große Datensätze).
get_variable(name, default=None) -> Any¶
Einen Variablenwert aus dem aktuellen Datensatzkontext abrufen.
get_property(name, default=None) -> Any¶
Eine Eigenschaft aus dem Root-Kontext abrufen (z.B. aus .properties-Dateien).
get_current_product() -> dict | None¶
Eine Kopie des aktuellen Produkts abrufen (alle bisher generierten Schlüssel).
get_record_position() -> int | None¶
Die 1-basierte Position des aktuellen Datensatzes abrufen.
get_context_info() -> dict¶
Einen schreibgeschützten Snapshot der Kontextmetadaten abrufen.
Wichtig: Nur während Auswertung¶
Nur innerhalb von Funktionen aufrufen
Die Scripting API funktioniert nur während der Ausdrucksauswertung. Rufe diese Funktionen nicht zur Modul-Importzeit auf.
Korrekt:
1 2 3 | |
Falsch:
1 2 | |
Best Practices¶
- Funktionen definieren, nicht zur Importzeit ausführen - API funktioniert nur während der Auswertung
- Standardwerte verwenden - Fehlende Variablen elegant behandeln
- Teure Lookups cachen - Modulebene-Caches für wiederholte Lookups verwenden
- Funktionen rein halten - Kontext nicht ändern; berechnete Werte zurückgeben
- Funktionen dokumentieren - Anderen Teammitgliedern bei der Verwendung helfen