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("")

Interface ApplicationInfo

Datengruppen-Info

Informationen zur Datengruppe mit der übergebenen GUID.

Beispiel

#set($dgInfo = $RtCache.getDataGroup("93B1A993C5FCF2895C93E1B7BF3BDDC847DC2BCD").getName())

Ermittelt den Namen der Datengruppe.

Snippet

$RtCache.getDataGroup("")

Interface DataGroupInfo

Datenfeld-Info

Informationen zum Datenfeld mit der übergebenen GUID.

Beispiel

#set($fldInfo = $RtCache.getField("8E2B87AE9F9BD1FD2FE38AD6856347F3A0D358AD").getName())

Ermittelt den Namen des Datenfeldes.

Snippet

$RtCache.getField("")

Interface FieldInfo

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("")

Interface PageInfo

Aktueller Benutzer

Loginname des aktuellen Benutzers

Liefert den Anmeldenamen des aktuellen Benutzers.

Snippet

$User.getLoginName()

Interface IUser

E-Mailadresse des aktuellen Benutzers

Liefert die geschäftliche E-Mailadresse des aktuellen Benutzers.

Snippet

$User.getEmailBiz()

Interface IUser

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

Class IxAccessController

$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")

Class BrowserCacheManager

$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

Class IIxValue

$Browser

Objekt zur Abfrage von Browserinformationen.

Snippet

##Gets the user agent string of the calling browser
$Browser.getUserAgentId()

Class BrowserCallable

$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

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

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

Class ChatProxy

$Codec

Objekt zur Codierung und Encodierung von Strings.

Snippet

$Codec.hexEncodeString("www.intrexx.com", "UTF-8")
$Codec.hexDecodeString("7777772E696E74726578782E636F6D")

Class Codec

$CollectionFactory

Objekt zur Erstellung von Collections.

Snippet

$CollectionFactory.createMap()

Class CollectionFactory

$Constants

Objekt zum Zugriff auf Konstanten einer Klasse.

Snippet

$Constants

Class Constants

$Cookies

Setzen von Cookies.

Snippet

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

Class Cookies

$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
Hauptdatensatz

Zugriff auf
aktuellen Datensatz in Ansichtstabelle

Zugriff auf
aktuellen Datensatz in frei gestalteter Tabelle

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)

Class ObjectInspector

$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")

Class DataTransferCallable

$DbUtil

Objekt für den Zugriff auf Datenbankverbindungen und zur Transaktionsverwaltung von Datenbankoperationen.

Snippet

#set($conn = $DbUtil.getConnection("IxSysDb"))

Class DatabaseUtil

$DefaultMaker

Snippet

$DefaultMaker

Class DefaultMaker

$DistributionControl

Objekt zum Zugriff auf Verteilerkontrollen

Snippet

$DistributionControl

Class VCDistributionControl

$DoubletService

Hilfsobjekt zur Suche von Dubletten in Datenbeständen einer Applikation.

Snippet

$DoubletService

Class DoubletServiceCallable

$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

Class DateTimeUtil

$ESC

Darstellung von Zeichen, die in Velocity standardmäßig escapet werden.

Snippet

##Representation of a rhombus (#)
$ESC.getH()

Class EscapedCharacters

$Error

Objekt zur Analyse von Exceptions.

Snippet

$Error

Class ErrorObject

$ExceptionUtil

Objekt zum Werfen von Exceptions.

Snippet

$ExceptionUtil.throwException("java.io.FileNotFoundException", "Die angegebene Datei existiert nicht.")

Class VelocityExceptionUtil

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()

Class ExchangeCallable

$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()

Class ExchangeMailboxCallable

$ExchangeMessageCallable

Callable für den Zugriff auf Nachrichtenobjekte.

Snippet

##Saves the message with ID $strMessageId in EML format under $strDestinationPath.
$ExchangeMessageCallable.saveMessageAsEML($strMessageId, $strDestinationPath)

Class ExchangeMessageCallable

$ExchangeItemCallable

Callable für den Zugriff auf Exchange-Objekte.

Snippet

