Velocity

1. Allgemeines

Mit Velocity-Skript kann der Funktionsumfang von Intrexx erheblich erweitert werden. An welchen Stellen der Velocity-Skript-Editor im Intrexx Portal Manager erreichbar ist, erfahren Sie hier. Über die folgenden Links finden Sie hilfreiche Informationen zu Velocity in Intrexx:
Für den Einsatz von Velocity in Intrexx sind ausreichende Kenntnisse in der Programmierung mit Velocity vorausgesetzt. Bitte beachten Sie, dass United Planet für Fehler, Datenverlust oder Sicherheitslücken, die von fehlerhaften Velocity-Skripts in Intrexx verursacht sind, keine Haftung übernimmt.

2. 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.

2.1. Applikationsstruktur

2.1.1. Applikationsinfo

Informationen zur Applikation mit der übergebenen GUID. Beispiel:
#set($appInfo = $RtCache.getApplication("C6F004594EEA424B2AACCD105181AD7F0660DF6D").getStartFupGuid())
Ermittelt die GUID der Startseite der Applikation.
$RtCache.getApplication("")
Interface ApplicationInfo

2.1.2. Datengruppen-Info

Informationen zur Datengruppe mit der übergebenen GUID. Beispiel:
#set($dgInfo = $RtCache.getDataGroup("93B1A993C5FCF2895C93E1B7BF3BDDC847DC2BCD").getName())
Ermittelt den Namen der Datengruppe.
$RtCache.getDataGroup("")
Interface DataGroupInfo

2.1.3. Datenfeld-Info

Informationen zum Datenfeld mit der übergebenen GUID. Beispiel:
#set($fldInfo = $RtCache.getField("8E2B87AE9F9BD1FD2FE38AD6856347F3A0D358AD").getName())
Ermittelt den Namen des Datenfeldes.
$RtCache.getField("")
Interface FieldInfo

2.1.4. 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.
$RtCache.getPage("")
Interface PageInfo

2.2. Aktueller Benutzer

2.2.1. Loginname des aktuellen Benutzers

Liefert den Anmeldenamen des aktuellen Benutzers.
$User.getLoginName()
Interface IUser

2.2.2. E-Mailadresse des aktuellen Benutzers

Liefert die geschäftliche E-Mailadresse des aktuellen Benutzers.
$User.getEmailBiz()
Interface IUser

2.2.3. Gruppenzugehörigkeit eines Benutzers bestimmen

Die Gruppenzugehörigkeiten des aktuell angemeldeten Benutzers bestimmen und in Abhängigkeit davon eine weitere Verarbeitung durchführen.
#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

2.3. Objekte im Velocity-Kontext

2.3.1. $AccessController

Objekt zur Überprüfung von Zugriffsrechten an Applikationen, Datengruppen etc.
$AccessController
Class IxAccessController

2.3.2. $AsynchronousRequestHandler

Objekt zur Verarbeitung asynchroner Requests.
$AsynchronousRequestHandler
Class AsynchronousRequestHandlerCallable

2.3.3. $BCM

Objekt zum Zugriff auf den Cache Manager und die Update Sequence Numbers (usn) einzelner Objekte.
##Liefert die USN der übergebenen Ansichtsseite
$BCM.getUsn("viewpage971CA7D9")
Class BrowserCacheManager

2.3.4. $BpeeFactory

$AsynchronousRequestHandler
Class BpeeFactory

2.3.5. $Browser

Objekt zur Abfrage von Browserinformationen.
##Liefert den Benutzeragentenstring des aufrufenden Browsers.
$Browser.getUserAgentId()
Class BrowserCallable

2.3.6. $CalcUtil

2.3.6.1. 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.

2.3.6.2. Operatoren

Folgende Operatoren stehen in einer Berechnungsformel zur Verfügung:

2.3.6.3. 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.
//liefert -1, wenn der Zugriff auf die SharedState-Variable sharedStateValue null zurückliefert oder der Wert nicht gesetzt ist.
sharedState("sharedStateValue", -1)

//liefert 5, wenn der Zugriff auf die Request-Variable rq_custom null zurückliefert oder der Wert nicht gesetzt ist.
requestAsNumber("rq_custom", (10/2))

//liefert 0, wenn das Datenfeld null enthält oder nicht gesetzt wurde.
datafield("C68F6...D3DE7", 0)

2.3.6.4. 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 zeroOnError(10/0) == 0
oneOnError Rückgabe von 1 im Fehlerfall oneOnError(10/0) == 1
fallbackOnError Im Fehlerfall wird der als fallback definierte Wert zurückgeliefert fallbackOnError(10/0, 2) == 2

