Variablen
Variablen sind eine leistungsfähige Möglichkeit, Workflows flexibel anzupassen, über Entscheidungen den Ablauf des Workflows zu beeinflussen oder Variableninhalte in Metadateien auszugeben. In vielen Feldern in Workflow-Modulen können Variablen verwendet werden.
Die nachstehenden Typen werden unterschieden. Variablen aller Typen werden immer mit % (Prozentzeichen) umschlossen (%Variablenname%). Der Wert der Variablen kann formatiert werden (z.B. Zahlen führende Nullen gegeben werden). Ist eine Variable nicht definiert oder es wurde ihr nie ein Wert zugewiesen, wird die Angabe der Variable wie Text ausgegeben (Variablenname mit umschließenden Prozent("%Variablenname%")). Wann der Wert einer Variable zugewiesen wird, hängt vom Zeitpunkt der Verwendung ab (z.B. ist im Workflow vor dem Einscannen die Anzahl der Seiten nicht bekannt und die zugehörigen Variablen entsprechend leer).

Variable | Beispiel | Beschreibung |
---|---|---|
%UserName% | M.Mustermann | Loginname des Anwenders, der den Workflow aktuell besitzt (hat der Anwender mehrere Logins, wird das erste Login in der Liste zurückgegeben). |
%DisplayName% | Max Mustermann | Anzeigename des Anwenders, der den Workflow aktuell besitzt. |
%CardNumber% | EC73810DE667 | Kartennummer, die zum Anmelden am Gerät verwendet wurde (des Anwenders, der den Workflow aktuell besitzt). |
%Email% |
M.Mustermann@Musterfirma.de |
E-Mailadresse des Anwender, der den Workflow aktuell besitzt. |
%ScanFolder% | \\Freigabe\Scan\M.Mustermann | Persönlicher Ordner des Anwenders, der den Workflow aktuell besitzt. |
%UserTags% | sw1;tag2;KST47 | Liste aller Schlüsselworte des Anwenders, der den Workflow aktuell besitzt (mit Semikolon getrennt) |
%DepartmentName% | Vertrieb | Name der Abteilung des Anwenders, der den Workflow aktuell besitzt. |
%DepartmentEmail% | Vertrieb@Musterfirma.de | E-Mailadresse der Abteilung des Anwenders, der den Workflow aktuell besitzt. |
%DepartmentFolder% | \\Freigabe\Scan\Vertrieb | Abteilungsordner der Abteilung des Anwenders, der den Workflow aktuell besitzt. |
%CreatorName% | M.Mustermann | Loginname des Anwenders, der den Workflow gestartet hat (hat der Anwender mehrere Logins, wird das erste Login in der Liste zurückgegeben). |
%CreatorDisplayName% | Max Mustermann | Anzeigename des Anwenders, der den Workflow gestartet hat. |
%CreatorCardNumber% | EC73810DE667 | Kartennummer, die zum Anmelden am Gerät verwendet wurde (des Anwenders, der den Workflow gestartet hat). |
%CreatorEmail% |
M.Mustermann@Musterfirma.de |
E-Mailadresse des Anwenders, der den Workflow gestartet hat. |
%CreatorScanFolder% | \\Freigabe\Scan\M.Mustermann | Persönlicher Ordner des Anwenders, der den Workflow gestartet hat. |
%CreatorTags% | sw1;tag2;KST47 | Liste aller Schlüsselworte des Anwenders, der den Workflow gestartet hat (mit Semikolon getrennt) |
%CreatorDepartmentName% | Vertrieb | Name der Abteilung des Anwenders, der den Workflow gestartet hat. |
%CreatorDepartmentEmail% | Vertrieb@Musterfirma.de | E-Mailadresse der Abteilung des Anwenders, der den Workflow gestartet hat. |
%CreatorDepartmentFolder% | \\Freigabe\Scan\Vertrieb | Abteilungsordner der Abteilung des Anwenders, der den Workflow gestartet hat. |
%UserPermissionChooseDirectPrinter% | true | Anwenderrecht Direktdrucker selbst wählen (true, false). |
%UserPermissionCopyColor% | true | Anwenderrecht farbig kopieren (true, false). |
%UserPermissionDeviceAdministrator% | false | Anwenderrecht Geräteadministrator (true, false). |
%UserPermissionOwnAddressbook% | true | Anwenderrecht eigenes Adressbuch anlegen (true, false). |
%UserPermissionPrintColor% | true | Anwenderrecht farbig drucken (true, false). |

