VarReference
VarReference
Kurzbeschreibung
Das XML-Element
<VarReference>bindet einen Dokumentbaustein dynamisch ein.Anders als bei
<Reference>wird der Name des einzubindenden Bausteins nicht fest im XML hinterlegt, sondern während der Dokumenterzeugung aus dem Inhalt einer Variablen ermittelt.
Einordnung
Bereich: Inhalte
Schwierigkeitsgrad: ⭐⭐⭐⭐☆
Vorkenntnisse: Reference · RefParam · Variable
Siehe auch
- Reference
- RefParam
- Variable
Zweck
<VarReference> ermöglicht es, Dokumentbausteine abhängig vom Inhalt einer Variablen einzubinden.
Dadurch kann dieselbe Dokumentvorlage in unterschiedlichen fachlichen Situationen automatisch unterschiedliche Bausteine verwenden.
Die Entscheidung erfolgt während der Dokumenterzeugung.
Unterschied zu Reference
Der wichtigste Unterschied besteht darin, wie der Name des Bausteins bestimmt wird.
| Reference | VarReference |
|---|---|
| Der Bausteinname ist fest im XML hinterlegt. | Der Bausteinname wird aus einer Variablen gelesen. |
| Immer derselbe Baustein. | Unterschiedliche Bausteine je nach Datensatz. |
Arbeitsweise
Während der Dokumenterzeugung wird zunächst der Inhalt der im Attribut Path angegebenen Variablen gelesen.
Der Inhalt dieser Variablen wird anschließend als Name des einzubindenden Dokumentbausteins verwendet.
Beispielsweise:
Variable
↓
source.Y_Einzug
↓
Variableninhalt
↓
Y_Einzugsermaechtigung
↓
Einzubindender DokumentbausteinDer Redakteur muss den Namen des Bausteins daher nicht kennen.
Er ergibt sich vollständig aus den Daten des Auftrags.
Typisches Einsatzgebiet
Ein häufiges Einsatzgebiet sind sogenannte Beitragsbescheide.
Hier existieren häufig
- wenige eigentliche Dokumentvorlagen,
- aber eine große Anzahl fachlicher Dokumentbausteine.
Welche Bausteine benötigt werden, entscheidet bereits das vorgelagerte Fachverfahren.
Dieses stellt entsprechende Variablen bereit.
Die Rolle des Quellsystems
Die eigentliche Logik befindet sich nicht innerhalb von intracon.
Das Quellsystem entscheidet,
- welche Variablen erzeugt werden,
- welche Werte diese besitzen und
- welche Bausteine dadurch eingebunden werden.
Die Dokumentvorlage übernimmt lediglich die dynamische Einbindung.
Dadurch bleibt die XML-Vorlage vergleichsweise einfach, obwohl zahlreiche fachliche Kombinationen möglich sind.
Hinweis
Welche Variablen und Werte zur Verfügung stehen, wird vom jeweiligen Quellsystem beziehungsweise dessen Fachverantwortlichen definiert.
Diese Informationen müssen dem Redakteur bekannt sein, da sie nicht Bestandteil der Dokumentvorlage sind.
Attribute
| Attribut | Beschreibung |
|---|---|
| Path | Variable, deren Inhalt den Namen des einzubindenden Dokumentbausteins enthält. |
| DefaultName | Dokumentbaustein, der verwendet wird, wenn kein passender Baustein gefunden wird oder die Variable leer ist. |
| Prefix | Fester Text, der vor den ermittelten Bausteinnamen gesetzt wird. |
| Postfix | Fester Text, der an den ermittelten Bausteinnamen angehängt wird. |
Path
Path verweist auf die Variable, deren Inhalt den Namen des einzubindenden Dokumentbausteins liefert.
Beispiel:
<VarReference Path="source.Y_Einzug">
</VarReference>Enthält die Variable beispielsweise
Y_Einzugsermaechtigungwird automatisch der Dokumentbaustein
Y_Einzugsermaechtigungeingebunden.
DefaultName
Ist die Variable leer oder kann kein passender Dokumentbaustein gefunden werden, kann alternativ ein Standardbaustein verwendet werden.
Dazu dient das Attribut DefaultName.
Hier wird direkt der Name des Dokumentbausteins angegeben.
Dadurch können Standardtexte oder Fallback-Lösungen bereitgestellt werden.
Prefix und Postfix
Mit Prefix und Postfix kann der ermittelte Bausteinname erweitert werden.
Beispiel:
Prefix
+
Variableninhalt
+
Postfix
↓
Vollständiger BausteinnameDiese Funktion wird nur selten benötigt, bietet jedoch zusätzliche Flexibilität bei Namenskonventionen.
RefParam
Wie bei <Reference> können innerhalb einer <VarReference> auch <RefParam>-Elemente verwendet werden.
Dadurch lassen sich Parameter an den dynamisch eingebundenen Dokumentbaustein übergeben.
Somit können auch dynamische Dokumentbausteine mit individuellen Informationen versorgt werden.
Typische Einsatzgebiete
<VarReference> eignet sich insbesondere für:
- Beitragsbescheide
- fachlich unterschiedliche Dokumentvarianten
- modulare Dokumentvorlagen
- dynamische Textbausteine
- variable Dokumentinhalte
Besondere Herausforderung
Die technische Umsetzung ist vergleichsweise einfach.
Die eigentliche Herausforderung besteht darin, den Lesefluss des fertigen Dokuments über sämtliche fachlichen Kombinationen hinweg sicherzustellen.
Da unterschiedliche Datensätze unterschiedliche Dokumentbausteine einbinden können, sollte jeder Baustein so gestaltet werden, dass er sich harmonisch in das Gesamtdokument einfügt.
Best Practices
- Nur Variablen verwenden, deren mögliche Inhalte bekannt sind.
- Einen
DefaultNamedefinieren, wenn ein Standardbaustein vorgesehen ist. - Dokumentbausteine konsistent benennen.
- Dynamische Kombinationen mit unterschiedlichen Datensätzen testen.
- Bei Bedarf Parameter über
<RefParam>an den Baustein übergeben.
Developer-Tipp
<VarReference>trennt fachliche Entscheidungen vom Dokumentlayout.Das Quellsystem entscheidet, welcher Baustein benötigt wird.
Die Dokumentvorlage entscheidet lediglich, wie dieser Baustein dargestellt wird.
XML-Wissen
<VarReference> erweitert das Konzept von <Reference> um eine dynamische Auswahl.
Dadurch kann dieselbe Dokumentvorlage unterschiedlich aufgebaut sein, obwohl ihr XML-Code unverändert bleibt.
Die eigentliche Variabilität entsteht ausschließlich durch den Inhalt der verwendeten Variablen.
Typische Fehler
Variable enthält keinen gültigen Bausteinnamen
Existiert kein Dokumentbaustein mit dem ermittelten Namen, kann kein Baustein eingebunden werden.
Ein DefaultName kann in solchen Fällen eine sinnvolle Absicherung darstellen.
Fachliche Logik in der Dokumentvorlage erwarten
Die Entscheidung, welcher Baustein verwendet wird, trifft nicht die Dokumentvorlage.
Sie wird bereits vom vorgelagerten Quellsystem getroffen.
Lesefluss nicht berücksichtigen
Da unterschiedliche Kombinationen von Dokumentbausteinen entstehen können, sollte jede fachliche Konstellation getestet werden.
Nur so lässt sich ein durchgängiger und verständlicher Dokumentaufbau sicherstellen.
Fazit
<VarReference> ermöglicht die dynamische Einbindung von Dokumentbausteinen anhand des Inhalts einer Variablen.
Dadurch können mit wenigen Dokumentvorlagen sehr viele fachliche Varianten abgebildet werden.
Die eigentliche Steuerung erfolgt durch das Quellsystem, während die Dokumentvorlage ausschließlich die Darstellung übernimmt.