Hi Harry,
What you need to do is to take the version of the rule with
Code: Select all
[] = S: IF( ELISANC('Version', 'Version History', !Version) = 1, STET, CONTINUE );
[] = IF( ELISANC('Version', 'Version History', !Version) = 1, STET, CONTINUE );
and rearrange it so that all your other
S: statements are
after your S: conditional STET and
before your other conditional STET.
A bit like this
Code: Select all
[] = S: IF( ELISANC('Version', 'Version History', !Version) = 1, STET, CONTINUE );
['String'] = S: DB('Source', !Version, !Year, 'String' );
[] = IF( ELISANC('Version', 'Version History', !Version) = 1, STET, CONTINUE );
['Number'] = N: IF( DB( 'Target', !Version, !Year, 'String' ) @= 'True', 1000, -9999999 );
What was happening was that - within calculations only - the second conditional STET statement (the numeric one) was being applied to your 'String' cell. It matched on left hand side area definition but didn't match on datatype and so the cell was being left as STET, that is the value was read from the underlying cube data. This used to be the behaviour (in 9.4 and before) for both displayed values and also values used in calculations. It was changed for displayed values but not for values used in calculations, which would appear to have been an oversight.
In summary, if you keep all your
S: statements above all your numeric statements you'll be fine.
Have a good weekend,
Duncan.