VERIFIED SOLUTION i

Using the 'IF GT' parameter the values need to be consistent in List Conversion Plus

Product Affected:  List Conversion Plus 6.5.0


 

Issue

In position 582 of the input file, there are values : 2, 1, 7, 10 or 11.
The value these are being compared to are on a constant:
CONS16 3
 
The 'IF GT' is defined as:
*...5...10...15...20...25...30...35...40...45...50...55...60...65...70...75...80
IF GT  582 05 C16
MOVESQ 501 04 C11
END IF
 
  • If the value in position 582 is greater than the C16 constant, then do the MOVExx.
  •  In position 582, the records with the values 7,10 and 11 are greater than 3 (the constant value 3 as defined by CONS16)
But the MOVExx happens to only the record with the value 7, why?
 

Cause

When using the 'IF GT' parameter, the values being compared need to be consistent.
  • The values in position 582 are left justified and defined as 5 bytes.
  • The CONS16 value is just 1 byte.

Resolution

UPDATED: April 12, 2019
To make these compares the same, change the CONS16 to the value ‘03’ so it is 2 bytes:
CONS16 03
 
And change the 'IF GT' to compare only 2 bytes by changing the value in position 12 - 13, the length field:
 
*...5...10...15...20...25...30...35...40...45...50...55...60...65...70...75...80
IF GT  582 02 C16
 
Now the records with 7, 10 and 11 perform the MOVExx because List Conversion Plus is able to compare these properly.

This explanation would also apply to the following parameters:
IF EQ
IF GTE
IF LT
IF LTE
IF NEQ