2.3.6.5. 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)

2.3.6.6. Fallunterscheidungen

Mit Fallunterscheidungen können in Formeln Vorbedingungen geprüft und anhand deren Ergebnis bestimmte Formeln oder Werte verwendet werden.
case(<booleanExpression>, <Formel für true>, <Formel für false>)
Für den boolschen Ausdruck bestehen hierbei folgende Regeln: Werden logische Operatoren zum Berechnen verwendet, wird false zu 0 und true zu 1. Folglich ergibt sich:
5 > 0 + 0 > -1 == 2

2.3.6.7. Beispiele

Ein Berechnungsaufruf mit der Funktion "calculate()" auf Ansichtsseiten besitzt immer drei Parameter:

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.
## Der Methode calculate() zu übergebende Parameter:
## $ProcessingContext (Fester Wert)
## $DC 
## '<Name der Kontrolle des 1. Summanden>'
## <Operator>
## '<Name der Kontrolle des 2. Summanden>'
$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("integervcontrol1") + dataField("integervcontrol2")')

##Gleiches Beispiel, jedoch wird hier die GUID des Datenfeldes (nicht der Kontrolle) verwendet
$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.
## Kombination aus Datenfeld und Sessionwert.
$CalcUtil.calculate($ProcessingContext, $DC,'dataField("3BB...5B3") + session("calcutil_example")')

## Kombination aus Datenfeld und Requestwert.
$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("floatcontrol02E5") + requestAsNumber("rq_calcUtil")')

## Kleiner-Vergleich auf Requestwert.
#set($term = '(dataField("B5F472ED66DCA878683B52CE8F979F4F1DDA172B") * 2) + session("calcutil_value") <
requestAsNumber("rq_calcUtil")')
$CalcUtil.calculate($ProcessingContext, $DC, $term)

## Fallunterscheidung auf Requestwert
#set($term = '(dataField("B5F472ED66DCA878683B52CE8F979F4F1DDA172B") * 2)')
$CalcUtil.calculate($ProcessingContext, $DC, "case(requestAsNumber('rq_calcUtil') <= 100, $term, -1)")

2.3.6.8. 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:
$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.
## Beispielausgabe eines Infotextes unterhalb einer Artikeltabelle
#set($sum = 'totalSum(table("8E9F10DCB24CBB4B27FF67A3230CE7753521E1B3"), row("integervcontrol3621234C"))')
#set($count = 'totalCount(table("8E9F10DCB24CBB4B27FF67A3230CE7753521E1B3"), row("floatvcontrol256AC41"))')
Es wurden $CalcUtil.calculate($ProcessingContext, $DC, $count) Artikel in 
einem Gesamtwert von $CalcUtil.calculate($ProcessingContext, $DC, $sum) € bestellt

2.3.7. $Chat

Objekt zum Senden und Empfangen von Chatnachrichten.
$Chat
Class ChatProxy

2.3.8. $Codec

Objekt zur Codierung und Encodierung von Strings.
$Codec.hexEncodeString("www.intrexx.com", "UTF-8")
$Codec.hexDecodeString("7777772E696E74726578782E636F6D")
Class Codec

2.3.9. $CollectionFactory

Objekt zur Erstellung von Collections.
$CollectionFactory.createMap()
Class CollectionFactory

2.3.10. $Constants

Objekt zum Zugriff auf Konstanten einer Klasse.
$Constants
Class Constants

2.3.11. $Cookies

Setzen von Cookies.
#set($cookie = $Cookies.createCookie("myCookie", "test"))
$Response.addCookie($cookie)
Class Cookies

2.3.12. $DC

Objekt zum Zugriff auf eine Collection von Datenobjekten (z.B. der aktuelle Datensatz).
##Liefert die Record-Id des aktuellen Datensatzes als String
$DC.getRecId()

2.3.12.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:
#set($template = $Loader.process($ProcessingContext, "<APP_GUID>", "data"))
#set($DC = $Loader.getDataCollection())

2.3.12.2. 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())
#set($value = $DC.getValueHolder('<CONTROL_NAME>').getValue())

2.3.12.3. 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()
#set($value = $DC.getPropertiesVH().get("<DATAFIELD_NAME>").getValue()

2.3.13. $DEBUG

Objekt zur genaueren Untersuchung einzelner Objekte und Elemente.
##Liefert detaillierte Informationen über das aktuelle Benutzerobjekt.
$DEBUG.inspect($User)
Class ObjectInspector

