How does the list if work for the EXPIRE field on logonids?
search cancel

How does the list if work for the EXPIRE field on logonids?

book

Article ID: 208692

calendar_today

Updated On:

Products

ACF2

Issue/Introduction

Why does LIST IF(EXPIRE LE ...) return all LIDs even when they have no EXPIRE?
If LIST IF is bound with a date on both sides the command works
ACF                                                                                        
list if((expire ge u'01/01/18') and (expire le u'02/21/21'))                                
  ACFMODEL             ********ACFMODEL         ACFMODEL TEST LID 

If LIST IF is using equal to the command works
ACF
list if(expire eq u'02/21/21')                                                      
  ACFMODEL             ********ACFMODEL         ACFMODEL TEST LID   

However, when only using the less than or equal to operand ACF2 returns logonids with the expire date less than or equal to the date and logonids without an EXPIRE field.

list if(expire le u'02/21/21')                                                              
  AAAAUSER             ********AAAAUSER         AAAATESTUSER                                
  AAAAUSER             ********AAAAUSER         AAAATESTUSER                                
  AAAUSER              ********AAAUSER          THIS IS AAAUSER                             
  ABBUSER                ********ABBUSER            ABBUSER                               
  ABCDEFGH             ********ABCDEFGH         TEST 8CHAR NAME
  ACFMODEL             ********ACFMODEL         ACFMODEL TEST LID

Environment

Release : 16.0

Component : CA ACF2 for z/OS

Resolution

The EXPIRE field is stored on the logonid. Every logonid will have a value. That value is at offset hex 'E0'. When you look at the value stored in the field it will be '0' if null or EXPIRE(0) was specified. If a date has been specified it will be stored in packed Julian date format. For example, February 21, 2021 would be stored as x'0121052C'. The LIST IF command for date 02/21/21 is 'LIST IF(EXPIRE LE u'02/21/21')'. CA ACF2 compares the packed value to the value in the logonid. It does not exclude the case when EXPIRE field is set to zero.

To list logonids that less than or equal to an EXPIRE date, enter a greater than EXPIRE date of '0'. To remove logonids that have a value of zero from the results, issue the CA ACF2 LIST if command 'LIST IF(EXPIRE LE u'02/21/21' and expire gt u'0')'.