Datastage environment variable APT_DECIMAL_INTERM_ROUND_MODE has no effect on decimal rounding results in parallel jobs, which is inconsistent with the documentation.
APT_DECIMAL_INTERM_ROUND_MODE is supported by DSParams, but internally PXEngine supports APT_DECIMAL_INTERM_ROUNDMODE (Please note the underscore "_" in between ROUND and MODE). Hence when APT_DECIMAL_INTERM_ROUND_MODE is added as environment variable, it has no effect while processing the data by PXEngine.
Resolving The Problem
JR47403 fixes this issue. If the fix JR47403 is present, then adding the environment variable APT_DECIMAL_INTERM_ROUND_MODE will have effect while processing data by PXEngine.
This issue can also be resolved by adding APT_DECIMAL_INTERM_ROUNDMODE as a user defined environment variable to a parallel job. This environment variable can take the following values:
NOTE: If the fix JR47403 is present and if both the environment variables APT_DECIMAL_INTERM_ROUND_MODE and APT_DECIMAL_INTERM_ROUNDMODE are added to a parallel job then the effective environment variable is decided as follows:
If APT_DECIMAL_INTERM_ROUND_MODE is NOT assigned the option "Round toward the nearest representable value", then APT_DECIMAL_INTERM_ROUND_MODE takes the high priority and hence the option assigned to APT_DECIMAL_INTERM_ROUND_MODE is considered while evaluation and the value assigned to APT_DECIMAL_INTERM_ROUNDMODE is ignored.
If APT_DECIMAL_INTERM_ROUND_MODE is assigned the option "Round toward the nearest representable value", then the value assigned to APT_DECIMAL_INTERM_ROUNDMODE is considered while evaluation and the option assigned to APT_DECIMAL_INTERM_ROUND_MODE is ignored.
The reason for the above behavior is the fact that the environment variable APT_DECIMAL_INTERM_ROUND_MODE will not appear in the job log when it is assigned the default option "Round toward the nearest representable value".
16 June 2018