Appendix H. Changed Behavior and Alternative Behavior

Simple Move of a Decimal to a String

In AB Suite 4.0 and 5.0, moving a decimal value to a string resulted in the string including a decimal point.

From AB Suite 6.1, moving a decimal value to a string resulted in the string not including a decimal point, and including leading and trailing zeros, based on the length of the source.

The reason for the change in behavior was to bring the behavior inline with EAE (Enterprise Application Environment), and preserve safe passage for migrating customers. It also made the results of a complex Move and a simple Move consistent.

Some users may prefer the behavior that was present in AB Suite 4.0 and 5.0. This has been made available via a registry setting.

Add a DWORD called 'SimpleMoveDecimalToString' to the registry key below:

Changes to NGENxxSERVICES Entrypoint DO_GETLENGTH

From AB Suite 8.0 release, the supported length for string handling has incrementally increased from the EAE 2 KB limit to the current AB Suite 6 MB limit.

Due to increase in the length of a string, the length field (for the DO_GETLENGTH call) has been increased from 4 bytes to 8 bytes (this value must be an even number of bytes).

If you use the undocumented entry-point DO_GETLENGTH, you must ensure that your NOF program has defined the length parameter (GLB-ATT-LEN) correctly as per the GSD program.

For example:

01  GLB_ATTAREA_A            COMMON.
03  GLB-ATT-LEN              PIC 9(8).
03  GLB-0400-A.
05  GLB-ATT1-1               PIC X.
05  GLB-ATT1-REST            PIC X(6000007).

You do not have to pass a 6 MB packet as a parameter to DO_GETLENGTH, but you must ensure that the length or size of the packet (01 level) passed is at least 16 bytes longer than the defined length (GLB-ATT-LEN).

For example, if the value assigned to GLB-ATT-LEN for the call to DO_GETLENGTH is 00001234, then the length of the group at the 01 level must be at least 1250 bytes.