履歴検索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で検索範囲を指定する際、検索対象の履歴と検索キーとなる日時の関係は以下のとおりです。

表7.1 検索キーとなる日時

検索対象の履歴

検索キーとなる日時

配信履歴

配信終了日時

集信履歴

集信終了日時

要求受付履歴

依頼受付日時

<使用例>

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;
}