WordTemplateHandler

Beschreibung

Dieser Handler beschreibt ein Word-Dokument mit Werten aus Smartform-Variablen.

Durch den Parameter „overwriteExisting“ wird angegeben, ob bereits bestehende Templates überschrieben werden dürfen (true) oder, ob ein neues Template angelegt werden soll.

Ab Tim-Version 3.7 können auch die Variablen des VariablesHelper benutzt werden.
Es ist möglich an der Instanz hängende Bilder in das Word-Dokument einzufügen. Hierzu muss es im Template spezielle Variablen geben.
Es können entweder einzelne Bilder eingefügt werden: $img{bild.jpg} <- Exakter Name des einzufügenden Bildes
Es können auch alle an der Instanz hängenden Bilder eingefügt werden: $img{addAllImages}

Der WordTemplateHandler kann auch als Button in die Smartform eingebaut werden, um bei Bedarf ein Template zu generieren. Mehr dazu hier

Klasse

com.dooris.bpm.actionhandler.WordTemplateHandler

Event Type

beliebig

Action Name

beliebig

Mandatory Fields

-

Parameter

template

Hier wird der Pfad zum Template angegeben. Er kann absolut oder relativ zum Externalfilepath in der loom.properties angegeben werden.

Um das generierte PDF umzubenennen, kann der Name des Templates selbst Prozessvariablen enthalten. (siehe Beispiel)

Spezialfall: Auflösen von Prozessvariablen im Template-Namen

Angenommen im Parameter template wird folgender Wert hinterlegt: template=${SYS.PROCESSINSTANCE_NAME}_report.docx. Im Zielordner (z.B. C:\user\hb\documents\reports) wird das Template nach folgendem Schema gesucht.

Der wordTemplateHandler sucht wörtlich nach dem Template ${SYS.PROCESSINSTANCE_NAME}_report.docx.

Kann das Dokument nicht gefunden werden, wird die Prozessvariable SYS.PROCESSINSTANCE_NAME im Dokumentennamen aufgelöst.

Erst jetzt sucht der wordTemplateHandler nach dem Template 8D-ProblemSolving_report.docx (8D-ProblemSolving ist der Wert der Variable SYS.PROCESSINSTANCE_NAME).

Verfügbar ab Version 5.4

overwriteExisting (optional)

Kann entweder true oder false sein. Ist der Wert auf True gesetzt, überschreibt TIM bestehende PDF's, falls der Prozess durch eine Schleife nochmals durchlaufen wird. Wird das PDF allerdings noch benötigt, muss der Wert auf false stehen.

Dieser Wert ist standardmässig auf false gesetzt

documentPrefix

Das documentPrefix kann angegeben werden, um erstelle PDF's immer den angegeben Wert vor dem Templatenamen stehen zu haben.

pdf (optional)

Erst wenn dieser Wert auf true gesetzt ist, erstellt TIM ein PDF. Ist der Wert auf false gesetzt oder wird nicht angegeben, ersetzt TIM die Variablen im Template und erstellt eine Worddatei, die dem Prozess angehängt wird.

interpretNummbersAsBoolean

Ist dieser Wert nicht gesetzt, ist der Wert standardmäßig „false“. Ist dieser Wert auf true gesetzt, werden Prozessvariablen (die mit dem Namen „bool“ beginnen) wie folgt umgewandelt

Variablename	Wert	Ergebnis im PDF
baa1	true	true
boolbaa1	true	ja
boolbaa1	1	ja
boolbbb1	false	false
bobbb1	0	0
boolbbb1	0	nein

interpretBooleanAsHuman

Der Standardwert dieses Parameters ist „false“. Ist der Wert auf true gesetzt, werden alle Werte aller Variablen die true oder false sind, als Ja oder Nein ersetzt.

Erst ab Version 3.5 verfügbar!

target

Mit dem target Parameter kann der Dokumentenname im Zielordner festgelegt werden. Diese Vorgehensweise bietet sich an, wenn sich der Name der erstellten Word Datei vom Namen des Templates unterscheiden soll. Der target Parameter kann Prozessvariablen enthalten.

Angenommen Sie möchten zwei Berichte in deutscher und englischer Sprache generieren. Dafür haben Sie das Wordtemplate ${SYS.PROCESSINSTANCE_NAME}_report_${language} im Ressourcenordner abgelegt. Mit dem target Parameter kann nun der Dateiname mit target=XY-Report_DE geändert werden. So können aus dem gleichen Template Word Dateien mit unterschiedlichen Namen erstellt werden.

Wichtig: eine Dateiendung wird nicht benötigt.

target=${processInstanceId}_${processInstanceName}_report

Für eine Instanz des 8D Problem Solving Prozesses wird das Dokument z.B. unter dem Namen 1467_8D-ProblemSolving_report.docx abgespeichert.

Beispiel

In diesem Beispiel, wird nach dem Auslösen des wordTemplateHandlers eine PDF angehängt, die sich wie folgt zusammensetzt:

Änderungsabwicklung_E1_tim_123_test_1.pdf

Wordtemplatehandler in die Smartform integrieren

Der Wordtemplatehandler kann als Link, Button oder zB als Bild in eine Smartform integriert werden, falls beteiligte ein Template zu jedem Zeitpunkt erzeugen wollen. Hier muss nur folgender Code in die Smartform eingebaut werden

<button type="button" onbuttonclick="generateFileFromTemplate([{handler:'WordTemplateHandler',template:'pfad/zumTemplate.docx',pdf:false,attach:false,open:true,documentPrefix:'Prefix'}])"/>

Weiter Infos können Sie der Seite PDF Buttons entnehmen.

Der Dokumentenverlauf

Seit Version 5.2 kann der Dokumentenverlauf einer Instanz über die Systemvariable ${SYS.DOC_HISTORY} ausgegeben werden. Der Dokumentenverlauf zeigt auf welche Dokumente der Instanz angehängt, bearbeitet oder entfernt wurden. Mithilfe des wordTemplateHandler kann der Dokumentenverlauf z.B. in ein Word-Dokument oder PDF gespeichert werden (s. Screenshot).

Beschreiben des Templates

Normal geschriebener Text wird übernommen, die Variablen, sofern mit ${ID der Variable} gekennzeichnet, überschrieben. Ausnahme bilden hier die Radio-Buttons: Bei diesen muss man den Namen statt der ID verwenden.

Mögliche Probleme

Typische Fehler