履歴検索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」というファイル(ライブラリ)名で格納されています。

API呼び出しを行うモジュールはコンパイルされている必要があります。

なお、コンパイルオプションについては、ご利用のコンパイラ・リンカ付属のマニュアルを参照してください。

パラメーター説明

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)の設定に合わせてください。詳細は、以下を参照してください。

HULFT10 for Linux/AIX アドミニストレーション マニュアル : グローバル関連設定

省略する場合は、先頭1バイトの値を“0x00”とするか、パラメーターにNULLポインタを設定します。

char *starttime(IN)

検索範囲の開始時刻を指定

6バイトの文字列で指定します。形式はHHMMSSです。

開始日付を省略した場合、指定できません。

省略する場合は、先頭1バイトの値を“0x00”とするか、パラメーターにNULLポインタを設定します。

char *enddate(IN)

検索範囲の終了日付を指定

8バイトの文字列で指定します。「YYYYMMDD」などの形式で指定します。指定する形式は、システム動作環境設定の日付形式(datefmt)の設定に合わせてください。詳細は、以下を参照してください。

HULFT10 for Linux/AIX アドミニストレーション マニュアル : グローバル関連設定

省略する場合は、先頭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;
    }