Variable | Beispiel | Beschreibung |
---|---|---|
%DeviceName% | Lexmark Flur | Gerätename oder Bezeichnung. Der Datensatz wird per IPP am Gerät abgefragt. |
%DeviceHostName% | dev-kc-007 | Hostname des Gerätes so wie im Gerätedatensatz angegeben. |
%ModelName% | 2554ci | Modellname bzw. Modellbezeichnung. Der Datensatz wird per IPP am Gerät abgefragt. |
%Serialnumber% | TES0S81049 | Seriennummer des Gerätes. Der Datensatz wird per IPP am Gerät abgefragt. |
%DeviceTags% | sw1;tag2;KST47 | Liste aller Schlüsselworte des Gerätes, das im Workflow verwendet wird (mit Semikolon getrennt). |
%A3Device% | false | Ausstattungsmerkmal A3 laut Geräte-Datensatz (true, false). |
%ColorDevice% | true | Ausstattungsmerkmal Farbe laut Geräte-Datensatz (true, false). |
%DuplexDevice% | false | Ausstattungsmerkmal Duplex laut Geräte-Datensatz (true, false). |
%FaxCardDevice% | true | Ausstattungsmerkmal Faxkarte laut Geräte-Datensatz (true, false). |
%FoldDevice% | false | Ausstattungsmerkmal Falten laut Geräte-Datensatz (true, false). |
%PrintUnitDevice% | true | Ausstattungsmerkmal Druck-Einheit laut Geräte-Datensatz (true, false). |
%PunchDevice% | true | Ausstattungsmerkmal Lochen laut Geräte-Datensatz (true, false). |
%ScanUnitDevice% | true | Ausstattungsmerkmal Scan-Einheit laut Geräte-Datensatz (true, false). |
%StapleDevice% | false | Ausstattungsmerkmal Heften laut Geräte-Datensatz (true, false). |

Variable | Beispiel | Beschreibung |
---|---|---|
%PrintJobCreated% | 21.12.2020 14:55:59 | Erstellungsdatum (TT.MM.JJJJ hh:mm:ss) |
%PrintJobFileSize% | 1217150 | Druckauftragsgröße in Bytes |
%PrintJobName% | Testseite | Druckauftragsname |
%PrintRuleOptions% | Farbe: Schwarz/Weiß, Duplex: Duplex (kurze Seite), Farbe: Farbe | Liste der Änderungen am Druckauftrag (durch manuelle Änderung oder Druckregel). Kommt eine Einstellung mehrmals vor (Einstellung wurde mehrmals geändert) ist die zuletzt vorkommende Einstellung relevant. |
%AnalyzedColorMode% | Color | Analysierter Farbmodus (Bw/Color) |
%AnalyzedPrintPages% | 4 | Analysierte Druckseiten |
%AnalyzedPrintBwPages% | 2 | Anzahl der analysierten Schwarz/Weiß Seiten |
%AnalyzedPrintColPages% | 1 | Anzahl der analysierten Farbseiten |
%AnalyzedDuplexMode% | Longedge | Duplexmodus (treiberspezifisch z.B LONGEDGE/SHORTEDGE/OFF) |
%AnalyzedPunchMode% | TwoHoles | Lochen (je nach genutztem Treiber z.B. NONE/TWOHOLES/FOURHOLES) |
%AnalyzedStapleMode% | True | Heften (je nach genutztem Treiber z.B. FALSE/TRUE) |
%AnalyzedFoldMode% | Fold | Falten (je nach genutztem Treiber z.B. NOFOLD/FOLD) |

