履歴検索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; }