app.ducx Expression Language is a distinct domain-specific language of Fabasoft app.ducx. app.ducx expressions can be embedded inline in an expression block in other domain-specific languages. However, it is also possible to create separate .ducx-xp files containing app.ducx expressions. app.ducx expression language files can be referenced from other domain-specific languages using the file keyword.
The app.ducx expression language is processed by the Fabasoft app.ducx compiler and transformed into Fabasoft app.ducx Expressions, which are evaluated at runtime by the Fabasoft Folio Kernel.
Keywords, predefined functions and predefined variables are not case sensitive.
In the first step, the expression code is parsed. An expression can be parsed at runtime by calling the Parse method of the Fabasoft Folio Runtime. The Parse method returns an expression object (which is not related to an object stored in the Fabasoft Folio). In a second step, the Evaluate method is invoked on the expression object for evaluating the expression. The scopes to be used during the evaluation of the expression must be passed to the Evaluate method. The result of the evaluation is passed back in the return value of the Evaluate method.
The Fabasoft app.ducx Expression Tester (see next figure), allows you to test your expressions on the fly.
With the Fabasoft app.ducx Expression Tester, you can also set the contents of local and global scope to simulate the actual situation in which your expression will be evaluated.
Using app.ducx expression language, you can write trace messages to the Fabasoft app.ducx Tracer, which can be found in the Setup\ComponentsBase\Trace folder on your product DVD.
For writing messages and variable values to the trace output, you can either use the %%TRACE directive or the Trace method of the Fabasoft Folio Runtime.
If you pass two arguments to the Trace method of the Fabasoft Folio Runtime, the first argument is interpreted as a message while the second argument is treated as the actual value.
The %%TRACE directive can also be used to trace special objects like cootx to output all transaction variables defined for a transaction or coometh to output all set parameters within the implementation of a method.
For further information on enabling trace mode for a software component refer to chapter “Tracing in Fabasoft app.ducx projects”.
// Tracing string messages
// Tracing variable values
// Trace directives are only evaluated if the software component
// Tracing local and global scope