Find out more about new features and improvements in the Fabasoft app.ducx 2016 April Release.
Some syntax changes have been introduced to harmonize the object model syntax with the expression syntax.
References with “#”
In simple assignments of component objects a hash can be used as marker for a component object. Currently the hash is ignored but may be used for additional context checks in the future.
Array initializers
Arrays in object model assignments now use the comma as separators instead of the semicolon.
The compiler generates code for a specific target version. This version is stored in the app.ducx project file and is not changed anymore by just connecting to a web service. The properties dialog of projects display the version of the currently used web service and the specified target version.
By clicking the “Update” button the target version of the current web service is stored in the project file and subsequently used for the compiler.
Object address as comment
The generated file now contains the object address of extended objects as comments.
attrmultiple/actparmultiple
Attributes and parameters are explicitly declared as multiple when using a multiple type definition.
It is now possible to declare an expression property by using the type expression. Additionally the useful properties of an expression property are defined as aliases.
Example |
expression myexpression { type = BOOLEAN; parameters = [ |
In all files it is now possible to declare constant elements.
Example |
private enum DrinkType { struct SomeLines { class Bar : ComponentObject { const DrinkType[] AlcoholicDrinksConst = [DT_SHOT, DT_LONGDRINK, DT_SOUR, DT_HIGHBALL]; const DrinkType[] NonAlcoholicDrinksConst = [DT_SOFTDRINK, DT_WATER, DT_JUICE]; const SomeLines LineConst = { const SomeLines[] LinesConst = [ |
The first use of these constants is in object model assignments:
Example |
const SomeLines LineConstEx = { instance Bar MyDefaultBar { |
The other use is in expressions, where the constant is replaced by its text like a macro:
Example |
instance Expression ex { |
If the target version supports the object class COOSYSTEM@1.1:TypedExpression, these constants are stored as component objects and can be used by other software components, too.
The warning for missing arguments due to the declaration of the called use case or application now contains quick fixes to add the missing argument to the call.