Versions Compared

Key

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

[ Image Removed |../../index.htm#lansa/dsnbi_0185.htm]
現在地:

...

制御言語 (CL) のスケルトン

LANSA データ・ライブラリのソースファイル DC@F28 に以下のサンプルのソースコードが提供されています。この名前は通常 DC@DTALIB です。  


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

...


 /*          標準組み込み関数提供者の免責事項         */
 /*=================================================================*/
 /

...

*                                                                    +
        提供者名 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX        +
                                                                       +
      BIF 機能は非常にパワフルで、LANSA で生成されたアプリケーションに対し+
      非常にオープンなインターフェースとなっています。                    +
                                                                       +
      ゆえに、ユーザー定義組み込み関数を定義する場合、   +
      もしくは、代理店提供の組み込み関数を購入する場合も、       +
      自身のシステムに構築したすべての LANSA アプリケーションの +
      整合性、利便性、セキュリティ、保守性、移植性に与える影響に対する    +
      責任はすべてお客様自身にあります。   +
                                                                       +
      製品の代理店(ベンダー)により組み込み関数の定義や保守のサポート  +
      が提供される可能性はありますが、その場合でもこのベンダーには   +
      その機能に関する責任や法的な義務はありません。                      +

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

...


 /*                プログラム基本情報                            */
 /*=================================================================*/
 /*                                                                    +
    Copyright     :

...

 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,

...

 1991.   +
                                                                       +

...


       プログラム名  : XXXXXXX                                            +
                                                                       +
       組み込み関数名: XXXXXXXXXXXXXXXXXXXX                              +
                                                                       +
       作成日   : DD/DD/DD                                           +

...


                                                                       +
       作者名   : XXXXXXXXXXXXXX                                     +
                                                                       +
       説明   : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +
                                                                    */
 /*=================================================================*/

...


 /*                プログラム修正履歴                        */
 /*=================================================================*/
 /

...

*                                                                    +
       参照   日付     修正者氏名     修正内容      +
    ---    ----     ------------   ------------------------------      +
    NNNNN  DD/DD/

...

DD XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  +
    NNNNN  DD/DD/

...

DD XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  +
    NNNNN  DD/DD/

...

DD XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  +
                                                                    */

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

...


 /* エントリー パラメータ リスト仕様                             */
 /*=================================================================*/
 /*                                                                    +

...


        固定パラメータ (すべての組み込み関数)                        +
     -----------------------------------------                         +

...


            DC@IDS :標準の情報データ構造                    +
            DC@EDS :標準の交換データ構造                     +
            PR@IDS : 標準のプロセス情報データ構造           +
        変数の引数と戻り値 (DC@F48 定義より)      +
     -------------------------------------------------------------     +

...


            B$###n : 組み込み関数 引数/

...

戻り値 記述し番号 n                +
            B@###n : 組み込み関数 引数/戻り値 値番号 n             +
                                                                    */
 /*=================================================================*/

  BI@P###:

...

 PGM PARM(&

...

DC@IDS &

...

DC@EDS &PR@IDS)

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

...


 /*                     変数の宣言                       */
 /*=================================================================*/

             DCL        VAR(&DC@IDS)

...

 TYPE(*CHAR)

...

 LEN(1024)
             DCL        VAR(&DC@EDS)

...

 TYPE(*CHAR)

...

 LEN(1024)
             DCL        VAR(&PR@IDS)

...

 TYPE(*CHAR)

...

 LEN(1024)

             DCL        VAR(&$PGMNM)

...

 TYPE(*CHAR)

...

 LEN(10)
             DCL        VAR(&PR@PGM)

...

 TYPE(*CHAR)

...

 LEN(10)
             DCL        VAR(&

...

PR@B@N)

...

 TYPE(*CHAR)

...

 LEN(3)
             DCL        VAR(&

...

PR@B@A)

...

 TYPE(*CHAR)

...

 LEN(1)
             DCL        VAR(&DC@RET)

...

 TYPE(*CHAR)

...

 LEN(1)
             DCL        VAR(&DC@MID)

...

 TYPE(*CHAR)

...

 LEN(7)
             DCL        VAR(&DC@MVR)

...

 TYPE(*CHAR)

...

 LEN(132)
             DCL        VAR(&@COPYR)

...

 TYPE(*CHAR)

...

 LEN(80)

...

 VALUE('(C)

...

   +
                          COPYRIGHT <<組織名は      +
                             ここ>>, 1991. ALL RIGHTS RESERVED')

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

...


 /*                     グローバル エラー ハンドラー       */
 /*=================================================================

...

*/

        MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO ARGERR)

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

...


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

 /

...

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

...

   */

             CHGVAR     &$PGMNM   '??????????'
             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'

 /

...

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

...

            */


      /* プログラム処理ロジックの終わり                            */

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

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

             CHGVAR     VAR(%SST(&

...

@COPYR 80 1))

...

 VALUE('

...

 ')

...


             ENDPGM