Skriptbasierte Source-Templates¶
Verwende sourceScripted="true", wenn eine versionierte Projektdatei als Daten-Template dient und ihre Werte im aktuellen Datensatzkontext ausgewertet werden müssen. Für normale Quelldaten bleibt die Option ausgeschaltet: Mit der Aktivierung werden Dateiinhalte zu ausführbaren Ausdrücken.
Die zwei Ersetzungsformen haben unterschiedliche Verträge:
- Ein vollständiger Wert wie
{40 + 2}wird als Ausdruck ausgewertet und behält den Ergebnistyp. Das Beispiel erzeugt deshalb die Ganzzahl42, nicht den String"42". - Ein Platzhalter in Text wie
customer-__row_number__führt eine String-Ersetzung aus.variablePrefixundvariableSuffixkönnen die standardmäßigen__-Begrenzer ersetzen.
| data/people.ent.csv | |
|---|---|
1 2 3 4 | |
| scripted-source.xml | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
Die Ausgabealter sind die Ganzzahlen 42, 37 und 29; die Labels lauten customer-1, customer-2 und customer-3.
Drei Mechanismen nicht vermischen¶
sourceScriptedwertet Werte aus einer unterstützten Projektdatei aus.scriptan einem Feld berechnet genau dieses Feld.scriptals Ausführungsbasis eines verschachteltengeneratebesitzt den vollständigen Datensatz- oder Datensatzlistenwert. Ein Dictionary steht für einen Datensatz, eine Liste von Dictionaries für mehrere Datensätze.
Verwende den kleinsten Mechanismus, der die Anforderung ausdrückt. Eine normale Datendatei ist leichter zu prüfen als ein ausführbares Template, und ein typisierter Generator oder eine Field-Intent-Variante ist für Authoring besser validierbar als ein beliebiges Skript.
Grenzen¶
- Ausdrücke laufen im aktuellen DATAMIMIC-Evaluationsnamespace; sie werden nicht beim Descriptor-Parsing interpoliert.
- Ein Klammerausdruck muss den vollständigen Source-Wert belegen. Text um den Ausdruck verhindert die Auswertung.
- Eingebettete Prefix-/Suffix-Ersetzung erzeugt immer Text.
- Source-Spalten und Variablen sollten einander nicht überschatten; verwende unterscheidbare fachliche Namen.
- Begrenze den Read und wähle eine von der Source-Familie unterstützte Distribution.
Siehe sourceScripted, variablePrefix und variableSuffix für den generierten Attributvertrag und Expression-Lebensdauer für Descriptor-Ausdrücke.