2.3.14. $defaultLanguage

Standardsprache des Portals.
$defaultLanguage

2.3.15. $DIMHelper

Objekt für den Zugriff auf Instanzen der Office-Integration.
$DIMHelper
Class DIMWrapper

2.3.16. $DataTransferCallable

Objekt für den Zugriff auf angelegte Datentransferverbindungen.
##Liefert die JobHistory des Datentransferjobs mit der übergebenen GUID
$DataTransferCallable.getJobsHistory("0460E20ACAC15EDDA0E9B62E1F815D5BFD3F9B8F")
Class DataTransferCallable

2.3.17. $DbUtil

Objekt für den Zugriff auf Datenbankverbindungen und zur Transaktionsverwaltung von Datenbankoperationen.
#set($conn = $DbUtil.getConnection("IxSysDb"))
Class DatabaseUtil

2.3.18. $DefaultMaker

$DefaultMaker
Class DefaultMaker

2.3.19. $DistributionControl

Objekt zum Zugriff auf Verteilerkontrollen
$DistributionControl
Class VCDistributionControl

2.3.20. $DoubletService

Hilfsobjekt zur Suche von Dubletten in Datenbeständen einer Applikation.
$DoubletService
Class DoubletServiceCallable

2.3.21. $drRecord

Objekt für den Zugriff auf den aktuellen Datensatz in freien Tabellen.
$drRecord
Interface IRow

2.3.22. $DtUtil

Objekt für Datumsberechnungen.
$DtUtil
Class DateTimeUtil

2.3.23. $ESC

Darstellung von Zeichen, die in Velocity standardmäßig escapet werden.
##Darstellung einer Raute (#)
$ESC.getH()
Class EscapedCharacters

2.3.24. $Error

Objekt zur Analyse von Exceptions.
$Error
Class ErrorObject

2.3.25. $ExceptionUtil

Objekt zum Werfen von Exceptions.
$ExceptionUtil.throwException("java.io.FileNotFoundException", "Die angegebene Datei existiert nicht.")
Class VelocityExceptionUtil

2.3.26. Objekte für Microsoft Exchange

Diese Objekte können nur in Verbindung mit dem Intrexx-MediaGateway verwendet werden.

2.3.26.1. $ExchangeCallable

Callable für Exchange-Authentifizierungen.
$ExchangeCallable.getRequiredFields().isPasswordRequired()
Class ExchangeCallable

2.3.26.2. $ExchangeConnectionCallable

Callable für Exchange-Verbindungen.
$ExchangeConnectionCallable.getConnection()
Class ExchangeConnectionCallable

2.3.26.3. $ExchangeMailboxCallable

Callable für den Zugriff auf die Mailbox eines Exchange-Benutzers.
##Liefert die Abwesenheitsnachricht des aktuellen Exchange-Benutzers.
$ExchangeMailboxCallable.getOutOfOfficeMessage()
Class ExchangeMailboxCallable

2.3.26.4. $ExchangeMessageCallable

Callable für den Zugriff auf Nachrichtenobjekte.
##Speichert die Nachricht mit ID $strMessageId im EML-Format unter $strDestinationPath ab.
$ExchangeMessageCallable.saveMessageAsEML($strMessageId, $strDestinationPath)
Class ExchangeMessageCallable

2.3.26.5. $ExchangeItemCallable

Callable für den Zugriff auf Exchange-Objekte.
##Speichert Anhänge des Elements mit ID $strMessageId unter $strDestinationPath ab.
$ExchangeItemCallable.saveAttachment($strMessageId, $strDestinationPath)
Class ExchangeItemCallable

2.3.26.6. $ExchangeUserMailboxCallable

Callable auf Mailbox-Informationen eines Exchange-Benutzers.
$ExchangeUserMailboxCallable.getMailboxInfo()
Class ExchangeUserMailboxCallable

2.3.27. $Factory

Erzeugen von oder Zugriff auf Objekte wie z.B. Benutzer, ohne dass sie im Velocitykontext vordefiniert wurden.
$Factory
Class ObjectFactory

2.3.28. $FieldFormatter

$FieldFormatter
Class FieldFormatter

2.3.29. $FileHelper

Objekt für Dateioperation wie das Einfügen einer Datei in eine Intrexxdatengruppe.
##Löscht die Datei aus dem mit der GUID definierten Datenfeld 
##und dem mit der RecID 1 definierten Datensatz.
$FileHelper.deleteFileFromIntrexx($ProcessingContext, "079A397D11EE732857CD1017C3AC6A55D0D112DA", "1")
Class VCFileHelper