##Stores attachments of the element with ID $strMessageId under $strDestinationPath.
$ExchangeItemCallable.saveAttachment($strMessageId, $strDestinationPath)

Class ExchangeItemCallable

$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

Class ObjectFactory

$FieldFormatter

Snippet

$FieldFormatter

Class 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")

Class VCFileHelper

$FileUtil

Objekt zur Analyse von Dateien in einer Ordnerhierarchie.

Snippet

$FileUtil

Class FileUtil

$Filter

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

Snippet

$Filter

Class Filter

$FramesetHelper

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

Snippet

$FramesetHelper

Class FramesetHelper

$HelperFactory

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

Snippet

$HelperFactory

Class 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

Class JSONUtil

$lang

Aktuelle Portalsprache.

Snippet

$lang

$layout

Name des aktuell verwendeten Layouts.

Snippet

$layout

$LayoutManager

Zugriff auf Layoutinformationen.

Snippet

$LayoutManager

Class LayoutManagerCallable

$ListBoxControl

Objekt zum Zugriff auf Auswahllisten.

Snippet

$ListBoxControl

Class VCListBoxControl

$ListFormatter

Hilfsfunktionen zur Formatierung von Listen.

Snippet

$ListFormatter

Class ListFormatter

$Loader

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

Snippet

$Loader

Class BuslogicCaller

$Locales

Zugriff auf Ländereinstellungen von Zahlen- & Datumswerten.

Snippet

$Locales

Class VCLocales

$LogAnalyzer

Objekt zum Erstellen von Applikations- und Benutzer- und Statistikreports.

Snippet

$LogAnalyzer

Class LogAnalyzer

$MBGallery

Objekt zur Bearbeitung umd zum Kopieren/Verschieben/Löschen von Bildern.

Snippet

$MBGallery

Class Gallery

$Math

Objekt für diverse arithmetische Operationen.

Snippet

$Math

Class MathUtil

$Menu

Objekt zum Zugriff auf die Menüstruktur.

Snippet

$Menu

Class MenuCallable

$MenuCloud

Objekt zum Zugriff auf eine Menüwolke.

Snippet

$MenuCloud

Class MenuCloud

$ObjectHelper

Objekt für null-Objekte und -ValueHolder.

Snippet

$ObjectHelper

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

Class PageUtil

$Parameter

Objekt für den Zugriff auf Parameter.

Snippet

$Parameter

Class VCParameter

$PolicyBrowserFactory

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

Snippet

$PolicyBrowserFactory

Class Factory

$PollHelper

Objekt für Abfragen von Eigenschaften einer Umfrage.

Snippet

$PollHelper

Class PollCallable

$Portal

Objekt für den Zugriff auf Portaleigenschaften (z.B. Name).

Snippet

$Portal

Class 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

Class DbQuery

$ProcessingContext

Objekt des aktuellen Verabeitungskontextes.

Snippet

$ProcessingContext

Class BusinessLogicProcessingContext

$QNameFactory

Objekt zur Erstellung eines neuen xsd:QName namespaces.

Snippet

$QNameFactory

Class 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

Class RenderingContext

$Request

Objekt zum Setzen und Auslesen von Requestvariablen.

Snippet

$Request

Class IServerBridgeRequest

$Response

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

Snippet

$Response

Class HttpResponseWrapper

$RtCache

Runtime-Cache-Objekt mit Informationen über Applikationen, Datengruppen etc.

Snippet

$RtCache

Class VelocityRtCache

$SaucMenu

Objekt für das Setzen von Menürechten im Web-CMS.

Snippet

$SaucMenu

Class SaucMenuPermission

$SearchUtil

Objekt für Suchanfragen.

Snippet

$SearchUtil

Class SearchUtil

$Session

Zugriff auf die Session des aktuellen Benutzers.

Snippet

$Session

Class Session

$SettingsHelper

Objekt zum Auslesen von Settings.

Snippet

$SettingsHelper

Class VCSettingsHelper

$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>")

Class SharedState

$Sort

Hilfsobjekt zum Sortieren von Listen.

Snippet

$Sort

Class Sort

$SourcePage

