Use of In-line Syntax Error Messages into Templates

Note
This feature is supported by version 19.3 or greater.
Note
The code uses some of the objects defined in The Business Layer.
Note
This version provide the ability to display inline template syntax errors in generated, Word Processing, Presentation, Spreadsheets, Emails and Plain Text documents .

Use of In-line Syntax Error Messages

By default, Document Assembler throws an exception when encounters a template syntax error. Such an exception provides information on a reason of the error and specifies a tag or expression part where the error is encountered. In most cases, this information is enough to find a place in a template causing the error and fix it.

However, when dealing with complex templates containing a large number of tags, it becomes harder to find an exact place in a template causing an error. To make things easier, the engine supports the DocumentAssemblyOptions.INLINE_ERROR_MESSAGES option that enables in-lining of a syntax error message into a template document at an exact position where the error occurs during run-time.

Warning
A template syntax error message is written using a bold font to make it more apparent.

Consider the following template.

<<var [name]>>

By default, such a template causes the engine to throw an exception while building a report. However, when DocumentAssemblyOptions.INLINE_ERROR_MESSAGES is applied, no exception is thrown and the report looks as follows then.

<<var [name] Error! An assignment operator is expected. >>
Warning
Only messages describing errors in template syntax can be in-lined, messages describing errors encountered during expression’s evaluation cannot be appeared.

When DocumentAssemblyOptions.INLINE_ERROR_MESSAGES is applied, a Boolean value returned by a  DocumentAssembler.assembleDocument overload indicates whether building of a report was finished successfully or was interrupted because of a template syntax error. This enables you to process reports which building succeeded or failed differently as shown in the following code snippet.

// For complete examples and data files, please go to https://github.com/groupdocs-assembly/GroupDocs.Assembly-for-Java
//Setting up source document template
String strDocumentTemplate = "/Word Templates/Inline Error Demo.docx";
//Setting up destination PDF report
String strDocumentReport = "/PDF Reports/Inline Error Demo.pdf.pdf";
//Instantiate DocumentAssembler class
DocumentAssembler assembler = new DocumentAssembler();
//Enable the In-line error messaging
assembler.setOptions(DocumentAssemblyOptions.INLINE_ERROR_MESSAGES);
//Create sample data source object
Manager manager = new DataStorage().getManagers().iterator().next();
//Call AssembleDocument to show the demo Report and save the report in PDF format
//The AssembleDocument will return a boolean value to indicate the success or failed with inline error.
if(assembler.assembleDocument(CommonUtilities.getDataPath(strDocumentTemplate),
CommonUtilities.getOutPath(strDocumentReport), new LoadSaveOptions(FileFormat.PDF), new DataSourceInfo( manager, "manager")))
{
System.out.println("No error found in the template.");
}
else
{
System.out.println("Do something with a report containing a template syntax error.");
}
Warning
In this article the Word Processing document template file has been used. Therefore, the process for the other file formats is same.

Download Demo File

Please download the sample demo document files: