     H OPTION(*NODEBUGIO:*SRCSTMT)
      *****************************************************************
      * Program ID    : RTVUSRINFR                                    *
      * Purpose       : Call API QSYRUSRI                             *
      * Author        : Tim De porte                                  *
      *****************************************************************

     ****************************************************************
     * Data Definitions for API QSYRUSRI
     ****************************************************************
     D QSYI0300        DS                  Based(ReceivePtr)

     D QSYBRTN02               1      4B 0                                      Bytes Returned
     D QSYBAVL02               5      8B 0
     D QSYUP03                 9     18
     D QSYPS00                19     31
     D QSYRSV103              32     32
     D QSYSN00                33     36B 0
     D QSYUS02                37     46
     D QSYPD02                47     54
     D QSYNP00                55     55
     D QSYRSV203              56     56
     D QSYPI01                57     60B 0
     D QSYPD03                61     68
     D QSYPD04                69     72B 0
     D QSYPE00                73     73
     D QSYUC00                74     83

     * Special Authority Flags
     D SpecAuth               84     91    DIM(8)
     D  QSYAOBJ01             84     84
     D  QSYSA05               85     85
     D  QSYJC01               86     86
     D  QSYSC01               87     87
     D  QSYSS02               88     88
     D  QSYRVICE01            89     89
     D  QSYAUDIT01            90     90
     D  QSYISC01              91     91
     D  QSYERVED10            92     98

     D QSYGP02                99    108
     D QSYOWNER01            109    118
     D QSYGA00               119    128
     D QSYAL04               129    138
     D QSYCLIB               139    148
     D QSYNAME14             149    158
     D QSYBRARY14            159    168
     D QSYBRARY15            179    188
     D QSYLC00               189    198
     D QSYTD                 199    248
     D QSYDS00               249    258
     D QSYLDS                259    268
     D QSYKB                 269    278
     D QSYRSV300             279    280
     D QSYMS                 281    284B 0
     D QSYSU                 285    288B 0
     D QSYSP                 289    289
     D QSYNAME16             290    299
     D QSYBRARY16            300    309
     D QSYAC                 310    324
     D QSYNAME17             325    334
     D QSYBRARY17            335    344
     D QSYMD                 345    354
     D QSYRSV4               355    356
     D QSYMS00               357    360B 0
     D QSYNAME18             361    370
     D QSYBRARY18            371    380
     D QSYPD05               381    390
     D QSYSE                 391    400
     D QSYNAME19             401    410
     D QSYBRARY19            411    420
     D QSYLI                 421    430
     D QSYCI                 431    440
     D QSYCCSID00            441    444B 0

     * User options
     D UserOpt               445    451    Dim(7)
     D  QSYSK00              445    445
     D  QSYSD00              446    446
     D  QSYFH00              447    447
     D  QSYSS03              448    448
     D  QSYNS00              449    449
     D  QSYRK00              450    450
     D  QSYPM00              451    451
     D  QSYERVED11           452    480

     D QSYNAME20             481    490
     D QSYBRARY20            491    500
     D QSYOBJA18             501    510

     * User Action Audit Level
     D UserAct               511    523    DIM(13)
     D  QSYCMDS00            511    511
     D  QSYREATE00           512    512
     D  QSYELETE00           513    513
     D  QSYJD01              514    514
     D  QSYOBJM07            515    515
     D  QSYOS00              516    516
     D  QSYPGMA00            517    517
     D  QSYSR00              518    518
     D  QSYURITY00           519    519
     D  QSYST00              520    520
     D  QSYSFILD00           521    521
     D  QSYSM00              522    522
     D  QSYTICAL00           523    523
     D  QSYERVED12           524    574

     D QSYGAT00              575    584
     D QSYSGO00              585    588B 0
     D QSYSGNBR02            589    592B 0
     D QSYUID                593    596B 0
     D QSYGID                597    600B 0
     D QSYHDO                601    604B 0
     D QSYHDL                605    608B 0
     D QSYLJA                609    624
     D QSYLO                 625    628B 0
     D QSYLL                 629    632B 0
     D QSYGMI03              633    633
     D QSYDCI                634    634
     D QSYCC                 635    644
     D QSYasudO              645    648B 0
     D QSYasudN              649    652B 0
     D QSYasudrO             653    656B 0
     D QSYasudrN             657    660B 0

     D QSYSGN02        DS                  Based(SupGrpPtr)
     D   suppg                       10    DIM(15)

     D Receiver1       DS
     D  BytesRtn1                    10i 0
     D  BytesAvl1                    10i 0

     * Standard Error Code data structure
     D QUSEC           DS           116    inz
     D  QUSBPRV                1      4B 0 inz(116)
     D  QUSBAVL                5      8B 0 inz(0)
     D  QUSEI                  9     15
     D  QUSERVED              16     16
     D  QUSED01               17    116

     * Work Fields
     D FormatName      S              8    inz('USRI0300')
     D pUsrProfile     s             10
     D ReceiveLen      S             10i 0
     D SgDsp           s             10
     D OI              S              4  0

     * Entry Parameters
     D USID            S             10
     D PRVSIGNON       S             13
     D ATTEMPS         S              8
     D STATUS          S             10
     D PWDCHGDTE       S              8
     D PWDEXPITV       S              8
     D PWDEXPDTE       S              8
     D PWDREMDAY       S              8
     D USERNAME        S             50
     D MSGID           S              7
     D MSGDTA          S            100

     ****************************************************************
     * Data Definitions for API QSYRUSRI
     ****************************************************************
     C     *ENTRY        Plist
     C                   Parm                    USID
     C                   Parm                    PRVSIGNON
     C                   Parm                    ATTEMPS
     C                   Parm                    STATUS
     C                   Parm                    PWDCHGDTE
     C                   Parm                    PWDEXPITV
     C                   Parm                    PWDEXPDTE
     C                   Parm                    PWDREMDAY
     C                   Parm                    USERNAME
     C                   Parm                    MSGID
     C                   Parm                    MSGDTA

     C***                If        USID = *blanks
     C***                Eval      QUSEI = 'CPF9999'
     C***                Return
     C***                EndIf

     C                   Call      'QSYRUSRI'
     C                   Parm                    Receiver1
     C                   Parm      8             ReceiveLen
     C                   Parm                    FormatName
     C                   Parm      USID          pUsrProfile
     C                   Parm                    QUSEC

     * QUSEI is blank unless there is an error
     C                   If        QUSEI <> *blanks

     C                   Eval      MSGID  = QUSEI
     C                   Eval      MSGDTA = QUSED01

     C                   Else

     * Allocate enough storage for receiver
     * If a bad profile is passed to this program there will be a
     * 'length requested for storage allocation is out of range' error
     * (error RNQ0425) passing a lower case profile that caused this.
     c                   Alloc     BytesAvl1     ReceivePtr

     C                   Call      'QSYRUSRI'
     C                   Parm                    QSYI0300
     C                   Parm      BytesAvl1     ReceiveLen
     C                   Parm                    FormatName
     C                   Parm                    pUsrProfile
     C                   Parm                    QUSEC

     * .                Previous Sign-on Date/Time
     C                   Eval      PRVSIGNON = QSYPS00
     * .                Bad Sign-on Attempts
     C                   Eval      ATTEMPS   = %Char(QSYSN00)
     * .                User Status
     C                   Eval      STATUS    = QSYUS02
     * .                Password Change Date
     C                   Eval      PWDCHGDTE = QSYPD02
     * .                Password Expiration Interval
     C                   Eval      PWDEXPITV = %Char(QSYPI01)
     * .                Password Expiry Date
     C                   Eval      PWDEXPDTE = QSYPD03
     * .                Days until password expires
     C                   Eval      PWDREMDAY = %Char(QSYPD04)
     * .                User Name
     C                   Eval      USERNAME  = QSYTD

     C                   EndIf

     C                   Eval      *INLR = *on
