Versions Compared

Key

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

...


/* プログラム      : UD@P411                                       */
/* -------                                                         */
/* 組み込み関数名 : システム値の取得                               */
/* ------------                                                    */
/* 作成日 : 03/10/91                                            */
/* ------------                                                    */
/* 作成者       : Johnny Programmer                                */
/* ------                                                          */
/* 記述 : システム値を返すプログラム               */
/* -----------                                                     */
/*                                                                 */
/*=================================================================*/
/* パラメータ リスト仕様                                 */
/*=================================================================*/
/*                                                                 */
/*  入力パラメータ リスト                                          */
/*  --------------------                                           */
/*                                                                 */
/*  固定パラメータ (すべての組み込み関数)                     */
/*  -----------------------------------------                      */
/*                                                                 */
/*      DC@IDS : 標準の情報データ構造               */
/*      DC@EDS : 標準の交換データ構造                 */
/*      PR@IDS : 標準のプロセス情報データ構造       */
/*                                                                 */
/*  変数の引数と戻り値 (DC@F48 定義より)   */
/*  -------------------------------------------------------------  */
/*                                                                 */
/*      B$411A : 組み込み関数の引数記述子 数値 A    */
/*      B@411A : 取得するシステム値                               */
/*      B$411B : 組み込み関数の戻り値記述子番号     */
/*      B@411B : システム値の値                             */
/*=================================================================*/
 UD@P411: PGM PARM(&DC@IDS &DC@EDS &PR@IDS &B$411A &B@411A &B$411B +
                   &B@411B)
/*=================================================================*/
/*  変数の宣言                                           */
/*=================================================================*/
      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
/*=================================================================*/
/*  グローバル エラー ハンドラー                                   */
/*=================================================================*/

       MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO ARGERR)

/*=================================================================*/
/*  プログラム メイン行                                           */
/*=================================================================*/

/* フィールドの設定とデータ構造から一部をマッピング ....    */

            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)

/* 当初の結果は "正常に" 戻されることが前提 ....  */

            CHGVAR     &DC@RET 'Y'

/* 必須の評価/アクションの実行.......          */

/* システム値の取得                                       */

       RTVSYSVAL SYSVAL(&B@411A) RTNVAR(&B@411B)
        MONMSG  (CPF0000 MCH0000)
  /* プログラム処理ロジックの終わり                               */

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 :プログラムに引き渡された引数のエラー処理。 */
/*        呼び出し元は、このロジックの実行前にエラーの原因を反映    */
/*        させるため DC@MID と DC@MVR を設定します。    */
/*        このロジックが起動されると、プログラム全体が終了されます。*/
/*        これで、RDML プログラムの呼び出しはエラーとなり、   */
/*         DC@MID/DC@MVR 内のエラー詳細を示すメッセージが表示されます。*/
/*==================================================================*/
ARGERR:

/* 呼び出し元に返す追加メッセージをすべて転送   */

             CALL       PGM(DC@P9007) PARM(&$PGMNM &PR@PGM)
             MONMSG     (CPF0000 MCH0000)

/* "不正な" 戻りコードを設定 ....                                   */

             CHGVAR &DC@RET 'N'
             MONMSG     (CPF0000 MCH0000)

/* 呼び出し元のプログラムに制御を戻す ....                        */

             GOTO ENDPGM

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