業務共通制御の例外情報は構造体で宣言されます。業務共通制御の例外を設定する際には、各業務共通制御内で、例外情報の領域を獲得して使用してください。
なお、例外情報を返却する際には、業務共通制御の復帰値に異常(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 );
} |