Globale Konfigurationen
- 1 Neuer Eintrag erstellen
- 1.1 Name (ID)
- 1.2 Typ
- 1.2.1 Wieso eine Typisierung?
- 2 Umgang mit typisierten Einträgen
- 2.1 Globale Einträge in den Vorlagen referenzieren
- 2.2 Referenzen in Globalen Einträgen
- 2.2.1 Beispiel 1
- 2.2.2 Beispiel 2
- 2.3 Beispiel Vorlage “Sitzungseinladung”
- 2.3.1 Inhalt Sitzungseinladung
- 2.3.1.1 Forms
- 2.3.1.2 Fields
- 2.3.1.3 Platzhalterzuordnung
- 2.3.2 Layout Sitzungseinladung
- 2.3.2.1 Platzhalterdefinition
- 2.3.1 Inhalt Sitzungseinladung
- 2.4 GlobalCode
- 2.4.1 GlobalCode erstellen
- 2.4.2 Verwendung in Fields
- 3 Umgang mit Untyped (classic)
In den Globalen Konfigurationen werden alle Konfigurationen, die in mehreren Vorlagen verwendet werden, in Gruppen unterteilt abgelegt. Der Vorteil liegt darin, dass so Texte und Konfigurationen nur an einem Ort geändert werden müssen.
Würde z. B. die Konfiguration für eine Adressschnittstelle in jeder Vorlage einzeln eingebaut werden, müsste bei einer Anpassung jede Vorlage angepasst werden. Dies ist viel aufwändiger, als die Adressschnittstelle lediglich an einer Stelle in den Globalen Konfigurationen anzupassen.
Neuer Eintrag erstellen
Name (ID)
Die Globalen Konfigurationen kennen zwei Ebenen: ein Eintrag ist in einer Gruppe und hat einen Namen. Beide zusammen ergeben die ID des globalen Eintrags. Diese sieht also zum Beispiel so aus: GroupName.EntryName
.
Neue Gruppe erstellen: Wird der ganze Name ersetzt mit FieldsDefaults.Letter
, wird eine neue Gruppe "FieldsDefaults" erstellt mit einem neuen Eintrag "Letter".
Mehr Ebenen: Man kann einen globalen Eintrag nicht “tiefer” konfigurieren als in eine Gruppe. Auch wenn das UI dies nicht visuell unterstützt, kann man die ID trotzdem mit einer weiteren Unterteilungen mittels Punkten ausstatten, wenn man das möchte: GroupName.SubGroup1Name.SubGroup2Name.EntryName
Typ
Einem globalen Eintrag muss ein Typ zugewiesen werden. Der Typ wird je nach Zielkonfiguration gewählt:
Typ | Zielkonfiguration |
---|---|
FormsGlobalElements | für Felder in der Dokumentfunktion Formulare (Forms) Forms-Elemente vom Typ |
FormsGlobalDataProviders | für Datenschnittstellen in Forms |
FormsGlobalSchemaAndSummary | für Datenschnittstelle | Schema und Datenschnittstelle | Summary |
FieldsGlobalFields | für Felder in der Dokumentfunktion Felder (Fields) |
FieldsGlobalCode | zum Abspeichern von JavaScript-Funktionen, siehe weiter unten |
PlaceholderGlobalMappings | für Felder in der Dokumentfunktion Platzhalterzuordnung (PlaceholderMapping) |
PlaceholderGlobalDefinitions | für Felder in der Dokumentfunktion Platzhalterdefinition (PlaceholderDefinition) |
DataGlobalSchema | für Schemas für die Dokumentfunktion Data |
Untyped (classic) | Für alle Dokumentfunktionen der classic-Vorlagen. |
Wieso eine Typisierung?
Der Vorteil der Typisierung der globalen Einträge ist die Validierung, die damit ermöglicht wird.
Ist der Typ des globalen Eintrags definiert, lässt sich die XML-Konfiguration mit der entsprechenden Unterstützung von Element- und Attributvorschlägen vornehmen, als ob man sich in der entsprechenden Dokumentfunktion befänden. Ausnahme davon bleibt der Typ Untyped, der in classic Vorlagen eingesetzt wird.
Es ist klar, in welcher Dokumentfunktion das entsprechende Feld gefunden und referenziert werden darf. z.B. können Sie in einer Felder (Fields)-Konfiguration einer Vorlage nur globale Einträge vom Typ
FieldsGlobalFields
verknüpfen.
Umgang mit typisierten Einträgen
Globale Einträge in den Vorlagen referenzieren
Damit ein globaler Eintrag in einer Vorlage referenziert werden kann, wird immer mit dem Element <Global... Key="GroupName.EntryName" />
gearbeitet.
Global...
Element: Der Name des genauen Elements ist je nach Dokumentfunktion unterschiedlich (siehe Tabelle unten).Key: Um einen globalen Eintrag schlussendlich zu referenzieren, wird als Key die ganze ID des globalen Eintrags benötigt (der EntryName allein oder sogar ein Feldname werden nicht funktionieren).
Hier eine Übersicht über alle <Global... />
-Elemente je nach Dokumentfunktion:
Dokumentfunktion | Element, um globaler Eintrag zu holen |
---|---|
Forms |
|
Fields |
|
Platzhalterzuordnung |
|
Platzhalterdefinition |
|
Data |
|
Beim Bearbeiten der XML-Konfiguration in einer der fünf Dokumentfunktionen wird natürlich immer das richtige Element in der Liste mit den Vorschlägen angezeigt.
Referenzen in Globalen Einträgen
Globale Einträge können auch wiederum in anderen globalen Einträgen referenziert werden. So können ganze Hierarchien entstehen.
Beispiel 1
Vorlage “Brief”, Forms-Dokumentfunktion enthält
GlobalElement mit Key
Forms.Recipient-Invitation
. Diese Konfiguration enthält unter anderem wiederumGlobalSchemaAndSummary mit Key
Recipients.Objects.InternalListSchema
enthält die finalen Felder.
GlobalDataProviders mit Key
Recipients.Objects.DefaultProviders
. Diese Konfiguration enthält die finalen Felder.
Beispiel 2
Vorlage “Formular”, Fields-Dokumentfunktion enthält
GlobalField mit Key
Fields.Signers
. Diese Konfiguration enthält wiederumGlobalField mit Key
Fields.Signers.Signer0
. Diese Konfiguration enthält die finalen Felder.GlobalField mit Key
Fields.Signers.Signer1
. Diese Konfiguration enthält die finalen Felder.
GlobalField mit Key
Fields.EmptyDate
. Diese Konfiguration enthält die finalen Felder.
Beispiel Vorlage “Sitzungseinladung”
Schauen wir uns ein Beispiel Vorlage “Sitzungseinladung” an, die vollends mit Referenzen aus den Globalen Konfigurationen ausgestattet ist.
Ziel ist es immer, eine Konfiguration von Feldern, die oft verwendet werden, mehrmals verwenden zu können. Folglich werden in diesem Beispiel diese Referenzen eingesetzt, weil es mehrere Einladungsvorlagen gibt, die dieselben Felder benötigen.
Inhalt Sitzungseinladung
Forms
Direkt in Vorlage
<FormsConfiguration>
<Elements>
<GlobalElements Key="Forms.Recipient-Invitation" />
<Date Id="Date" Label="Sitzungsdatum" RelativeDate="Today" translate-Format="Configuration.DateFormat.WrittenOut" />
</Elements>
</FormsConfiguration>
Globale Einträge
Key: Forms.Recipient-Invitation
<FormsGlobalElements>
<ObjectCollection Id="Participants" Label="Teilnehmende">
<GlobalSchemaAndSummary Key="Recipients.Objects.InternalListSchema"/>
</ObjectCollection>
</FormsGlobalElements>
↓ Globaler Eintrag enthält selber eine Referenz:
Key: Recipients.Objects.InternalListSchema
<FormsGlobalSchemaAndSummary>
<Schema>
<Text Id="FirstName" Label="Vorname" />
<Text Id="LastName" Label="Name" />
<Text Id="Alias" Label="Kürzel" />
<YesNo Id="IsLead" Label="Hat Sitzungsleitung" />
</Schema>
<Summary>
<Field Id="FirstName" />
<Field Id="LastName" />
<Field Id="Alias" />
</Summary>
</FormsGlobalSchemaAndSummary>
Fields
Direkt in Vorlage
Globale Einträge
Key: Fields.Recipient.ParticipantsLine
Key: Fields.Date
Platzhalterzuordnung
Direkt in Vorlage
Globaler Eintrag
Key: Placeholders.Map.Invitation
Layout Sitzungseinladung
HINWEIS
Die Inhalt basiert immer auf einer Layout. In der Layout sind die Platzhalter für in die Kopf- oder Fusszeile definiert.
Platzhalterdefinition
Direkt in Vorlage
Globaler Eintrag
Key: Placeholders.Def.Invitation
GlobalCode
Manchmal benötigen unterschiedliche Fields in verschiedenen Vorlagen die genau gleiche Logik aber mit anderen Werten (z. B. andere Forms
-Felder). GlobalCode ermöglicht es, eine Funktion in den globalen Konfigurationen abzuspeichern und in Fields-Feldern zu verwenden.
GlobalCode erstellen
GlobalCode
wird in den Globalen Konfigurationen als Eintrag vom Typ FieldsGlobalCode
erstellt.
Ein Beispiel:
Es ist ein GlobalCode
mit Id Code.formatNumber
in den Globalen Konfigurationen gespeichert. Er enthält eine Funktion formatForTable()
mit den Parametern input
(ein String
) und isInCHF
(ein Boolean
).
Der String input
wird zuerst in eine Zahl umgewandelt und wird dann abhängig von isInCHF
in einem länderspezifischen Format als String ausgegeben.
Verwendung in Fields
Nun kann diese Funktion in Fields referenziert werden.
GlobalCode
steht allen Fields zur Verfügung, d.h. ob GlobalCode in einem Field direkt in einer Vorlage oder in den Globalen Konfigurationen referenziert wird, spielt keine Rolle.GlobalCode kann für jeden Field-Typen eingesetzt werden.
Zum Beispiel: In einer Fields-Konfiguration in einer Vorlage wird zwischen Start- und End-Tag eine Referenz zum vorhin erstellten GlobalCode
mit Key Code.formatNumber
gemacht:
Umgang mit Untyped (classic)
Die Informationen befinden sich in Datensätzen (Data-Tag), die sich wiederum in Gruppen (Group-Tag) befinden. Der Inhalt in einem Datensatz wird in einer Konfiguration nach folgendem Muster verknüpft: {[GroupName.DataName]}
Beispiel 1 – Text
Der global abgelegte Datensatz "Config.Depth" beinhaltet den Wert 5
:
Beispiel 1 - Bild
Beispiel 1 - Dahinterliegendes XML:
Der Datensatz kann nun in allen XML-Konfigurationen der Dokumentfunktionen verknüpft werden. So z. B. in der XML-Konfiguration der Dokumentfunktion Skripte:
{[Config.Depth]}
wird nun jeweils mit 5
ersetzt. Die Skript-Resultate werden 5 Mal durchgerechnet. Muss dieser Wert angepasst werden, kann das einmal in den Globalen Konfigurationen vorgenommen werden. Folglich wird diese Änderung in allen Vorlagen, die {[Config.Depth]}
enthalten, automatisch angepasst.
Beispiel 2 – Ganzes Skript
Der global abgelegte Datensatz "Salutation" beinhaltet ein Skript:
Beispiel 2 - Bild
Beispiel 2 - Dahinterliegendes XML
Das Skript "Salutation" wird in allen Kundenlösungen initial als Standardskript für die Anrede in einem Brief verwendet. Deshalb wird es in Korrespondenz-Vorlagen in der Dokumentfunktion "Skripte" verknüpft:
{[Scripts.Salutation]}
wird nun jeweils mit dem Inhalt aus den Globalen Konfigurationen ersetzt. Der Inhalt ist ein Skript, das zwei Contact-Elemente anzieht. In das Dokument wird also schlussendlich die Anrede eingefügt, die vom Benutzer im Empfängerdialog ausgewählt wurde.
Beispiel 3 – Ganzes Skript mit Übersetzungen
Der global abgelegte Datensatz "Enclosures" beinhaltet ein Skript mit einer Übersetzung:
Beispiel 3 - Bild
Beispiel 3 - Dahinterliegendes XML
Das Skript "Enclosures" wird vor allem in Briefen verwendet, da so eine Liste mit allen im Dokument-Parameter eingegebenen Beilagen erstellt wird. Deshalb wird es hier in Briefvorlagen in der Dokumentfunktion "Skripte" verknüpft:
{[Scripts.Enclosures]}
wird nun jeweils mit dem Inhalt aus den Globalen Konfigurationen ersetzt. Der Inhalt ist ein Skript mit einer Übersetzung und dem Verweis auf ein Dokument-Parameter-Feld. Die Übersetzung wird mittels {D[Texts.Enclosures]}
aus den Globalen Übersetzungen geholt.
Beispiel 4 – Skript mit Übersetzung
Der global abgelegte Datensatz "Translations" beinhaltet mehrere Skripte mit Textinhalten:
Beispiel 4 - Bild
Beispiel 4 - Dahinterliegendes XML
Die Skripte (z. B. "Texts.Draft") enthalten Übersetzungen, die in allen Briefen dienen können. Deshalb wird der Datensatz hier in einer Layoutvorlage in der Dokumentfunktion "Skripte" verknüpft:
{[Scripts.Translations]}
wird nun jeweils mit dem Inhalt aus den Globalen Konfigurationen ersetzt. In allen Vorlagen, die auf dieser Layoutvorlage basieren, können diese Übersetzungen als Textfeld in die Vorlage eingefügt werden. Muss ein Wort angepasst werden, kann das einmal in den Globalen Übersetzungen vorgenommen werden. Anschliessend wird die Änderung direkt in jeder Vorlage übernommen, die diese Übersetzung verknüpft hat.
PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland