Had the same issue so some time back I wrote a CLLE.  in a nutshell it will
create an out file of all of the devices and anything not used in the past
90 days delete them.  We run this monthly.
Just to save time here is the code, I don't think anything is proprietary.
               PGM
  /*
*********************************************************************** */
  /* Kerwin Crawford  2018/06/26
  */
  /*     Remove old device descriptions done due to the limitations of
  */
  /*     s36 device name  based on 90 days in past
  */
  /*
*********************************************************************** */
  /*
####################################################################### */
  /*
======================================================================= */
             /* Define Varables
-------------------------------------------- */
             /* System information etc  */
             DCL        VAR(&CURUSR) TYPE(*CHAR) LEN(10)
             DCL        VAR(&DATETIME) TYPE(*CHAR) LEN(20) /* +
                          CCYYMMDDHHNNSSXXXXXX */
             DCL        VAR(&HHMMSS) TYPE(*CHAR) LEN(6)
             DCL        VAR(&CCYYMMDD) TYPE(*CHAR) LEN(8)
             DCL        VAR(&YYMMDD) TYPE(*CHAR) LEN(6)
             DCL        VAR(&wrk_yymmdd) TYPE(*CHAR) LEN(6)
             DCL        VAR(&CUTOFF) TYPE(*DEC) LEN(8 0)
             DCL        VAR(&CUTOFFA) TYPE(*CHAR) LEN(8)
             DCL        VAR(&LILIAN) TYPE(*CHAR) LEN(4)
             DCL        VAR(&JUNK1) TYPE(*CHAR) LEN(8)
             DCL        VAR(&JUNK2) TYPE(*CHAR) LEN(23)
             DCL        VAR(&WDATE) TYPE(*CHAR) LEN(8)
  /*
####################################################################### */
  /*
======================================================================= */
             DCLF       FILE(QS36F/wrkclndevd) RCDFMT(QLIDOBJD) +
                          ALWNULL(*YES)
  /*
####################################################################### */
  /*
======================================================================= */
             /* Get Sytem Information
-------------------------------------- */
             RTVJOBA    CURUSER(&CURUSR) DATETIME(&DATETIME)
             CHGVAR     VAR(&CCYYMMDD) VALUE(%SST(&DATETIME 1 8))
             CHGVAR     VAR(&YYMMDD) VALUE(%SST(&DATETIME 3 6))
             CHGVAR     VAR(&HHMMSS) VALUE(%SST(&DATETIME 9 6))
  /* =============================================================== */
  /* |vvv                                                        vvv */
  /* |   Get cutoff date                                             */
  /* |   Get local time from system:   When this call is  complete,  */
  /* |       &LILIAN will contain the number of days between         */
  /* |       today and Oct 14, 1582.                                 */
             CALLPRC    PRC(CEELOCT) PARM(&LILIAN &JUNK1 &JUNK2 *OMIT)
  /* | Subtracting 90 from &LILIAN will produce cutoff date          */
             CHGVAR     VAR(%BIN(&LILIAN)) VALUE(%BIN(&LILIAN) - 90)
  /* | Convert lillian to yymmdd date                                */
             CALLPRC    PRC(CEEDATE) PARM(&LILIAN 'YYMMDD' &WDATE *OMIT)
             CHGVAR     VAR(&CUTOFF) VALUE(&WDATE)
             CHGVAR     VAR(&CUTOFFA) VALUE(&WDATE)
  /* |^^^                                                        ^^^ */
  /* =============================================================== */
  /*
####################################################################### */
  /*
======================================================================= */
  /* create/populate the work file
----------------------------------------- */
             DSPOBJD    OBJ(*ALL/*all) OBJTYPE(*DEVD) OUTPUT(*OUTFILE) +
                          OUTFILE(qs36f/wrkclndevd) OUTMBR(*FIRST *REPLACE)
  /*
####################################################################### */
  /*
======================================================================= */
  /* read the work file
---------------------------------------------------- */
 GETNEXTROW:
             RCVF
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(THEEND))
             CHGVAR     VAR(&WRK_YYMMDD) VALUE(%SST(&ODUDAT 5 2) *TCAT +
                          %SST(&ODUDAT 1 2) *TCAT %SST(&ODUDAT 3 2))
             if         cond(&odobtp *eq '*DEVD') then(do)
                if         cond(&odobat *eq 'DSPVRT') then(do)
                   IF         COND(&WRK_YYMMDD *LE &cutoffa) THEN(DO)
                      VRYCFG     CFGOBJ(&ODOBNM) CFGTYPE(*DEV) STATUS(*OFF)
                      MONMSG     MSGID(CPF26AF CPF26B6 CPF26B7 CPF2640 +
                                   CPF2659)
                      DLTDEVD    DEVD(&ODOBNM)
                      MONMSG     MSGID(CPF2114 CPF2668)
                   enddo      /* how long scence the last usage */
                enddo      /* is it a display device */
             enddo      /* is it a device */
             GOTO       CMDLBL(GETNEXTROW)
  /*
####################################################################### */
  /*
======================================================================= */
  /* End the Program
------------------------------------------------------- */
 THEEND:     ENDPGM
On Fri, Aug 18, 2023 at 9:27 AM Rob Berendt <robertowenberendt@xxxxxxxxx>
wrote:
Object      Type      Library
QS36ENV     *S36      #LIBRARY
I'm not seeing any APIs for that beast.
On Fri, Aug 18, 2023 at 9:11 AM DEnglander--- via MIDRANGE-L <
midrange-l@xxxxxxxxxxxxxxxxxx> wrote:
In the System/36 environment there is an IBM i to S/36 device ID table.
Command is CHGS36 then take S/36 display IDs. Then a list is shown of the
equivalencies. Does anyone know how to get that list sorted by I5/OS
Display ID instead of S/36 ID?
Or, does anybody know where that is stored so I could possibly use SQL to
sort the list?
We have hundreds of entries and the table filled up yesterday, and it is
alot easier to maintain it when sorted by i5/OS ID.
Thank you,
Doug
"CONFIDENTIALITY NOTICE:  This e-mail transmission (and/or the
attachments
accompanying it) contain confidential information belonging to the
sender.
The information is intended only for the use of the intended recipient.
If
you are not the intended recipient, you are hereby notified that any
disclosure, copying, distribution or the taking of any action in reliance
on the contents of the information is strictly prohibited.  Any
unauthorized interception of this transmission is illegal under the law.
If you have received this transmission in error, please promptly notify
the
sender by reply e-mail, and then destroy all copies of the transmission."
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
As an Amazon Associate we earn from qualifying purchases.