Ensemble Release Note Archive
Ensemble 2012.2
[Home] [Back] [Next]
InterSystems: The power behind what matters   
Class Reference   
Search:    

New Features in Ensemble 2012.2
Ensemble 2012.2 introduced the following new features and enhancements:
Compatibility Issues for Upgrades to Ensemble 2012.2
The following changes in this release may affect the operation of your existing system. Review these following issues before upgrading a previous instance of Ensemble.
Also review the Caché Release Note and Upgrade Checklist Archive.
New Compiler Behavior for DTL Classes
In previous releases, the system threw an exception when you compiled a DTL and the source or target class does not exist. This means that your compiled DTL code was at risk of being incorrect. Now the compiler reports an error and fails if the source or target class does not exist.
New DTL Classes Created with IGNOREMISSINGSOURCE Parameter Set to True
Previous to this release, all DTL data transformation classes inherited from Ens.DataTransformDTL had the IGNOREMISSINGSOURCE parameter set to False. Beginning with this release, any DTL classes you create with the Data Transform wizards in the Management Portal or Studio override this value to True with the following declaration:
Parameter IGNOREMISSINGSOURCE = 1;
With this parameter value, the DTL suppresses errors caused by attempts to get field values out of absent source segments. The DTL also skips calling subtransforms where the named source segment is absent.
However, to maintain compatibility for existing DTL data transformation classes, the default behavior of the abstract class has not changed, and your existing DTL classes behave as in the past. The Ens.DataTransformDTL class declares the following:
Parameter IGNOREMISSINGSOURCE = 0;
You can review your transformations to see if updating the value of this parameter makes sense in your application.
Rules Conversion and Upgrade
During an upgrade to Ensemble 2012.1 or later, Ensemble ensures that any existing business rules are correctly converted and upgraded. As part of this conversion, Ensemble clears the custom function cache before performing the conversion. The cache is cleared initially to ensure that the correct resolution is performed while converting the rules.
In addition, the upgrade code compiles any custom FunctionSet classes (subclasses of Ens.Rule.FunctionSet) that need to be recompiled before converting and compiling rules created using the rules engine in 2010.2 and older. You should ensure that any mapped FunctionSet classes can be compiled in their target namespaces.
Change in Operator Precedence in Business Rules and Routing Rule Conditions
In release 2012.1, the precedence of conditions in rule conditions was not always correct. In particular, comparison operators took precedence over arithmetic and concatenation operators, so an expression of the form ‘a+b=c’ was being evaluated as ‘a+(b=c)’. In 2012.2 this is correctly evaluated as ‘(a+b)=c’.
If you have written rules in 2012.1 that relied upon this incorrect behavior, those rules will no longer function correctly and the rules will have to be changed. Note that the Visual Rule editor adds parentheses to conditions and there is no problem.
Conditions in rules upgraded directly from 2010.2 or earlier to 2012.2 will execute correctly.
Conditions in rules upgraded from 2010.2 or earlier to 2012.1 may not execute correctly in that version. After a subsequent upgrade to 2012.2 these rules will once again execute correctly.