業務共通制御の例外情報は構造体で宣言されます。業務共通制御の例外を設定する際には、各業務共通制御内で、例外情報の領域を獲得して使用してください。
なお、例外情報を返却する際には、業務共通制御の復帰値に異常(APFW_CTRL_ERROR)を設定してください。
module apfwctrlmod { interface apfwctrlinf { long ctrl_apl( inout long ctrl_param, /* INOUTパラメタ */ ); }; }; |
int APFW_SET_TARGET( int *ctrl_param, /* INパラメタ *// apfwControlExcept *apfw_ctrlenv ); /* 制御の例外情報 */ |
パラメタ | アプリケーション連携実行基盤から | アプリケーション連携実行基盤へ |
---|---|---|
例外 | - |
|
|
#include "apfwcom.h" #include "apfw_cdr_lib.h" #include "apfwsctrl.h" #include "APFW_SET_TARGET_apfw.h" /* 業務共通制御実行基盤インタフェース生成ツールより生成されるヘッダファイル */ int APFW_SET_TARGET( int *ctrl_param, /* INOUTパラメタ */ apfwControlExcept *apfw_ctrlenv ) /* 制御の例外情報 */ { int data = 100; /* INOUTパラメタ */ *ctrl_param = 0; /* 業務共通制御の例外情報 */ /* 例外情報のエラーコードに値を設定(値は任意) */ apfw_ctrlenv->errcode = -1; /* 例外情報のメッセージに値を設定(値は任意、省略する場合NULLを設定) */ apfw_ctrlenv->errmessage = apfw_c_alloc(14); if( apfw_ctrlenv->errmessage == NULL ){ apfw_ctrlenv->errcode = -1; return APFW_CTRL_ERROR; } strcpy(apfw_ctrlenv->errmessage, "error message" ); /* 例外情報のデータに値を設定 */ /* (値は任意、省略する場合errdata.vallenに0を、errdata.valにNULLを設定) */ apfw_ctrlenv->errdata.arealen = 100; apfw_ctrlenv->errdata.val = apfw_c_alloc(apfw_ctrlenv->errdata.arealen); if( apfw_ctrlenv->errdata.val == NULL ){ apfw_ctrlenv->errcode = -1; return APFW_CTRL_ERROR; } apfw_ctrlenv->errdata.vallen = sizeof(data); memcpy(apfw_ctrlenv->errdata.val, &data, sizeof(data) ); return( APFW_CTRL_ERROR ); } |