2.3.30. $FileUtil

Objekt zur Analyse von Dateien in einer Ordnerhirarchie.
$FileUtil
Class FileUtil

2.3.31. $Filter

Sammlung diverser Filter für Collections, die im Velocitykontext verwendet werden.
$Filter
Class Filter

2.3.32. $ForumInfo

Objekte für den Zugriff auf Forums-, Thread- und Postinformationen.
$ForumInfo
Class ForumInfo

2.3.33. $FramesetHelper

Objekt zum Aufbau eines neuen URL basierend auf dem aktuellen Request und einer Liste von zusätzlichen Parametern.
$FramesetHelper
Class FramesetHelper

2.3.34. $HelperFactory

Konvertiert die Zeichen <, >, & und " in ihre entsprechende HTML-Entität.
$HelperFactory
Class HelperFactory

2.3.35. $I18N

Objekt für den Zugriff auf Sprachkonstanten
$I18N
Class LanguageConstantsCallable

2.3.36. $JSON

Hilfsfunktionen zum Erstellen von und Arbeiten mit JSON-Objekten.
$JSON
Class JSONUtil

2.3.37. $lang

Aktuelle Portalsprache.
$lang

2.3.38. $layout

Name des aktuell verwendeten Layouts.
$layout

2.3.39. $LayoutManager

Zugriff auf Layoutinformationen.
$LayoutManager
Class LayoutManagerCallable

2.3.40. $ListBoxControl

Objekt zum Zugriff auf Auswahllisten.
$ListBoxControl
Class VCListBoxControl

2.3.41. $ListFormatter

Hilfsfunktionen zur Formatierung von Listen.
$ListFormatter
Class ListFormatter

2.3.42. $Loader

Verarbeitet eingehende Requests. Über $Loader ist z.B. der Zugriff auf die aktuelle Datenbankverbindung möglich.
$Loader
Class BuslogicCaller

2.3.43. $Locales

Zugriff auf Ländereinstellungen von Zahlen- & Datumswerten.
$Locales
Class VCLocales

2.3.44. $LogAnalyzer

Objekt zum Erstellen von Applikations- und Benutzer- und Statistikreports.
$LogAnalyzer
Class LogAnalyzer

2.3.45. $MBGallery

Objekt zur Bearbeitung umd zum Kopieren/Verschieben/Löschen von Bildern.
$MBGallery
Class Gallery

2.3.46. $MassMailCallable

$MassMailCallable
Class MassMailCallable

2.3.47. $Math

Objekt für diverse arithmetische Operationen.
$Math
Class MathUtil

2.3.48. $Menu

Objekt zum Zugriff auf die Menüstruktur.
$Menu
Class MenuCallable

2.3.49. $MenuCloud

Objekt zum Zugriff auf eine Menüwolke.
$MenuCloud
Class MenuCloud

2.3.50. $NewsControllerUtil

Objekt zum Zugriff auf News eines Newsletters.
$NewsControllerUtil
Class NewsControllerUtil

2.3.51. $ObjectHelper

Objekt für null-Objekte und -ValueHolder.
$ObjectHelper
Class ObjectHelper

2.3.52. $PageLister

Objekt zum Zugriff auf Applikationsseiten.
$PageLister

2.3.53. $PageUtil

Objekt zum Zugriff auf Kontrollen und Daten auf der Ansichtsseite eines Datensatzes.
#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.
$page.getControlNames()
## Beispielhafte Ausgabe
## [textvcontrol60C5B1A8, datetimevcontrol88EFC15D, checkvcontrol68B97F7C, integervcontrolE018B980]

$page.getControlGuids()
## Beispielhafte Ausgabe
## [4A21CF034953825EE93093E0C8E51C959D193C5F, 4B953139D2E394C42BD20919A2C1CA757EC10A1A]
Mit der Variable "$page" kann auf Kontrollen und Datenfelder der Seite zugegriffen werden.

Class PageUtil

2.3.54. $PolicyBrowserFactory

Bietet Zugriff auf Objekte, mit deren Hilfe lesend auf Rechte von Benutzern, Sets oder Containern zugegriffen werden kann.
$PolicyBrowserFactory
Class Factory

2.3.55. $PollHelper

Objekt für Abfragen von Eigenschaften einer Umfrage.
$PollHelper
Class PollCallable

2.3.56. $Portal

