====== WordTemplateHandler ====== ==== Description ==== This [[:en:software:tim:actionhandler|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 [[:en:software:tim:changelog:tim37|Tim Version 3.7]] on, the variables from the [[:en:faq:variableshelper|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} The WordTemplateHandler may also be built into the [[:en:software:tim:smartform|Smartform]] as a button, on order to generate a Template if needed. More on this subject is found [[:en:software:tim:actionhandler:wordtemplatehandler#integrating_the_wordtemplatehandler_into_the_smartform|here]] ---- ==== Action Class ==== com.dooris.bpm.actionhandler.WordTemplateHandler ---- ==== Event Type ==== any ==== Action Name ==== any ==== Mandatory Fields ==== - ---- ==== Parameter ==== === template === 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|Example]]) == Special case: Resolving process variables in the document name == Given the template parameter has the following value: **template=${SYS.PROCESSINSTANCE_NAME}_report.docx**. In the target folder the file will be searched accordingly. - The wordTemplateHandler literally looks for the template **${SYS.PROCESSINSTANCE_NAME}_report.docx**. - If it is unabled to find the respective document, the process variables in the document name will be resolved. - Only now the wordTemplateHandler is looking for the template **8D-ProblemSolving_report.docx** (8D-ProblemSolving is the resolved value of SYS.PROCESSINSTANCE_NAME). This procedure strongly increases the performance of the wordTemplateHandler Available from version 5.4 === overwriteExisting (optional) === 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 === documentPrefix === The **documentPrefix** can be used to attach the entered value to the template name of of the PDF as a prefix. === pdf (optional) === 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. === removeEmptyTableRows (optional) === If this value is **true**, all table rows in the docx-template will be cleared, if the variable in the first column is not available or empty. This prevents using space of empty (DOMRepeater) rows. The parameter is available beginning with version [[:software:tim:changelog:tim582|5.8.2]]. > The default is **false** === interpretNummbersAsBoolean === 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^yes| ^boolbaa1^1^yes| ^boolbbb1^false^no| ^bobbb1^0^0| ^boolbbb1^0^no| === interpretBooleanAsHuman === 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! ---- === target === 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 {{ :software:tim:actionhandler:wordtemplatehandler2.png?700 }}In this instance, the word document is saved as **1467_8D-ProblemSolving_report.docx** === locale === Diesem Parameter können alle von TIM unterschtützten Sprachen als Kürzel (z.B. de, en) übergeben werden. Dies führt dazu, dass von TIM generierte Wörter (z.B. Ja/Nein bei Boolean-Auswertungen) übersetzt werden. ---- ==== Example ==== {{ :software:tim:actionhandler:wordtemplatehandler.png?700 }} 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 ---- ==== Integrating the Wordtemplatehandler into the Smartform ==== 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: