6.4.4 送信編集UOC
機能
テスト対象システムへ電文送信時にUOCを実行します。テスト対象システムへ送信する要求電文の編集を行うことが出来ます。
形式
ANSI C、C++の形式
#include <esrpc.h> ESLONG uoc_func(ESRPC_UOC_REQUEST_TBL *parm)
説明
テスト対象システムへ電文送信時に呼び出されるUOCです。テスト対象システムへ電文送信時に呼び出されるUOCです。
各実行形態と入力電文によるUOC実行の有無を以下の表に示します。
- |
本番環境 |
テスト環境 |
||
---|---|---|---|---|
要求電文 |
応答電文 |
要求電文 |
応答電文 |
|
並行実行 |
○ |
× |
× |
× |
蓄積実行 |
× |
× |
× |
× |
並行+蓄積実行 |
○ |
× |
× |
× |
リプレイ実行 |
○ |
× |
× |
× |
PCAP実行 |
○ |
× |
× |
× |
- 凡例
-
○:UOCが実行される
×:UOCは実行されない
ユーザオウンコーディング(UOC)が起動される入力電文は、RPC電文とRAPのAPI代理実行電文です。
システムテスト支援は、uoc_func(送信編集UOC)を呼び出すとき、次に示す所定のパラメタをparmに設定します。「uoc_func」部分には、システム内で一意の名称を指定してください。
パラメタの内容
ESRPC_UOC_REQUEST_TBLのパラメタ内容
typedef struct es_rpc_uoc_request { ESULONG running_mode; ………… 実行形態 ESLONG protocol_type; ………… プロトコル種別 ESLONG telegram_type; ………… 電文種別 ESLONG rpc_model; ………… RPC形態 char group[32]; ………… サービスグループ名 char service[32]; ………… サービス名 char *in; ………… 要求データアドレス ESULONG in_len; ………… 要求データ長 ESULONG out_len; ………… 応答データ長 char *edit_in; ………… 編集要求データアドレス ESCOM_AREA usr_clt_area; ……… クライアント単位ユーザ領域 } ESRPC_UOC_REQUEST_TBL;
ESCOM_AREAのパラメタ内容
typedef struct es_com_area { ESULONG size; ………………… 領域サイズ char reserve[4]; ………………… 予備領域 char *data; ………………… 領域先頭アドレス } ESCOM_AREA;
システムテスト支援が設定するパラメタ項目
- running_mode
-
実行形態を設定します。実行形態が複数の場合は論理和で設定します。
ESCLT_RUNMODE_P:並行実行
ESCLT_RUNMODE_A:蓄積実行
ESCLT_RUNMODE_R:リプレイ実行
ESCLT_RUNMODE_C:PCAP実行
- protocol_type
-
プロトコル種別を設定します。
ESRPC_TYPE_RPC:rpc
ESRPC_TYPE_RAP:rap
- telegram_type
-
電文種別を設定します。
ESRPC_TELEGRAM_REQUEST:要求電文
- rpc_model
-
RPC形態を設定します。
ESRPC_MODEL_NOFLAGS:同期応答型
ESRPC_MODEL_NOWAIT:非同期応答型
ESRPC_MODEL_NOREPLY:非応答型
- group
-
既存システムのRPCの引数に指定したサービスグループ名称を設定します。
- service
-
既存システムのRPCの引数に指定したサービス名称を設定します。
- in
-
既存システムのRPCの引数に指定した要求データの先頭アドレスを設定します。
- in_len
-
既存システムのRPCの引数に指定した要求データの長さを設定します。
- out_len
-
既存システムのRPCの引数に指定した応答データの長さを設定します。
- edit_in
-
テスト対象システムへ送信するデータの先頭アドレスを設定します。
- usr_clt_area
-
クライアント識別子単位で共有するユーザ領域を設定します。
各メンバには以下の値を設定します。
-
領域サイズ
クライアント単位ユーザ領域のサイズを設定します。
-
ユーザ領域先頭アドレス
クライアント単位ユーザ領域の先頭アドレスを設定します。
対象の領域が当該クライアントで新規に割り当てられた場合、クライアント単位ユーザ領域はすべて0で初期化されています。
-
ユーザが設定するパラメタ項目
- group
-
テスト対象システムのサービスグループ名称を設定してください。
- service
-
テスト対象システムサービス名称を設定してください。
- in_len
-
テスト対象システムへ送信するデータの長さを設定してください。
- out_len
-
テスト対象システムから受け取る応答データの長さを設定してください。
- edit_in
-
編集後のユーザデータを設定してください。
リターン値
次のコードでリターン値を設定してください。
- ESRPC_UOC_OK
-
ユーザが編集した内容を使って、送信します。
- ESRPC_UOC_OK_IN
-
編集する前の内容を使って、送信します。
- ESRPC_UOC_NG
-
対象メッセージを送信しません。
- 上記以外
-
指定リターン値以外でリターンした場合、対象メッセージを送信しません。
注意事項
編集前要求データアドレスで編集を行った場合、要求電文およびその後の処理の保証はしません。
編集後要求データアドレスに8Mbyteを超えるデータを格納した場合、要求電文その後の処理は保証しません。
編集前後要求データ長、または編集前後応答データ長に0以下、または8MBを超える値が設定されている場合はエラーと見なし、要求電文を送信しません。