履歴検索API
HULFT配信履歴、集信履歴、要求受付履歴、またはスケジュール履歴から、検索条件に一致した情報を検索するAPIです。
履歴ファイルのフォーマットの詳細は、「履歴ファイルのフォーマット」を参照してください。
構文
INT __stdcall hulrlog( CHAR cLogType , CHAR cStatus , CHAR cReadMode , LPCSTR lpszVersion , LPCSTR lpszFileID , LPCSTR lpszHostName , CHAR cSearch , LPCSTR lpStartDate , LPCSTR lpStartTime , LPCSTR lpEndDate , LPCSTR lpEndTime , LPSTR lpData , INT nMaxNum , INT* lpMatchNum );
パラメータ説明
- CHAR cLogType(IN)
-
検索する履歴の種別を指定
- S
-
: 配信履歴
- R
-
: 集信履歴
- O
-
: 要求受付履歴
- C
-
: スケジュール履歴
- CHAR cStatus(IN)
-
ステータス区分を指定
- A
-
: すべての履歴を対象
- N
-
: 正常終了した履歴のみを対象
- E
-
: 異常が起きた履歴のみを対象
- CHAR cReadMode(IN)
-
検索順序を指定
- N
-
: 古い履歴順に検索
- R
-
: 新しい履歴順に検索
- LPCSTR lpszVersion(IN)
-
出力したい履歴フォーマットのHULFTのバージョン情報を指定
以下のいずれかを指定します。
-
V06L00
-
V06L01
-
V06L03
-
V07L00
-
V08L00
-
V08L01
-
V08L04
-
- LPCSTR lpszFileID(IN)
-
検索したいファイルID、サービス名、またはスケジュールIDを指定
50バイト以内の文字列で指定します。
省略する場合は、先頭1バイトの値を“0x00”とするか、ポインタに“NULL”を設定します。
- LPCSTR lpszHostName(IN)
-
検索したいホスト名を指定
68バイト以内の文字列で指定します。
省略する場合は、先頭1バイトの値を“0x00”とするか、ポインタに“NULL”を設定します。
- CHAR cSearch(IN)
-
将来の使用のための予約領域
必ず“E”を指定してください。
- LPCSTR lpStartDate(IN)
-
検索範囲の開始日付を指定
8バイトの文字列で指定します。「YYYYMMDD」などの形式で指定します。指定する形式は、システム動作環境設定の日付形式(datefmt)の設定に合わせてください。詳細は、「アドミニストレーション マニュアル」を参照してください。
省略する場合は、先頭1バイトの値を“0x00”とするか、ポインタに“NULL”を指定します。
- LPCSTR lpStartTime(IN)
-
検索範囲の開始時刻を指定
6バイトの文字列で指定します。形式はHHMMSSです。
開始日付を省略した場合、指定できません。
省略する場合は、先頭1バイトの値を“0x00”とするか、ポインタに“NULL”を指定します。
- LPCSTR lpEndDate(IN)
-
検索範囲の終了日付を指定
8バイトの文字列で指定します。「YYYYMMDD」などの形式で指定します。指定する形式は、システム動作環境設定の日付形式(datefmt)の設定に合わせてください。詳細は、「アドミニストレーション マニュアル」を参照してください。
省略する場合は、先頭1バイトの値を“0x00”とするか、ポインタに“NULL”を指定します。
- LPCSTR lpEndTime(IN)
-
検索範囲の終了時刻を指定
6バイトの文字列で指定します。形式はHHMMSSです。終了日付を省略した場合、指定できません。
省略する場合は、先頭1バイトの値を“0x00”とするか、ポインタに“NULL”を指定します。
- LPSTR lpData(OUT)
-
検索結果格納バッファを指すポインタを指定
バッファはhulrlog()を呼び出す前に、最大検索件数×(レコード長+1)分確保しておかなければなりません。
取得した情報の各種日付は、システム動作環境設定の日付形式(datefmt)の設定の形式に変換され、履歴ファイルフォーマットのイメージでバッファに格納されています。
複数件取得した場合は、セパレータ(0x0a)で区切られています。
履歴の出力フォーマットは、「lpszVersion」に指定したバージョン情報によって異なります。各バージョンの履歴ファイルフォーマット、レコード長は「履歴ファイルのフォーマット」を参照してください。
- INT nMaxNum(IN)
-
最大検索件数を指定
1以上を指定します。
- INT* lpMatchNum(OUT)
-
検索したレコード数を格納するバッファを指すポインタを指定
戻り値
- 0
-
: 検索正常終了
- 1
-
: 検索正常残りあり
- 2
-
: 該当情報なし
- 3
-
: パラメータエラー
- 4
-
: 履歴ファイルアクセスエラー
- 5
-
: メモリエラー
- 6
-
: セキュリティエラー
- 7
-
: NULLポインタエラー
- 98
-
: 強制終了
- 99
-
: システムエラー
注意事項
lpStartDate、lpStartTime、lpEndDate、lpEndTimeで検索範囲を指定する際、検索対象の履歴と検索キーとなる日時の関係は以下のとおりです。
検索対象の履歴 |
検索キーとなる日時 |
---|---|
配信履歴 |
配信終了日時 |
集信履歴 |
集信終了日時 |
要求受付履歴 |
依頼受付日時 |
スケジュール履歴 |
実行終了日時 |
<使用例>
Visual C++から使用する場合
#include <windows.h> #include <stdio.h> typedef INT(__stdcall *LPHULRLOG)( CHAR cLogType, CHAR cStatus, CHAR cReadMode, LPCSTR lpszVersion, LPCSTR lpszFileID, LPCSTR lpszHostName, CHAR cSearch, LPCSTR lpStartDate, LPCSTR lpStartTime, LPCSTR lpEndDate, LPCSTR lpEndTime, LPSTR lpData, INT nMaxNum, INT *lpMatchNum); int main() { CHAR cLogType; CHAR cStatus; CHAR cReadMode; CHAR szVersion[6 + 1]; CHAR szFileID[50 + 1]; CHAR szHostName[68 + 1]; CHAR cSearch; CHAR szStartDate[8 + 1]; CHAR szStartTime[8 + 1]; CHAR szEndDate[8 + 1]; CHAR szEndTime[8 + 1]; CHAR szData[(4862 + 1) * 10]; INT nMaxNum; INT nMatchNum; HMODULE hHulDll; HMODULE hApiDll; LPHULRLOG lpHulrlog; INT nStatus; cLogType = 'S'; cStatus = 'E'; cReadMode = 'R'; strcpy_s(szVersion, sizeof(szVersion), "V08L04"); strcpy_s(szFileID, sizeof(szFileID), "TEST0001"); strcpy_s(szHostName, sizeof(szHostName), ""); cSearch = 'E'; strcpy_s(szStartDate, sizeof(szStartDate), "20180801"); strcpy_s(szStartTime, sizeof(szStartTime), "120000"); strcpy_s(szEndDate, sizeof(szEndDate), "20180802"); strcpy_s(szEndTime, sizeof(szEndTime), "120000"); memset(szData, 0x00, sizeof(szData)); nMaxNum = 10; nMatchNum = 0; hHulDll = LoadLibrary("C:\\HULFT Family\\hulft8\\bin\\hulftrt.dll"); if (hHulDll == NULL) { printf("Unable to load hulftrt.dll." "(Error code = %lu)\n", GetLastError()); return 1; } hApiDll = LoadLibrary("C:\\HULFT Family\\hulft8\\bin\\hulapi.dll"); if (hApiDll == NULL) { printf("Unable to load hulapi.dll." "(Error code = %lu)\n", GetLastError()); FreeLibrary(hHulDll); return 2; } lpHulrlog = (LPHULRLOG)GetProcAddress(hApiDll, "hulrlog"); if (lpHulrlog == NULL) { printf("Unable to retrieves the address of HULFT API." "(Error code = %lu)\n", GetLastError()); FreeLibrary(hApiDll); FreeLibrary(hHulDll); return 3; } nStatus = lpHulrlog(cLogType, cStatus, cReadMode, szVersion, szFileID, szHostName, cSearch, szStartDate, szStartTime, szEndDate, szEndTime, szData, nMaxNum, &nMatchNum); if (0 <= nStatus && nStatus <= 2) { printf("%d number were searched.\n", nMatchNum); } else { printf("Error occurred when calling HULFT API." "(Returned value = %d)\n", nStatus); } FreeLibrary(hApiDll); FreeLibrary(hHulDll); return 0; }