× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On Thu, 16 Aug 2001, Mike Naughton wrote:
>
> Does anyone have an example of using the QDCRCFGS API that they'd be
> willing to share? I'd be interested in either RPG(LE) or CL.
> 

Here, I whipped up an example for you...   I wasn't sure what you
wanted to use the API for, so I just displayed a bunch of stuff...

Compile with:  CRTBNDRPG PGM(xxx) SRCFILE(XXX/xxx) DBGVIEW(*LIST)
    run with:  CALL XXX PARM('*DEVD' 'DSP01')  (or whatever you like)

you can take it from there...

     H DFTACTGRP(*NO) ACTGRP(*NEW) OPTION(*SRCSTMT)

     D RtvCfgSts       PR                  ExtPgm('QDCRCFGS')
     D  RcvVar                    32766A   options(*varsize)
     D  RcvVarLen                    10I 0 const
     D  Format                        8A   const
     D  CfgDType                     10A   const
     d  CfgDName                     10A   const
     D  ErrorCode                 32766A   options(*varsize)

     D p_ds1           S               *
     D ds1             DS                  based(p_ds1)
     D  ds1BytesRtn                  10I 0
     D  ds1BytesAvl                  10I 0
     D  ds1Status                    10I 0
     D  ds1DateRtv                    7A
     D  ds1TimeRtv                    6A
     D  ds1StatusTxt                 20A
     D  ds1JobName                   10A
     D  ds1JobUser                   10A
     D  ds1JobNbr                     6A
     D  ds1PassThr                   10A
     D  ds1Reserv1                    3A
     D  ds1OffActCnv                 10I 0
     D  ds1NbrActCnv                 10I 0
     D  ds1LenActCnv                 10I 0
     D  ds1OffMulJob                 10I 0
     D  ds1NbrMulJob                 10I 0
     D  ds1LenMulJob                 10I 0

     D p_ds2           S               *
     D ds2             DS                  based(p_ds2)
     D  ds2CnvSts                    10I 0
     D  ds2CnvStsTxt                 20A
     D  ds2CnvStsMod                 10A
     D  ds2CnvStsJob                 10A
     D  ds2CnvStsUsr                 10A
     D  ds2CnvStsNbr                  6A

     D p_ds3           S               *
     D ds3             DS                  based(p_ds3)
     D  ds3MultJob                   10A
     D  ds3MultUser                  10A
     D  ds3MultNbr                    6A

     D dsEC            DS
     D  dsECBytesP             1      4I 0 inz(256)
     D  dsECBytesA             5      8I 0 inz(0)
     D  dsECMsgID              9     15
     D  dsECReserv            16     16
     D  dsECMsgDta            17    256

     D p_workspace     S               *
     D workspace       S              1A   based(p_workspace)
     D size            S             10I 0
     D Msg             S             52A
     D X               S             10I 0
     D pause           S              1A

     c     *entry        plist
     c                   parm                    CfgType          10
     c                   parm                    CfgName          10

     c                   eval      *inlr = *on

     C* Reserve space for up to 200 active convs & 200 multjobs...
     c                   eval      size = %size(ds1) + (%size(ds2)*200) +
     c                                 (%size(ds3)*200)
     c                   alloc     size          p_workspace

     C* Call Retrieve Cfg Status API:
     c                   callp     RtvCfgSts(workspace: size: 'CFGS0100':
     c                                CfgType: CfgName: dsEC)
     c                   if        dsECBytesA > 0
     c                   eval      Msg = 'QDCRCFGS failed with ' +
     c                                 dsECMsgID
     c                   dsply                   Msg
     c                   return
     c                   endif

     c                   eval      p_ds1 = p_workspace

     C** Show status of cfg descr:
     c                   eval      Msg = 'Status = ' + ds1StatusTxt
     c     Msg           dsply

     C** Show job using cfg descr:
     c                   if        ds1JobName <> *blanks
     c                   eval      Msg = 'Job = ' + %trimr(ds1JobName) +
     c                                  '/' + %trimr(ds1JobUser) + '/' +
     c                                  ds1JobNbr
     c     Msg           dsply
     c                   endif

     C** Show any active conversations:
     c                   do        ds1NbrActCnv  X
     c                   eval      p_ds2 = p_workspace + ds1OffActCnv +
     c                               ((X-1) * ds1LenActCnv)
     c                   eval      Msg = 'ActCnv ' + %trim(%editc(X:'Z'))
     c                              + ' status = ' + ds2CnvStsTxt
     c     Msg           dsply
     c                   eval      Msg = 'ActCnv ' + %trim(%editc(X:'Z')) +
     c                              ' job = ' + %trimr(ds2CnvStsJob) +
     c                              '/' + %trimr(ds2CnvStsUsr) + '/' +
     c                              ds2CnvStsNbr
     c     Msg           dsply
     c                   enddo

     C** If this device can be used by multiple jobs,
     C**  show them all now:
     c                   do        ds1NbrMulJob  X
     c                   eval      p_ds2 = p_workspace + ds1OffMulJob +
     c                               ((X-1) * ds1LenMulJob)
     c                   eval      Msg = 'MultJob ' + %trim(%editc(X:'Z')) +
     c                              ' = ' + %trimr(ds3MultJob) +
     c                              '/' + %trimr(ds3MultUser) + '/' +
     c                              ds3MultNbr
     c     Msg           dsply
     c                   enddo

     c                   dsply                   pause

     c                   return



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.