Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The next available identifier at this site is 411.

BIF Definition  (as per DC@F47 file)

BIF Name:

UD_GET_SYSTEM_VALUE

Unique Identifier:

411

Description:

Retrieve a system value

Call or Execute:

C     (C or E)

Program Name:

UD@P411

Terminates between calls:

N     (Y or N)

Number of arguments:

1

Number of return values:

1

BIF Arguments  (as per DC@F48 file)

BIF Name:

UD_GET_SYSTEM_VALUE

Parameter Type

ARG

Parameter Sequence:

1

Parameter Number:

1

Parameter Identifier:

A

Description:

Name of system value

Required / Optional:

R    (R or O)

Parameter Type:

A    (A, N or L)

Minimum Length:

1

Maximum Length:

10

Minimum Decimal:


Maximum Decimal:


Pass Length:

10

Pass Decimal:


Default:


BIF Return Values  (as per DC@F48 file)

BIF Name:

UD_GET_SYSTEM_VALUE

Parameter Type

RET

Parameter Sequence:

1

Parameter Number:

2

Parameter Identifier:

B

Description:

Value of system value

Required / Optional:

R     (R or O)

Parameter Type:

A     (A, N or L)

Minimum Length:

1

Maximum Length:

256

Minimum Decimal:


Maximum Decimal:


Pass Length:

256

Pass Decimal:


Enter the data into the Built-In Function definition files:

     /*

...

 Program      :

...

 UD@P411                                          */
/*

...

 -------                                                         */
/*

...

 Builtin name : Get a system value                               */
/*

...

 ------------                                                    */
/*

...

 Date written : 03/10/91                                         */
/*

...

 ------------                                                    */
/*

...

 Author       : Johnny Programmer                                */
/*

...

 ------                                                          */
/*

...

 Description  : A program to return a system value               */
/*

...

 -----------                                                     */
/*                                                                 */
/*=================================================================*/
/*

...

 Parameter list specifications                                   */
/*=================================================================*/
/*                                                                 */
/*

...

  Entry parameter list                                           */
/*  --------------------                                           */
/*                                                                 */
/*

...

  Fixed parameters (all built-in functions)                      */
/*  -----------------------------------------                      */
/*                                                                 */
/*

...

      DC@IDS : Standard Information data structure               */
/*

...

      DC@EDS : Standard exchange data structure                  */
/*

...

      PR@IDS : Standard process information data structure       */
/*                                                                 */

...

     /*  Variable arguments and return values as per DC@F48 definition  */
/*  -------------------------------------------------------------  */
/*                                                                 */
/*

...

      B$411A :

...

 Built-in function argument descriptor number A.   */
/*

...

      B@411A : System value to get                               */
/*

...

      B$411B :

...

 Built-in function return value descriptor no.     */
/*

...

      B@411B : Value of system value                             */
/*=================================================================*/
 UD@P411:

...

 PGM PARM(&

...

DC@IDS &

...

DC@EDS &

...

PR@IDS &

...

B$411A &

...

B@411A &

...

B$411B +
                   &B@411B)
/*=================================================================*/
/*

...

  Variable declarations                                          */
/*=================================================================*/

...

           DCL &DC@IDS *CHAR  1024

...

           DCL &DC@EDS *CHAR  1024

...

           DCL &PR@IDS *CHAR  1024

...

    
      DCL &B$411A *CHAR     4

...

           DCL &B@411A *CHAR    10

...

           DCL &B$411B *CHAR     4

...

           DCL &B@411B *CHAR   256

...


      DCL &$PGMNM *CHAR    10

...

           DCL &PR@PGM *CHAR    10

...

           DCL &PR@B@N *CHAR     3

...

           DCL &PR@B@A *CHAR     1

...

           DCL &DC@RET *CHAR     1

...

           DCL &DC@MID *CHAR     7

...

           DCL &DC@MVR *CHAR   132
/*=================================================================*/
/*

...

  Global error handler                                           */
/*=================================================================*/

...


       MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO ARGERR)

/*=================================================================*/
/*

...

  Program mainline                                               */
/*=================================================================*/

...


/* Set up some fields and map some from the data structures ....   */

            CHGVAR     &$PGMNM   'UD@P411'

...

                 CHGVAR     &PR@PGM   %SST(&

...

PR@IDS 424 10)

...

                 CHGVAR     &PR@B@N   %SST(&

...

PR@IDS 157  3)
            CHGVAR     &PR@B@A   %SST(&

...

PR@IDS 160  1)

/*

...

 Initially assume that a "good"

...

 return will be the result ....   */

            CHGVAR     &

...

DC@RET 'Y'

/*

...

 Perform the required evaluation / action .......                */

/*

...

 Retrieve the system value                                       */

...


       RTVSYSVAL SYSVAL(&B@411A)

...

 RTNVAR(&B@411B)
        MONMSG  (

...

CPF0000 MCH0000)
  /*

...

 End of program processing logic                               */

ENDPGM:

...

      CHGVAR %SST(&

...

DC@EDS 38   1)

...

 &DC@RET

...

                  CHGVAR %SST(&

...

DC@EDS 39   7)

...

 &DC@MID

...

                  CHGVAR %SST(&

...

DC@EDS 46 132) &DC@MVR
             RETURN

/*==================================================================*/
/*

...

 ARGERR :Handle a detected error in argument(s)

...

 passed to program */

...

     /*        Caller should set DC@MID and DC@MVR to reflect the        */

...

     /*        cause of the error before executing this logic. Note that */

...

     /*        the entire program terminates when this logic is invoked. */

...

     /*        It will cause the calling RDML program to fail and issue  */

...

     /*        the message details returned to it in DC@MID/DC@MVR       */
/*==================================================================*/
ARGERR:

...


/* Route messages any additional messages back to the caller .....  */

...


             CALL       PGM(DC@P9007)

...

 PARM(&

...

$PGMNM &PR@PGM)

...

                  MONMSG     (CPF0000 MCH0000)

/* Set up a "bad" return code ....                                  */

...


             CHGVAR &DC@RET 'N'

...

                  MONMSG     (CPF0000 MCH0000)

/* Return control to the calling program ....                       */

...


             GOTO ENDPGM

/*==================================================================*/
             ENDPGM
/*==================================================================*/