Objekt für den Zugriff auf Portaleigenschaften (z.B. Name).
$Portal
Class Portal
$Portal.getOrgStructure()
Zugriff auf die Organisationsstruktur des Portals.

Class VelocityOrgStructureWrapper

2.3.57. $PortalLayoutFactory

Objekt zum Zugriff auf Portallayouts.
$PortalLayoutFactory

2.3.58. $PreparedQuery

Objekt zum Erstellen und Ausführen von Datenbankabfragen.
$PreparedQuery
Class DbQuery

2.3.59. $ProcessingContext

Objekt des aktuellen Verabeitungskontextes.
$ProcessingContext
Class BusinessLogicProcessingContext

2.3.60. $QNameFactory

Objekt zur Erstellung eines neuen xsd:QName namespaces.
$QNameFactory
Class QNameFactory

2.3.61. $RDFCallable

Objekt zum Zugriff auf in einem Portal vergebene Tags.
$RDFCallable

2.3.62. $Renderer

Objekt für das Erstellen von diversen Renderern.
$Renderer
Class StandardUtilRendererFactory

2.3.63. $RenderingContext

Objekt zum Zugriff auf die aktuellen Default-Rendereinstellungen des Portals.
$RenderingContext
Class RenderingContext

2.3.64. $Request

Objekt zum Setzen und Auslesen von Requestvariablen.
$Request
Class IServerBridgeRequest

2.3.65. $Response

Objekt für das Setzen und Lesen von Eigenschaften einer HTTP-Response.
$Response
Class HttpResponseWrapper

2.3.66. $RtCache

Runtime-Cache-Objekt mit Informationen über Applikationen, Datengruppen etc.
$RtCache
Class VelocityRtCache

2.3.67. $SaucMenu

Objekt für das Setzen von Menürechten im Web-CMS.
$SaucMenu
Class SaucMenuPermission

2.3.68. $SearchUtil

Objekt für Suchanfragen.
$SearchUtil
Class SearchUtil

2.3.69. $Session

Zugriff auf die Session des aktuellen Benutzers.
$Session
Class Session

2.3.70. $SettingsHelper

Objekt zum Auslesen von Settings.
$SettingsHelper
Class VCSettingsHelper

2.3.71. $SharedState

Setzen und Auslesen von benutzerdefinerten Werten im Verarbeitungskontext. Wert aus dem Verarbeitungskontext lesen:

$SharedState.get("meineVariable")

Wert in den Verarbeitungskontext schreiben:

$SharedState.putAt("meineVariable", "meinWert")
$SharedState.get("<paramName>")
$SharedState.putAt("<paramName>", "<paramValue>")
Class SharedState

2.3.72. $Sort

Hilfsobjekt zum Sortieren von Listen.
$Sort
Class Sort

2.3.73. $TextUtil

Hilfsobjekt für diverse Arten von Stringmanipulationen.
$TextUtil
Class TextUtil

2.3.74. $TickerMan

Objekt für den Zugriff auf RSS-Provider.
$TickerMan
Class TickerManager

2.3.75. $Unique

Objekt zur Generierung von eindeutigen Variablen.
$Unique
Class Unique

2.3.76. $UrlBuilder

Objekt zum Erstellen von URLs.
$UrlBuilder
Class UrlBuilder

2.3.77. $User

Objekt zum Zugriff auf Informationen des aktuellen Benutzers.
$User
Class User

2.3.78. $VDiff

Objekt, um Diffs von Wiki-Beiträgen anzuzeigen.
$VDiff
Class VDiff

2.3.79. $VH

Objekt zum Erstellen von ValueHoldern.
$VH
Class ValueHolderFactory

2.3.80. $VHHelper

Hilfsklasse zum Auslesen von Werten in ValueHoldern.
$VHHelper
Class VCValueHolderHelper

2.3.81. $VelocityContext

$VelocityContext


Class VelocityUtil

2.3.82. $VelocityUtil

$VelocityUtil
Class VelocityUtil

2.3.83. $Wiki

$Wiki
Class WikiRenderer

2.3.84. $Zebra

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
$Zebra
Class Zebra
Class ZebraFactory

2.4. Datenbanken

2.4.1. Aktuelle Datenbankverbindung

Liefert die aktuelle Systemverbindung zur Datenbank.
$DbConnection

2.4.2. Zugriff auf Fremddatenverbindung

Zugriff auf eine angelegte Fremdatenverbindung.
$DbUtil.getConnection("connectionName")

