...
Es gibt drei verschiedene Arten von Skripts, die nicht vermischt werden dürfen:
Skript-Art | Beschreibung |
---|---|
Textskript | Das Resultat ist ein Text. |
Snippetskript | Das Resultat ist eine Zusammensetzung von Textbausteinen. |
Imageskript | Das Resultat ist ein Bild. |
...
Grundgerüst eines Skripts
...
Die dritte Zeile ermöglicht, dass Skripte bzw. dynamische Binding-Elemente überhaupt in Vorlagen verwendet werden können. Hier ist eine Übersicht über die möglichen Attribute:
Attribut | Beschreibung |
---|---|
depth | Bestimmt, wie oft das Skript-Resultat berechnet wird. Generell wird die Verknüpfung mit der in den Globalen Konfigurationen hinterlegten Depth empfohlen, die standardmässig 5 beträgt. Greif ein Skript auf das Resultat eines anderen Skripts zu, muss |
engine | Bestimmt die Engine, die für die Scriptinterpretation bzw. -umsetzung zur Anwendung kommt. Als Wert steht nur "XSL" zur Verfügung. |
version | Bestimmt die Scriptengine-Version, die zur Anwendung kommt. Standardmässig ist der Wert 2. Die Angabe dieser Version könnte auch auf Ebene |
...
CustomDataNode-Element
Mittels CustomDataNode
wird ein neues Binding-Element erstellt, in welchem dann der Skriptinhalt definiert wird.
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="utf-8"?> <Configuration> <Script engine="XSL" version="2" depth="{[Config.Depth]}"> <CustomDataNode id="Scripts.Beispiel"> [...] </CustomDataNode> </Script> </Configuration> |
Attribut | Beschreibung |
---|---|
id | Id des Binding-Elements, das definiert wird. Die Id muss eindeutig sein. Für eine bessere Übersichtlichkeit im Vorlagen-Editor kann die Ordnerstruktur selber gesteuert werden: Enthält eine Id einen Punkt, wird aus dem Wort vor dem Punkt ein Ordner erzeugt. primedocs setzt dazu vor jede Id den Präfix "CustomElements.". Das muss beachtet werden, wenn in einem Skript auf ein anderes Skript zugegriffen wird. |
version | Bestimmt die Script-Engine-Version, die zur Anwendung kommt. Eine Angabe auf Ebene |
bookmarkname | Ermöglicht das Festlegen des Namens der Textmarke (Bookmark), in welche die entsprechenden Textbausteine (Snippets) eingefügt werden. die im Vorlageneditor eingefügt wird. Dieses Attribut wird nur im Zusammenhang mit Textbausteinen berücksichtigt. |
update | Bewirkt mit |
...
Elemente innerhalb von CustomDataNodes und ihre Attribute
...
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.Beispiel"> <Line> [...] </Line> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
fixoutput | Mittels |
...
Text
Mittels Text
werden Fixtexte ausgegeben.
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.TextBeispiel"> <Line> <Text>Das ist ein Fixtext.<Text> </Line> </CustomDataNode> |
...
Element
Mittels Element
werden Felder aus primedocs angezogen. Die angezogenen Daten können mittels den folgenden Attributen ergänzt oder formatiert werden:
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.Beispiel"> <Line> <Element id="Profile.User.Postal.City" separator=", " fCase="lower" /> <Element id="DocParam.Date" fFormattingDate="dddd, d. MMMM yyyy" /> </Line> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
id | Id des Feldes, das eingefügt werden soll |
checkBoxActivatedSymbol | Definition des Zeichens, das bei einer angewählten Checkbox ausgegeben werden soll |
checkBoxDeactivatedSymbol | Definition des Zeichens, das bei einer nicht angewählten Checkbox ausgegeben werden soll |
linePrefix | Präfix-Zeichen für jede Zeile einer Liste bzw. eines mehrzeiligen Text-Elements |
separator | Trenntext zum nächsten Element oder Text, der nur angezeigt wird, wenn das nachfolgende Element einen Inhalt liefert. |
showEmptyEndLines | Übernimmt alle vorhandenen nachgestellten Leerzeilen: |
showEmptyStartLines | Übernimmt alle vorhandenen vorangestellten Leerzeilen: |
textafter | Fixtext, der immer hinter dem Element erscheint. z. B. |
textbefore | Fixtext, der immer vor dem Element erscheint. z. B. |
when | siehe Condition |
notwhen | siehe Condition |
Funktionen | |
fCase* | Definiert, ob der einkommende Text gross ( |
fFormattingDate* | Definiert ein explizites Format für ein DateTime-Element. Generell wird immer mit den in den Globalen Übersetzungen vorhandenen Formaten verknüpft: |
fFormattingNumber* | Definiert ein explizites Format für Telefonnummern in einem Textfeld (z. B. im Feld "Profile.User.Phone"). z. B. |
fFormattingNumeric* | Definiert ein explizites Format für Nummern. |
fReplace* | Definiert, ob ein Teil des Textes ersetzt werden soll. |
fSelectLine* | Definiert, ob aus einem mehrzeiligen Text eine oder mehrere Zeilen selektiert werden sollen. |
fSubstring* | Definiert, ob nur ein Teil des Textes ausgegeben werden soll. |
fSubstringAfter* | Definiert, ob nur das Ende (nach einer bestimmten Zeichekette) des Textes ausgegeben werden soll. Ist das Trennzeichen nicht vorhanden wird der ganze Text ausgegeben. |
fSubstringAfterOrEmpty* | Definiert, ob nur das Ende (nach einer bestimmten Zeichenkette) des Textes ausgegeben werden soll. Ist das Trennzeichen nicht vorhanden wird kein Text ausgegeben. |
fSubstringBefore* | Definiert, ob nur der Anfang (vor einer bestimmten Zeichenkette) des Textes ausgegeben werden soll. Ist das Trennzeichen nicht vorhanden wird der ganze Text ausgegeben. |
fSubstringBeforeOrEmpty* | Definiert, ob nur der Anfang (vor einer bestimmten Zeichenkette) des Textes ausgegeben werden soll. Ist das Trennzeichen nicht vorhanden wird kein Text ausgegeben. |
fTrim* | Definiert, ob nur eine maximale Anzahl an Zeichen ausgegeben werden soll. |
fTrimURL* | Definiert, ob nur ein Teil einer URL oder eines Dateipfades ausgegeben werden soll (siehe auch fTrim). z. B. |
*Dieses Attribut kann beliebig oft hintereinander in einem Element platziert werden. In diesem Fall muss jedes Attribut mit weiteren Zeichen ergänzt werden, damit jeder Befehl eindeutig ist. Im folgenden Beispiel sind die fReplace-Attribute durchnummeriert:
...
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.ConditionsBeispiel"> <Condition when="DocParam.CheckBox1"> <Line> <Element id="Profile.User.Postal.City" separator=", " fCase="lower" /> <Element id="DocParam.Date" fFormattingDate="dddd, d. MMMM yyyy" /> </Line> </Condition> <Condition notwhen="DocParam.CheckBox1"> <Line> <Element id="Profile.Org.Postal.City" separator=", " fCase="lower" /> <Element id="DocParam.Date" fFormattingDate="d. MMMM yyyy" /> </Line> </Condition> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
when | Bedingung, damit die beinhalteten Elemente und Texte angezeigt werden. Bei der Angabe von Ids (ohne Textvergleichoperatoren, siehe unten) wird geprüft, ob das primedocs-Element mit der Id existiert und einen Inhalt hat. CheckBox Verhalten: Image Verhalten: Möchte man abfragen, ob bestimmte Bilddaten gesetzt oder "leer" sind und nur ein Bild "selektieren", muss man über eine direkte Condition gehen: |
notwhen | Analog dem when-Attribut, jedoch invertiert. |
Vergleichoperatoren
In einem when- oder notwhen-Attribut können auch Vergleichsoperatoren verwendet werden, wobei Fixtexte in einfachen Anführungszeichen (') stehen müssen:
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.ConditionsBeispiel"> <Condition when="DocParam.CheckBox1 contains 'direktion'"> <Line> <Element id="Profile.User.Postal.City" separator=", " fCase="lower" /> <Element id="DocParam.Date" fFormattingDate="dddd, d. MMMM yyyy" /> </Line> </Condition> <Condition notwhen="DocParam.CheckBox1 contains 'direktion'"> <Line> <Element id="Profile.Org.Postal.City" separator=", " fCase="lower" /> <Element id="DocParam.Date" fFormattingDate="d. MMMM yyyy" /> </Line> </Condition> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
| Der Inhalt wird 1:1 verglichen |
| Der Inhalt wird ohne Berücksichtigung von Gross-/Kleinschreibung und Leerzeichen verglichen |
| Prüfung ob der Inhalt eine bestimmte Zeichenkette enthält (an beliebiger Position) |
| Prüfung ob der Inhalt mit bestimmten Zeichen beginnt |
| Vergleich der Anzahl Zeichen |
| Prüfung ob die Zeichenanzahl grösser ist |
| Prüfung ob die Zeichenanzahl kleiner ist |
...
Snippet
Mittels Snippet
-Element können in primedocs gespeicherte Textbausteine verwendet oder fixe Inhalte abgefüllt werden.
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.SnippetScript"> <Snippet id="b353eb86-ac5a-4db4-99bc-1847e31793bb" /> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
id | Id des Feldes, das eingefügt werden soll |
type | "Text" oder "Html" für einen fixen Inhalt, wobei der Inhalt innerhalb eines CDATA-Tags innerhalb des Snippet-Tags folgt: |
when | siehe Condition |
notwhen | siehe Condition |
Warning |
---|
WARNUNG Bei der Verwendung von |
...
Code Block |
---|
<CustomDataNode id="Scripts.RecipientAnList"> <List type="Recipient" filter="An"> <Line> <Element id="Person.SalutationShort" separator=" " /> <Element id="Person.Title" separator=" " /> <Element id="Person.FirstName" separator=" " /> <Element id="Person.LastName" separator=", " /> <Element id="Company.NameLine1" /> </Line> </List> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
filter | Es gibt folgende Filterkriterien: "An", "Cc", "Bcc". Wird "An" verwendet, werden nur die Empfänger, die unter "An" gewählt wurden, angewendet. |
includeSelected | Bestimmt, ob der aktuell selektierte Kontakt auch in der Liste angezeigt wird oder nicht: |
separator | Trenntext, der immer zwischen den Elementen angezeigt wird |
type | Bestimmt den Listentyp: immer |
...
Link
Mittels Link
kann ein HTML-Link erzeugt werden. Es gilt zu beachten, dass keine anderen daten-anziehenden Elemente im selben Skript verwendet werden sollten. Die Links können nur in HTML-E-Mails und nicht in Kombination mit den normalen Text-Skripten verwendet werden. Es können sowohl primedocs-Felder als auch andere Links hinterlegt werden. Sollten mehrere Link-Elemente auf verschiedenen Zeilen ausgegeben werden, muss das Zeilenende mit  
markiert werden.
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="ProfileLinks"> <Line> <Link id="Profile.User.URL" text="Web" />` <Text> </Text> </Line> <Line> <Link id="Profile.Org.Web" bindingText="Profile.Org.Web" style="color:green;font:italic" /> <Text> </Text> </Line> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
id | Id des Feldes, das als URI verwendet werden soll. Wie erwähnt, kann auch ein fixer Link als Taginhalt angegeben werden |
type | Linktyp – Art des Links. Erlaubt sind: |
text | Fixtext, der (sofern abweichend von der URI) angezeigt werden soll. Er wird nur angezeigt, wenn kein Binding-Text vorhanden ist. |
bindingText | Id des Binding-Elements, das als Link-Text angezeigt werden soll |
style | CSS-Styleangaben für die Formatierung des HTML-Links |
styleName | Name einer nicht standardmässig integrierten Layoutvorlage vom |
Formatvorlagentyp "Zeichen" (engl.: name of a non-built-in style of type "character"). Die |
Formatvorlage basiert optimalerweise auf der Layoutvorlage "Hyperlink". |
Formatvorlage Zeichen enthält, die nicht | |
when | siehe Condition |
notwhen | siehe Condition |
Bilder-Links
Mit Link
können auch mit einem Link belegte Bilder eingefügt werden.
...
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="DemoLinkWithFixedImage"> <Link id="Profile.User.TwitterURL" imageDataBase64="iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAB9AAAAfQAbmL558AAAJgSURBVEhL3ZVLaBNRFIb/JDOZJrXWWjGKFlpTFcXgAxehIAhql1kodCUI7sSqlEJR6K7bLt2q1IVWu1BcuCmColaq4gMLBlpb8W191VrSJPPynMm0nZsZM01rXfhBCHNnOP89/7nn3EBdz6SJJSZo/y8p/4/IgmuyQgngyGYZyZiEYAB48kXHhXQe49OFcBurgxj5aYCfBJHj28K480HH0HfdXvGmYXkQvc1RrI1SdAc/cibOv8yjaY2EsV8GTj/IWuuCXakGGZcORLB7dcheccNhz+6pcAkwNZRd+w4Fy2Rg8LOO7asKcQSRKnrJNlyhXR6jrCSPiiVqQ9avFPx+/3oJL74VHBHCpCcM61+m1TO7FPSnKtHSKCMqze26vsqdQTE3Xms4cXcahl0IQeQc+ek8BXHyvrupAk9bKnFxXwQdOxUkyW8/OIMZAUYQ4aB9I6r9NEeEMtm7TkJrIozDm8hTH/gAOBFEDm6QLXsWCx9dJ4LI5WF3FuWS0UwM2QWfQRC5Slb1vVqc0K13OvJiIqIIO9n1OIfuZzmXr/Olh7q+GEGEiVALtCYUq7HK5fZ7DQ/H3dPCJfIxY6JjIAutKGU/plQTnYM5+0nEJcJcH1ORupnBtVHVEvVDp09O3cvizZT3zjxFmPSEjoFPOpQ/flEgT+6cpO7uf6vZK25mpzCP5npqxlqqBc+e5joJMY8h6IT7oe1+Fs+/lp7asyIhincoLuPoljC21pTePgfnu6OX+kqdR+08Ly2+L5KxEOKU3UrKjD/gIz06aeARjfDhoo72Y8E3Yzn4lPXv8A9EgN/hX854N4rKAwAAAABJRU5ErkJggg==" imageSize="40 px" imageAltText="Twitter Icon" /> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
bindingImage | Id des Bildes, das angezeigt werden soll, z. B. |
imageSize | Höhe des Bildes, z. B. |
imageDataBase64 | Daten des Bildes im Base64-Format |
imageAltText | Alternativtext, z. B. "Profilbild" / "Profile Image" |
Tip |
---|
TIPP Dies betrifft sowohl Bilder, die hinterlegt sind und über Die Bittiefe von PNG-Bilddateien wird im Windows Explorer in den Eigenschaften unter "Details – Bild – Bittiefe" (engl. "Details – Image – Bit depth") angezeigt. |
...
Code Block | ||
---|---|---|
| ||
<CustomDataNode id="Scripts.ImageBeispiel"> <Line> <Image id="Profile.User.ProfilePicture" /> </Line> </CustomDataNode> |
Attribut | Beschreibung |
---|---|
id | Id des Feldes, das eingefügt werden soll |
when | siehe Condition |
notwhen | siehe Condition |
Warning |
---|
WARNUNG |