<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.frameworkflow.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fwf</id>
	<title> - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frameworkflow.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fwf"/>
	<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Spezial:Beitr%C3%A4ge/Fwf"/>
	<updated>2026-07-27T13:36:29Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=430</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=430"/>
		<updated>2025-07-03T11:14:26Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.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 &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,3&amp;quot; das wort &amp;quot;burger&amp;quot; aus, ein &amp;quot;.sub,-3&amp;quot; würde &amp;quot;ger&amp;quot; ausgeben&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.uppercase''': Gibt alles in Großbuchstaben zurück.&lt;br /&gt;
*'''.lowercase''': Gibt alles in Kleinbuchstaben zurück.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
*'''.unixTime''': gibt den Unix-Zeitstempel in Sekunden zurück. Für Millisekunden '''.unixTime,ms''' verwenden&lt;br /&gt;
&lt;br /&gt;
===Mehrfachverwendung von Modifikatoren===&lt;br /&gt;
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.sub,0,7.jsonEscape&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=429</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=429"/>
		<updated>2025-07-03T11:13:29Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.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 &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,3&amp;quot; das wort &amp;quot;burger&amp;quot; aus, ein &amp;quot;.sub,-2&amp;quot; würde &amp;quot;er&amp;quot; ausgeben&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.uppercase''': Gibt alles in Großbuchstaben zurück.&lt;br /&gt;
*'''.lowercase''': Gibt alles in Kleinbuchstaben zurück.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
*'''.unixTime''': gibt den Unix-Zeitstempel in Sekunden zurück. Für Millisekunden '''.unixTime,ms''' verwenden&lt;br /&gt;
&lt;br /&gt;
===Mehrfachverwendung von Modifikatoren===&lt;br /&gt;
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.sub,0,7.jsonEscape&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=428</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=428"/>
		<updated>2024-11-21T12:03:04Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.uppercase''': Gibt alles in Großbuchstaben zurück.&lt;br /&gt;
*'''.lowercase''': Gibt alles in Kleinbuchstaben zurück.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
*'''.unixTime''': gibt den Unix-Zeitstempel in Sekunden zurück. Für Millisekunden '''.unixTime,ms''' verwenden&lt;br /&gt;
&lt;br /&gt;
===Mehrfachverwendung von Modifikatoren===&lt;br /&gt;
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.sub,0,7.jsonEscape&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=427</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=427"/>
		<updated>2022-12-22T08:17:44Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
*'''.unixTime''': gibt den Unix-Zeitstempel in Sekunden zurück. Für Millisekunden '''.unixTime,ms''' verwenden&lt;br /&gt;
&lt;br /&gt;
===Mehrfachverwendung von Modifikatoren===&lt;br /&gt;
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.sub,0,7.jsonEscape&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=426</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=426"/>
		<updated>2022-12-12T15:02:06Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Mehrfachverwendung von Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
&lt;br /&gt;
===Mehrfachverwendung von Modifikatoren===&lt;br /&gt;
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.sub,0,7.jsonEscape&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=425</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=425"/>
		<updated>2022-12-12T15:01:57Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* INPUT und REQUEST Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
&lt;br /&gt;
===Mehrfachverwendung von Modifikatoren===&lt;br /&gt;
Modifikatoren können auch aneinandergereiht werden. Dieses Beispiel zeigt wie man eine Variable erst mit .sub und danach mit .jsonEscape behandelt:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.sub,0,7.jsonEscape'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=424</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=424"/>
		<updated>2022-12-12T14:58:45Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
*'''.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'''&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=423</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=423"/>
		<updated>2022-11-30T12:11:12Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.size''': gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=422</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=422"/>
		<updated>2022-11-24T15:58:01Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.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 &amp;quot;In der Meldung HTML-Steuerzeichen als Text anzeigen&amp;quot; ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) &lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=421</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=421"/>
		<updated>2022-10-24T07:50:11Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.jsonEscape''': Escaped die &amp;quot; (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=420</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=420"/>
		<updated>2022-10-24T07:43:12Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* INPUT und REQUEST Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
bzw. falls kein Feld vorhanden ist:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=419</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=419"/>
		<updated>2022-06-14T11:11:33Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Umgang mit Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''b64content'''&amp;gt;: Der Inhalt der Datei base64-encodiert. (Nützlich für [[Bild Element]])&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=418</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=418"/>
		<updated>2022-06-08T14:08:56Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,7,0,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=417</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=417"/>
		<updated>2022-05-04T07:48:11Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein &amp;quot;.sub,4,8&amp;quot; den Wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein &amp;quot;.sub,1,5&amp;quot; den Wert &amp;quot;mile&amp;quot; zurück.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=416</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=416"/>
		<updated>2022-05-04T07:42:05Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben. (Bei dem Wort &amp;quot;hamburger&amp;quot; gibt ein .sub,4,8 den wert &amp;quot;urge&amp;quot; zurück. Bei dem Wort &amp;quot;smiles&amp;quot; gibt ein .sub,1,5 den wert &amp;quot;mile&amp;quot; zurück)&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=415</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=415"/>
		<updated>2022-02-06T13:36:20Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.format,dezimalstellen,zahlenformat''': Hiermit kann eine Zahl mit einer Anzahl an '''dezimalstellen''' formatiert werden. Wenn als '''zahlenformat''' der wert &amp;quot;de&amp;quot; angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit &amp;quot;us&amp;quot; wird ein Punkt verwendet). z.B. &amp;quot;.format,2,de&amp;quot; wird die Zahl mit zwei Nachkommastellen angezeigt.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=414</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=414"/>
		<updated>2022-01-17T08:33:54Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Liste der Modifikatoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,länge,string,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Zeitliche_Verz%C3%B6gerung_Element&amp;diff=413</id>
		<title>Zeitliche Verzögerung Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Zeitliche_Verz%C3%B6gerung_Element&amp;diff=413"/>
		<updated>2022-01-12T23:06:31Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Eingänge (INPUT) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es einen Ablauf zeitlich zu Verzögern.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:timeDelay_element.png|right|200px|Zeitliche Verzögerung Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur.&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''0''': Gibt den Eingang 0 zurück wenn die Wartezeit abgelaufen ist&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:timeDelay_settings.png|right|300px|Rechnen Element-Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Wartezeit in ms''': Die Wartezeit in Millisekunden (1s=1000) bis der Ausgang 0 gefeuert wird&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[Zeitliche Verzögerung Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_Verzeichnisliste_Element&amp;diff=412</id>
		<title>FTP(S) Verzeichnisliste Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_Verzeichnisliste_Element&amp;diff=412"/>
		<updated>2022-01-12T22:58:30Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es eine Einen Verzeichnisindex (Liste von Dateien/Ordnern) aus einem FTP-Ordner zu lesen&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-list_element.png|right|200px|FTP Verzeichnisliste Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Dieses Element erwartet keine besondere Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn kein Verzeichnisindex ermittelt werden konnte&lt;br /&gt;
* '''success''': Gibt eine Liste von Dateien-Strukturen zurück (Keine echten Dateien, diese müssen erst mit hilfe des [[FTP(S) Download Element]]s heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-list_settings.png|right|300px|FTP Verzeichnisliste Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''Datenfilter''': Hier kann eine JSON-Datentruktur angegeben werden um die Dateiausgabe zu filtern. z.B. &lt;br /&gt;
 ''[{&amp;quot;property&amp;quot;:&amp;quot;ext&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;txt&amp;quot;}]'' &lt;br /&gt;
