Velocity
Velocity ist eine Templatesprache, deren Zweck es ist, Content zu generieren. Das bedeutet: HTML, XML, JSON - oder welches Format auch immer benötigt wird - wird mit Daten aus der Datenbank, aus Berechnungen oder anderen Datenquellen angereichert. Dies kann entweder zum Datenaustausch in einem bestimmten Format dienen oder schlicht dazu, diese Inhalte im Browser anzuzeigen. Zum Ermitteln der Daten werden Java-Objekte verwendet, die Intrexx zur Verfügung stellt. Es ist aber auch möglich, Objekte aus eigenen Java-Klassen einzubinden. Die API bietet eine Reihe von Zugriffsmethoden auf wichtige Intrexx-Funktionalitäten und -Objekte.
Allgemeine Informationen zum Thema "Scripting" finden Sie hier.
Intrexx-Standardbibliothek
Im Velocity-Skripteditor haben Sie im Bereich Bibliotheken Zugriff auf die Intrexx-Standardbibliothek. Wenn Sie einen Eintrag in der Bibliothek markiert haben, finden Sie unten rechts die folgenden Schaltflächen:
Beschreibung anzeigen
Hier finden Sie eine Beschreibung der aktuell ausgewählten Funktion mit Beispiel-Skript.
Link öffnen
Verlinkt auf entsprechende Seiten mit weiterführenden Informationen. Dabei wird jeweils genau die Seite mit den Klassen, Interfaces, Methoden oder Properties geöffnet, die Sie für die aktuell markierte Funktion verwenden können.
Applikationsstruktur
Applikationsinfo
Informationen zur Applikation mit der übergebenen GUID.
Beispiel
#set($appInfo = $RtCache.getApplication("C6F004594EEA424B2AACCD105181AD7F0660DF6D").getStartFupGuid())
Ermittelt die GUID der Startseite der Applikation.
Snippet
$RtCache.getApplication("")
Datengruppen-Info
Informationen zur Datengruppe mit der übergebenen GUID.
Beispiel
#set($dgInfo = $RtCache.getDataGroup("93B1A993C5FCF2895C93E1B7BF3BDDC847DC2BCD").getName())
Ermittelt den Namen der Datengruppe.
Snippet
$RtCache.getDataGroup("")
Datenfeld-Info
Informationen zum Datenfeld mit der übergebenen GUID.
Beispiel
#set($fldInfo = $RtCache.getField("8E2B87AE9F9BD1FD2FE38AD6856347F3A0D358AD").getName())
Ermittelt den Namen des Datenfeldes.
Snippet
$RtCache.getField("")
Seiteninfo
Informationen zur Seite mit der übergebenen GUID.
Beispiel
#set($pageInfo = $RtCache.getPage("D867C6B9AC0D17E3F524ED5A5E164463046F8F01")isEditPage())
Ergibt true, wenn die Seite eine Eingabeseite ist, andernfalls false.
Snippet
$RtCache.getPage("")
Aktueller Benutzer
Loginname des aktuellen Benutzers
Liefert den Anmeldenamen des aktuellen Benutzers.
Snippet
$User.getLoginName()
E-Mailadresse des aktuellen Benutzers
Liefert die geschäftliche E-Mailadresse des aktuellen Benutzers.
Snippet
$User.getEmailBiz()
Gruppenzugehörigkeit eines Benutzers bestimmen
Die Gruppenzugehörigkeiten des aktuell angemeldeten Benutzers bestimmen und in Abhängigkeit davon eine weitere Verarbeitung durchführen.
Snippet
#set($groupGuids = ['EF16F15EDA8562E19D7CD56BF2E43001F119193C', '47DD42CF4203EFDC7B1596E0158BB5B1E810D583'])
#set($userMembership = $Portal.getOrgStructure().getMembershipSets($User))
##Returns true, if $User is member of at least one group, which is defined by its guid in $groupGuids
#if ($userMembership.intersects($groupGuids))
##Not implemented yet
#end
Class VelocityOrgStructureWrapper
Objekte im Velocity-Kontext
$AccessController
Objekt zur Überprüfung von Zugriffsrechten an Applikationen, Datengruppen etc.
Snippet
$AccessController
$AppUserProfile
Daten pro Benutzer persistent speichern.
Snippet
$AppUserProfile
Class VCApplicationUserProfile
$AsynchronousRequestHandler
Objekt zur Verarbeitung asynchroner Requests.
Snippet
$AsynchronousRequestHandler
Class AsynchronousRequestHandlerCallable
$BCM
Objekt zum Zugriff auf den Cache Manager und die Update Sequence Numbers (usn) einzelner Objekte.
Snippet
##Gets the USN of the view page
$BCM.getUsn("viewpage971CA7D9")
$Binding
Zugriff auf alle Bindings, die zum Zeitpunkt des Zugriffs zur Verfügung stehen.
Systemdatengruppen
$Binding.getValue("systemDataGroup.dataField['SYSDGFIELD_GUID']", "defaultvalue").asString()
Hier ein Beispiel für den Zugriff auf eine Systemdatengruppe.
$Binding.getValue("systemDataGroup['APP_GUID'].dataField['SYSDGFIELD_GUID']", "defaultvalue").asString()
Auch der Zugriff auf Systemdatengruppen anderer Applikationen ist möglich. Geben Sie dazu nach "systemDataGroup" die APP_GUID an.
Werte aus Tabellen
$Binding.getValue("dataRange['<GUID of tablerecords>'].row['0'].control['<GUID of column / control>']")
Zugriff auf Werte einer Tabelle - nicht möglich bei berechneten Werten, Mehrfachauswahl, dynamischer Ansicht.
Das Skriptbeispiel liefert ein IIxValue.
Verwenden Sie dazu die GUID der Tablerecords. Diese GUID kann ermittelt werden, wenn die Elemente der Tabelle in der Applikationsstruktur eingeblendet sind. Möglich ist dies über das Hauptmenü "Bearbeiten", wenn die Tabelle in der Applikationsstruktur markiert ist.
$Binding.getValue("dataRange['<GUID of tablerecords>'].row['0'].control['<GUID of column / control>']").asString()
Liefert einen unformatierten String.
$Renderer.renderDateTime($Binding.getValue("dataRange['<GUID of tablerecords>'].row['1'].control['<GUID of column / control>']").asValueHolder())
Rendert ein Datum als String.
dataRange['<name of tablerecords>'].row['0'].control['<Name of column / control>']
Werte können auch über den Namen der Tablerecords / Tabellenspalte ermittelt werden.
dataRange['<name of tablerecords>'].count
Liefert die Anzahl der angezeigten Datensätze in der Tabelle.
dataRange['<name of tablerecords>'].totalCount
Liefert die Anzahl aller Datensätze in der Tabelle unter berücksichtigung des Filters.
dataRange['<name of tablerecords>'].row['0'].primaryKey
Liefert den Primary Key / die RecordId des Datensatzes.
Snippet
$Binding
$Browser
Objekt zur Abfrage von Browserinformationen.
Snippet
##Gets the user agent string of the calling browser
$Browser.getUserAgentId()
$CalcUtil
Einleitung
Im Folgenden wird das Velocity-Kontextobjekt "$CalcUtil" zur Berechnung von Werten vorgestellt und anhand von Codebeispielen erläutert.
Mit der Funktion calculate() können komplexe Rechen- und Vergleichsoperationen durchgeführt werden.
Zur Strukturierung der Operation können die '( )' Klammern verwendet werden. Die Werte für die durchzuführenden Rechen- und Vergleichsoperationen können aus Datenfeldern, Sessions, Requests, Tabellenzellen oder SharedStates ausgelesen werden.
Operatoren
Folgende Operatoren stehen in einer Berechnungsformel zur Verfügung:
-
+ (Addition)
-
- (Subtraktion)
-
* (Multiplikation)
-
/ (Division)
-
< (Vergleich Kleiner)
-
> (Vergleich Größer)
-
<= (Vergleich Kleiner gleich)
-
>= (Vergleich Größer gleich)
-
== (Vergleich Gleich)
-
!= (Vergleich Ungleich)
-
&& (Logische Verknüpfung Und)
-
|| (Logische Verknüpfung Oder)
-
! (Logischer Operator Nicht)
Weitere Typkategorien und Methoden
Zusätzlich zu den oben beschriebenen Operatoren existieren noch weitere Möglichkeiten, in Formeln bestimmte Variablen oder Methoden aufzurufen:
Methode |
Beschreibung |
Beispiel |
---|---|---|
datafield |
Wert aus einem Datenfeld |
datafield("C68F6...D3DE7") |
datafieldAsNumber |
Wert aus einem Datenfeld als Number |
datafieldAsNumber("C68F6...D3DE7") |
session |
Wert aus einer bestehenden Session des aktuell angemeldeten Benutzers |
session("sessionValue") |
sessionAsNumber |
Wert aus einer bestehenden Session des aktuell angemeldeten Benutzers |
sessionAsNumber("sessionValue") |
sharedState |
Wert aus dem aktuellen Verarbeitungskontext |
sharedState("sharedStateValue") |
sharedStateAsNumber |
Wert aus dem aktuellen Verarbeitungskontext |
sharedStateAsNumber("sharedStateValue") |
requestAsNumber |
Wert aus dem aktuellen Request |
requestAsNumber("rq_requestValue") |
abs |
Absolutbetrag |
abs(-1) |
Bei den Typangaben mit Suffix AsNumber wird, soweit technisch möglich, versucht, die eingehenden Werte zu casten. Ohne diesen Cast wird z.B. bei der Verwendung von String-Datenfeldern eine Exception auftreten. Die Boolean-Werte "true" und "false" werden entsprechend zu 1 bzw. 0 gecastet. Optional ist es möglich, als zweiten Methodenparameter einen Fallback anzugeben, der verwendet wird, wenn der erste Parameter null oder leer ist. Bei diesem Fallbackvalue kann es sich auch um eine Formel handeln.
Snippet
//returns -1 if the access to the sharedState variable "sharedStateValue" returns null or the value is not set.
sharedState("sharedStateValue", -1)
//returns 5 if the access to the request variable "rq_custom" returns null zurückliefert or the value is not set.
requestAsNumber("rq_custom", (10/2))
//returns 0 if the data field contains null or is not set.
datafield("C68F6...D3DE7", 0)
Fehlerbehandlung
Für das Abfangen potenzieller Fehler (z.B. Teilen durch 0) existieren folgende Methoden, die in einer Formel verwendet werden können:
Methode |
Beschreibung |
Beispiel |
---|---|---|
zeroOnError |
Rückgabe von 0 im Fehlerfall |
|
oneOnError |
Rückgabe von 1 im Fehlerfall |
|
fallbackOnError |
Im Fehlerfall wird der als fallback definierte Wert zurückgeliefert |
|
Rundungsfunktionen
Zahlenwerte können in Formeln gerundet werden. Der Parameter "scale" beschreibt dabei die Anzahl der Nachkommastellen.
Methode |
Anmerkungen |
---|---|
roundLong |
Buchhalterisches Runden |
roundLongHalfAwayFromZero |
entspricht roundLong |
roundLongHalfEven |
|
roundLongHalfUp |
|
roundLongHalfDown |
|
round(scale) |
Buchhalterisches Runden auf scale Nachkommastellen (roundLong entspricht round(0)) |
roundLongHalfAwayFromZero(scale) |
entspricht round(scale) |
roundLongHalfEven(scale) |
|
roundLongHalfUp(scale) |
|
roundLongHalfDown(scale) |
Fallunterscheidungen
Mit Fallunterscheidungen können in Formeln Vorbedingungen geprüft und anhand deren Ergebnis bestimmte Formeln oder Werte verwendet werden.
case(<booleanExpression>, <formula for true>, <formula for false>)
Für den boolschen Ausdruck bestehen hierbei folgende Regeln:
-
null == false
-
leer == false
-
0 == false
-
false == false
-
!true == false
-
!false == true
-
1 == true
Werden logische Operatoren zum Berechnen verwendet, wird false zu 0 und true zu 1. Folglich ergibt sich:
5 > 0 + 0 > -1 == 2
Beispiele
Ein Berechnungsaufruf mit der Funktion "calculate()" auf Ansichtsseiten besitzt immer drei Parameter:
-
$ProcessingContext - Der aktuelle Verarbeitungscontext. Wert ist immer fix.
-
Die aktuelle Datarange - $DC für Tabellen und Ansichtsseiten.
-
Formel - Beliebig geschachtelte Formel, bestehend aus den o.g. Methoden und Operatoren.
Einfache Addition zweier Werte
Hier ein einfaches Beispiel für eine Addition, deren Werte aus Datenfeldern gelesen werden. Um ein Datenfeld anzusprechen, können Sie entweder die GUID des Datenfeldes oder den Namen der Kontrolle in Hochkommatas angeben.
Beispiel 1
## Parameters of the methode calculate():
## $ProcessingContext (Fixed value)
## $DC
## '<Name of the control of the 1st summand>'## <Operator>## '<Name of the control of the 2nd summand>'$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("integervcontrol1") + dataField("integervcontrol2")')
##Same example, but here the GUID of the data field instead of the control is used
$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("3BB...5B3") + dataField("C95...950")')
Die oben beschriebenen Methoden lassen sich beliebig kombinieren und schachteln, um Werte aus verschiedenen Quellen (Session, Request, ...) zu verwenden.
Beispiel 2
## Combination of data field and session value
$CalcUtil.calculate($ProcessingContext, $DC,'dataField("3BB...5B3") + session("calcutil_example")')
## Combination of data field and request value
$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("floatcontrol02E5") + requestAsNumber("rq_calcUtil")')
## "Smaller" comparison of request value
#set($term = '(dataField("B5F472ED66DCA878683B52CE8F979F4F1DDA172B") * 2) + session("calcutil_value") <requestAsNumber("rq_calcUtil")')
$CalcUtil.calculate($ProcessingContext, $DC, $term)
## Case distinction of request value
#set($term = '(dataField("B5F472ED66DCA878683B52CE8F979F4F1DDA172B") * 2)')
$CalcUtil.calculate($ProcessingContext, $DC, "case(requestAsNumber('rq_calcUtil') <= 100, $term, -1)")
Aggregatsfunktionen für Tabellen
Über "$CalcUtil" ist es auch möglich, Werte aus Spalten einer Tabellen zu verarbeiten. Es stehen hierbei die in der folgenden Tabelle aufgelisteten Rechenoperationen zur Verfügung. Die Aufrufe der Methoden für Tabellen besitzen hierbei immer zwei Parameter:
- Tabellenobjekt
Zugriff auf Tabelle - entweder per Tabellenname oder Tabellen-GUID. Es handelt sich hierbei nicht um den direkten Namen und die GUID der Tabellenkontrolle, sondern um die Werte des Attributs "tablerecords" bei Ansichtstabellen bzw. "shapedtablebase" bei frei gestalteten Tabellen. Um die Werte zu ermitteln, wählen Sie das Hauptmenü "Bearbeiten / Elemente anzeigen, wenn die Seite, auf der sich die Tabelle befindet, in der Applikationsstruktur markiert ist. Navigieren Sie dann in der Struktur zur gewünschten Tabelle. Dort finden Sie den Eintrag "tablerecords" bzw. "shapedtablebase". Im Details-Dialog des Eintrags können Name und GUID ermittelt werden.
- Formel
Beliebig geschachtelte Formel. Zugriff auf Spaltenwerte über row(<Spaltenname>) bzw. rowAsNumber(<spaltenname>)
Beispiel 1
$CalcUtil.calculate($ProcessingContext, $DC, 'sum(table("8E9...1B3"), row("integervcontrol3621234C"))')
$CalcUtil.calculate($ProcessingContext, $DC, 'sum(table("8E9...1B3"), row("integervcontrol3621234C"))')
Die Werte werden beim Aufrufen der Seite berechnet. Besitzt die Tabelle Navigationselemente und werden diese verwendet, aktualisieren sich die Werte der Velocity-Anweisungen und -Berechnungen nicht, da die Tabelle dynamisch per AJAX nachgeladen wird. Sollte also gewünscht sein, Tabellenberechnungen auch nach einer Navigation innerhalb der Tabelle durchzuführen, muss das entsprechende VTL-Include (respektive die VM-Datei) ebenfalls per AJAX nachgeladen werden. Als Workaround wird geraten, die zu berechnende Tabelle so aufzubereiten, dass keine Navigation notwendig ist.
Methode |
Beschreibung |
---|---|
sum |
Berechnet die Summe der Spaltenwerte aus jenen Daten, die auf der aktuellen Seite angezeigt werden. |
min |
Berechnet das Minimum der Spaltenwerte aus jenen Daten, die auf der aktuellen Seite angezeigt werden. |
max |
Berechnet das Maximum der Spaltenwerte aus jenen Daten, die auf der aktuellen Seite angezeigt werden. |
count |
Berechnet die Anzahl der Datensätze, die auf der aktuellen Seite angezeigt werden. |
Bitte beachten Sie, dass es sich bei den folgenden Methoden um rechenintensive Operationen handelt. Bei sehr großen Datenbeständen können entsprechende Verzögerungen auftreten.
Methode |
Beschreibung |
---|---|
totalSum |
Berechnet die Summe der Spaltenwerte aller Datensätze. |
totalMin |
Berechnet das Minimum der Spaltenwerte aller Datensätze. |
totalMax |
Berechnet das Maximum der Spaltenwerte aller Datensätze. |
totalCount |
Berechnet die Anzahl aller Datensätze. |
Beachten Sie bitte: Befindet sich in einer Tabelle kein Datensatz, liefern die o.g. Methoden die Zahl 0 als Rückgabewert.
Beispiel 2
## Example output of an info text below an article table
#set($sum = 'totalSum(table("8E9F10DCB24CBB4B27FF67A3230CE7753521E1B3"), row("integervcontrol3621234C"))')
#set($count = 'totalCount(table("8E9F10DCB24CBB4B27FF67A3230CE7753521E1B3"), row("floatvcontrol256AC41"))')
$CalcUtil.calculate($ProcessingContext, $DC, $count) items were ordered in a total value
of $CalcUtil.calculate($ProcessingContext, $DC, $sum) €
$Chat
Objekt zum Senden und Empfangen von Chatnachrichten.
Snippet
$Chat
$Codec
Objekt zur Codierung und Encodierung von Strings.
Snippet
$Codec.hexEncodeString("www.intrexx.com", "UTF-8")
$Codec.hexDecodeString("7777772E696E74726578782E636F6D")
$CollectionFactory
Objekt zur Erstellung von Collections.
Snippet
$CollectionFactory.createMap()
$Constants
Objekt zum Zugriff auf Konstanten einer Klasse.
Snippet
$Constants
$Cookies
Setzen von Cookies.
Snippet
#set($cookie = $Cookies.createCookie("myCookie", "test"))
$Response.addCookie($cookie)
$DC
Es gibt drei Arten von Datensätzen, die in Bezug auf $DC und $drRecord unterschieden werden müssen:
1. Hauptdatensatz
Der Hauptdatensatz wird auf einer Seite durch einfache Elemente wie Textfelder, Kontrollkästchen etc. dargestellt.
2. Datensatz in einer Ansichtstabelle
Die Ansichtstabelle besteht aus einer Auflistung mehrerer Datensätze. Eine einzelne Zeile ist ein Datensatz in einer Ansichtstabelle.
3. Datensatz in einer frei gestalteten Tabelle
Die frei gestaltete Tabelle stellt ebenfalls eine Liste von mehreren Datensätzen dar. Sie ist von der reinen Ansichtstabelle zu unterscheiden, da die frei gestaltete Tabelle eine eigene Seite zur Darstellung der Datensätze verwendet und nicht wie die Ansichtstabelle nur die rohen Daten. Jede wiederholte Darstellung dieser eigenen Seite ist ein Datensatz in einer frei gestalteten Tabelle.
Zugriff auf verschiedene Werte mit $DC und $drRecord
Die Verwendung von $DC und $drRecord ist abhängig vom Kontext bzw. Datensatztyp. Wird Velocity im Kontext des Hauptdatensatzes geschrieben, z.B. mit dem Element "Statischer Text" auf der Seite, dann kann mit $DC auf Daten des Hauptdatensatzes zugegriffen werden.
Wird Velocity im Kontext des Datensatzes einer Ansichtstabelle geschrieben, z.B. um Daten an einen JavaScript-Aufruf zu übergeben, wird mit $DC auf Daten des Hauptdatensatzes und mit $drRecord auf Daten des jeweiligen Datensatzes in der Ansichtstabelle zugegriffen.
Wird Velocity im Kontext des Datensatzes einer frei gestalteten Tabelle erstellt, z.B. weil auf der darstellenden Seite für jeden Datensatz ein statischer Text platziert wird, in dem Velocity geschrieben wird, wird
$DC.getMainPageDC()
für den Zugriff auf Daten des Hauptdatensatzes verwendet. Sowohl mit $DC als auch mit $drRecord kann auf Daten des jeweiligen Datensatzes in der frei gestalteten Tabelle zugegriffen werden.
|
Zugriff auf |
Zugriff auf |
Zugriff auf |
---|---|---|---|
Velocity im Hauptdatensatz |
$DC |
nicht möglich |
nicht möglich |
Velocity im Datensatz einer Ansichtstabelle |
$DC |
$drRecord |
nicht möglich |
Velocity im Datensatz einer frei gestalteten Tabelle |
$DC.getMainPageDC() |
nicht möglich |
$DC oder $drRecord |
$Loader.getDataCollection()
Der Aufruf $Loader.getDataCollection() entspricht exakt der Verwendung von $DC. Es handelt sich lediglich um eine andere, längere Schreibweise. $Loader.getDataCollection() bzw. $DC kann bei Bedarf einer neuen Variablen zugewiesen werden.
Verwenden Sie für diese neue Variable zwingend und unbedingt einen komplett eigenen Namen - auf keinen Fall darf $DC als Name verwendet werden! $DC ist ein reserviertes Schlüsselwort in Intrexx. Dies gilt für alle Namen der in Velocity verfügbaren Kontextobjekte in Intrexx.
Snippet
##Returns the record ID of the current record as string
$DC.getRecId()
Interface IWebRowDataCollection
2.3.13.1 Benutzerdefiniert in E-Mails
Manuelle Initialisierung des Kontextobjekts $DC (Kurzform von $Loader.getDataCollection()) zur Verwendung in E-Mails mit aus Velocity generiertem Inhalt. Mit <APP_GUID> muss die GUID der Applikation übergeben werden, aus der Datensätze verarbeitet werden sollen. Es müssen folgende Voraussetzungen gegeben sein:
-
Der Prozess muss über ein Ereignis aus dem Web ausgelöst werden
-
Es handelt sich um bestehende Datensätze
-
Objekte (z.B. Datenfelder), die in Velocity verwendet werden, müssen im Sprungziel als Kontrolle vorhanden sein
Snippet
#set($template = $Loader.process($ProcessingContext, "<APP_GUID>", "data"))
#set($DC = $Loader.getDataCollection())
Wert aus Kontrolle auslesen
Auslesen eines Wertes aus einer Kontrolle (z.B. aus einem Ansichtsfeld). Als Parameter muss der Name der Kontrolle angegeben werden, aus der der Wert ausgelesen werden soll. In einer Frei gestalteten Tabelle ist statt $DC das Kontextobjekt $drRecord zu verwenden.
Beispiel
#set($value = $DC.getValueHolder('textvcontrol1234').getValue())
Snippet
#set($value = $DC.getValueHolder('<CONTROL_NAME>').getValue())
Wert aus Systemdatengruppe auslesen
Auslesen eines Wertes aus einer Systemdatengruppe. Als Parameter muss der Name des Datenfeldes angegeben werden, aus dem der Wert ausgelesen werden soll. In einer Frei gestalteten Tabelle ist statt $DC das Kontextobjekt $drRecord zu verwenden.
Beispiel
#set($value = $DC.getPropertiesVH().get("STR_COLUMN1").getValue()
Snippet
#set($value = $DC.getPropertiesVH().get("<DATAFIELD_NAME>").getValue()
$DEBUG
Objekt zur genaueren Untersuchung einzelner Objekte und Elemente.
Snippet
##Provides detailed information about the current user object.
$DEBUG.inspect($User)
$defaultLanguage
Standardsprache des Portals.
Snippet
$defaultLanguage
$DataTransferCallable
Objekt für den Zugriff auf angelegte Datentransferverbindungen.
Snippet
##Returns the JobHistory of the data transfer job with the transferred GUID.
$DataTransferCallable.getJobExecutions("0460E20ACAC15EDDA0E9B62E1F815D5BFD3F9B8F")
$DbUtil
Objekt für den Zugriff auf Datenbankverbindungen und zur Transaktionsverwaltung von Datenbankoperationen.
Snippet
#set($conn = $DbUtil.getConnection("IxSysDb"))
$DefaultMaker
Snippet
$DefaultMaker
$DistributionControl
Objekt zum Zugriff auf Verteilerkontrollen
Snippet
$DistributionControl
$DoubletService
Hilfsobjekt zur Suche von Dubletten in Datenbeständen einer Applikation.
Snippet
$DoubletService
$drRecord
Objekt für den Zugriff auf den aktuellen Datensatz in freien Tabellen. Weitere Informationen finden Sie beim Kontextobjekt $DC.
Snippet
$drRecord
Interface IWebRowDataCollection
$DtUtil
Objekt für Datumsberechnungen.
Snippet
$DtUtil
$ESC
Darstellung von Zeichen, die in Velocity standardmäßig escapet werden.
Snippet
##Representation of a rhombus (#)
$ESC.getH()
$Error
Objekt zur Analyse von Exceptions.
Snippet
$Error
$ExceptionUtil
Objekt zum Werfen von Exceptions.
Snippet
$ExceptionUtil.throwException("java.io.FileNotFoundException", "Die angegebene Datei existiert nicht.")
Objekte für Microsoft Exchange
Diese Objekte können nur in Verbindung mit dem Intrexx-MediaGateway verwendet werden.
$ExchangeCallable
Callable für Exchange-Authentifizierungen.
Snippet
$ExchangeCallable.getRequiredFields().isPasswordRequired()
$ExchangeConnectionCallable
Callable für Exchange-Verbindungen.
Snippet
$ExchangeConnectionCallable.getConnection()
Class ExchangeConnectionCallable
$ExchangeMailboxCallable
Callable für den Zugriff auf die Mailbox eines Exchange-Benutzers.
Snippet
##Returns the out of office message of the current Exchange user.
$ExchangeMailboxCallable.getOutOfOfficeMessage()
$ExchangeMessageCallable
Callable für den Zugriff auf Nachrichtenobjekte.
Snippet
##Saves the message with ID $strMessageId in EML format under $strDestinationPath.
$ExchangeMessageCallable.saveMessageAsEML($strMessageId, $strDestinationPath)
$ExchangeItemCallable
Callable für den Zugriff auf Exchange-Objekte.
Snippet
##Stores attachments of the element with ID $strMessageId under $strDestinationPath.
$ExchangeItemCallable.saveAttachment($strMessageId, $strDestinationPath)
$ExchangeUserMailboxCallable
Callable auf Mailbox-Informationen eines Exchange-Benutzers.
Snippet
$ExchangeUserMailboxCallable.getMailboxInfo()
Class ExchangeUserMailboxCallable
$Factory
Erzeugen von oder Zugriff auf Objekte wie z.B. Benutzer, ohne dass sie im Velocitykontext vordefiniert wurden.
Snippet
$Factory
$FieldFormatter
Snippet
$FieldFormatter
$FileHelper
Objekt für Dateioperation wie das Einfügen einer Datei in eine Intrexxdatengruppe.
Snippet
##Deletes the file from the data field defined with the GUID
##and the data set defined with the RecID 1.
$FileHelper.deleteFileFromIntrexx($ProcessingContext, "079A397D11EE732857CD1017C3AC6A55D0D112DA", "1")
$FileUtil
Objekt zur Analyse von Dateien in einer Ordnerhierarchie.
Snippet
$FileUtil
$Filter
Sammlung diverser Filter für Collections, die im Velocitykontext verwendet werden.
Snippet
$Filter
$FramesetHelper
Objekt zum Aufbau eines neuen URL basierend auf dem aktuellen Request und einer Liste von zusätzlichen Parametern.
Snippet
$FramesetHelper
$HelperFactory
Konvertiert die Zeichen <, >, & und " in ihre entsprechende HTML-Entität.
Snippet
$HelperFactory
$I18N
Objekt für den Zugriff auf Sprachkonstanten
Snippet
$I18N
Class LanguageConstantsCallable
$JSON
Hilfsfunktionen zum Erstellen von und Arbeiten mit JSON-Objekten.
Snippet
$JSON
$lang
Aktuelle Portalsprache.
Snippet
$lang
$layout
Name des aktuell verwendeten Layouts.
Snippet
$layout
$LayoutManager
Zugriff auf Layoutinformationen.
Snippet
$LayoutManager
$ListBoxControl
Objekt zum Zugriff auf Auswahllisten.
Snippet
$ListBoxControl
$ListFormatter
Hilfsfunktionen zur Formatierung von Listen.
Snippet
$ListFormatter
$Loader
Verarbeitet eingehende Requests. Über $Loader ist z.B. der Zugriff auf die aktuelle Datenbankverbindung möglich.
Snippet
$Loader
$Locales
Zugriff auf Ländereinstellungen von Zahlen- & Datumswerten.
Snippet
$Locales
$LogAnalyzer
Objekt zum Erstellen von Applikations- und Benutzer- und Statistikreports.
Snippet
$LogAnalyzer
$MBGallery
Objekt zur Bearbeitung umd zum Kopieren/Verschieben/Löschen von Bildern.
Snippet
$MBGallery
$Math
Objekt für diverse arithmetische Operationen.
Snippet
$Math
$Menu
Objekt zum Zugriff auf die Menüstruktur.
Snippet
$Menu
$MenuCloud
Objekt zum Zugriff auf eine Menüwolke.
Snippet
$MenuCloud
$ObjectHelper
Objekt für null-Objekte und -ValueHolder.
Snippet
$ObjectHelper
$PageUtil
Objekt zum Zugriff auf Kontrollen und Daten auf der Ansichtsseite eines Datensatzes.
Snippet
#set($renderer = $RendererFactory.getDefaultRenderingContext($ProcessingContext, $User, $lang))
#set($page = $PageUtil.process($RenderingContext, $ProcessingContext, $Request.get("rq_AppGuid"), $DC))
Zur Initialisierung werden der Rendering- und Verarbeitungskontext benötigt, außerdem die GUID der aktuellen Applikation und eine DataCollection.
Beispiel
$page.getControlNames()
## Sample output
## [textvcontrol60C5B1A8, datetimevcontrol88EFC15D, checkvcontrol68B97F7C, integervcontrolE018B980]
$page.getControlGuids()
## Sample output
## [4A21CF034953825EE93093E0C8E51C959D193C5F, 4B953139D2E394C42BD20919A2C1CA757EC10A1A]
Mit der Variable "$page" kann auf Kontrollen und Datenfelder der Seite zugegriffen werden.
$Parameter
Objekt für den Zugriff auf Parameter.
Snippet
$Parameter
$PolicyBrowserFactory
Bietet Zugriff auf Objekte, mit deren Hilfe lesend auf Rechte von Benutzern, Sets oder Containern zugegriffen werden kann.
Snippet
$PolicyBrowserFactory
$PollHelper
Objekt für Abfragen von Eigenschaften einer Umfrage.
Snippet
$PollHelper
$Portal
Objekt für den Zugriff auf Portaleigenschaften (z.B. Name).
Snippet
$Portal
$Portal - Zugriff auf die Organisationsstruktur
Zugriff auf die Organisationsstruktur des Portals.
Snippet
$Portal.getOrgStructure()
Class VelocityOrgStructureWrapper
$PreparedQuery
Objekt zum Erstellen und Ausführen von Datenbankabfragen.
Snippet
$PreparedQuery
$ProcessingContext
Objekt des aktuellen Verabeitungskontextes.
Snippet
$ProcessingContext
Class BusinessLogicProcessingContext
$QNameFactory
Objekt zur Erstellung eines neuen xsd:QName namespaces.
Snippet
$QNameFactory
$Renderer
Objekt für das Erstellen von diversen Renderern.
Snippet
$Renderer
Class StandardUtilRendererFactory
$RenderingContext
Objekt zum Zugriff auf die aktuellen Default-Rendereinstellungen des Portals.
Snippet
$RenderingContext
$Request
Objekt zum Setzen und Auslesen von Requestvariablen.
Snippet
$Request
$Response
Objekt für das Setzen und Lesen von Eigenschaften einer HTTP-Response.
Snippet
$Response
$RtCache
Runtime-Cache-Objekt mit Informationen über Applikationen, Datengruppen etc.
Snippet
$RtCache
$SaucMenu
Objekt für das Setzen von Menürechten im Web-CMS.
Snippet
$SaucMenu
$SearchUtil
Objekt für Suchanfragen.
Snippet
$SearchUtil
$Session
Zugriff auf die Session des aktuellen Benutzers.
Snippet
$Session
$SettingsHelper
Objekt zum Auslesen von Settings.
Snippet
$SettingsHelper
$SharedState
Setzen und Auslesen von benutzerdefinerten Werten im Verarbeitungskontext. Wert aus dem Verarbeitungskontext lesen:
Beispiel 1
$SharedState.get("meineVariable")
Wert in den Verarbeitungskontext schreiben:
Beispiel 2
$SharedState.putAt("meineVariable", "meinWert")
Snippet
$SharedState.get("<paramName>")
$SharedState.putAt("<paramName>", "<paramValue>")
$Sort
Hilfsobjekt zum Sortieren von Listen.
Snippet
$Sort
$SourcePage
Liefert z.B. GUID, Applikations-GUID oder RecID der Seite, die Parameter sendet.
Snippet
$SourcePage
$TextUtil
Hilfsobjekt für diverse Arten von Stringmanipulationen.
Snippet
$TextUtil
$TickerMan
Objekt für den Zugriff auf RSS-Provider.
Snippet
$TickerMan
$Unique
Objekt zur Generierung von eindeutigen Variablen.
Snippet
$Unique
$UrlBuilder
Objekt zum Erstellen von URLs. Methoden um URLs zu erzeugen:
-
createBaseUrl
-
createAbsoluteBaseUrl
-
createAbsoluteRequestBaseDirectoryUrl
-
createWebSocketBaseUrl
-
parseUrl
Alle anderen Methoden zum Erzeugen von URLs sind deprecated:
-
createDefaultUrl
-
createAbsoluteBaseDirectoryUrl
-
createRequestBaseDirectoryUrl
createBaseUrl
Erzeugt immer die relative Basis-URL.
createAbsoluteBaseUrl
Erzeugt die mit einem Slash endende absolute Basis-URL. Dazu wird in der Regel die im Portal konfigurierte Basis-URL verwendet.
Ist keine Basis-URL konfiguriert, so wird diese URL aus den Servervariablen SCHEME, SERVER_NAME und SERVER_PORT konstruiert.
createAbsoluteRequestBaseDirectoryUrl
Erzeugt eine absolute URL. Ihr Pfadanteil ist gleich dem Pfad aus der Request-URI, ohne den Dokumentanteil. Der Dokumentanteil ist dabei der am weitesten rechts stehende Pfadanteil, dem kein Slash folgt. Der Querystring wird verworfen.
Beispiel:
Für den Request https://example.org/dir1/dir2/foo.vm liefert $UrlBuilder.createAbsoluteRequestBaseDirectoryUrl($Request) das Ergebnis https://example.org/dir1/dir2/.
Für den Request https://example.org/dir1/dir2/ liefert $UrlBuilder.createAbsoluteRequestBaseDirectoryUrl($Request) das Ergebnis https://example.org/dir1/dir2/.
parseUrl
Parst die gegebene URL und gibt ein entsprechendes URL-Objekt zurück.
Snippet
$UrlBuilder
$User
Objekt zum Zugriff auf Informationen des aktuellen Benutzers.
Snippet
$User
$VDiff
Objekt, um Diffs von Wiki-Beiträgen anzuzeigen.
Snippet
$VDiff
$VH
Objekt zum Erstellen von ValueHoldern.
Snippet
$VH
$VHHelper
Hilfsklasse zum Auslesen von Werten in ValueHoldern.
Snippet
$VHHelper
$VelocityContext
Snippet
$VelocityContext
$VelocityUtil
Snippet
$VelocityUtil
$Wiki
Snippet
$Wiki
$Zebra
Das Zebra-Callable erleichtert die alternierende Ausgabe zweier Zeichenketten.
Beispiel
#set($zebra = $Zebra.createZebra("black", "white"))
$zebra.getStripe()
$zebra.getStripe()
$zebra.getStripe()
$zebra.getStripe()
$zebra.getSameStripe()
liefert als Ausgabe
black
white
black
white
white
Snippet
$Zebra
Datenbanken
Aktuelle Datenbankverbindung
Liefert die aktuelle Systemverbindung zur Datenbank.
Snippet
$DbConnection
Zugriff auf Fremddatenverbindung
Zugriff auf eine angelegte Fremdatenverbindung.
Snippet
$DbUtil.getConnection("connectionName")
Alle Spaltennamen einer Datengruppe
Liefert eine Liste mit den Namen aller Spalten der Datengruppe mit der übergebenen GUID.
Snippet
#set($fields = $RtCache.getFields())
#set($columnNames = [])
#foreach($field in $fields)
#if($field.getDataGroupGuid() == "<DG_GUID>")
#set($bResult = $columnNames.add($field.getColumnName()))
#end
#end
Vorbereitete Anweisung mit SELECT
Führt eine SELECT-Anfrage auf eine Datenbanktabelle aus.
Snippet
#set($statement = $PreparedQuery.prepare($DbConnection, "SELECT <COLUMNS> FROM DATAGROUP('<DATAGROUP_GUID>') WHERE <CONDITION>"))
##$statement.setString(1, "Example text")
##$statement.setInt(2, 123)
##$statement.setBoolean(3, true)
#set($rs = $statement.executeQuery())
#foreach($element in $rs)
##$element.getIntValue(1)
##$element.getStringValue(2)
##$element.getBooleanValue(3)
##$element.getTimestampValue(4)
#end
$rs.close()
$statement.close()
Vorbereitete Anweisung mit INSERT
Führt ein INSERT-Statement auf einer Datenbanktabelle aus.
Snippet
#set($conn = $DbConnection)
#set($statement = $PreparedQuery.prepare($conn, "INSERT INTO DATAGROUP('<DATAGROUP_GUID>') (<COLUMNS>) VALUES ()"))
$DbUtil.transactionEnlistResource($conn)
##$statement.setString(1, "Example text")
##$statement.setInt(2, 123)
##$statement.setBoolean(3, true)
##$statement.setTimestamp(4, $DtUtil.utcNow())
$statement.executeUpdate()
$statement.close()
Vorbereitete Anweisung mit UPDATE
Führt ein UPDATE-Statement auf einer Datenbanktabelle aus.
Snippet
#set($l_conn = $DbConnection)
#set($statement = $PreparedQuery.prepare($l_conn, "UPDATE DATAGROUP('<DATAGROUP_GUID>') SET <COLUMN> = ? WHERE <CONDITION>"))
$DbUtil.transactionEnlistResource($l_conn)
##$statement.setString(1, "strValue")
##$statement.setInt(2, 123)
##$statement.setBoolean(3, true)
##$statement.setTimestamp(4, $DtUtil.utcNow())
$statement.executeUpdate()
$statement.close()
Vorbereitete Anweisung mit DELETE
Führt ein DELETE-Statement auf einer Datenbanktabelle aus.
Snippet
#set($conn = $DbConnection)
#set($statement = $PreparedQuery.prepare($conn, "DELETE FROM DATAGROUP('<DATAGROUP_GUID>') WHERE <CONDITION>"))
$DbUtil.transactionEnlistResource($conn)
##$statement.setString(1, "Example text")
##$statement.setInt(2, 123)
##$statement.setBoolean(3, true)
##$statement.setTimestamp(4, $DtUtil.utcNow())
$statement.executeUpdate()
$statement.close()
Einzelner Wert aus vorbereiteter Datenbank-Abfrage (mit Fallback)
Liest einen einzelnen Wert aus einer Datenbankabfrage aus. Ist die Ergebnismenge leer oder null, wird der mit fallbackValue definierte Wert zurückgegeben. Soll der Datentyp der Rückgabe genauer spezifiziert werden, können typisierte Methodenaufrufe wie z.B. executeAndGetScalarBooleanValue(...) erfolgen.
Snippet
#set($statement = $PreparedQuery.prepare($DbConnection, "SELECT <COLUMN> FROM DATAGROUP('<DATAGROUP_GUID>') WHERE <CONDITION>"))
##$statement.setString(1, "Example text")
##$statement.setInt(2, 123)
##$statement.setBoolean(3, true)
#set($result = $statement.executeAndGetScalarValue(<FALLBACK_VALUE>))
$statement.close()
Datenbanktyp unterscheiden
Liefert den Datenbanktyp der Systemverbindung. Die Unterscheidung kann mit folgenden Bezeichnern erfolgen:
-
Generischer Descriptor: $strType.contains("Standard")
-
PostgreSQL: $strType.contains("PostgreSQL")
-
Oracle allgemein, Oracle10, Oracle11:
$strType.contains("Oracle")
$strType.contains("Oracle10")
$strType.contains("Oracle11") -
DB2: $strType.contains("Db2")
-
Derby: $strType.contains("Derby")
-
MsSqlServer: $strType.contains("MsSqlServer")
Datenbanken, die nicht als Systemdatenbanken unterstützt werden:
-
AbacusPervasive: $strType.contains("AbacusPervasive")
-
Firebird: $strType.contains("Firebird")
-
HSQLDB: $strType.contains("HSQLDB")
-
Ingres: $strType.contains("Ingres")
-
Oracle 8, Oracle 9:
$strType.contains("Oracle8")
$strType.contains("Oracle9") -
solidDB: $strType.contains("soliddb")
Snippet
#set($strType = $DbConnection.getDescriptor().getDatabaseType())
#if($strType.contains("<DATABASE_IDENTIFIER>"))
#end
Zeitstempel für Systemwerte
Diese Variable beinhaltet den Zeitstempel der aktuellen Transaktion und bleibt bis zum Verarbeitungsende dieser Transaktion unverändert.
Snippet
$CURRENT_TIMESTAMP
Fehlersuche
Objekt inspizieren
Inspiziert ein Objekt.
Snippet
$DEBUG.inspect()
Info in Logdatei schreiben
Schreibt einen INFO-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
Snippet
$DEBUG.info()
Warnung in Logdatei schreiben
Schreibt einen WARN-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
Snippet
$DEBUG.warn()
Fehler in Logdatei schreiben
Schreibt einen ERROR-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
Snippet
$DEBUG.error()
Stoppuhr - starten
Startet die Stoppuhr.
Snippet
${DEBUG.builtinStopwatch.start()}
Stoppuhr - Zwischenzeit nehmen
Nimmt die Zwischenzeit der Stoppuhr.
Snippet
${DEBUG.builtinStopwatch.stop()}
Stoppuhr - neu starten
Startet die Stoppuhr neu.
Snippet
${DEBUG.builtinStopwatch.restart()}
Portaldaten
Portalname
Liefert den Namen des aktuellen Portals als String.
Snippet
$Portal.getPortalName()
Zeitzone
Liefert die default-Zeitzone des Portals.
Snippet
$Portal.getTimeZone()
Angemeldete Benutzer
Liefert eine Liste mit den GUIDS der aktuell im Portal angemeldeten Benutzer. Der Übergabeparameter true/false gibt an, ob anonyme Benutzer mit ausgegeben werden sollen oder nicht.
Beispiel
Gibt auch anonyme Benutzer aus.
$Portal.getUsersOnline(true)
Snippet
$Portal.getUsersOnline(bIncludeAnonymousUsers)
Aktive Sessions
Liefert die Anzahl der aktiven Sessions im Portal.
Snippet
$Portal.getActiveSessionCount()
Rechnen
Addieren
Addiert zwei Integer, Long oder Double Werte.
Snippet
$Math.add($value1, $value2)
Subtrahieren
Subtrahiert zwei Integer, Long oder Double Werte.
Snippet
$Math.sub($value1, $value2)
Multiplizieren
Multipliziert zwei Integer, Long oder Double Werte.
Snippet
$Math.mult($value1, $value2)
Dividieren
Dividiert zwei Double Werte.
Snippet
$Math.div($value1, $value2)
Maximum
Berechnet das Maximum zweier Werte.
Snippet
$Math.max($value1, $value2)
Minimum
Berechnet das Minimum zweier Werte.
Snippet
$Math.min($value1, $value2)
Renderer
Aktuelles Datum
Erzeugt und formatiert das Datum entsprechend des im Portal eingestellten Formats.
Snippet
$DefaultDateTimeRenderer.writeOutput($Response.getWriter(), $DtUtil.now($User.getTimeZone()))
Aktuelles Datum in benutzerdefiniertem Format
Erzeugt formatiert ein Datum mit Hilfe eines benutzerdefinierten Renderes. Ausgabe in diesem Beispiel (Letzter Wert bezeichnet die Kalenderwoche): 21.09.2009 12:14:35 39
Snippet
#set($dateTimeRenderer = $RendererFactory.createDateTimeRendererWithParameters($RenderingContext, false, false, null, "dd.MM.yyyy HH.mm.ss CW", "", null))
$dateTimeRenderer.writeOutput($Response.getWriter(), $DtUtil.now($User.getTimeZone()))
Renderingcontext
Zugriff auf den aktuellen Renderingcontext.
Snippet
$RenderingContext
Datum
Datum lokalisieren
Erzeugt und formatiert das Datum entsprechend der gewünschten Locale. Die aktuelle Locale muss in den Portal-Einstellungen verfügbar sein.
Snippet
$DtUtil.now($User.getTimeZone()).format($Locales.getLocale("en-US").getDateFormat())
Session
Session-ID
Liefert die ID der aktuellen Session.
Snippet
$Session.getId()
Sessionvariable lesen
Liefert den Wert einer Sessionvariablen.
Snippet
$Session.get(strSessionVar)
Sessionvariable schreiben
Liefert den Wert einer Sessionvariablen.
Snippet
$Session.put(strSessionVar, strValue)
Escaping
$ Dollarzeichen
Escape für Dollarzeichen
Snippet
${ESC.D}
# Nummernzeichen
Escape für Nummernzeichen
Snippet
${ESC.H}
" Anführungszeichen
Escape für Anführungszeichen
Snippet
${ESC.QUOT}
! Ausrufezeichen
Escape für Ausrufezeichen
Snippet
${ESC.EXCL}
\ Backslash
Escape für Backslash
Snippet
${ESC.BSL}
CR Wagenrücklauf
Escape für CR Wagenrücklauf
Snippet
${ESC.CR}
LF Zeilenvorschub
Escape für LF Zeilenvorschub
Snippet
${ESC.CR}
CRLF Zeilenumbruch
Escape für CRLF Zeilenumbruch
Snippet
${ESC.CR}
TAB Tabulator
Escape für TAB Tabulator
Snippet
${ESC.TAB}
TextUtil
Array in String transformieren
Transformiert ein Array zu einem String mit dem default-Trenner | und 0 als escape-Zeichen. Sollen andere Trenn-und Escapezeichen verwendet werden, können diese im Funktionsaufruf übergeben werden.
Beispiel
//Uses default separator and escape characters.
$TextUtil.arrayToString(p_array)
//Userdefined separator and escape characters.
$TextUtil.arrayToString(p_array, "$", "!")
Snippet
$TextUtil.arrayToString()
String in Array transformieren
Transformiert einen String zu einem Array, wenn dieser zuvor mit arrayToString(p_myArray) aus einem Array mit dem default-Trenner | und 0 als escape-Zeichen erstellt wurde.
Beispiel
$TextUtil.stringToArray(p_string)
Snippet
$TextUtil.stringToArray()
String trennen
Trennt einen String mit dem übergebenen Zeichen zu einem Array.
Beispiel
$TextUtil.split(p_string, "$")
Snippet
$TextUtil.split(p_string, p_delimiter)
Integer String parsen
Parst einen Integer String zu einem Integer.
Beispiel
$TextUtil.parseInt("1234")
Snippet
$TextUtil.parseInt()
Double String parsen
Parst einen Double String zu einem Double.
Beispiel
$TextUtil.parseDouble("1234.56")
Snippet
$TextUtil.parseDouble()
ValueHolder
ValueHolder erzeugen
Erzeugt aus dem übergebenen Objekt einen ValueHolder.
Snippet
$VH.getValueHolder($object)
ValueHolder mit aktuellem Datum erzeugen
Erzeugt einen ValueHolder mit dem aktuellen Datum.
Snippet
$VH.getNowValueHolder()
Versionierung
Semantische Versionsinformation einer Applikation anzeigen
Beispiel
#set ($version = $Portal.getApplicationVersionInformation("8D3B7A6462649864241A4534FD48364AF378218A").getCurrentVersion())
$version.getFormattedVersion()
$version.getDescriptions().get("de")
$version.getMajorVersion()
$version.getMinorVersion()
$version.getPatchVersion()
$version.getPreReleaseVersion()
$version.getCustomVersion()
$version.getDate()
$version.getMinProductVersion()
$version.getAdditionalRequirements().get("de")
Snippet
$Portal.getApplicationVersionInformation("")
Semantische Versionsinformation eines Prozesses anzeigen
Beispiel
#set ($version = $Portal.getWorkflowVersionInformation("B239068CECAA616964F71825C2CB9DB74DBB1BBA").getCurrentVersion())
$version.getFormattedVersion()
$version.getDescriptions().get("de")
$version.getMajorVersion()
$version.getMinorVersion()
$version.getPatchVersion()
$version.getPreReleaseVersion()
$version.getCustomVersion()
$version.getDate()
$version.getMinProductVersion()
$version.getAdditionalRequirements().get("de")
Snippet
$Portal.getWorkflowVersionInformation("")
Semantische Versionsinformation eines Layouts anzeigen
Beispiel
#set ($version = $Portal.getLayoutVersionInformation("Beispiellayout").getCurrentVersion())
$version.getFormattedVersion()
$version.getDescriptions().get("de")
$version.getMajorVersion()
$version.getMinorVersion()
$version.getPatchVersion()
$version.getPreReleaseVersion()
$version.getCustomVersion()
$version.getDate()
$version.getMinProductVersion()
$version.getAdditionalRequirements().get("de")
Snippet
$Portal.getLayoutVersionInformation("")
Connector für Microsoft Exchange
Aktuelle Exchange-Verbindung
Liefert die aktuelle Exchange-Verbindung.
Snippet
#set($conn = $ExchangeConnectionCallable.getConnection())
Class ExchangeConnectionCallable
Ordnerinformationen
Informationen zu einem Exchange-Ordner - in diesem Beispiel dem Posteingang.
Snippet
#set($inbox = $ExchangeMailboxCallable.getInboxFolderHref($strMailboxName))
$ExchangeMailboxCallable.getFolderInfoByHref($inbox)
Mailboxname des aktuellen Exchange-Benutzers
Liefert den Mailboxnamen des aktuellen Exchange-Benutzers.
Snippet
#set($strMailboxName = $ExchangeUserMailboxCallable.getMailboxInfo().getMailboxName())
Account des aktuellen Exchange-Benutzers
Liefert den Account zur aktuellen Exchange-Verbindung.
Snippet
#set($account = $ExchangeUserMailboxCallable.getMailboxInfo().getUserAccount())
Abwesenheitsnachricht setzen
Schreibt den Text der Abwesenheitsnachricht und setzt den Status auf aktiv. Der Text wird sowohl als interne als auch als externe Nachricht gesetzt.
Snippet
#set($strMessage = "Out of office till 2010/12/31")
$ExchangeMailboxCallable.setOutOfOfficeMessage($strMessage)
$ExchangeMailboxCallable.setOutOfOffice(true)
Nachricht als gelesen markieren
Markiert eine Nachricht mit der übergebenen ID als gelesen. Beispiel (z.B. auf einer Ansichtsseite einer E-Mail): $ExchangeMessageCallable.setMessageRead($DC.getRecId())
Snippet
$ExchangeMessageCallable.setMessageRead($messageId)
Anhänge einer Nachricht
Liefert die Anhänge der Nachricht mit der übergebenen ID. Beispiel (z.B. auf einer Ansichtsseite einer E-Mail): $ExchangeItemCallable.getAttachments($DC.getRecId())
Snippet
$ExchangeItemCallable.getAttachments($messageId)
Exchange-Termin anlegen
Legt für den aktuellen Exchange-Benutzer einen neuen Termin an.
Parameter:
$startDate - Startdatum des Termins
$endDate - Enddatum des Termins
$subject - Titel des Termins
$body - Beschreibung des Termins
Werden nach dem Erstellen des Termins weitere Eigenschaften über set()-Methoden definiert, müssen abschließend mit $appointment.save() der Termin erneut gespeichert werden, um die Änderungen zu übernehmen.
Beispiel
#set($appointment = $ExchangeAppointmentCallable.createNewAppointment($startDate, $endDate, $subject, $body))
$appointment.setLocation("Konferenzraum")
$appointment.save()
Snippet
#set($appointment = $ExchangeAppointmentCallable.createNewAppointment($startDate, $endDate, $subject, $body))
Class ExchangeAppointmentCallable
Exchange-Kontakt anlegen
Legt für den aktuellen Exchange-Benutzer einen neuen Kontakt an.
Parameter:
$lastName - Nachname des Kontakts
$firstName - Vorname des Kontakts
$mail - E-Mail-Adresse des Kontakts
$mailbox - Mailbox des Benutzers, zu dem der Kontakt angelegt werden soll.
Wird null angegeben, wird die Mailbox des aktuellen Benutzers verwendet.
Werden nach dem Erstellen des Kontakts weitere Eigenschaften über set()-Methoden definiert, muss abschließend mit $contact.save() der Termin erneut gespeichert werden, um die Änderungen zu übernehmen.
Beispiel
#set($contact = $ExchangeContactCallable.createNewContact($lastName, $firstName, $mail, $mailbox))
$contact.setJobTitle("Developer")
$contact.save()
Snippet
#set($contact = $ExchangeContactCallable.createNewContact($lastName, $firstName, $mail, $mailbox))
Exchange-E-Mail generieren und versenden
Generiert eine neue Email für den aktuellen Exchange-Benutzer.
Parameter:
$from - Absenderadresse
$to - Empfängeradresse
$subject - Betreff
$body - Nachrichtentext
Werden nach dem Erstellen der E-Mail weitere Eigenschaften über set()-Methoden definiert, muss abschließend der Entwurf mit $message.save() erneut gespeichert werden, um die Änderungen zu übernehmen.
Beispiel
#set($message = $ExchangeMessageCallable.createNewDraft(strSender, strRecipient, strSubject, strBody))
$message.setCc("cc_recipient@example.org")
$message.save()
$message.send()
Snippet
#set($message = $ExchangeMessageCallable.createNewDraft(strSender, strRecipient, strSubject, strBody))
Exchange-Notiz anlegen
Legt für den aktuellen Exchange-Benutzer eine neue Notiz an.
Parameter:
$text - Text der Notiz
$mailBox - Name der Mailbox, in der die Notiz angelegt werden soll. Wird null angegeben, wird die Mailbox des aktuellen Benutzers verwendet.
Beispiel
#set($note = $ExchangeNoteCallable.createNewNote("My note", null))
Snippet
#set($note = ExchangeNoteCallable.createNewNote($text, $mailbox))
Exchange-Aufgabe anlegen
Legt für den aktuellen Exchange-Benutzer eine neue Aufgabe an.
Parameter:
$start - Startdatum der Aufgabe
$due - Fälligkeitsdatum der Aufgabe
$subject - Titel der Aufgabe
$mailBox - Name der Mailbox, in der die Aufgabe angelegt werden soll. Wird null angegeben, wird die Mailbox des aktuellen Benutzers verwendet.
Beispiel
#set($task = $ExchangeTaskCallable.createNewTask(${cursor}dtStart, dtDue, "Task subject", null))
$task.setPercentComplete(25.0)
$task.save()
Snippet
#set($task = $ExchangeTaskCallable.createNewTask(dtStart, dtDue, "Task subject", null))
If Else
Grundgerüst für eine "if else"-Bedingung.
Snippet
#if(condition1)
##code for condition1
#elseif(condition2)
##code for condition2
#else
##code if no condition matches
#end
For each-Schleife
Grundgerüst einer foreach Schleife.
Snippet
#foreach($element in )
#end
Variable definieren
Beispiel
#set( $id = 1)
#set( $userName = "Administrator")
Snippet
#set($variable = aValue)
Variable in lokalem Format ausgeben
Zeigt eine Variable im lokalen Format des Portals an. Die Variable muss in einem Valueholder gespeichert sein. Als RENDERING_TYPE können folgende Typen angegeben werden: integer, datetime, date, time, currency, number, boolean, author.
Beispiel
#set($vhValue = $VH.getValueHolder(1))
#writeVH($vhValue, "currency", true, false, false)
Snippet
#set($vhValue = $VH.getValueHolder($object))
#writeVH($vhValue, "<RENDERING_TYPE>", true, false, false)
Requestparameter lesen
Auslesen eines Requestparameters.
Snippet
$!Request.get("rq_param")
Requestparameter schreiben
Schreiben eines Requestparameters.
Snippet
$Request.put("rq_param", "strValue")
Alle Datengruppen einer Applikation
Gibt die Namen aller Datengruppen der Applikation mit der angegebenen GUID aus.
Snippet
#set($datagroups = $RtCache.getDataGroups($RtCache.filter.dataGroup.getByApplication(<GUID-der-Applikation>)))
#foreach($datagroup in $datagroups)
Name: $datagroup.getName()
#end
Dynamisches Ermitteln eines Tabellennamens per Sysident
Um den Tabellennamen per Sysident zu ermitteln, muss in den Datengruppeneigenschaften das Expert-Attribut sysident definiert sein. Bei der Angabe des Sysident-Wertes muss die Groß-/Kleinschreibung beachtet werden.
Beispiel
$RtCache.getFirstDataGroup($RtCache.filter.dataGroup.getBySysIdent("4B73F01B5F97199C578431966703239ED1AD8397", "mein-sysident")).getTableName()
Snippet
$RtCache.getFirstDataGroup($RtCache.filter.dataGroup.getBySysIdent("<GUID-der-Applikation>", "<Sysident-Wert>)).getTableName()
Aktuelles Datum mit der Zeitzone des aktuellen Benutzers
Erzeugt ein aktuelles Datum unter Berücksichtigung der Zeitzone des aktuellen Benutzers.
Snippet
$DtUtil.now($User.getTimeZone())
Aufbau einer JSON-Antwort
Erzeugt eine JSON-Antwort.
Snippet
## This is necessary: Prevent the response from linebreaks, unwanted outputs, etc.
$Response.setIgnoreWrite(true)
## in here you can write your Velocity-Code without effecting the response accidentally
## e.g. set a variable
#set($myVar = "Hello client!")
## This may help you: Using a java.util.Map to go on easy with JSON-formatting later.
#set($map = $CollectionFactory.createMap())
## Add everything you need into the map with a reliable key.
$map.put("myJSONAnswer", $myVar)
## This is necessary: Format the response, so the server delivers JSON.
$Response.setHeader("Cache-Control", "no-cache")
$Response.setHeader("Content-Type", "application/json;charset=UTF-8")
## Format the Map to be escaped for the JSON-String.
$Response.setIgnoreWrite(false)$JSON.toJSONString($map)
GUID erzeugen
Erzeugt eine neue GUID
Snippet
$Unique.newGuid()