This is an old revision of the document!
This handler describe a Word document with variables taken from smartform variables.
The parameter “overwriteExisting” tells if an existing template can be overwritten (true) or a new template should be created.
From Tim Version 3.7 on, the variables from the VariablesHelper may be used.
The images attached to the instance may be placed into the Word document. For this, special variables must be present in the template.
Individual images may be entered: $img{Image.jpg} ← Exact name of the entered imaged
Alternatively, all of the images attached to the instance may be entered: $img{addAllImages}
com.dooris.bpm.actionhandler.WordTemplateHandler
any
any
-
The path to the template is entered here. It may be entered as an absolute or relative to the Externalfilepath in the loom.properties.
In order to rename the generated PDF, the name of the template itself may contain process variables. (see Example)
Given the template parameter has the following value: template=${SYS.PROCESSINSTANCE_NAME}_report.docx. In the target folder the file will be searched accordingly.
This may be either true or false. If the name is set to true, TIM overwrites the existing PDFs if the process runs again through a loop. If the PDF is still needed, the value must be set to false.
This value is set to false by default
The documentPrefix can be used to attach the entered value to the template name of of the PDF as a prefix.
This value must first be set to true in order to TIM to generate a PDF. If the value is set to false or nothing is entered, TIM replaces the variables in the template and generates a Word file, which is then attached to the process.
If this value is not set by the user, the default is false. If the value is set to true, process variables (with names beginning with “bool”) are transformed as follows:
Variable name | Value | Result in PDF |
---|---|---|
baa1 | true | true |
boolbaa1 | true | ja |
boolbaa1 | 1 | ja |
boolbbb1 | false | nein |
bobbb1 | 0 | 0 |
boolbbb1 | 0 | nein |
This is set to false by default. If this value is set to true, the values of all of the variables marked as true or false are replaced with the values yes or no, respectively.
Available from Version 3.5 on!
With the target parameter you can determine the document name. This approach is useful, if the document name should be different from the template name. The target parameter can contain process variables.
Consider you want to create a report in english and german. The word template in the resource folder has the following name ${SYS.PROCESSINSTANCE_NAME}_report_${language}. With the target parameter you can change the name of the word file to e.g. target=XY-Report_DE. Therefore you can create word files with different names from the same word template.
Important: no file extension is needed within the target parameter
target=${processInstanceId}_${processInstanceName}_report
In this instance, the word document is saved as 1467_8D-ProblemSolving_report.docx
In this example, a PDF is attached after the activation of the wordTemplateHandler. It is composed as follows:
Änderungsabwicklung_E1_tim_123_test_1.pdf
The Wordtemplatehandler can be integrated into the smartform as a link, a button, or an image so that participants can create a template at any time. For this, the following code must be integrated into the smartform:
<button type="button" onbuttonclick="generateFileFromTemplate([{handler:'WordTemplateHandler',template:'pfad/zumTemplate.docx',pdf:false,attach:false,open:true,documentPrefix:'Prefix'}])">
Further information can be found on this page.
With version 5.2 you can review the document history of a process instance via the system variable ${SYS:DOC_HISTORY}. The document history displays which documents have been attached, edited or deleted. E.g. with the wordTemplateHandler you can save the document history to a word or pdf document (s. screenshot).
Normally written text will be inherited, whereas variables, if marked as ${Variable ID} will be overwritten. The radio-buttons are an exception: You have to use the name instead of the ID.