Variablen verwenden: Unterschied zwischen den Versionen

Aus
Wechseln zu: Navigation, Suche
(Liste der Modifikatoren)
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 30: Zeile 30:
 
Dies wird bewerkstelligt, indem man durch Punkt getrennt den entsprechenden Modifikator an den Ausdruck anhängt. Parameter für den Modifikator werden anschließend mit Komma angehängt.
 
Dies wird bewerkstelligt, indem man durch Punkt getrennt den entsprechenden Modifikator an den Ausdruck anhängt. Parameter für den Modifikator werden anschließend mit Komma angehängt.
 
  '''?<INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN>'''
 
  '''?<INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN>'''
 +
bzw. falls kein Feld vorhanden ist:
 +
'''?<INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN>'''
 +
 
===Liste der Modifikatoren===
 
===Liste der Modifikatoren===
*'''.pad,string,länge,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' ("left" oder "right") auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit ".pad,0,7,left" eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.
+
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' ("left" oder "right") auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit ".pad,7,0,left" eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.
*'''.sub,start,länge''': Hiermit kann ein Ausschnitt eines Textes extrahiert werden. '''start''' ist die Startposition, ab der so viele Zeichen wie als '''länge''' angegeben sind ausgegeben werden. Z.B. würde man mit ".sub,0,7" nur die ersten 7 Stellen eines Textes ausgeben.
+
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert "de" angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit "us" wird ein Punkt verwendet). z.B. ".format,2,de" wird die Zahl mit zwei Nachkommastellen angezeigt.
 +
*'''.sub,startIndex,endIndex''': Hiermit kann ein Ausschnitt eines Textes extrahiert werden. '''startIndex''' ist die Startposition beginnend bei 0, ab der alle Zeichen bis zum '''endIndex''' ausgegeben werden. Z.B. würde man mit ".sub,0,7" nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort "hamburger" gibt ein ".sub,4,8" den Wert "urge" zurück. Bei dem Wort "smiles" gibt ein ".sub,1,5" den Wert "mile" zurück.
 +
*'''.sub,startIndex''': Wie sub nur das als '''endIndex''' immer die Länge des Textes genommen wird. Zusätlich kann hier als '''startIndex''' eine negative Zahl angegeben werden, der '''startIndex''' wird damit vom ende des Textes aus gewertet. z.B. bei dem Wort "hamburger" gibt ein ".sub,3" das wort "burger" aus, ein ".sub,-3" würde "ger" ausgeben
 
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.
 
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.
 
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.
 
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.
 
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.
 
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.
 
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.
 
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.
 +
*'''.uppercase''': Gibt alles in Großbuchstaben zurück.
 +
*'''.lowercase''': Gibt alles in Kleinbuchstaben zurück.
 
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.
 
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.
 +
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.
 
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.
 
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.
 
*'''.base64encode''': Kodiert einen Text in Base64.
 
*'''.base64encode''': Kodiert einen Text in Base64.
Zeile 43: Zeile 51:
 
*'''.intVal''': Gibt immer eine ganze Zahl zurück.
 
*'''.intVal''': Gibt immer eine ganze Zahl zurück.
 
*'''.sqlEscape,dialekt''': Escaped die Variable, so dass sie in Anführungszeichen bedenkenlos innerhalb eines SQL-Befehls verwendet werden kann, wobei '''dialekt''' der entsprechende SQL-Dialekt ist. Möglich sind "db2","postgre" und "mysql".
 
*'''.sqlEscape,dialekt''': Escaped die Variable, so dass sie in Anführungszeichen bedenkenlos innerhalb eines SQL-Befehls verwendet werden kann, wobei '''dialekt''' der entsprechende SQL-Dialekt ist. Möglich sind "db2","postgre" und "mysql".
 +
*'''.jsonEscape''': Escaped die " (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.
 +
*'''.htmlEscape''': Escaped alle Zeichen die in HTML für die Formatierung vorgesehen sind. So dass eine Text-Variable z.B. im [[Einfache Meldung Element]] oder im [[Einfache Eingabe Element]] ohne den hacken "In der Meldung HTML-Steuerzeichen als Text anzeigen" ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars())
 
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.
 
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.
 +
*'''.lineBreak,X''': Fügt spätestens nach X Zeichen einen Zeilenumbruch in einen Text ein. Lange Wörter werden hierbei auseinandergeschnitten. Sollen lange Wörter beibehalten werden verwenden Sie bitte '''.lineBreak,X,ja'''
 +
*'''.unixTime''': gibt den Unix-Zeitstempel in Sekunden zurück. Für Millisekunden '''.unixTime,ms''' verwenden
 +
 +
===Mehrfachverwendung von Modifikatoren===
 +
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:
 +
'''?<INPUT:Name:Feld.sub,0,7.jsonEscape>'''
  
 
==Statische-Variablen==
 
==Statische-Variablen==
Zeile 101: Zeile 117:
  
 
==Umgang mit Files==
 
==Umgang mit Files==
Dateien haben spezielle Felder die deren inhalt beschreiben:
+
Dateien haben spezielle Felder die deren Inhalt beschreiben:
 
*?<INPUT:0:'''name'''>: Der Dateiname der Datei
 
*?<INPUT:0:'''name'''>: Der Dateiname der Datei
 +
*?<INPUT:0:'''size'''>: Die Größe der Datei in Bytes
 
*?<INPUT:0:'''originalName'''>: Der Uploadname der Datei
 
*?<INPUT:0:'''originalName'''>: Der Uploadname der Datei
 
*?<INPUT:0:'''md5'''>: Die MD5-Quersumme der Datei
 
*?<INPUT:0:'''md5'''>: Die MD5-Quersumme der Datei
 
*?<INPUT:0:'''content'''>: Der Inhalt der Datei
 
*?<INPUT:0:'''content'''>: Der Inhalt der Datei
 +
*?<INPUT:0:'''b64content'''>: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])
 +
*?<INPUT:0:'''originalExtenstion'''>: Die Dateiendung des OriginalName's
 +
*?<INPUT:0:'''extenstion'''>: Die Dateiendung der Namens
 +
*?<INPUT:0:'''contentType'''>: Der MIME-Type der Datei (nicht immer korrekt)
 +
 
[[Category:Anleitungen]]  [[Category:Erstellung]]  [[Category:Allgemein]]
 
[[Category:Anleitungen]]  [[Category:Erstellung]]  [[Category:Allgemein]]

Aktuelle Version vom 3. Juli 2025, 11:14 Uhr

In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. Jeder Eingang und Requesteingang eines Funktionselementes kann durch eine Variable abgefragt und ausgelesen werden. Es gibt aber auch noch Variablen, die statische Werte zurückliefern wie z.B. Sitzungseigenschaften oder Datum bzw. Uhrzeiten.

Im Folgenden wird die Verwendungsweise der Variablen erklärt.

Syntax

Variablen werden immer mit einem Fragezeichen gefolgt von einem Ausdruck in spitzen Klammern markiert. Dies sieht wie folgt aus:

?<Ausdruck>

INPUT-Variablen

Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:

?<INPUT:Name>

Wobei der Name die Bezeichnung des Eingangs ist. Dieser ist ersichtlich wenn man mit der Maus über den entsprechenden Eingang fährt. Meist wird hier "0" verwendet. Ist der Wert am Eingang eine Ressource oder Datenstruktur kann auch direkt auf ein Feld oder ein Unterobjekt zugegriffen werden, in dem der Feldname innerhalb des Ausdrucks durch einen Doppelpunkt getrennt, angehängt wird.

?<INPUT:Name:Feld>

Wobei Feld dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.


REQUEST-Variablen

Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:

?<REQUEST:Name>

Wobei der Name die Bezeichnung des Requesteingangs ist. Dieser ist ersichtlich, wenn man mit der Maus über den entsprechenden Requesteingang fährt. Meist wird hier "option" verwendet. Ist der Wert am Requesteingang eine Ressource oder Datenstruktur, kann auch direkt auf ein Feld oder ein Unterobjekt zugegriffen werden, indem der Feldname innerhalb des Ausdrucks durch einen Doppelpunkt getrennt, angehängt wird.

?<REQUEST:Name>

Wobei Feld dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.


INPUT und REQUEST Modifikatoren

Die Darstellung von INPUT und REQUEST-Variablen kann mit Hilfe von Modifikatoren beeinflusst werden. So kann eine Zahl z.B. mit Vorlaufnullen versehen werden oder auch Leerzeichen von Texten abgeschnitten werden. Dies wird bewerkstelligt, indem man durch Punkt getrennt den entsprechenden Modifikator an den Ausdruck anhängt. Parameter für den Modifikator werden anschließend mit Komma angehängt.

?<INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN>

bzw. falls kein Feld vorhanden ist:

?<INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN>

Liste der Modifikatoren

  • .pad,länge,string,richtung: Hiermit kann ein beliebiger Wert string je nach richtung ("left" oder "right") auf eine gewünschte länge gebracht werden. z.B. würde man mit ".pad,7,0,left" eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.
  • .format,dezimalstellen,zahlenformat: Hiermit kann eine Zahl mit einer Anzahl an dezimalstellen formatiert werden. Wenn als zahlenformat der wert "de" angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit "us" wird ein Punkt verwendet). z.B. ".format,2,de" wird die Zahl mit zwei Nachkommastellen angezeigt.
  • .sub,startIndex,endIndex: Hiermit kann ein Ausschnitt eines Textes extrahiert werden. startIndex ist die Startposition beginnend bei 0, ab der alle Zeichen bis zum endIndex ausgegeben werden. Z.B. würde man mit ".sub,0,7" nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort "hamburger" gibt ein ".sub,4,8" den Wert "urge" zurück. Bei dem Wort "smiles" gibt ein ".sub,1,5" den Wert "mile" zurück.
  • .sub,startIndex: Wie sub nur das als endIndex immer die Länge des Textes genommen wird. Zusätlich kann hier als startIndex eine negative Zahl angegeben werden, der startIndex wird damit vom ende des Textes aus gewertet. z.B. bei dem Wort "hamburger" gibt ein ".sub,3" das wort "burger" aus, ein ".sub,-3" würde "ger" ausgeben
  • .rtrim: Leerzeichen werden von rechts abgeschnitten.
  • .ltrim: Leerzeichen werden von links abgeschnitten.
  • .ltriml: Vorlaufnullen werden von links abgeschnitten.
  • .trim: Leerzeichen werden von beiden Seiten abgeschnitten.
  • .uppercase: Gibt alles in Großbuchstaben zurück.
  • .lowercase: Gibt alles in Kleinbuchstaben zurück.
  • .len: gibt die Anzahl an Zeichen aus, die der Text enthält.
  • .size: gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.
  • .base64decode: Dekodiert einen Base64 Text zurück zu lesbarem Text.
  • .base64encode: Kodiert einen Text in Base64.
  • .decimalVal: Gibt immer eine Dezimalzahl zurück.
  • .intVal: Gibt immer eine ganze Zahl zurück.
  • .sqlEscape,dialekt: Escaped die Variable, so dass sie in Anführungszeichen bedenkenlos innerhalb eines SQL-Befehls verwendet werden kann, wobei dialekt der entsprechende SQL-Dialekt ist. Möglich sind "db2","postgre" und "mysql".
  • .jsonEscape: Escaped die " (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.
  • .htmlEscape: Escaped alle Zeichen die in HTML für die Formatierung vorgesehen sind. So dass eine Text-Variable z.B. im Einfache Meldung Element oder im Einfache Eingabe Element ohne den hacken "In der Meldung HTML-Steuerzeichen als Text anzeigen" ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars())
  • .md5: Gibt die MD5-Quersumme eines Textes zurück.
  • .lineBreak,X: Fügt spätestens nach X Zeichen einen Zeilenumbruch in einen Text ein. Lange Wörter werden hierbei auseinandergeschnitten. Sollen lange Wörter beibehalten werden verwenden Sie bitte .lineBreak,X,ja
  • .unixTime: gibt den Unix-Zeitstempel in Sekunden zurück. Für Millisekunden .unixTime,ms verwenden

Mehrfachverwendung von Modifikatoren

Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:

?<INPUT:Name:Feld.sub,0,7.jsonEscape>

Statische-Variablen

Datum

  • ?<DATE:Ymd>: Datum 8-stellig im Format JahrMontatTag
  • ?<DATE:d.m.Y>: Datum 8-stellig im Format Tag.Monat.Jahr
  • ?<DATE:c>: Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS
  • ?<DATE>: Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)
  • ?<DATE:DB2>: Datum gültig für DB2-Timestmp-Feldtypen
  • ?<DATE:His>: Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde

Sitzung

  • ?<USERNAME>: Aktueller Benutzername
  • ?<SESSION:mobile>: Mobile Oberfläche (true/false)
  • ?<SESSION:gui.profile>: Gui-Profil (classic-de, crisp-en, web-material-de...)
  • ?<SESSION:guiType>: (FWFDESKTOP/FWFMODERN)
  • ?<SESSION:language>: Sprache (de-DE, en-US,...)
  • ?<SESSION:accept>: Akzeptierte mime-Types (z.B. */*)
  • ?<SESSION:accept-encoding>: Kommagetrennte Encodings (z.B. 'gzip, deflate')
  • ?<SESSION:accept-language>: Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)
  • ?<SESSION:appCodeName>: Name der anzeigenden app (z.B. Mozilla)
  • ?<SESSION:appName>: Name der App(z.B. Netscape)
  • ?<SESSION:appVersion>: Browserversion (z.B. 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36)
  • ?<SESSION:browser.isChrome>: Chrome-Browserweiche (true/false)
  • ?<SESSION:browser.isCordova>: App-Browserweiche (true/false)
  • ?<SESSION:browser.isEdge>: Edge-Browserweiche (true/false)
  • ?<SESSION:browser.isEdgeChromium>: Edge-Chromium-Browserweiche (true/false)
  • ?<SESSION:browser.isFirefox>: Firefox-Browserweiche (true/false)
  • ?<SESSION:browser.isIE>: Internet-Explorer-Browserweiche (true/false)
  • ?<SESSION:browser.isOpera>: Opera-Browserweiche (true/false)
  • ?<SESSION:browser.isSafari>: Safari-Browserweiche (true/false)
  • ?<SESSION:connectionType>: Verbindungstype (z.B. 4g)
  • ?<SESSION:cookieEnabled>: Cookies aktiviert (true/false)
  • ?<SESSION:host>: IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)
  • ?<SESSION:location.hash>: Hash der aktuellen URL (z.B. #123|{"0":"abc"})
  • ?<SESSION:location.host>: Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)
  • ?<SESSION:location.hostname>: Hostname des Servers (z.B: fwf.ihredomain.tld)
  • ?<SESSION:location.href>: URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)
  • ?<SESSION:location.origin>: Region des Servers (z.B: https://fwf.ihredomain.tld)
  • ?<SESSION:location.pathname>: Pfad des Servers (z.B: /fwfDesktop/)
  • ?<SESSION:location.port>: Port des Client-Aufrufs (z.B: *BLANK=80, 8084)
  • ?<SESSION:location.protocol>: Protokoll des Aufrufs (z.B: http:, https:)
  • ?<SESSION:onLine>: Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)
  • ?<SESSION:original-remote-addr>: IP des Clients (falls proxy vorhanden, Proxy-IP)
  • ?<SESSION:platform>: Plattform des Clients
  • ?<SESSION:location.product>: Browser-Product (z.B. Gecko)
  • ?<SESSION:refer>: Weitergeleitet von (z.B. weitergeleitete Webseite)
  • ?<SESSION:remote-addr>: IP des Clients (falls proxy vorhanden ip des x-forwarded-for)
  • ?<SESSION:userAgent>: Browser (z.B. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36)
  • ?<SESSION:vendor>: Hersteller des Browsers (z.B: Google Inc.)
  • ?<SESSION:x-forwarded-for>: Client-IP falls Proxy vorhanden

Technisch

  • ?<FUNCTIONID>: Id der aktuellen Funktion
  • ?<APPID>: Mandantennummer

Umgang mit Files

Dateien haben spezielle Felder die deren Inhalt beschreiben:

  • ?<INPUT:0:name>: Der Dateiname der Datei
  • ?<INPUT:0:size>: Die Größe der Datei in Bytes
  • ?<INPUT:0:originalName>: Der Uploadname der Datei
  • ?<INPUT:0:md5>: Die MD5-Quersumme der Datei
  • ?<INPUT:0:content>: Der Inhalt der Datei
  • ?<INPUT:0:b64content>: Der Inhalt der Datei base64-encodiert. (Nützlich für Bild Element)
  • ?<INPUT:0:originalExtenstion>: Die Dateiendung des OriginalName's
  • ?<INPUT:0:extenstion>: Die Dateiendung der Namens
  • ?<INPUT:0:contentType>: Der MIME-Type der Datei (nicht immer korrekt)