SAS® Cost and Profitability Management 8.1 allows users to create driver rule formulas using the Match function or the equality (=) comparison operator with dimension name or reference values without providing a required qualifier for a dimension member property, such as .DimMemName or .DimMemRefererence. Here are some examples:
Match( Dim1, Dim2 )
Match( source.Dim1, destination.Dim2 )
Dim1 = Dim2
source.Dim1 = destination.Dim2
In these examples, Dim1 and Dim2 represent either the name or reference values for dimensions in a SAS Cost and Profitability Management model. None of these expressions is identified as invalid when creating these rule formulas by importing a Driver table, either when used as a term in a more complex rule formula or as the entire formula. In any of these cases, without a required qualifier for a dimension member property, the comparison treats the values of Dim1 and Dim2 as simple text strings. Because two dimensions in a model cannot have identical name or reference values, these expressions always evaluate to false. So, a rule formula containing any of these expressions might not behave as expected.
If the Match or equals statement is the entire rule formula for a driver, that driver never creates any assignments.
If the Match or equals statement is a term in a more complex rule formula, that driver creates assignments only if one or more of the other terms evaluates to true. This behavior also affects comparisons that use string functions and literal strings, such as the following:
Mid( Dim1, 3, 3) ="abc"
In this example, if the third through fifth characters of the name or reference value specified as Dim1 are not abc, the expression always evaluates as false; if the third through fifth characters of the specified dimension name or reference are abc, it always evaluates as true.
To ensure that driver rules behave as expected, always add .DimMemReference or .DimMemName qualifiers to dimension name or reference values, as shown in the following examples:
Match( Dim1.DimMemReference, Dim2.DimMemReference )
source.Dim1.DimMemName = destination.Dim2.DimMemName
Mid( Dim1.DimMemReference, 3, 3) ="abc"
Click the Hot Fix tab in this note to access the hot fix for this issue.
The hot fix will address the failure of the import data validation to identify the source. and destination. cases with unqualified dimension values as invalid when importing a Driver table. The cases without the source. and destination. qualifiers will be addressed in a future release.
Operating System and Release Information
SAS System | SAS Cost and Profitability Management Data Server | Microsoft Windows 10 | | 9.4 TS1M5 |
Microsoft Windows 8.1 Pro x64 | | 9.4 TS1M5 |
Microsoft Windows 8.1 Enterprise x64 | | 9.4 TS1M5 |
Microsoft Windows 8.1 Pro 32-bit | | 9.4 TS1M5 |
Microsoft Windows 8.1 Enterprise 32-bit | | 9.4 TS1M5 |
Microsoft Windows 8 Pro x64 | | 9.4 TS1M5 |
Microsoft Windows 8 Pro 32-bit | | 9.4 TS1M5 |
Microsoft Windows 8 Enterprise x64 | | 9.4 TS1M5 |
Microsoft® Windows® for x64 | | 9.4 TS1M5 |
Microsoft Windows 8 Enterprise 32-bit | | 9.4 TS1M5 |
Microsoft Windows Server 2008 | | 9.4 TS1M5 |
Microsoft Windows Server 2008 R2 | | 9.4 TS1M5 |
Microsoft Windows Server 2008 for x64 | | 9.4 TS1M5 |
Microsoft Windows Server 2012 Datacenter | | 9.4 TS1M5 |
Microsoft Windows Server 2012 R2 Datacenter | | 9.4 TS1M5 |
Microsoft Windows Server 2012 R2 Std | | 9.4 TS1M5 |
Microsoft Windows Server 2012 Std | | 9.4 TS1M5 |
Windows 7 Enterprise 32 bit | | 9.4 TS1M5 |
Windows 7 Enterprise x64 | | 9.4 TS1M5 |
Windows 7 Professional 32 bit | | 9.4 TS1M5 |
Windows 7 Professional x64 | | 9.4 TS1M5 |
Windows 7 Ultimate 32 bit | | 9.4 TS1M5 |
Windows 7 Ultimate x64 | | 9.4 TS1M5 |
Linux for x64 | | 9.4 TS1M5 |
Microsoft Windows Server 2016 | | 9.4 TS1M5 |
Windows 7 Home Premium x64 | | 9.4 TS1M5 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.