um nur Textdateien an zu zeigen&lt;br /&gt;
*'''Typ''': Typ der Dateien die ausgegeben werden sollen&lt;br /&gt;
**'''Alles''': Dateien und Ordner werden ausgegeben&lt;br /&gt;
**'''Dateien''': Nur Dateien werden ausgegeben&lt;br /&gt;
**'''Verzeichnisse''': Nur Ordner werden ausgegeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-list_settings.png&amp;diff=411</id>
		<title>Datei:Ftp-list settings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-list_settings.png&amp;diff=411"/>
		<updated>2022-01-12T22:57:31Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-list_element.png&amp;diff=410</id>
		<title>Datei:Ftp-list element.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-list_element.png&amp;diff=410"/>
		<updated>2022-01-12T22:57:16Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_Verzeichnisliste_Element&amp;diff=409</id>
		<title>FTP(S) Verzeichnisliste Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_Verzeichnisliste_Element&amp;diff=409"/>
		<updated>2022-01-12T22:57:04Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Die Seite wurde neu angelegt: „Dieses Element ermöglicht es eine Einen Verzeichnisindex (liste von Dateien/Ordnern) aus einem FTP-Ordner zu lesen  ===Verwendbarkeit=== In jeder Funktion.  =…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es eine Einen Verzeichnisindex (liste von Dateien/Ordnern) aus einem FTP-Ordner zu lesen&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-list_element.png|right|200px|FTP Verzeichnisliste Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Dieses Element erwartet keine besondere Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn kein Verzeichnisindex ermittelt werden konnte&lt;br /&gt;