2.4.3. Alle Spaltennamen einer Datengruppe

Liefert eine Liste mit den Namen aller Spalten der Datengruppe mit der übergebenen GUID.
#set($fields = $RtCache.getFields())
#set($columnNames = [])

#foreach($field in $fields)
	#if($field.getDataGroupGuid() == "<DG_GUID>")
		#set($bResult = $columnNames.add($field.getColumnName()))
	#end
#end

2.4.4. Vorbereitete Anweisung mit SELECT

Führt eine SELECT-Anfrage auf eine Datenbanktabelle aus.
#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()
Class DbPreparedStatement

2.4.5. Vorbereitete Anweisung mit INSERT

Führt ein INSERT-Statement auf einer Datenbanktabelle aus.
#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()
Class DbPreparedStatement

2.4.6. Vorbereitete Anweisung mit UPDATE

Führt ein UPDATE-Statement auf einer Datenbanktabelle aus.
#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()
Class DbPreparedStatement

2.4.7. Vorbereitete Anweisung mit DELETE

Führt ein DELETE-Statement auf einer Datenbanktabelle aus.
#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()
Class DbPreparedStatement

2.4.8. 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.
#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()
Class DbPreparedStatement

2.4.9. Datenbanktyp unterscheiden

Liefert den Datenbanktyp der Systemverbindung. Die Unterscheidung kann mit folgenden Bezeichnern erfolgen: Datenbanken, die nicht als Systemdatenbanken unterstützt werden:
#set($strType = $DbConnection.getDescriptor().getDatabaseType())

#if($strType.contains("<DATABASE_IDENTIFIER>"))
#end
Class DbPreparedStatement

2.4.10. Zeitstempel für Systemwerte

Diese Variable beinhaltet den Zeitstempel der aktuellen Transaktion und bleibt bis zum Verarbeitungsende dieser Transaktion unverändert.
$CURRENT_TIMESTAMP

2.5. Fehlersuche

2.5.1. Objekt inspizieren

Inspiziert ein Objekt.
$DEBUG.inspect()
Class ObjectInspector

2.5.2. Info in Logdatei schreiben

Schreibt einen INFO-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
$DEBUG.info()
Class ObjectInspector

2.5.3. Warnung in Logdatei schreiben

Schreibt einen WARN-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
$DEBUG.warn()
Class ObjectInspector

2.5.4. Fehler in Logdatei schreiben

Schreibt einen ERROR-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
$DEBUG.error()
Class ObjectInspector

2.5.5. Stoppuhr - starten

Startet die Stoppuhr.
${DEBUG.builtinStopwatch.start()}
Class ObjectInspector

2.5.6. Stoppuhr - Zwischenzeit nehmen

Nimmt die Zwischenzeit der Stoppuhr.
${DEBUG.builtinStopwatch.stop()}
Class ObjectInspector

2.5.7. Stoppuhr - neu starten

Startet die Stoppuhr neu.
${DEBUG.builtinStopwatch.restart()}
Class ObjectInspector

2.6. Portaldaten

2.6.1. Portalname

Liefert den Namen des aktuellen Portals als String.
$Portal.getPortalName()
Class Portal

2.6.2. Zeitzone

Liefert die default-Zeitzone des Portals.
$Portal.getTimeZone()
Class Portal

2.6.3. 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)
$Portal.getUsersOnline(bIncludeAnonymousUsers)
Class Portal

2.6.4. Aktive Sessions

Liefert die Anzahl der aktiven Sessions im Portal.
$Portal.getActiveSessionCount()
Class Portal

2.7. Rechnen

2.7.1. Addieren

Addiert zwei Integer, Long oder Double Werte.
$Math.add($value1, $value2)
Class MathUtil

2.7.2. Subtrahieren

Subtrahiert zwei Integer, Long oder Double Werte.
$Math.sub($value1, $value2)
Class MathUtil

2.7.3. Multiplizieren

Multipliziert zwei Integer, Long oder Double Werte.
$Math.mult($value1, $value2)
Class MathUtil

2.7.4. Dividieren

Dividiert zwei Double Werte.
$Math.div($value1, $value2)
Class MathUtil

2.7.5. Maximum

Berechnet das Maximum zweier Werte.
$Math.max($value1, $value2)
Class MathUtil

2.7.6. Minimum

Berechnet das Minimum zweier Werte.
$Math.min($value1, $value2)
Class MathUtil

2.8. Renderer

2.8.1. Aktuelles Datum

