Hitachi

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


1.2.9 リモートプロシジャコール(ee_rpc_〜)(C言語)

〈この項の構成〉

(1) ee_rpc_get_bizid

名称

当該トランザクションの業務IDの参照

形式

ANSI C,C++の形式

#include <eerpc.h>
int ee_rpc_get_bizid(char *biz_id, EELONG *biz_type, EELONG flags);
機能

現在のトランザクションの業務ID(オリジナル業務IDまたはカレント業務ID)を参照します。

ee_rpc_set_bizid関数を発行している場合は,ee_rpc_set_bizid関数で設定した業務IDを返します。

UAPで値を設定する引数

biz_id

業務IDを格納する領域を設定します。この領域は17バイト必要です。

biz_type

業務ID設定方法を格納する領域を設定します。

flags

取得する業務IDの種別を指定します。

  • EENOFLAGS

    引き継ぎ用の業務IDを取得します。ユーザ処理によって業務IDの引き継ぎを行う場合は,本オプションで取得した業務IDを使用してください。

    引き継ぎ用の業務IDとは,現在のオリジナル業務IDに通番とノードIDを更新したものです。

  • EERPC_BIZID_MYTRN

    自トランザクションの業務IDを取得します。

カレント業務IDを取得したい場合は,上記のどれかの値に次の値の論理和で指定することで取得できます。

  • EERPC_BIZID_CURRENT

    カレント業務IDを取得します。本値を省略した場合はオリジナル業務IDが取得されます。

TP1/EEから値が返される引数

biz_id

当該トランザクションの業務IDが返されます。

biz_type

当該トランザクションの業務ID設定方法が返されます。

EERPC_BIZID_TP_NEW:新規に業務IDを割り当てた

EERPC_BIZID_TP_CON:既存の業務IDを引き継いだ

EERPC_BIZID_TP_CON_USER:ユーザ指示によって既存の業務IDを引き継いだ

リターン値

リターン値

意味

EE_OK

正常に終了しました。

EECOMER_ENVIRON

TP1/EEの環境下にありません。

EECOMER_CNDUOC

UOCから発行しているため,本機能は使用できません。

EECOMER_CNDBPP

オフラインバッチプロセスから発行しているため,本機能は使用できません。

EERPCER_ARGUMENT

引数に設定した値が間違っています。

EERPCER_CONDITION

発行条件が不正です。

TP1/FSPの環境下にありません。

(2) ee_rpc_set_bizid

名称

当該トランザクションの業務IDの設定

形式

ANSI C,C++の形式

#include <eerpc.h>
int ee_rpc_set_bizid(char *biz_id, EELONG flags);
機能

現在のトランザクションの業務ID(オリジナル業務IDまたはカレント業務ID)を設定します。

本関数によるオリジナル業務IDの設定は同一トランザクション上で2回以上発行することはできません。オリジナル業務IDを変更すると,同時にカレント業務IDも変更されます。

カレント業務IDを設定する場合は同一トランザクション上で2回以上発行することができます。

UAPで値を設定する引数

biz_id

業務IDを格納している領域を設定します。この領域は17バイト必要です。

flags
  • EENOFLAGS

    オリジナル業務IDを設定します。

  • EERPC_BIZID_CURRENT

    カレント業務IDだけを設定します。

リターン値

リターン値

意味

EE_OK

正常に終了しました。

EECOMER_ENVIRON

TP1/EEの環境下にありません。

EECOMER_CNDUOC

UOCから発行しているため,本機能は使用できません。

EECOMER_CNDBPP

オフラインバッチプロセスから発行しているため,本機能は使用できません。

EERPCER_ARGUMENT

引数に設定した値が間違っています。

EERPCER_CONDITION

発行条件が不正です。

TP1/FSPの環境下にありません。

EERPCER_ALREADY

EENOFLAGSを指定したee_rpc_set_bizid関数を同一トランザクション上で2回以上発行しました。

注意事項
  1. 設定した業務IDが正しいかどうかのチェックは行わないため,不正な値を指定した場合,業務IDによるトランザクションの紐づけができなくなります。