* '''success''': Gibt eine Liste von Dateien-Strukturen zurück (Keine echten Dateien, diese müssen erst mit hilfe des [[FTP(S) Download Element]]s heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-list_settings.png|right|300px|FTP Verzeichnisliste Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''Datenfilter''': Hier kann eine JSON-Datentruktur angegeben werden um die Dateiausgabe zu filtern. z.B. &lt;br /&gt;
 ''[{&amp;quot;property&amp;quot;:&amp;quot;ext&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;txt&amp;quot;}]'' &lt;br /&gt;
um nur Textdateien an zu zeigen&lt;br /&gt;
*'''Typ''': Typ der Dateien die ausgegeben werden sollen&lt;br /&gt;
**'''Alles''': Dateien und Ordner werden ausgegeben&lt;br /&gt;
**'''Dateien''': Nur Dateien werden ausgegeben&lt;br /&gt;
**'''Verzeichnisse''': Nur Ordner werden ausgegeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpIndex&amp;diff=408</id>
		<title>FwfDesktop.functionElements.ftpIndex</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpIndex&amp;diff=408"/>
		<updated>2022-01-12T22:48:54Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Weiterleitung nach FTP(S) Verzeichnisliste Element erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect [[FTP(S) Verzeichnisliste Element]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-upload_settings.png&amp;diff=407</id>
		<title>Datei:Ftp-upload settings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-upload_settings.png&amp;diff=407"/>
		<updated>2022-01-12T22:40:11Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-upload_element.png&amp;diff=406</id>
		<title>Datei:Ftp-upload element.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-upload_element.png&amp;diff=406"/>
		<updated>2022-01-12T22:39:48Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_Upload_Element&amp;diff=405</id>
		<title>FTP(S) Upload Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_Upload_Element&amp;diff=405"/>
		<updated>2022-01-12T22:39:38Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Die Seite wurde neu angelegt: „Dieses Element ermöglicht es eine Datei auf einen FTP-Server zu übertragen und dabei gleichzeitig den Ordnerpfad dahin zu erstellen.  ===Verwendbarkeit=== In…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es eine Datei auf einen FTP-Server zu übertragen und dabei gleichzeitig den Ordnerpfad dahin zu erstellen.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-upload_element.png|right|200px|FTP Upload Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Hier muss die Datenstruktur angeschlossen werden in der sich die Datei befindet. Das Feld in der sich die Datei befinet kann über die Datenträger-Konfiguration angegeben werden.&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn die Datei nicht hochgeladen werden konnte&lt;br /&gt;
* '''success''': gibt &amp;quot;true&amp;quot; aus wenn das Hochladen funktioniert hat&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-upload_settings.png|right|300px|FTP UploadDetails]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''Datenträger''': Das Feld (z.B. bei Formularen) in dem sich die Datei innerhalb des Eingangs 0 befindet. (Die Datei muss irgendwo im Eingang 0 sein)&lt;br /&gt;
*'''FTP-Pfad''': Der Pfad (Relativ zum Start-Verzeichnis oder Absolut) in der die im Datenträger angegebene Datei hochgeladen werden soll&lt;br /&gt;
*'''Ordnererstellung''': Wenn diese Option angehakt ist wird der komplette Pfad zu der im FTP-Pfad angegebenen Datei erstellt falls er nicht vorhanden ist.&lt;br /&gt;
*'''Datei Charset''': Falls als Datenträger keine Datei angegeben ist wird automatisch eine JSON-Formatierte Datei erstellt und hochgeladen. Hier kann für diesen Fall der Zeichensatz definiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpUpload&amp;diff=404</id>
		<title>FwfDesktop.functionElements.ftpUpload</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpUpload&amp;diff=404"/>
		<updated>2022-01-12T22:32:52Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Weiterleitung nach FTP(S) Upload Element erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect [[FTP(S) Upload Element]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_L%C3%B6schen_Element&amp;diff=403</id>
		<title>FTP(S) Löschen Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_L%C3%B6schen_Element&amp;diff=403"/>
		<updated>2022-01-12T22:29:44Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es eine Datei oder einen Ordner von einem FTP-Server zu löschen.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-delete_element.png|right|200px|FTP Löschen Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn die Datei nicht gelöscht werden konnte&lt;br /&gt;
* '''success''': gibt &amp;quot;true&amp;quot; aus wenn das Löschen funktioniert hat&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-delete_settings.png|right|300px|FTP Löschen Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''FTP-Pfad''': Der Pfad zu der Datei (Relativ zum Start-Verzeichnis oder Absolut) die gelöscht werden soll.&lt;br /&gt;
*'''Recursiv''': Wenn diese Option angehakt ist und als FTP-Pfad ein Ordner angegeben ist wird der Ordner und dessen Inhalte gelöscht.&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-delete_settings.png&amp;diff=402</id>
		<title>Datei:Ftp-delete settings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-delete_settings.png&amp;diff=402"/>
		<updated>2022-01-12T22:29:21Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-delete_element.png&amp;diff=401</id>
		<title>Datei:Ftp-delete element.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-delete_element.png&amp;diff=401"/>
		<updated>2022-01-12T22:29:07Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_L%C3%B6schen_Element&amp;diff=400</id>
		<title>FTP(S) Löschen Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_L%C3%B6schen_Element&amp;diff=400"/>
		<updated>2022-01-12T22:27:57Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Die Seite wurde neu angelegt: „Dieses Element ermöglicht es eine Datei oder einen Ordner von einem FTP-Server zu löschen.  ===Verwendbarkeit=== In jeder Funktion.  ==Anschlüsse== File:f…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es eine Datei oder einen Ordner von einem FTP-Server zu löschen.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-delete_element.png|right|200px|FTP LöschenElement]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn die Datei nicht gelöscht werden konnte&lt;br /&gt;
* '''success''': gibt &amp;quot;true&amp;quot; aus wenn das Löschen funktioniert hat&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-delete_settings.png|right|300px|Start Element-Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''FTP-Pfad''': Der Pfad zu der Datei (Relativ zum Start-Verzeichnis oder Absolut) die gelöscht werden soll.&lt;br /&gt;
*'''Recursiv''': Wenn diese Option angehakt ist und als FTP-Pfad ein Ordner angegeben ist wird der Ordner und dessen Inhalte gelöscht.&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpRemove&amp;diff=399</id>
		<title>FwfDesktop.functionElements.ftpRemove</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpRemove&amp;diff=399"/>
		<updated>2022-01-12T22:24:31Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Weiterleitung nach FTP(S) Löschen Element erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect [[FTP(S) Löschen Element]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_Download_Element&amp;diff=398</id>
		<title>FTP(S) Download Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_Download_Element&amp;diff=398"/>
		<updated>2022-01-12T22:23:26Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es eine Datei von einem FTP-Server zu downloaden.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-download_element.png|right|200px|FTP Download Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn der Download nicht funktioniert hat&lt;br /&gt;
* '''success''': Gibt die gedownloadete Datei aus&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-download_settings.png|right|300px|Start Element-Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''FTP-Pfad''': Der Pfad zu der Datei (Relativ zum Start-Verzeichnis oder Absolut) die gedownloadet werden soll.&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-download_settings.png&amp;diff=397</id>
		<title>Datei:Ftp-download settings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-download_settings.png&amp;diff=397"/>
		<updated>2022-01-12T22:22:37Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_Download_Element&amp;diff=396</id>
		<title>FTP(S) Download Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_Download_Element&amp;diff=396"/>
		<updated>2022-01-12T22:22:24Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es Eine Datei von einem FTP-Server zu downloaden.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-download_element.png|right|200px|FTP Download Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn der Download nicht funktioniert hat&lt;br /&gt;
* '''success''': Gibt die gedownloadete Datei aus&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:ftp-download_settings.png|right|300px|Start Element-Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''FTP-Pfad''': Der Pfad zu der Datei (Relativ zum Start-Verzeichnis oder Absolut) die gedownloadet werden soll.&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-download_element.png&amp;diff=395</id>
		<title>Datei:Ftp-download element.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Datei:Ftp-download_element.png&amp;diff=395"/>
		<updated>2022-01-12T22:21:51Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP(S)_Download_Element&amp;diff=394</id>
		<title>FTP(S) Download Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP(S)_Download_Element&amp;diff=394"/>
		<updated>2022-01-12T22:21:40Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Die Seite wurde neu angelegt: „Dieses Element ermöglicht es Eine Datei von einem FTP-Server zu downloaden.  ===Verwendbarkeit=== In jeder Funktion.  ==Anschlüsse== File:ftp-download_elem…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es Eine Datei von einem FTP-Server zu downloaden.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:ftp-download_element.png|right|200px|FTP Download Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''error''': Gibt eine Fehlermeldung aus wenn der Download nicht funktioniert hat&lt;br /&gt;
* '''success''': Gibt die gedownloadete Datei aus&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:executeUserJavascript_settings.png|right|300px|Start Element-Details]]&lt;br /&gt;
&lt;br /&gt;
*'''Verbindungseinstellungen''': Ihre FTP(S) Verbindungseinstellungen&lt;br /&gt;
*'''FTP-Pfad''': Der Pfad zu der Datei (Relativ zum Start-Verzeichnis oder Absolut) die gedownloadet werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[FTP Beispiel Anleitung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=JavaScript_ausf%C3%BChren_(Frontend)_Element&amp;diff=393</id>
		<title>JavaScript ausführen (Frontend) Element</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=JavaScript_ausf%C3%BChren_(Frontend)_Element&amp;diff=393"/>
		<updated>2022-01-12T22:17:05Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Element ermöglicht es benutzerdefinierten JavaScript-Code im Frontend aus zu führen. Zusammen mit dem [[Daten Empfänger Element]] können auch Auslöser realisiert werden.&lt;br /&gt;
&lt;br /&gt;
===Verwendbarkeit===&lt;br /&gt;
In jeder Funktion (nicht in Diensten).&lt;br /&gt;
&lt;br /&gt;
==Anschlüsse==&lt;br /&gt;
[[File:executeUserJavascript_element.png|right|200px|JavaScript ausführen Element]]&lt;br /&gt;
&lt;br /&gt;
In dieser Sektion finden Sie alle Informationen über die Anschlüsse die das jeweilige Element zur Verfügung stellt. Beachten Sie, dass weitere Eingänge und Anfragen beliebig hinzugefügt werden können. Diese zusätzlichen Eingänge haben keine Standardfunktion und sind deshalb hier nicht beschrieben. &lt;br /&gt;
&lt;br /&gt;
===Eingänge (INPUT)===&lt;br /&gt;
* '''0''': Erfordert keine spezielle Datenstruktur&lt;br /&gt;
&lt;br /&gt;
===Anfragen (REQUEST)===&lt;br /&gt;
Dieses Element führt standardmäßig keine Anfragen aus&lt;br /&gt;
&lt;br /&gt;
===Auslöser===&lt;br /&gt;
Dieses Element hat keine Auslöser &lt;br /&gt;
&lt;br /&gt;
===Ereignisse===&lt;br /&gt;
Dieses Element hat keine Ereignisse&lt;br /&gt;
&lt;br /&gt;
===Ausgänge===&lt;br /&gt;
* '''0''': Gibt den Eingang 0 zurück&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
[[File:executeUserJavascript_settings.png|right|300px|Start Element-Details]]&lt;br /&gt;
&lt;br /&gt;
*'''JS-Code''': Der Javascript-Code der beim Benutzer ausgeführt werden soll&lt;br /&gt;
&lt;br /&gt;
==Weiterführende Informationen==&lt;br /&gt;
Weitere Informationen, so wie Beispiele und Anleitungen zu diesem Element&lt;br /&gt;
===Anleitungen===&lt;br /&gt;
*[[JavaScript ausführen: Neues Browserfenster öffnen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Elemente]] [[Category:Allgemein]] [[Category:Erstellung]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpDownload&amp;diff=392</id>
		<title>FwfDesktop.functionElements.ftpDownload</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FwfDesktop.functionElements.ftpDownload&amp;diff=392"/>
		<updated>2022-01-12T22:15:13Z</updated>

		<summary type="html">&lt;p&gt;Fwf: Weiterleitung nach FTP(S) Download Element erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect [[FTP(S) Download Element]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=391</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=391"/>
		<updated>2022-01-12T21:56:02Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Umgang mit Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,string,länge,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren Inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=390</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=390"/>
		<updated>2022-01-12T21:49:41Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Umgang mit Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,string,länge,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
*?&amp;lt;INPUT:0:'''contentType'''&amp;gt;: Der MIME-Type der Datei (nicht immer korrekt)&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=389</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=389"/>
		<updated>2022-01-12T21:43:45Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Umgang mit Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,string,länge,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalExtenstion'''&amp;gt;: Die Dateiendung des OriginalName's&lt;br /&gt;
*?&amp;lt;INPUT:0:'''extenstion'''&amp;gt;: Die Dateiendung der Namens&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=388</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=388"/>
		<updated>2022-01-12T21:32:04Z</updated>

		<summary type="html">&lt;p&gt;Fwf: /* Umgang mit Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,string,länge,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''size'''&amp;gt;: Die Größe der Datei in Bytes&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=387</id>
		<title>Variablen verwenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Variablen_verwenden&amp;diff=387"/>
		<updated>2022-01-12T21:26:48Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wird die Verwendungsweise der Variablen erklärt.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
Variablen werden immer mit einem Fragezeichen gefolgt von einem '''Ausdruck''' in spitzen Klammern markiert. Dies sieht wie folgt aus:&lt;br /&gt;
 '''?&amp;lt;Ausdruck&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==INPUT-Variablen==&lt;br /&gt;
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:&lt;br /&gt;
 '''?&amp;lt;INPUT:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;0&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REQUEST-Variablen==&lt;br /&gt;
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
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 &amp;quot;option&amp;quot; verwendet.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;REQUEST:Name&amp;gt;'''&lt;br /&gt;
Wobei '''Feld''' dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==INPUT und REQUEST Modifikatoren==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
 '''?&amp;lt;INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN&amp;gt;'''&lt;br /&gt;
===Liste der Modifikatoren===&lt;br /&gt;
*'''.pad,string,länge,richtung''': Hiermit kann ein beliebiger Wert '''string''' je nach '''richtung''' (&amp;quot;left&amp;quot; oder &amp;quot;right&amp;quot;) auf eine gewünschte '''länge''' gebracht werden. z.B. würde man mit &amp;quot;.pad,0,7,left&amp;quot; eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.&lt;br /&gt;
*'''.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 &amp;quot;.sub,0,7&amp;quot; nur die ersten 7 Stellen eines Textes ausgeben.&lt;br /&gt;
*'''.rtrim''': Leerzeichen werden von rechts abgeschnitten.&lt;br /&gt;
*'''.ltrim''': Leerzeichen werden von links abgeschnitten.&lt;br /&gt;
*'''.ltriml''': Vorlaufnullen werden von links abgeschnitten.&lt;br /&gt;
*'''.trim''': Leerzeichen werden von beiden Seiten abgeschnitten.&lt;br /&gt;
*'''.len''': gibt die Anzahl an Zeichen aus, die der Text enthält.&lt;br /&gt;
*'''.base64decode''': Dekodiert einen Base64 Text zurück zu lesbarem Text.&lt;br /&gt;
*'''.base64encode''': Kodiert einen Text in Base64.&lt;br /&gt;
*'''.decimalVal''': Gibt immer eine Dezimalzahl zurück.&lt;br /&gt;
*'''.intVal''': Gibt immer eine ganze Zahl zurück.&lt;br /&gt;
*'''.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 &amp;quot;db2&amp;quot;,&amp;quot;postgre&amp;quot; und &amp;quot;mysql&amp;quot;.&lt;br /&gt;
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück.&lt;br /&gt;
&lt;br /&gt;
==Statische-Variablen==&lt;br /&gt;
&lt;br /&gt;
===Datum===&lt;br /&gt;
*'''?&amp;lt;DATE:Ymd&amp;gt;''': Datum 8-stellig im Format JahrMontatTag&lt;br /&gt;
*'''?&amp;lt;DATE:d.m.Y&amp;gt;''': Datum 8-stellig im Format Tag.Monat.Jahr&lt;br /&gt;
*'''?&amp;lt;DATE:c&amp;gt;''': Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS&lt;br /&gt;
*'''?&amp;lt;DATE&amp;gt;''': Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)&lt;br /&gt;
*'''?&amp;lt;DATE:DB2&amp;gt;''': Datum gültig für DB2-Timestmp-Feldtypen&lt;br /&gt;
*'''?&amp;lt;DATE:His&amp;gt;''': Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde&lt;br /&gt;
&lt;br /&gt;
===Sitzung===&lt;br /&gt;
*'''?&amp;lt;USERNAME&amp;gt;''': Aktueller Benutzername&lt;br /&gt;
*'''?&amp;lt;SESSION:mobile&amp;gt;''': Mobile Oberfläche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:gui.profile&amp;gt;''': Gui-Profil (classic-de, crisp-en, web-material-de...)&lt;br /&gt;
*'''?&amp;lt;SESSION:guiType&amp;gt;''': (FWFDESKTOP/FWFMODERN)&lt;br /&gt;
*'''?&amp;lt;SESSION:language&amp;gt;''': Sprache (de-DE, en-US,...)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept&amp;gt;''': Akzeptierte mime-Types (z.B. */*)&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-encoding&amp;gt;''': Kommagetrennte Encodings (z.B. 'gzip, deflate')&lt;br /&gt;
*'''?&amp;lt;SESSION:accept-language&amp;gt;''': Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)&lt;br /&gt;
*'''?&amp;lt;SESSION:appCodeName&amp;gt;''': Name der anzeigenden app (z.B. Mozilla)&lt;br /&gt;
*'''?&amp;lt;SESSION:appName&amp;gt;''': Name der App(z.B. Netscape)&lt;br /&gt;
*'''?&amp;lt;SESSION:appVersion&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isChrome&amp;gt;''': Chrome-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isCordova&amp;gt;''': App-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdge&amp;gt;''': Edge-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isEdgeChromium&amp;gt;''': Edge-Chromium-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isFirefox&amp;gt;''': Firefox-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isIE&amp;gt;''': Internet-Explorer-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isOpera&amp;gt;''': Opera-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:browser.isSafari&amp;gt;''': Safari-Browserweiche (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:connectionType&amp;gt;''': Verbindungstype (z.B. 4g)&lt;br /&gt;
*'''?&amp;lt;SESSION:cookieEnabled&amp;gt;''': Cookies aktiviert (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:host&amp;gt;''': IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hash&amp;gt;''': Hash der aktuellen URL (z.B. #123|{&amp;quot;0&amp;quot;:&amp;quot;abc&amp;quot;})&lt;br /&gt;
*'''?&amp;lt;SESSION:location.host&amp;gt;''': Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.hostname&amp;gt;''': Hostname des Servers (z.B: fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.href&amp;gt;''': URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.origin&amp;gt;''': Region des Servers (z.B: https://fwf.ihredomain.tld)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.pathname&amp;gt;''': Pfad des Servers (z.B: /fwfDesktop/)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.port&amp;gt;''': Port des Client-Aufrufs (z.B: *BLANK=80, 8084)&lt;br /&gt;
*'''?&amp;lt;SESSION:location.protocol&amp;gt;''': Protokoll des Aufrufs (z.B: http:, https:)&lt;br /&gt;
*'''?&amp;lt;SESSION:onLine&amp;gt;''': Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)&lt;br /&gt;
*'''?&amp;lt;SESSION:original-remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden, Proxy-IP)&lt;br /&gt;
*'''?&amp;lt;SESSION:platform&amp;gt;''': Plattform des Clients&lt;br /&gt;
*'''?&amp;lt;SESSION:location.product&amp;gt;''': Browser-Product (z.B. Gecko)&lt;br /&gt;
*'''?&amp;lt;SESSION:refer&amp;gt;''': Weitergeleitet von (z.B. weitergeleitete Webseite)&lt;br /&gt;
*'''?&amp;lt;SESSION:remote-addr&amp;gt;''': IP des Clients (falls proxy vorhanden ip des x-forwarded-for)&lt;br /&gt;
*'''?&amp;lt;SESSION:userAgent&amp;gt;''': 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)&lt;br /&gt;
*'''?&amp;lt;SESSION:vendor&amp;gt;''': Hersteller des Browsers (z.B: Google Inc.)&lt;br /&gt;
*'''?&amp;lt;SESSION:x-forwarded-for&amp;gt;''': Client-IP falls Proxy vorhanden&lt;br /&gt;
&lt;br /&gt;
===Technisch===&lt;br /&gt;
*'''?&amp;lt;FUNCTIONID&amp;gt;''': Id der aktuellen Funktion&lt;br /&gt;
*'''?&amp;lt;APPID&amp;gt;''': Mandantennummer&lt;br /&gt;
&lt;br /&gt;
==Umgang mit Files==&lt;br /&gt;
Dateien haben spezielle Felder die deren inhalt beschreiben:&lt;br /&gt;
*?&amp;lt;INPUT:0:'''name'''&amp;gt;: Der Dateiname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''originalName'''&amp;gt;: Der Uploadname der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''md5'''&amp;gt;: Die MD5-Quersumme der Datei&lt;br /&gt;
*?&amp;lt;INPUT:0:'''content'''&amp;gt;: Der Inhalt der Datei&lt;br /&gt;
[[Category:Anleitungen]]  [[Category:Erstellung]]   [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=Email_Versand_Formular_Anleitung&amp;diff=386</id>
		<title>Email Versand Formular Anleitung</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=Email_Versand_Formular_Anleitung&amp;diff=386"/>
		<updated>2022-01-12T21:11:55Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Anleitung/Beispiel für das [[Email Versand Element]].&lt;br /&gt;
&lt;br /&gt;
==Funktionsgraph==&lt;br /&gt;
[[File:Email versand Formular Beispiel graph.PNG|right|200px|Email Versandformular Beispiel]]Der Funktionsgraph Besteht aus einem Formular das alle Eingaben außer die SMTP-Einstellungen entgegennimmt. Dies ist sozusagen ein Email-Versende-Programm mit Anhang.&lt;br /&gt;
==Beispiel-Download==&lt;br /&gt;
[[File:Email versand Formular Beispiel gui.PNG|right|200px|Email Versandformular GUI Beispiel]]&lt;br /&gt;
Hier das Beispiel [[File:Email Versand Formular Beispiel.fwf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]] [[Category:Erstellung]] [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=385</id>
		<title>FTP Beispiel Anleitung</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=385"/>
		<updated>2022-01-12T21:03:28Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Anleitung/Beispiel für das [[FTP(S) Upload Element]], [[FTP(S) Löschen Element]], [[FTP(S) Download Element]] und [[FTP(S) Verzeichnisindex Element]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FTP Beispiel Anleitung Graph.png|right|200px|FTP Beispiel Graph]]&lt;br /&gt;
[[File:FTP Beispiel Anleitung gui.png|right|200px|FTP Beispiel GUI]]&lt;br /&gt;
Der Funktionsgraph besteht aus einem [[Leeres Programm Element|Leerem Programm Element]] in dem für alle FTP-Funktionen ein [[Knopf Element]] ist, welches die entsprechende FTP-Funktion auslößt.&lt;br /&gt;
==Beispiel-Download==&lt;br /&gt;
Im unteren Beispiel müssen Sie ihre FTP(S)-Zugangsdaten in die FTP-Elemente eintragen um ein erfolgreiches Ergebnis zu erzielen.&lt;br /&gt;
&lt;br /&gt;
Hier das Beispiel [[File:FTP Test Beispiel.fwf|FTP Test Beispiel.fwf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]] [[Category:Erstellung]] [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=384</id>
		<title>FTP Beispiel Anleitung</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=384"/>
		<updated>2022-01-12T21:03:16Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Anleitung/Beispiel für das [FTP(S) Upload Element]], [[FTP(S) Löschen Element]], [[FTP(S) Download Element]] und [[FTP(S) Verzeichnisindex Element]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FTP Beispiel Anleitung Graph.png|right|200px|FTP Beispiel Graph]]&lt;br /&gt;
[[File:FTP Beispiel Anleitung gui.png|right|200px|FTP Beispiel GUI]]&lt;br /&gt;
Der Funktionsgraph besteht aus einem [[Leeres Programm Element|Leerem Programm Element]] in dem für alle FTP-Funktionen ein [[Knopf Element]] ist, welches die entsprechende FTP-Funktion auslößt.&lt;br /&gt;
==Beispiel-Download==&lt;br /&gt;
Im unteren Beispiel müssen Sie ihre FTP(S)-Zugangsdaten in die FTP-Elemente eintragen um ein erfolgreiches Ergebnis zu erzielen.&lt;br /&gt;
&lt;br /&gt;
Hier das Beispiel [[File:FTP Test Beispiel.fwf|FTP Test Beispiel.fwf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]] [[Category:Erstellung]] [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=383</id>
		<title>FTP Beispiel Anleitung</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=383"/>
		<updated>2022-01-12T21:02:39Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Anleitung/Beispiel für das [FTP(S) Upload Element]], [[FTP(S) Löschen Element]], [[FTP(S) Download Element]] und [[FTP(S) Verzeichnisindex Element]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FTP Beispiel Anleitung Graph.png|right|200px|FTP Beispiel Graph]]&lt;br /&gt;
[[File:FTP Beispiel Anleitung gui.png|right|200px|FTP Beispiel GUI]]&lt;br /&gt;
Der Funktionsgraph besteht aus einem [[Leeres Programm Element|Leerem Programm Element]] in dem für alle FTP-Funktionen ein [[Knopf Element]] ist welches die entsprechende FTP-Funktion auslößt.&lt;br /&gt;
==Beispiel-Download==&lt;br /&gt;
Im unteren Beispiel müssen Sie ihre FTP(S)-Zugangsdaten in die FTP-Elemente eintragen um ein erfolgreiches Ergebnis zu erzielen.&lt;br /&gt;
&lt;br /&gt;
Hier das Beispiel [[File:FTP Test Beispiel.fwf|FTP Test Beispiel.fwf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]] [[Category:Erstellung]] [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=382</id>
		<title>FTP Beispiel Anleitung</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=382"/>
		<updated>2022-01-12T21:02:26Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Anleitung/Beispiel für das [FTP(S) Upload Element]], [[FTP(S) Löschen Element]], [[FTP(S) Download Element]] und [[FTP(S) Verzeichnisindex Element]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FTP Beispiel Anleitung Graph.png|right|200px|FTP Beispiel Graph]]&lt;br /&gt;
[[File:FTP Beispiel Anleitung gui.png|right|200px|FTP Beispiel GUI]]&lt;br /&gt;
Der Funktionsgraph besteht aus einem [[Leeres Programm Element|Leerem Programm Element]] in dem für alle FTP-Funktionen ein [[Knopf Element]] ist welches die entsprechende FTP-Funktion auslößt.&lt;br /&gt;
==Beispiel-Download==&lt;br /&gt;
Im unteren Beispiel müssen Sie ihre FTP(S)-Zugangsdaten in die FTP-Elemente eintragen um ein erfolgreiches Ergebnis zu erzielen.&lt;br /&gt;
Hier das Beispiel [[File:FTP Test Beispiel.fwf|FTP Test Beispiel.fwf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]] [[Category:Erstellung]] [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=381</id>
		<title>FTP Beispiel Anleitung</title>
		<link rel="alternate" type="text/html" href="https://wiki.frameworkflow.de/index.php?title=FTP_Beispiel_Anleitung&amp;diff=381"/>
		<updated>2022-01-12T20:58:28Z</updated>

		<summary type="html">&lt;p&gt;Fwf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Anleitung/Beispiel für das [FTP(S) Upload Element]], [[FTP(S) Löschen Element]], [[FTP(S) Download Element]] und [[FTP(S) Verzeichnisindex Element]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:FTP Beispiel Anleitung Graph.png|right|200px|FTP Beispiel Graph]]&lt;br /&gt;
[[File:FTP Beispiel Anleitung gui.png|right|200px|FTP Beispiel GUI]]&lt;br /&gt;
Der Funktionsgraph besteht aus einem [[Leeres Programm Element|Leerem Programm Element]] in dem für alle FTP-Funktionen ein [[Knopf Element]] ist welches die entsprechende FTP-Funktion auslößt.&lt;br /&gt;
==Beispiel-Download==&lt;br /&gt;
Hier das Beispiel [[File:FTP Test Beispiel.fwf|FTP Test Beispiel.fwf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Anleitungen]] [[Category:Erstellung]] [[Category:Allgemein]]&lt;/div&gt;</summary>
		<author><name>Fwf</name></author>
		
	</entry>
</feed>