Liefert z.B. GUID, Applikations-GUID oder RecID der Seite, die Parameter sendet.

Snippet

$SourcePage

Class VCSourcePage

$TextUtil

Hilfsobjekt für diverse Arten von Stringmanipulationen.

Snippet

$TextUtil

Class TextUtil

$TickerMan

Objekt für den Zugriff auf RSS-Provider.

Snippet

$TickerMan

Class TickerManager

$Unique

Objekt zur Generierung von eindeutigen Variablen.

Snippet

$Unique

Class 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

Class UrlBuilder

$User

Objekt zum Zugriff auf Informationen des aktuellen Benutzers.

Snippet

$User

Class User

$VDiff

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

Snippet

$VDiff

Class VDiff

$VH

Objekt zum Erstellen von ValueHoldern.

Snippet

$VH

Class ValueHolderFactory

$VHHelper

Hilfsklasse zum Auslesen von Werten in ValueHoldern.

Snippet

$VHHelper

Class VCValueHolderHelper

$VelocityContext

Snippet

$VelocityContext

Class VelocityUtil

$VelocityUtil

Snippet

$VelocityUtil

Class VelocityUtil

$Wiki

Snippet

$Wiki

Class WikiRenderer

$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

Class Zebra

Class ZebraFactory

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()

Class DbPreparedStatement

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()

Class DbPreparedStatement

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()

Class DbPreparedStatement

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()

Class DbPreparedStatement

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()

Class DbPreparedStatement

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")

  • MaxDB/ SAP DB: $strType.contains("MaxDB")

  • 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

Class DbPreparedStatement

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()

Class ObjectInspector

Info in Logdatei schreiben

Schreibt einen INFO-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.

Snippet

$DEBUG.info()

Class ObjectInspector

Warnung in Logdatei schreiben

Schreibt einen WARN-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.

Snippet

$DEBUG.warn()

Class ObjectInspector

Fehler in Logdatei schreiben

Schreibt einen ERROR-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.

Snippet

$DEBUG.error()

Class ObjectInspector

Stoppuhr - starten

Startet die Stoppuhr.

Snippet

${DEBUG.builtinStopwatch.start()}

Class ObjectInspector

Stoppuhr - Zwischenzeit nehmen

Nimmt die Zwischenzeit der Stoppuhr.

Snippet

${DEBUG.builtinStopwatch.stop()}

Class ObjectInspector

Stoppuhr - neu starten

Startet die Stoppuhr neu.

Snippet

${DEBUG.builtinStopwatch.restart()}

Class ObjectInspector

Portaldaten

Portalname

Liefert den Namen des aktuellen Portals als String.

Snippet

$Portal.getPortalName()

Class Portal

Zeitzone

Liefert die default-Zeitzone des Portals.

Snippet

$Portal.getTimeZone()

Class Portal

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)

Class Portal

Aktive Sessions

Liefert die Anzahl der aktiven Sessions im Portal.

Snippet

$Portal.getActiveSessionCount()

Class Portal

Rechnen

Addieren

Addiert zwei Integer, Long oder Double Werte.

Snippet

$Math.add($value1, $value2)

Class MathUtil

Subtrahieren

Subtrahiert zwei Integer, Long oder Double Werte.

Snippet

$Math.sub($value1, $value2)

Class MathUtil

Multiplizieren

Multipliziert zwei Integer, Long oder Double Werte.

Snippet

$Math.mult($value1, $value2)

Class MathUtil

Dividieren

Dividiert zwei Double Werte.

Snippet

$Math.div($value1, $value2)

Class MathUtil

Maximum

Berechnet das Maximum zweier Werte.

Snippet

$Math.max($value1, $value2)

Class MathUtil

Minimum

Berechnet das Minimum zweier Werte.

Snippet

$Math.min($value1, $value2)

Class MathUtil

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

Class 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()

Class Session

Sessionvariable lesen

Liefert den Wert einer Sessionvariablen.

Snippet

$Session.get(strSessionVar)

Class Session

Sessionvariable schreiben

Liefert den Wert einer Sessionvariablen.

Snippet

