Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Financial Service Platform プログラム作成の手引


8.1.1 コーディング

〈この項の構成〉

(1) コーディング規約

マスク出口ルーチンをコーディングする場合,C言語またはCOBOL2002言語を使います。マスク出口ルーチンでは,TP1/EE,TP1/XTC,TP1/MCP,TP1/FSPのライブラリ関数は使えません。これらが提供する機能を使用した場合の動作は保証しないので注意してください。OSの標準の機能は使えます。コーディング規約については,マニュアル「OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引」およびDBMSのリファレンスマニュアルを参照してください。ただし,次の規約は変更します。

これらに加え,マスク出口ルーチンのコーディング規約として,次を追加します。

なお,編集出力コマンドは,グループ管理表および履歴情報表を参照します。このため,編集出力コマンドが処理対象とする表について,マスク出口ルーチン内で表を削除することはできません。

(2) C言語インタフェース

(a) 形式

#include <eetrn_mer.h>
 
EELONG マスク出口ルーチン名(
     char         *info_pt      /* 履歴情報のアドレス       */
    ,unsigned int info_len      /* 履歴情報長               */
    ,char         *mask_pt      /* マスクパターンのアドレス */
    ,EELONG       flags         /* フラグ                   */
)

(b) 編集出力コマンドが値を設定する引数

info_pt

編集出力する履歴情報のコピーを格納したエリアの先頭アドレスを指定します。この内容を変更しても,マスク対象外部分の編集出力内容に影響しません。

info_len

編集出力する履歴情報長を指定します。

mask_pt

マスクパターンを格納するエリアの先頭アドレスを指定します。履歴情報と同じ長さのエリアであり,バイト単位に履歴情報のマスク有無を示します。設定値を次に示します。

EETRN_MER_ON

マスク対象とします。自動マスク部分に設定します。

EETRN_MER_OFF

マスク対象としません。履歴情報共通インデクスに設定します。

flags

EENOFLAGSを設定します。

(c) マスク出口ルーチンで値を設定する引数

mask_pt

マスク有無を変更したい部分を次の値で変更します。ほかの値を設定すると,コマンドはエラー終了します。その場合の出力例は,「8.1.4 不正なマスクパターンを検知したときの後処理」を参照してください。

EETRN_MER_ON

マスク対象とします。該当する個所のダンプ出力に"*"を出力します。

EETRN_MER_OFF

マスク対象としません。該当する個所のダンプ出力に,値に応じたデータを出力します。

(d) リターン値

EE_OK

コマンドは処理続行します。

EETRN_MER_NG

重大なエラーが発生したので処理を中断します。

(e) 注意事項

C++コンパイラを使用する場合,関数の宣言はextern "C"{…}で囲んでください。コンパイラによって関数のシンボル名がマングルされ,MASKEXTオペランドに指定できない名称になるためです。

(3) COBOL2002言語インタフェース

(a) 形式

IDENTIFICATION DIVISION.
PROGRAM-ID. 一意名1.
LINKAGE SECTION.
01 一意名2 PIC S9(9) USAGE COMP.
01 一意名3 ADDRESS.
01 一意名4 PIC S9(9) USAGE COMP.
01 一意名5 ADDRESS.
01 一意名6 PIC S9(9) USAGE COMP.
PROCEDURE DIVISION USING BY VALUE 一意名3 一意名4 一意名5 一意名6 RETURNING 一意名2.

(b) 編集出力コマンドが値を設定する引数

一意名3

編集出力する履歴情報のコピーを格納したエリアの先頭アドレスを指定します。この内容を変更しても,マスク対象外部分の編集出力内容に影響しません。

一意名4

編集出力する履歴情報長を指定します。

一意名5

マスクパターンを格納するエリアの先頭アドレスを指定します。履歴情報と同じ長さのエリアであり,バイト単位に履歴情報のマスク有無を示します。設定値を次に示します。

(FF)16

マスク対象とします。自動マスク部分に設定します。

(00)16

マスク対象としません。履歴情報共通インデクスに設定します。

一意名6

0を設定します。

(c) マスク出口ルーチンで値を設定する引数

一意名5

マスク有無を変更したい部分を次の値で変更します。ほかの値を設定すると,コマンドはエラー終了します。その場合の出力例は,「8.1.4 不正なマスクパターンを検知したときの後処理」を参照してください。

(FF)16

マスク対象とします。該当する個所のダンプ出力に"*"を出力します。

(00)16

マスク対象としません。該当する個所のダンプ出力に,値に応じたデータを出力します。

(d) リターン値

0:コマンドは処理続行します。

8:重大なエラーが発生したので処理を中断します。

(e) 注意事項

一意名1を,MASKEXTオペランドのマスク出口ルーチン名に記述してください。