Variable | Beispiel | Beschreibung |
---|---|---|
%ScannedPages% | 11 | Anzahl Seiten eines Scanauftrages |
%ScannedSheets% | 11 | Anzahl Blätter eines Scanauftrages |
%OriginalDeviceScanFileSize% | 316184 | Größe der original gescannten Datei in Bytes |
%OutputFileSizes% | 22876 | Größe der generierten Zieldatei in Bytes. Werden durch Dateitrennung mehrere Zieldateien aus einer Datei erzeugt, wird eine Liste ausgegeben. |
%ScanIdentifier% | 1 | Erzeugt eine eindeutige Identifikationsnummer für einen Scanauftrag (dauerhaft fortlaufend). Diese Nummer wird beim Starten des Scanauftrages automatisch erzeugt (alle Dokumente, die aus diesem Scan stammen bekommen die gleiche Nummer - also auch einzelne Dateien, die durch Dokumententrennung aus diesem Scan entstanden sind). |
%DocNumber% | 1 | Erzeugt für erzeugte Dokumente (auch für Dokumente, die durch Dokumententrennung entstanden sind) eine eindeutige Nummer (dauerhaft fortlaufend). Die Nummer wird im Zielmodul (z.B. Modul Scanziel SMB) erzeugt. Die Nummer wird nicht erzeugt für Ziel USB. |
%FilePath% | c:\scan | Vollständer Pfad zur Datei |
%FileName% | Rechnung.pdf | Dateiname mit Dateierweiterung |
%FileExt% | Dateierweiterung ohne Punkt | |
%FileNameNoExt% | Rechnung | Dateiname ohne Dateierweiterung |
%ResultFileNames% | Scan (1).pdf;Scan (2).pdf;Scan (3).pdf | Liste von resultierenden Dateinamen, wenn Dateitrennung aktiviert ist (funktioniert nur innerhalb eines Workflows und nicht, wenn ein Workflow wie beim Zonen-OCR in mehrere aufgesplittet wird). |

Variable | Beispiel | Beschreibung |
---|---|---|
%WorkflowInstanceGuid% | 89d55af1-acb9-47bd-a80a-80532b8cd0b9 | GUID der Workflowinstanz |

Variable | Beispiel | Beschreibung |
---|---|---|
%Date.DD% | 31 oder 01 | Der Tag des Datums |
%Date.MM% | 12 oder 01 | Der Monats des Datums |
%Date.YY% | 17 für 2017 oder 01 für 2001 | Das zweistellige Jahr des Datums |
%Date.YYYY% | 2017 | Das vierstellige Jahr des Datums |
%Time.hh% | 23 oder 01 | Die Stunde der Uhrzeit |
%Time.mm% | 59 oder 01 | Die Minute der Uhrzeit |
%Time.ss% | 59 oder 01 | Die Sekunde der Uhrzeit |
%DateTime% | 20171109154321 für 09.11.2017 15:43.21 Uhr | Ein Zeitstempel aus %DATE.YYYY%%DATE.MM%%DATE.DD%%TIME.HH%%TIME.MM%%TIME.SS% |
%DateFormatted% | 09.11.2017 14:55 | Formatiertes Datum den Einstellungen des Betriebssystems entsprechend. |

Für Geräte und Anwender können benutzerdefinierte Felder eingefügt werden (beim Anwender können die Inhalte dieser Felder auch importiert werden). Die Daten aus diesen Feldern werden in Variablen gespeichert, die wie der Feldname heißen. Bei Feldname Zusatzfeld wäre der Variablenaufruf entsprechend %Zusatzfeld% (Variablennnamen müssen eindeutig sein).

Wenn in einem Workflow ein Anwender-Interview gemacht wird, d.h. der Anwender gibt am Gerät Daten ein oder wählt sie aus, werden diese in frei definierbaren Variablen gespeichert, diese werden in den folgenden Modulen definiert:
Die Namen der Variablen werden zur Verwendung mit %-Zeichen umschlossen, z.B. %Variablenname%.

Variablen für Zonen-OCR (siehe auch Modul Zonen OCR, Barcode, QRCode) sind vom Namen der Zone abhängig sind. Dies sind:
- Textvariblen %OCRZONE.<Zonenname>% (z.B. %OCRZONE.Zone 1%) für den Inhalt von Text oder Barcodezonen und
- Tabellenvariablen %OCRTABLE.<Zonenname>.COL<Spaltennr.>% (z.B. %OCRTABLE.Zone 1.COL2%) für den Inhalt von Tabellenzonen. Diese Variable wird in eine Metadatei automatisch so oft wiederholt, wie Zeilen in der Tabelle erkannt wurden.

