Due to the Year 2000 predicament, some dates are considered special. These dates include 0, 99000, 99365, 99366, and 99999, specified in any accepted date format. The concern is treating these dates as special dates to avoid inadvertent selection. Statements using relative operands such as TODAY+7 can select these special dates. Since DSCL normally just does an arithmetic compare, if the current date of TODAY were 2000.001 or higher, never expire dates such as 99365 would be selected.
To avoid this problem in the past, you would have to explicitly code exclusions in most cases. Now, DSCL avoids these special dates automatically. If an operand in the selection criteria is EXPDT, the other operand is checked. If this check resolves into a special date, the operator can only be EQ or NE. Using any other operands is not allowed. The operands themselves must also be single term operands, that is, no multiple term combinations with special dates such as EXPDT, EQ, and 99.365+10 are allowed.
Examples. Remember that any valid forms can be used with Select or Exclude to achieve desired results
EXPDT,GT,0 |
command reject |
EXPDT,NE,0 |
true for all non zero expiration dates including special dates |
EXPDT,LT,99365 |
command reject |
EXPDT,EQ,99365,AND,EXPDT,LT,2100.001 |
valid but false for 99365 or any special date |
EXPDT,EQ,99365,OR,EXPDT,LT,2100.001 |
true for 99365 and any non-special date below 2100 |
EXPDT,LT,2000.001,AND,EXPDT,EQ,0 |
True for all non-special expdts below Y2K and all zero expdts |
EXPDT,GT,TODAY |
True for all non-special expdts from current date to 2155.366 |
EXPDT+10,EQ,TODAY+20 |
Valid command but false for any special dates |
EXPDT+10,NE,99365 |
Command reject |
For improved performance, see F1EXPDT-Format-1 DSCB expiration date.
|
Copyright © 2015 CA Technologies.
All rights reserved.
|
|