This version provide the ability to display inline template syntax errors in generated, Word Processing, Presentation, Spreadsheets, Emails and Plain Text documents.
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.InlineErrorMessages 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.InlineErrorMessages* is applied, no exception is thrown and the report looks as follows then.
Only messages describing errors in template syntax can be in-lined, messages describing errors encountered during expression’s evaluation cannot be appeared.
When DocumentAssemblyOptions.InlineErrorMessages is applied, a Boolean value returned by aDocumentAssembler.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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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.GetSourceDocument(strDocumentTemplate), CommonUtilities.SetDestinationDocument(strDocumentReport), new LoadSaveOptions(FileFormat.Pdf), new DataSourceInfo(DataLayer.GetCustomerData(), "customer")))
{
Console.WriteLine("No error found in template");
}else
{
Console.WriteLine("Do something with a report containing a template syntax error.");