$Session.put(strSessionVar, strValue)

Class Session

Escaping

$ Dollarzeichen

Escape für Dollarzeichen

Snippet

${ESC.D}

Class EscapedCharacters

# Nummernzeichen

Escape für Nummernzeichen

Snippet

${ESC.H}

Class EscapedCharacters

" Anführungszeichen

Escape für Anführungszeichen

Snippet

${ESC.QUOT}

Class EscapedCharacters

! Ausrufezeichen

Escape für Ausrufezeichen

Snippet

${ESC.EXCL}

Class EscapedCharacters

\ Backslash

Escape für Backslash

Snippet

${ESC.BSL}

Class EscapedCharacters

CR Wagenrücklauf

Escape für CR Wagenrücklauf

Snippet

${ESC.CR}

Class EscapedCharacters

LF Zeilenvorschub

Escape für LF Zeilenvorschub

Snippet

${ESC.CR}

Class EscapedCharacters

CRLF Zeilenumbruch

Escape für CRLF Zeilenumbruch

Snippet

${ESC.CR}

Class EscapedCharacters

TAB Tabulator

Escape für TAB Tabulator

Snippet

${ESC.TAB}

Class EscapedCharacters

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()

Class TextUtil

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()

Class TextUtil

String trennen

Trennt einen String mit dem übergebenen Zeichen zu einem Array.

Beispiel

$TextUtil.split(p_string, "$")

Snippet

$TextUtil.split(p_string, p_delimiter)

Class TextUtil

Integer String parsen

Parst einen Integer String zu einem Integer.

Beispiel

$TextUtil.parseInt("1234")

Snippet

$TextUtil.parseInt()

Class TextUtil

Double String parsen

Parst einen Double String zu einem Double.

Beispiel

$TextUtil.parseDouble("1234.56")

Snippet

$TextUtil.parseDouble()

Class TextUtil

ValueHolder

ValueHolder erzeugen

Erzeugt aus dem übergebenen Objekt einen ValueHolder.

Snippet

$VH.getValueHolder($object)

Class ValueHolderFactory

ValueHolder mit aktuellem Datum erzeugen

Erzeugt einen ValueHolder mit dem aktuellen Datum.

Snippet

$VH.getNowValueHolder()

Class ValueHolderFactory

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("")

Class Portal

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("")

Class Portal

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("")

Class Portal

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)

Class ExchangeMailboxCallable

Mailboxname des aktuellen Exchange-Benutzers

Liefert den Mailboxnamen des aktuellen Exchange-Benutzers.

Snippet

#set($strMailboxName = $ExchangeUserMailboxCallable.getMailboxInfo().getMailboxName())

Class ExchangeUserMailboxInfo

Account des aktuellen Exchange-Benutzers

Liefert den Account zur aktuellen Exchange-Verbindung.

Snippet

#set($account = $ExchangeUserMailboxCallable.getMailboxInfo().getUserAccount())

Class ExchangeAccount

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) 

Class ExchangeMailboxCallable

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)

Class ExchangeMessageCallable

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)

Class ExchangeItemCallable

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

Class ExchangeContactCallable

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

Class ExchangeMessageCallable

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

Class ExchangeNoteCallable

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

Class ExchangeTaskCallable

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

Velocity Overview

For each-Schleife

Grundgerüst einer foreach Schleife.

Snippet

#foreach($element in )
	
#end

Velocity Overview

Variable definieren

Beispiel

#set( $id = 1)
#set( $userName = "Administrator")

Snippet

#set($variable = aValue)

Velocity Overview

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)

Velocity Overview

Requestparameter lesen

Auslesen eines Requestparameters.

Snippet

$!Request.get("rq_param")

Class IServerBridgeRequest

Requestparameter schreiben

Schreiben eines Requestparameters.

Snippet

$Request.put("rq_param", "strValue")

Class IServerBridgeRequest

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

Class VelocityRtCache

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()

Class VelocityRtCache

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())

Class CalendarAwareDate

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)

Class JSONUtil

GUID erzeugen

Erzeugt eine neue GUID

Snippet

$Unique.newGuid()

Class Unique