Erzeugt und formatiert das Datum entsprechend des im Portal eingestellten Formats.
$DefaultDateTimeRenderer.writeOutput($Response.getWriter(), $DtUtil.now($User.getTimeZone()))

2.8.2. 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
#set($dateTimeRenderer = $RendererFactory.createDateTimeRendererWithParameters($RenderingContext, false, false, null, "dd.MM.yyyy HH.mm.ss CW", "", null))
$dateTimeRenderer.writeOutput($Response.getWriter(), $DtUtil.now($User.getTimeZone()))

2.8.3. Renderingcontext

Zugriff auf den aktuellen Renderingcontext.
$RenderingContext
Class RenderingContext

2.9. Datum

2.9.1. Datum lokalisieren

Erzeugt und formatiert das Datum entsprechend der gewünschten Locale. Die aktuelle Locale muss in den Portal-Einstellungen verfügbar sein.
$DtUtil.now($User.getTimeZone()).format($Locales.getLocale("en-US").getDateFormat())

2.10. Session

2.10.1. Session-ID

Liefert die ID der aktuellen Session.
$Session.getId()
Class Session

2.10.2. Sessionvariable lesen

Liefert den Wert einer Sessionvariablen.
$Session.get(strSessionVar)
Class Session

2.10.3. Sessionvariable schreiben

Liefert den Wert einer Sessionvariablen.
$Session.get(strSessionVar)
Class Session

2.11. Escaping

2.11.1. $ Dollarzeichen

Escape für Dollarzeichen
${ESC.D}
Class EscapedCharacters

2.11.2. # Nummernzeichen

Escape für Nummernzeichen
${ESC.H}
Class EscapedCharacters

2.11.3. " Anführungszeichen

Escape für Anführungszeichen
${ESC.QUOT}
Class EscapedCharacters

2.11.4. ! Ausrufezeichen

Escape für Ausrufezeichen
${ESC.EXCL}
Class EscapedCharacters

2.11.5. \ Backslash

Escape für Backslash
${ESC.BSL}
Class EscapedCharacters

2.11.6. CR Wagenrücklauf

Escape für CR Wagenrücklauf
${ESC.CR}
Class EscapedCharacters

2.11.7. LF Zeilenvorschub

Escape für LF Zeilenvorschub
${ESC.CR}
Class EscapedCharacters

2.11.8. CRLF Zeilenumbruch

Escape für CRLF Zeilenumbruch
${ESC.CR}
Class EscapedCharacters

2.11.9. TAB Tabulator

Escape für TAB Tabulator
${ESC.TAB}
Class EscapedCharacters

2.12. TextUtil

2.12.1. 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:
//Verwendet default Trenner- und escape-Zeichen.
$TextUtil.arrayToString(p_array)
//Benutzerdefinierte Trenner- und escape-Zeichen.
$TextUtil.arrayToString(p_array, "$", "!")
$TextUtil.arrayToString()
Class TextUtil

2.12.2. 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)
$TextUtil.stringToArray()
Class TextUtil

2.12.3. String trennen

Trennt einen String mit dem übergebenen Zeichen zu einem Array. Beispiel: $TextUtil.split(p_string, "$")
$TextUtil.split(p_string, p_delimiter)
Class TextUtil

2.12.4. Integer String parsen

Parst einen Integer String zu einem Integer. Beispiel: $TextUtil.parseInt("1234")
$TextUtil.parseInt()
Class TextUtil

2.12.5. Float String parsen

Parst einen Float String zu einem Integer. Beispiel: $TextUtil.parseFloat("1234.56F")
$TextUtil.parseFloat()
Class TextUtil

2.12.6. Double String parsen

Parst einen Double String zu einem Double. Beispiel: $TextUtil.parseDouble("1234.56")
$TextUtil.parseDouble()
Class TextUtil

2.13. ValueHolder

2.13.1. ValueHolder erzeugen

Erzeugt aus dem übergebenen Objekt einen ValueHolder.
$VH.getValueHolder($object)
Class ValueHolderFactory

2.13.2. ValueHolder mit aktuellem Datum erzeugen

Erzeugt einen ValueHolder mit dem aktuellen Datum.
$VH.getNowValueHolder()
Class ValueHolderFactory

2.14. Versionierung

2.14.1. 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")
$Portal.getApplicationVersionInformation("")
Class Portal

2.14.2. 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")
$Portal.getWorkflowVersionInformation("")
Class Portal

2.14.3. 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")
$Portal.getLayoutVersionInformation("")
Class Portal

2.15. Connector für Microsoft Exchange

