履歴検索API
HULFT配信履歴、集信履歴、または要求受付履歴から、検索条件にあった情報を検索するAPIです。
履歴ファイルのフォーマットの詳細は、「履歴ファイルのフォーマット」を参照してください。
構文
int hulrlog( char type, char status, char readmode,char *version,
char *fileID,char *hostname,char search,char *startdate,
char *starttime,char *enddate,char *endtime,char *data,
int maxnum, int *matchnum )
API呼び出し用ライブラリは、HULFT実行モジュール格納ディレクトリ下の“api”ディレクトリに、「libhulapi.a」というファイル(ライブラリ)名で格納されています。
本ライブラリが32ビットモードの場合は、API呼び出しを行うモジュールも32ビットコンパイルされている必要があります。
本ライブラリが64ビットモードの場合は、API呼び出しを行うモジュールも64ビットコンパイルされている必要があります。
なお、コンパイルオプションについては、ご利用のコンパイラ・リンカ付属のマニュアルを参照してください。
パラメータ説明
- char type(IN)
-
検索する履歴の種別を指定
- S
-
: 配信履歴
- R
-
: 集信履歴
- O
-
: 要求受付履歴
- char status(IN)
-
ステータス区分を指定
- A
-
: すべての履歴を対象
- N
-
: 正常終了した履歴のみを対象
- E
-
: 異常が起きた履歴のみを対象
- char readmode (IN)
-
検索順序を指定
- N
-
: 古い履歴順に検索
- R
-
: 新しい履歴順に検索
- char *version(IN)
-
出力したい履歴フォーマットのHULFTのバージョン情報を指定
以下のいずれかを指定します。
-
V07L00
-
V08L00
-
V08L01
-
V08L04
-
- char *fileID(IN)
-
検索したいファイルID、またはサービス名を指定
50バイト以内の文字列で指定します。
省略する場合は、先頭1バイトの値を“0x00”とするか、パラメータにNULLポインタを設定します。
- char *hostname(IN)
-
検索したいホスト名を指定
68バイト以内の文字列で指定します。
省略する場合は、先頭1バイトの値を“0x00”とするか、パラメータにNULLポインタを設定します。
- char search(IN)
-
将来の使用のための予約領域
必ず“E”を指定してください。
- char *startdate(IN)
-
検索範囲の開始日付を指定
8バイトの文字列で指定します。「YYYYMMDD」などの形式で指定します。指定する形式は、システム動作環境設定の日付形式(datefmt)の設定に合わせてください。詳細は、「アドミニストレーション マニュアル」を参照してください。
省略する場合は、先頭1バイトの値を“0x00”とするか、パラメータにNULLポインタを設定します。
- char *starttime(IN)
-
検索範囲の開始時刻を指定
6バイトの文字列で指定します。形式はHHMMSSです。
開始日付を省略した場合、指定できません。
省略する場合は、先頭1バイトの値を“0x00”とするか、パラメータにNULLポインタを設定します。
- char *enddate(IN)
-
検索範囲の終了日付を指定
8バイトの文字列で指定します。「YYYYMMDD」などの形式で指定します。指定する形式は、システム動作環境設定の日付形式(datefmt)の設定に合わせてください。詳細は、「アドミニストレーション マニュアル」を参照してください。
省略する場合は、先頭1バイトの値を“0x00”とするか、パラメータにNULLポインタを設定します。
- char *endtime(IN)
-
検索範囲の終了時刻を指定
6バイトの文字列で指定します。形式はHHMMSSです。終了日付を省略した場合、指定できません。
省略する場合は、先頭1バイトの値を“0x00”とするか、パラメータにNULLポインタを設定します。
- char *data(IN/OUT)
-
検索結果格納バッファを指すポインタを指定
バッファはhulrlog()を呼び出す前に、最大検索件数×(レコード長+1)分確保しておかなければなりません。
取得した情報の各種日付は、システム動作環境設定の日付形式(datefmt)の設定の形式に変換され、履歴ファイルフォーマットのイメージでバッファに格納されています。
複数件取得した場合は、セパレータ(0x0a)で区切られています。
履歴ファイルフォーマット、レコード長の詳細は「APIで出力する履歴ファイルのフォーマット」を参照してください。
- int maxnum(IN)
-
最大検索件数を指定
1以上を指定します。
- int *matchnum(OUT)
-
検索したレコード数を格納するバッファを指すポインタを指定
戻り値
- 0
-
: 検索正常終了
- 1
-
: 検索正常残りあり
- 2
-
: 該当情報なし
- 3
-
: パラメータエラー
- 4
-
: 履歴ファイルアクセスエラー
- 5
-
: メモリエラー
- 99
-
: システムエラー
注意事項
startdate、starttime、enddate、endtimeで検索範囲を指定する際、検索対象の履歴と検索キーとなる日時の関係は以下のとおりです。
|
検索対象の履歴 |
検索キーとなる日時 |
|---|---|
|
配信履歴 |
配信終了日時 |
|
集信履歴 |
集信終了日時 |
|
要求受付履歴 |
依頼受付日時 |
<使用例>
C言語から使用する場合
void hulrlog_proc(){
/* 変数定義 */
char type;
char status;
char readmode;
char *version;
char *fileID;
char *hostname;
char search;
char *startdate;
char *starttime;
char *enddate;
char *endtime;
char data[(3879+1)*10]; /* 配信履歴の1レコード長
×最大検索のバッファの確保 */
int maxnum;
int matchnum;
int Status;
Status = 0; /* ステータスの初期化 */
type = 'S'; /* 履歴種別(配信履歴) */
status = 'E'; /* 異常終了した履歴を取得 */
readmode = 'R'; /* 新しい履歴順に検索 */
version = "V08L04"; /* 履歴フォーマットのバージョン */
fileID = "SEND000123456789"; /* ファイルIDの指定 */
hostname = "host0001"; /* ホスト名の指定 */
search = 'E'; /* 予約領域 */
startdate = "20180801"; /* 検索範囲の起点となる開始日付 */
starttime = "120000"; /* 検索範囲の起点となる開始時刻 */
enddate = "20180831"; /* 検索範囲の終点となる終点日付 */
endtime = "120000"; /* 検索範囲の終点となる終点時刻 */
maxnum = 10; /* 最大検索件数 */
memset( data, 0, sizeof( data ) ); /* バッファdataの初期化 */
/* 履歴検索の開始 */
Status=hulrlog( type,status,readmode,version,fileID,hostname,
search,startdate,starttime,enddate,endtime,data,maxnum,&matchnum);
if ( Status > 0 ) {
printf( "エラーが発生しました(ステータス = %d)\n", Status );
}else{
printf( "%d件検索しました。\n", matchnum);
}
return;
}