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("")
Ab Intrexx 12.0.0: 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("")
Ab Intrexx 12.0.0: 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("")
Ab Intrexx 12.0.0: 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("")
Ab Intrexx 12.0.0: Interface PageInfo
Aktueller Benutzer
Loginname des aktuellen Benutzers
Liefert den Anmeldenamen des aktuellen Benutzers.
Snippet
$User.getLoginName()
Ab Intrexx 12.0.0: Ab Intrexx 12.0.0:
E-Mailadresse des aktuellen Benutzers
Liefert die geschäftliche E-Mailadresse des aktuellen Benutzers.
Snippet
$User.getEmailBiz()
Ab Intrexx 12.0.0: Ab Intrexx 12.0.0:
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
Ab Intrexx 12.0.0: Class VelocityOrgStructureWrapper
Objekte im Velocity-Kontext
$AccessController
Objekt zur Überprüfung von Zugriffsrechten an Applikationen, Datengruppen etc.
Snippet
$AccessController
Ab Intrexx 12.0.0: Class IxAccessController
$AppUserProfile
Daten pro Benutzer persistent speichern.
Snippet
$AppUserProfile
Class VCApplicationUserProfile
Ab Intrexx 12.0.0: Class VCApplicationUserProfile
$AsynchronousRequestHandler
Objekt zur Verarbeitung asynchroner Requests.
Snippet
$AsynchronousRequestHandler
Class AsynchronousRequestHandlerCallable
Ab Intrexx 12.0.0: 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")
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: Class IIxValue
$Browser
Objekt zur Abfrage von Browserinformationen.
Snippet
##Gets the user agent string of the calling browser
$Browser.getUserAgentId()
Ab Intrexx 12.0.0: 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 |
|
oneOnError |
Rückgabe von 1 im Fehlerfall |
|
fallbackOnError |
Im Fehlerfall wird der als fallback definierte Wert zurückgeliefert |
|
Rundungsfunktionen
Zahlenwerte können in Formeln gerundet werden. Der Parameter "scale" beschreibt dabei die Anzahl der Nachkommastellen.
Methode |
Anmerkungen |
---|---|
roundLong |
Buchhalterisches Runden |
roundLongHalfAwayFromZero |
entspricht roundLong |
roundLongHalfEven |
|
roundLongHalfUp |
|
roundLongHalfDown |
|
round(scale) |
Buchhalterisches Runden auf scale Nachkommastellen (roundLong entspricht round(0)) |
roundLongHalfAwayFromZero(scale) |
entspricht round(scale) |
roundLongHalfEven(scale) |
|
roundLongHalfUp(scale) |
|
roundLongHalfDown(scale) |
Fallunterscheidungen
Mit Fallunterscheidungen können in Formeln Vorbedingungen geprüft und anhand deren Ergebnis bestimmte Formeln oder Werte verwendet werden.
case(<booleanExpression>, <formula for true>, <formula for false>)
Für den boolschen Ausdruck bestehen hierbei folgende Regeln:
-
null == false
-
leer == false
-
0 == false
-
false == false
-
!true == false
-
!false == true
-
1 == true
Werden logische Operatoren zum Berechnen verwendet, wird false zu 0 und true zu 1. Folglich ergibt sich:
5 > 0 + 0 > -1 == 2
Beispiele
Ein Berechnungsaufruf mit der Funktion "calculate()" auf Ansichtsseiten besitzt immer drei Parameter:
-
$ProcessingContext - Der aktuelle Verarbeitungscontext. Wert ist immer fix.
-
Die aktuelle Datarange - $DC für Tabellen und Ansichtsseiten.
-
Formel - Beliebig geschachtelte Formel, bestehend aus den o.g. Methoden und Operatoren.
Einfache Addition zweier Werte
Hier ein einfaches Beispiel für eine Addition, deren Werte aus Datenfeldern gelesen werden. Um ein Datenfeld anzusprechen, können Sie entweder die GUID des Datenfeldes oder den Namen der Kontrolle in Hochkommatas angeben.
Beispiel 1
## Parameters of the methode calculate():
## $ProcessingContext (Fixed value)
## $DC
## '<Name of the control of the 1st summand>'## <Operator>## '<Name of the control of the 2nd summand>'$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("integervcontrol1") + dataField("integervcontrol2")')
##Same example, but here the GUID of the data field instead of the control is used
$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("3BB...5B3") + dataField("C95...950")')
Die oben beschriebenen Methoden lassen sich beliebig kombinieren und schachteln, um Werte aus verschiedenen Quellen (Session, Request, ...) zu verwenden.
Beispiel 2
## Combination of data field and session value
$CalcUtil.calculate($ProcessingContext, $DC,'dataField("3BB...5B3") + session("calcutil_example")')
## Combination of data field and request value
$CalcUtil.calculate($ProcessingContext, $DC, 'dataField("floatcontrol02E5") + requestAsNumber("rq_calcUtil")')
## "Smaller" comparison of request value
#set($term = '(dataField("B5F472ED66DCA878683B52CE8F979F4F1DDA172B") * 2) + session("calcutil_value") <requestAsNumber("rq_calcUtil")')
$CalcUtil.calculate($ProcessingContext, $DC, $term)
## Case distinction of request value
#set($term = '(dataField("B5F472ED66DCA878683B52CE8F979F4F1DDA172B") * 2)')
$CalcUtil.calculate($ProcessingContext, $DC, "case(requestAsNumber('rq_calcUtil') <= 100, $term, -1)")
Aggregatsfunktionen für Tabellen
Über "$CalcUtil" ist es auch möglich, Werte aus Spalten einer Tabellen zu verarbeiten. Es stehen hierbei die in der folgenden Tabelle aufgelisteten Rechenoperationen zur Verfügung. Die Aufrufe der Methoden für Tabellen besitzen hierbei immer zwei Parameter:
- Tabellenobjekt
Zugriff auf Tabelle - entweder per Tabellenname oder Tabellen-GUID. Es handelt sich hierbei nicht um den direkten Namen und die GUID der Tabellenkontrolle, sondern um die Werte des Attributs "tablerecords" bei Ansichtstabellen bzw. "shapedtablebase" bei frei gestalteten Tabellen. Um die Werte zu ermitteln, wählen Sie das Hauptmenü "Bearbeiten / Elemente anzeigen, wenn die Seite, auf der sich die Tabelle befindet, in der Applikationsstruktur markiert ist. Navigieren Sie dann in der Struktur zur gewünschten Tabelle. Dort finden Sie den Eintrag "tablerecords" bzw. "shapedtablebase". Im Details-Dialog des Eintrags können Name und GUID ermittelt werden.
- Formel
Beliebig geschachtelte Formel. Zugriff auf Spaltenwerte über row(<Spaltenname>) bzw. rowAsNumber(<spaltenname>)
Beispiel 1
$CalcUtil.calculate($ProcessingContext, $DC, 'sum(table("8E9...1B3"), row("integervcontrol3621234C"))')
$CalcUtil.calculate($ProcessingContext, $DC, 'sum(table("8E9...1B3"), row("integervcontrol3621234C"))')
Die Werte werden beim Aufrufen der Seite berechnet. Besitzt die Tabelle Navigationselemente und werden diese verwendet, aktualisieren sich die Werte der Velocity-Anweisungen und -Berechnungen nicht, da die Tabelle dynamisch per AJAX nachgeladen wird. Sollte also gewünscht sein, Tabellenberechnungen auch nach einer Navigation innerhalb der Tabelle durchzuführen, muss das entsprechende VTL-Include (respektive die VM-Datei) ebenfalls per AJAX nachgeladen werden. Als Workaround wird geraten, die zu berechnende Tabelle so aufzubereiten, dass keine Navigation notwendig ist.
Methode |
Beschreibung |
---|---|
sum |
Berechnet die Summe der Spaltenwerte aus jenen Daten, die auf der aktuellen Seite angezeigt werden. |
min |
Berechnet das Minimum der Spaltenwerte aus jenen Daten, die auf der aktuellen Seite angezeigt werden. |
max |
Berechnet das Maximum der Spaltenwerte aus jenen Daten, die auf der aktuellen Seite angezeigt werden. |
count |
Berechnet die Anzahl der Datensätze, die auf der aktuellen Seite angezeigt werden. |
Bitte beachten Sie, dass es sich bei den folgenden Methoden um rechenintensive Operationen handelt. Bei sehr großen Datenbeständen können entsprechende Verzögerungen auftreten.
Methode |
Beschreibung |
---|---|
totalSum |
Berechnet die Summe der Spaltenwerte aller Datensätze. |
totalMin |
Berechnet das Minimum der Spaltenwerte aller Datensätze. |
totalMax |
Berechnet das Maximum der Spaltenwerte aller Datensätze. |
totalCount |
Berechnet die Anzahl aller Datensätze. |
Beachten Sie bitte: Befindet sich in einer Tabelle kein Datensatz, liefern die o.g. Methoden die Zahl 0 als Rückgabewert.
Beispiel 2
## Example output of an info text below an article table
#set($sum = 'totalSum(table("8E9F10DCB24CBB4B27FF67A3230CE7753521E1B3"), row("integervcontrol3621234C"))')
#set($count = 'totalCount(table("8E9F10DCB24CBB4B27FF67A3230CE7753521E1B3"), row("floatvcontrol256AC41"))')
$CalcUtil.calculate($ProcessingContext, $DC, $count) items were ordered in a total value
of $CalcUtil.calculate($ProcessingContext, $DC, $sum) €
$Chat
Objekt zum Senden und Empfangen von Chatnachrichten.
Snippet
$Chat
Ab Intrexx 12.0.0: Class ChatProxy
$Codec
Objekt zur Codierung und Encodierung von Strings.
Snippet
$Codec.hexEncodeString("www.intrexx.com", "UTF-8")
$Codec.hexDecodeString("7777772E696E74726578782E636F6D")
Ab Intrexx 12.0.0: Class Codec
$CollectionFactory
Objekt zur Erstellung von Collections.
Snippet
$CollectionFactory.createMap()
Ab Intrexx 12.0.0: Class CollectionFactory
$Constants
Objekt zum Zugriff auf Konstanten einer Klasse.
Snippet
$Constants
Ab Intrexx 12.0.0: Class Constants
$Cookies
Setzen von Cookies.
Snippet
#set($cookie = $Cookies.createCookie("myCookie", "test"))
$Response.addCookie($cookie)
Ab Intrexx 12.0.0: 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 |
Zugriff auf |
Zugriff auf |
---|---|---|---|
Velocity im Hauptdatensatz |
$DC |
nicht möglich |
nicht möglich |
Velocity im Datensatz einer Ansichtstabelle |
$DC |
$drRecord |
nicht möglich |
Velocity im Datensatz einer frei gestalteten Tabelle |
$DC.getMainPageDC() |
nicht möglich |
$DC oder $drRecord |
$Loader.getDataCollection()
Der Aufruf $Loader.getDataCollection() entspricht exakt der Verwendung von $DC. Es handelt sich lediglich um eine andere, längere Schreibweise. $Loader.getDataCollection() bzw. $DC kann bei Bedarf einer neuen Variablen zugewiesen werden.
Verwenden Sie für diese neue Variable zwingend und unbedingt einen komplett eigenen Namen - auf keinen Fall darf $DC als Name verwendet werden! $DC ist ein reserviertes Schlüsselwort in Intrexx. Dies gilt für alle Namen der in Velocity verfügbaren Kontextobjekte in Intrexx.
Snippet
##Returns the record ID of the current record as string
$DC.getRecId()
Interface IWebRowDataCollection
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: 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")
Ab Intrexx 12.0.0: Class DataTransferCallable
$DbUtil
Objekt für den Zugriff auf Datenbankverbindungen und zur Transaktionsverwaltung von Datenbankoperationen.
Snippet
#set($conn = $DbUtil.getConnection("IxSysDb"))
Ab Intrexx 12.0.0: Class DatabaseUtil
$DefaultMaker
Snippet
$DefaultMaker
Ab Intrexx 12.0.0: Class DefaultMaker
$DistributionControl
Objekt zum Zugriff auf Verteilerkontrollen
Snippet
$DistributionControl
Ab Intrexx 12.0.0: Class VCDistributionControl
$DoubletService
Hilfsobjekt zur Suche von Dubletten in Datenbeständen einer Applikation.
Snippet
$DoubletService
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: Interface IWebRowDataCollection
$DtUtil
Objekt für Datumsberechnungen.
Snippet
$DtUtil
Ab Intrexx 12.0.0: Class DateTimeUtil
$ESC
Darstellung von Zeichen, die in Velocity standardmäßig escapet werden.
Snippet
##Representation of a rhombus (#)
$ESC.getH()
Ab Intrexx 12.0.0: Class EscapedCharacters
$Error
Objekt zur Analyse von Exceptions.
Snippet
$Error
Ab Intrexx 12.0.0: Class ErrorObject
$ExceptionUtil
Objekt zum Werfen von Exceptions.
Snippet
$ExceptionUtil.throwException("java.io.FileNotFoundException", "Die angegebene Datei existiert nicht.")
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: Class ExchangeCallable
$ExchangeConnectionCallable
Callable für Exchange-Verbindungen.
Snippet
$ExchangeConnectionCallable.getConnection()
Class ExchangeConnectionCallable
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: Class ExchangeItemCallable
$ExchangeUserMailboxCallable
Callable auf Mailbox-Informationen eines Exchange-Benutzers.
Snippet
$ExchangeUserMailboxCallable.getMailboxInfo()
Class ExchangeUserMailboxCallable
Ab Intrexx 12.0.0: Class ExchangeUserMailboxCallable
$Factory
Erzeugen von oder Zugriff auf Objekte wie z.B. Benutzer, ohne dass sie im Velocitykontext vordefiniert wurden.
Snippet
$Factory
Ab Intrexx 12.0.0: Class ObjectFactory
$FieldFormatter
Snippet
$FieldFormatter
Ab Intrexx 12.0.0: 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")
Ab Intrexx 12.0.0: Class VCFileHelper
$FileUtil
Objekt zur Analyse von Dateien in einer Ordnerhierarchie.
Snippet
$FileUtil
Ab Intrexx 12.0.0: Class FileUtil
$Filter
Sammlung diverser Filter für Collections, die im Velocitykontext verwendet werden.
Snippet
$Filter
Ab Intrexx 12.0.0: Class Filter
$FramesetHelper
Objekt zum Aufbau eines neuen URL basierend auf dem aktuellen Request und einer Liste von zusätzlichen Parametern.
Snippet
$FramesetHelper
Ab Intrexx 12.0.0: Class FramesetHelper
$HelperFactory
Konvertiert die Zeichen <, >, & und " in ihre entsprechende HTML-Entität.
Snippet
$HelperFactory
Ab Intrexx 12.0.0: Class HelperFactory
$I18N
Objekt für den Zugriff auf Sprachkonstanten
Snippet
$I18N
Class LanguageConstantsCallable
Ab Intrexx 12.0.0: Class LanguageConstantsCallable
$JSON
Hilfsfunktionen zum Erstellen von und Arbeiten mit JSON-Objekten.
Snippet
$JSON
Ab Intrexx 12.0.0: Class JSONUtil
$lang
Aktuelle Portalsprache.
Snippet
$lang
$layout
Name des aktuell verwendeten Layouts.
Snippet
$layout
$LayoutManager
Zugriff auf Layoutinformationen.
Snippet
$LayoutManager
Ab Intrexx 12.0.0: Class LayoutManagerCallable
$ListBoxControl
Objekt zum Zugriff auf Auswahllisten.
Snippet
$ListBoxControl
Ab Intrexx 12.0.0: Class VCListBoxControl
$ListFormatter
Hilfsfunktionen zur Formatierung von Listen.
Snippet
$ListFormatter
Ab Intrexx 12.0.0: Class ListFormatter
$Loader
Verarbeitet eingehende Requests. Über $Loader ist z.B. der Zugriff auf die aktuelle Datenbankverbindung möglich.
Snippet
$Loader
Ab Intrexx 12.0.0: Class BuslogicCaller
$Locales
Zugriff auf Ländereinstellungen von Zahlen- & Datumswerten.
Snippet
$Locales
Ab Intrexx 12.0.0: Class VCLocales
$LogAnalyzer
Objekt zum Erstellen von Applikations- und Benutzer- und Statistikreports.
Snippet
$LogAnalyzer
Ab Intrexx 12.0.0: Class LogAnalyzer
$MBGallery
Objekt zur Bearbeitung umd zum Kopieren/Verschieben/Löschen von Bildern.
Snippet
$MBGallery
Ab Intrexx 12.0.0: Class Gallery
$Math
Objekt für diverse arithmetische Operationen.
Snippet
$Math
Ab Intrexx 12.0.0: Class MathUtil
$Menu
Objekt zum Zugriff auf die Menüstruktur.
Snippet
$Menu
Ab Intrexx 12.0.0: Class MenuCallable
$MenuCloud
Objekt zum Zugriff auf eine Menüwolke.
Snippet
$MenuCloud
Ab Intrexx 12.0.0: Class MenuCloud
$ObjectHelper
Objekt für null-Objekte und -ValueHolder.
Snippet
$ObjectHelper
Ab Intrexx 12.0.0: 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.
Ab Intrexx 12.0.0: Class PageUtil
$Parameter
Objekt für den Zugriff auf Parameter.
Snippet
$Parameter
Ab Intrexx 12.0.0: Class VCParameter
$PolicyBrowserFactory
Bietet Zugriff auf Objekte, mit deren Hilfe lesend auf Rechte von Benutzern, Sets oder Containern zugegriffen werden kann.
Snippet
$PolicyBrowserFactory
Ab Intrexx 12.0.0: Class Factory
$PollHelper
Objekt für Abfragen von Eigenschaften einer Umfrage.
Snippet
$PollHelper
Ab Intrexx 12.0.0: Class PollCallable
$Portal
Objekt für den Zugriff auf Portaleigenschaften (z.B. Name).
Snippet
$Portal
Ab Intrexx 12.0.0: Class Portal
$Portal - Zugriff auf die Organisationsstruktur
Zugriff auf die Organisationsstruktur des Portals.
Snippet
$Portal.getOrgStructure()
Class VelocityOrgStructureWrapper
Ab Intrexx 12.0.0: Class VelocityOrgStructureWrapper
$PreparedQuery
Objekt zum Erstellen und Ausführen von Datenbankabfragen.
Snippet
$PreparedQuery
Ab Intrexx 12.0.0: Class DbQuery
$ProcessingContext
Objekt des aktuellen Verabeitungskontextes.
Snippet
$ProcessingContext
Class BusinessLogicProcessingContext
Ab Intrexx 12.0.0: Class BusinessLogicProcessingContext
$QNameFactory
Objekt zur Erstellung eines neuen xsd:QName namespaces.
Snippet
$QNameFactory
Ab Intrexx 12.0.0: Class QNameFactory
$Renderer
Objekt für das Erstellen von diversen Renderern.
Snippet
$Renderer
Class StandardUtilRendererFactory
Ab Intrexx 12.0.0: Class StandardUtilRendererFactory
$RenderingContext
Objekt zum Zugriff auf die aktuellen Default-Rendereinstellungen des Portals.
Snippet
$RenderingContext
Ab Intrexx 12.0.0: Class RenderingContext
$Request
Objekt zum Setzen und Auslesen von Requestvariablen.
Snippet
$Request
Ab Intrexx 12.0.0: Class IServerBridgeRequest
$Response
Objekt für das Setzen und Lesen von Eigenschaften einer HTTP-Response.
Snippet
$Response
Ab Intrexx 12.0.0: Class HttpResponseWrapper
$RtCache
Runtime-Cache-Objekt mit Informationen über Applikationen, Datengruppen etc.
Snippet
$RtCache
Ab Intrexx 12.0.0: Class VelocityRtCache
$SaucMenu
Objekt für das Setzen von Menürechten im Web-CMS.
Snippet
$SaucMenu
Ab Intrexx 12.0.0: Class SaucMenuPermission
$SearchUtil
Objekt für Suchanfragen.
Snippet
$SearchUtil
Ab Intrexx 12.0.0: Class SearchUtil
$Session
Zugriff auf die Session des aktuellen Benutzers.
Snippet
$Session
Ab Intrexx 12.0.0: Class Session
$SettingsHelper
Objekt zum Auslesen von Settings.
Snippet
$SettingsHelper
Ab Intrexx 12.0.0: 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>")
Ab Intrexx 12.0.0: Class SharedState
$Sort
Hilfsobjekt zum Sortieren von Listen.
Snippet
$Sort
Ab Intrexx 12.0.0: Class Sort
$SourcePage
Liefert z.B. GUID, Applikations-GUID oder RecID der Seite, die Parameter sendet.
Snippet
$SourcePage
Ab Intrexx 12.0.0: Class VCSourcePage
$TextUtil
Hilfsobjekt für diverse Arten von Stringmanipulationen.
Snippet
$TextUtil
Ab Intrexx 12.0.0: Class TextUtil
$TickerMan
Objekt für den Zugriff auf RSS-Provider.
Snippet
$TickerMan
Ab Intrexx 12.0.0: Class TickerManager
$Unique
Objekt zur Generierung von eindeutigen Variablen.
Snippet
$Unique
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: Class UrlBuilder
$User
Objekt zum Zugriff auf Informationen des aktuellen Benutzers.
Snippet
$User
Ab Intrexx 12.0.0: Class User
$VDiff
Objekt, um Diffs von Wiki-Beiträgen anzuzeigen.
Snippet
$VDiff
Ab Intrexx 12.0.0: Class VDiff
$VH
Objekt zum Erstellen von ValueHoldern.
Snippet
$VH
Ab Intrexx 12.0.0: Class ValueHolderFactory
$VHHelper
Hilfsklasse zum Auslesen von Werten in ValueHoldern.
Snippet
$VHHelper
Ab Intrexx 12.0.0: Class VCValueHolderHelper
$VelocityContext
Snippet
$VelocityContext
Ab Intrexx 12.0.0: Class VelocityUtil
$VelocityUtil
Snippet
$VelocityUtil
Ab Intrexx 12.0.0: Class VelocityUtil
$Wiki
Snippet
$Wiki
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: Class Zebra
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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")
-
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
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: Class ObjectInspector
Info in Logdatei schreiben
Schreibt einen INFO-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
Snippet
$DEBUG.info()
Ab Intrexx 12.0.0: Class ObjectInspector
Warnung in Logdatei schreiben
Schreibt einen WARN-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
Snippet
$DEBUG.warn()
Ab Intrexx 12.0.0: Class ObjectInspector
Fehler in Logdatei schreiben
Schreibt einen ERROR-Eintrag in die zum Ausführungskontext des Skripts gehörige Logdatei.
Snippet
$DEBUG.error()
Ab Intrexx 12.0.0: Class ObjectInspector
Stoppuhr - starten
Startet die Stoppuhr.
Snippet
${DEBUG.builtinStopwatch.start()}
Ab Intrexx 12.0.0: Class ObjectInspector
Stoppuhr - Zwischenzeit nehmen
Nimmt die Zwischenzeit der Stoppuhr.
Snippet
${DEBUG.builtinStopwatch.stop()}
Ab Intrexx 12.0.0: Class ObjectInspector
Stoppuhr - neu starten
Startet die Stoppuhr neu.
Snippet
${DEBUG.builtinStopwatch.restart()}
Ab Intrexx 12.0.0: Class ObjectInspector
Portaldaten
Portalname
Liefert den Namen des aktuellen Portals als String.
Snippet
$Portal.getPortalName()
Ab Intrexx 12.0.0: Class Portal
Zeitzone
Liefert die default-Zeitzone des Portals.
Snippet
$Portal.getTimeZone()
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: Class Portal
Aktive Sessions
Liefert die Anzahl der aktiven Sessions im Portal.
Snippet
$Portal.getActiveSessionCount()
Ab Intrexx 12.0.0: Class Portal
Rechnen
Addieren
Addiert zwei Integer, Long oder Double Werte.
Snippet
$Math.add($value1, $value2)
Ab Intrexx 12.0.0: Class MathUtil
Subtrahieren
Subtrahiert zwei Integer, Long oder Double Werte.
Snippet
$Math.sub($value1, $value2)
Ab Intrexx 12.0.0: Class MathUtil
Multiplizieren
Multipliziert zwei Integer, Long oder Double Werte.
Snippet
$Math.mult($value1, $value2)
Ab Intrexx 12.0.0: Class MathUtil
Dividieren
Dividiert zwei Double Werte.
Snippet
$Math.div($value1, $value2)
Ab Intrexx 12.0.0: Class MathUtil
Maximum
Berechnet das Maximum zweier Werte.
Snippet
$Math.max($value1, $value2)
Ab Intrexx 12.0.0: Class MathUtil
Minimum
Berechnet das Minimum zweier Werte.
Snippet
$Math.min($value1, $value2)
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: Class Session
Sessionvariable lesen
Liefert den Wert einer Sessionvariablen.
Snippet
$Session.get(strSessionVar)
Ab Intrexx 12.0.0: Class Session
Sessionvariable schreiben
Liefert den Wert einer Sessionvariablen.
Snippet
$Session.put(strSessionVar, strValue)
Ab Intrexx 12.0.0: Class Session
Escaping
$ Dollarzeichen
Escape für Dollarzeichen
Snippet
${ESC.D}
Ab Intrexx 12.0.0: Class EscapedCharacters
# Nummernzeichen
Escape für Nummernzeichen
Snippet
${ESC.H}
Ab Intrexx 12.0.0: Class EscapedCharacters
" Anführungszeichen
Escape für Anführungszeichen
Snippet
${ESC.QUOT}
Ab Intrexx 12.0.0: Class EscapedCharacters
! Ausrufezeichen
Escape für Ausrufezeichen
Snippet
${ESC.EXCL}
Ab Intrexx 12.0.0: Class EscapedCharacters
\ Backslash
Escape für Backslash
Snippet
${ESC.BSL}
Ab Intrexx 12.0.0: Class EscapedCharacters
CR Wagenrücklauf
Escape für CR Wagenrücklauf
Snippet
${ESC.CR}
Ab Intrexx 12.0.0: Class EscapedCharacters
LF Zeilenvorschub
Escape für LF Zeilenvorschub
Snippet
${ESC.CR}
Ab Intrexx 12.0.0: Class EscapedCharacters
CRLF Zeilenumbruch
Escape für CRLF Zeilenumbruch
Snippet
${ESC.CR}
Ab Intrexx 12.0.0: Class EscapedCharacters
TAB Tabulator
Escape für TAB Tabulator
Snippet
${ESC.TAB}
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: Class TextUtil
Integer String parsen
Parst einen Integer String zu einem Integer.
Beispiel
$TextUtil.parseInt("1234")
Snippet
$TextUtil.parseInt()
Ab Intrexx 12.0.0: Class TextUtil
Double String parsen
Parst einen Double String zu einem Double.
Beispiel
$TextUtil.parseDouble("1234.56")
Snippet
$TextUtil.parseDouble()
Ab Intrexx 12.0.0: Class TextUtil
ValueHolder
ValueHolder erzeugen
Erzeugt aus dem übergebenen Objekt einen ValueHolder.
Snippet
$VH.getValueHolder($object)
Ab Intrexx 12.0.0: Class ValueHolderFactory
ValueHolder mit aktuellem Datum erzeugen
Erzeugt einen ValueHolder mit dem aktuellen Datum.
Snippet
$VH.getNowValueHolder()
Ab Intrexx 12.0.0: 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("")
Ab Intrexx 12.0.0: 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("")
Ab Intrexx 12.0.0: 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("")
Ab Intrexx 12.0.0: Class Portal
Connector für Microsoft Exchange
Aktuelle Exchange-Verbindung
Liefert die aktuelle Exchange-Verbindung.
Snippet
#set($conn = $ExchangeConnectionCallable.getConnection())
Class ExchangeConnectionCallable
Ab Intrexx 12.0.0: Class ExchangeConnectionCallable
Ordnerinformationen
Informationen zu einem Exchange-Ordner - in diesem Beispiel dem Posteingang.
Snippet
#set($inbox = $ExchangeMailboxCallable.getInboxFolderHref($strMailboxName))
$ExchangeMailboxCallable.getFolderInfoByHref($inbox)
Ab Intrexx 12.0.0: Class ExchangeMailboxCallable
Mailboxname des aktuellen Exchange-Benutzers
Liefert den Mailboxnamen des aktuellen Exchange-Benutzers.
Snippet
#set($strMailboxName = $ExchangeUserMailboxCallable.getMailboxInfo().getMailboxName())
Ab Intrexx 12.0.0: Class ExchangeUserMailboxInfo
Account des aktuellen Exchange-Benutzers
Liefert den Account zur aktuellen Exchange-Verbindung.
Snippet
#set($account = $ExchangeUserMailboxCallable.getMailboxInfo().getUserAccount())
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: 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))
Ab Intrexx 12.0.0: 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))
Ab Intrexx 12.0.0: 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))
Ab Intrexx 12.0.0: 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))
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: Velocity Overview
For each-Schleife
Grundgerüst einer foreach Schleife.
Snippet
#foreach($element in )
#end
Ab Intrexx 12.0.0: Velocity Overview
Variable definieren
Beispiel
#set( $id = 1)
#set( $userName = "Administrator")
Snippet
#set($variable = aValue)
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: Velocity Overview
Requestparameter lesen
Auslesen eines Requestparameters.
Snippet
$!Request.get("rq_param")
Ab Intrexx 12.0.0: Class IServerBridgeRequest
Requestparameter schreiben
Schreiben eines Requestparameters.
Snippet
$Request.put("rq_param", "strValue")
Ab Intrexx 12.0.0: 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
Ab Intrexx 12.0.0: 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()
Ab Intrexx 12.0.0: 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())
Ab Intrexx 12.0.0: 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)
Ab Intrexx 12.0.0: Class JSONUtil
GUID erzeugen
Erzeugt eine neue GUID
Snippet
$Unique.newGuid()
Ab Intrexx 12.0.0: Class Unique
Startzeit und Uptime des Portals ermitteln
Snippet
$Portal.getUptimeDuration()
$Portal.getUptimeMillis()
$Portal.getStartTime()
Ab Intrexx 12.0.0: Startzeit und Uptime des Portals ermitteln
Snippet
$Portal.getUptimeDuration()
$Portal.getUptimeMillis()
$Portal.getStartTime()