In einer Dokumentenüberprüfung können eine Vielzahl von Variablen erstellt werden, siehe Dokumentenüberprüfung.

Sie können einem Dokumenten-Workflow bei Verwendung des Dokumenteneingangs Ordner zusätzlich zu einer Bilddatei eine XML-Datei übergeben, mit der Variablen an den Workflow übergeben werden können. Die Variablen können dann wie die Variablen eines Anwender-Interviews im Workflow verwendet werden (siehe auch Dokumentenverarbeitung).
Variablennamen dürfen keine Sonderzeichen enthalten. Erlaubt sind kleine und große Buchstaben (keine Umlaute o.Ä.), Zahlen und der Punkt ".".
Wird der Variablenname an mehreren Stellen verwendet, können alle Stellen den Variablenwert beeinflussen.
Die XML-Datei muss den gleichen Namen haben wie die zugehörige Bilddatei (test.tif > test.xml).
<DocumentOptions>
<UserLogin>administrator</UserLogin>
<Variables>
<variable name="Name1" value="value1" type="string"/>
<variable name="Name2" value="222" type="int"/>
</Variables>
</DocumentOptions>
- Der Hauptbereich <DocumentOptions> muss zwingend vorhanden sein.
- Der Bereich <Variables> enhält Variablendefinitionen.
- <variable name="Name1" value="value1" type="string"/> definiert eine Variable Namens Name1 mit dem Inhalt value1 vom Typ string (Zeichenkette). Ein numerischer Wert kann auch als int (integer, Ganzzahl) definiert werden.
Der Typ ist für die Formatierung der Variable interessant (fehlt er, wird string angenommen), siehe auch Variablen.

Variablen, die aus Interview-Modulen oder aus Zonen-OCR stammen, können in einen anderen Wert übersetzt werden. Dies ist z.B. sinnvoll, wenn in einem gelesenen Barcode nur eine Zahl steht, in einer zu erzeugenden Metadatei soll dazu aber der beschreibende Text stehen.
Die Zuordnungstabellen dafür können in IQ4docs gepflegt werden. Es ist auch möglich per ODBC eine beliebige Datenbank abzufragen. Zusammen mit dem Entscheidungsmodul können damit z.B. auch Variablenwerte auf Plausibilität überprüft werden.
Die Variablenwerte können durch den neuen Wert überschrieben oder auch eine neue Variable erzeugt werden.
Die Namen der neuen Variablen werden zur Verwendung wie alle Variablen mit %-Zeichen umschlossen, z.B. %Variablenname%.

Der Wert einer Variable kann formatiert werden. Dies kann dann nützlich sein, wenn z.B. die Ausgabe der Anzahl gescannter Seiten in einer Metadatei immer 5-Stellig sein muss (25 > 00025).
Die Formatierungsangabe wird dabei in die den Variablennamen umschließenden %-Zeichen eingefügt.
Alle Variablen werden standardmäßig als string-Datentyp angesehen. Soll der umgewandelte Wert als String weiterverwendet werden, ist keine Angabe eines Datentyps erforderlich. Weiß man aber, dass die String-Variable eine Zahl enthält, kann eine Umwandung zu int gemacht werden und Formatierungen für Zahlen verwendet werden.
Beispiel | Beschreibung | Variablenwert | Resultat |
---|---|---|---|
%SCANNEDPAGES% | Unveränderter Variablenwert | 25 | 25 |
%OCRZONE.ZONE1$(0,5)% | Text rechtsbündig, 5 Zeichen mit führenden Leerzeichen | "Text" | " Text" |
%OCRZONE.ZONE1$(0,-5)% | Text linksbündig, 5 Zeichen mit folgenden Leerzeichen | "Text" | "Text " |
%SCANNEDPAGES$int(0:d5)% | Umwandlung in Zahlwert, 5 Stellen mit führenden Nullen | 25 | 00025 |
%CARDNUMBER$int(0:X)% | Umwandlung in Zahlwert, Ausgabe Hexadezimal | 12345678 | BC614E |
Weiterführende Beschreibungen der Formatierung von Typen bzw. benutzerdefinierten Zahlenformatzeichenfolgen können der Microsoft Dokumentation entnommen werden.
Falsche Formatierungsangaben bei den Variablen können zu einem Verarbeitungsfehler führen.