×
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 4/12/2013 4:11 PM, Stone, Joel wrote:
I would like to build a command to return sysName and libName.
...
I would like the following to be functional:
GetEnvr &sysname &libname
Also
GetEnvr libname(&libname)
If I may put in a plug for RPG, with RPG you can check in advance 
whether the parameter was passed, rather than monitoring for exceptions.
This version requires 7.1, to skip coding a prototype and to use %parmnum.
D              pi
D  sysname                10a     options(*nopass)
D  libname                10a     options(*nopass)
   if  %parms >= %parmnum(sysname)
   and %addr(sysname) <> *null;
      ... set sysname
   endif;
   if  %parms >= %parmnum(libname)
   and %addr(libname) <> *null;
      ... set libname
   endif;
This version works with any release. A bit more code, a bit less 
self-documenting, but still easier than monitoring for messages in CL.
D mypgm           pr
D  sysname                      10a   options(*nopass:*omit)
D  libname                      10a   options(*nopass:*omit)
D mypgm           pi
D  sysname                      10a   options(*nopass:*omit)
D  libname                      10a   options(*nopass:*omit)
D SYSNAME_NUM     c                   1
D LIBNAME_NUM     c                   2
 /free
    if %parms() >= SYSNAME_NUM
    and %addr(sysname) <> *null;
      ... set sysname
    endif;
    if %parms() >= LIBNAME_NUM
    and %addr(libname) <> *null;
      ... set libname
    endif;
    return;
As an Amazon Associate we earn from qualifying purchases.