Ensemble 2012.2 introduced the following new features and enhancements:
NHS Interoperability Toolkit (ITK)
.NET 4.0 Components for Object Provider and .NET Gateway
Custom Search Table Classes for Virtual Documents
Custom Queries for Messages
Ability to Bind to Specific Network Address in TCP Adapters
Better Handling of Large HL7 Messages
Easier Control Over Saving HL7 Reply Messages
XML Virtual Document Enhancements
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.
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.
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.
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.
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.