2.15.1. Aktuelle Exchange-Verbindung

Liefert die aktuelle Exchange-Verbindung.
#set($conn = $ExchangeConnectionCallable.getConnection())
Class ExchangeConnectionCallable

2.15.2. Ordnerinformationen

Informationen zu einem Exchange-Ordner - in diesem Beispiel dem Posteingang.
#set($inbox = $ExchangeMailboxCallable.getInboxFolderHref($strMailboxName))
$ExchangeMailboxCallable.getFolderInfoByHref($inbox)
Class ExchangeMailboxCallable

2.15.3. Mailboxname des aktuellen Exchange-Benutzers

Liefert den Mailboxnamen des aktuellen Exchange-Benutzers.
#set($strMailboxName = $ExchangeUserMailboxCallable.getMailboxInfo().getMailboxName())
Class ExchangeUserMailboxInfo

2.15.4. Account des aktuellen Exchange-Benutzers

Liefert den Account zur aktuellen Exchange-Verbindung.
#set($account = $ExchangeUserMailboxCallable.getMailboxInfo().getUserAccount())
Class ExchangeAccount

2.15.5. 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.
#set($strMessage = "Out of office till 2010/12/31")
$ExchangeMailboxCallable.setOutOfOfficeMessage($strMessage)
$ExchangeMailboxCallable.setOutOfOffice(true) 
Class ExchangeMailboxCallable

2.15.6. 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())
$ExchangeMessageCallable.setMessageRead($messageId)
Class ExchangeMessageCallable

2.15.7. 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())
$ExchangeItemCallable.getAttachments($messageId)
Class ExchangeItemCallable

2.15.8. 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()
#set($appointment = $ExchangeAppointmentCallable.createNewAppointment($startDate, $endDate, $subject, $body))
Class ExchangeAppointmentCallable

2.15.9. 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()
#set($contact = $ExchangeContactCallable.createNewContact($lastName, $firstName, $mail, $mailbox))
Class ExchangeContactCallable

2.15.10. 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()
#set($message = $ExchangeMessageCallable.createNewDraft(strSender, strRecipient, strSubject, strBody))
Class ExchangeMessageCallable

2.15.11. 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))
#set($note = ExchangeNoteCallable.createNewNote($text, $mailbox))
Class ExchangeNoteCallable

2.15.12. 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()
#set($task = $ExchangeTaskCallable.createNewTask(dtStart, dtDue, "Task subject", null))
Class ExchangeTaskCallable

2.16. If Else

Grundgerüst für eine if else Bedingung.
#if(condition1)
	##code for condition1
#elseif(condition2)
	##code for condition2
#else
	##code if no condition matches
#end

2.17. For each-Schleife

Grundgerüst einer foreach Schleife.
#foreach($element in )
	
#end

2.18. Variable definieren

Beispiel:
#set( $id = 1)
#set( $userName = "Administrator")
#set($variable = aValue)

2.19. 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)
#set($vhValue = $VH.getValueHolder($object))
#writeVH($vhValue, "<RENDERING_TYPE>", true, false, false)

2.20. Requestparameter lesen

Auslesen eines Requestparameters.
$!Request.get("rq_param")
Class IServerBridgeRequest

2.21. Requestparameter schreiben

Schreiben eines Requestparameters.
$Request.put("rq_param", "strValue")
Class IServerBridgeRequest

2.22. Alle Datengruppen einer Applikation

Gibt die Namen aller Datengruppen der Applikation mit der angegebenen GUID aus.
#set($datagroups = $RtCache.getDataGroups($RtCache.filter.dataGroup.getByApplication(<GUID-der-Applikation>)))
#foreach($datagroup in $datagroups)
	Name: $datagroup.getName()
#end
Class VelocityRtCache

2.23. 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()
$RtCache.getFirstDataGroup($RtCache.filter.dataGroup.getBySysIdent("<GUID-der-Applikation>", "<Sysident-Wert>)).getTableName()
Class VelocityRtCache

2.24. Aktuelles Datum mit der Zeitzone des aktuellen Benutzers

Erzeugt ein aktuelles Datum unter Berücksichtigung der Zeitzone des aktuellen Benutzers.
$DtUtil.now($User.getTimeZone())
Class CalendarAwareDate

2.25. Aufbau einer JSON-Antwort

Erzeugt eine JSON-Antwort.
## 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 helps 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)
Class JSONUtil

2.26. GUID erzeugen

Erzeugt eine neue GUID
$Unique.newGuid()
Class Unique