Visual Basic用サンプル2(\VB_Sample_2)のサンプルプログラムでは、Navigatorの問い合わせファイルに対して条件を変更しながら問い合わせを連続実行し、問い合わせ結果をファイル保存するためのバッチプログラムを作成します。
問い合わせファイルの選択、条件の指定は専用の定義ファイルで行います。
このバッチプログラムを実行する際は、以下のようにバッチ実行定義ファイルを絶対パスで引数に指定してください。
[起動例]
SymNaviF c:\NaviAPP\SymNaviF.ini
[バッチ実行定義ファイル]
バッチ実行定義ファイルは以下の仕様とします。
[サンプル]
========================================== [Main] CatalogList=本部 西部 中部 Login=CHRISTINE/Mcclean@n2085104 LogFile=c:\tmp\log.txt [Default] OutputType=FTXT Repeat=NOCHANGE [本部] CatalogFile=e:\tmp\NaviAPI\NaviAPIsample.rne OutputFile=c:\tmp\本社.csv OutputType=CSV Repeat=REPEAT Param1=本部名 IN 本社 Param2=商品分類 IN AV 冷暖房 Param3=粗利益 >= 80000 Param4=月度 BETWEEN 19970400 19970600 [西部] CatalogFile=e:\tmp\NaviAPI\NaviAPIsample.rne OutputFile=c:\tmp\西部本部.XLSX OutputType=XLSX Param1=本部名 IN 西部本部 Param2=商品分類 IN AV 冷暖房 Param3=粗利益 >= 80000 Param4=月度 IN 19970600 [中部] CatalogFile=e:\tmp\NaviAPI\NaviAPIsample.rne OutputFile=c:\tmp\中部本部.TXT Param1=本部名 IN 中部本部 Param2=商品分類 IN AV Param3=粗利益 BETWEEN 80000 100000 Param4=月度 IN 19970600 ==========================================
[Main]セクション
実行する問い合わせファイルのリスト、接続するための情報を定義します。
CatalogList | 問い合わせ名のリスト |
Login | ユーザID/パスワード@サーバ名 |
Oracle | ユーザ名/パスワード |
SQLServer | ユーザ名/パスワード |
POSTGRES | ユーザ名/パスワード |
LogFile | ファイル名 |
CatalogListには、問い合わせの情報を記述したセクション名のリストを指定します。問い合わせ名はTABで区切って複数記述することができます。
Loginには、Navigatorサーバに接続するためのユーザID、パスワード、およびサーバ名を指定します。
Oracleには、Oracleに接続するためのユーザID、およびパスワードを指定します。
SQLServerには、SQL Serverに接続するためのユーザID、およびパスワードを指定します。
POSTGRESには、Postgres辞書用データソースに接続するためのユーザID、およびパスワードを指定します。
LogFileには、実行中に発生したエラー情報を出力するためのファイルを指定します。
[Default]セクション
このセクションでは作成するファイルの種類とデータの出力方法の省略値を設定します。
OutputType | 出力するファイルの種類
|
Repeat | データの出力方法
|
OutputTypeには出力するファイルの種類を指定します。
Repeatには同じカテゴリが連続する場合に、空白にするかどうするかを指定します。
[問い合わせ]セクション
実行する問い合わせカタログの名前や条件の指定を行います。
このセクションの名前は任意ですが、定義ファイル内で一意でなければなりません。
このセクションの名前は[Main]セクションのCatalogListパラメタから参照されます。
このセクションでは以下の内容が指定可能です。
CatalogFile | 問い合わせファイル名 |
OutputFile | 出力ファイル名 |
OutputType | 出力ファイルの種類 |
CurrentMonth | 当月度 |
Repeat | カテゴリデータの出力方法 |
ReloadCategory | カテゴリの読み込み方法
|
Shell | 実行するコマンド |
Message | メッセージテキスト |
Param?? | 条件
|
CatalogFileには問い合わせファイル名を絶対パスで指定します。
OutputFileには結果を出力するファイル名を絶対パスで指定します。
OutputTypeには出力するファイルの種類を指定します。ここで指定できるファイルの種類は[Main]セクションで記述できるものと同じです。
CurrentMonthには当月度の一時変更を行う場合にYYYYMMの形式で当月度を指定します。
Repeatには同じカテゴリが連続する場合に、空白にするかどうかを指定します。ここで指定できるキーワードは、[Main]セクションで記述できるものと同じです。
ReloadCategoryには管理ポイントの表示/非表示を設定する際に、カテゴリをサーバから読み込むかどうするかを指定します。サーバから読み込まない場合は、問い合わせファイルに保存されているカテゴリが表示/非表示設定の対象になります。
カテゴリの変更頻度が少ない場合は問い合わせファイルを作成する時にカテゴリを読み込んでおき、ReloadCatagoryパラメタにNOを指定するとレスポンスが良くなります。
Shellには問い合わせが終了した後に実行するコマンドを記述します。コマンドは問い合わせが成功しても失敗しても実行されます。また、コマンドの完了を待たずに次の問い合わせが実行されます。
Messageには問い合わせが終了した後に表示するメッセージテキストを記述します。表示されたメッセージ画面の[OK]ボタンを押すまで次の問い合わせは実行されません。
Param??は複数記述可能です。
Param??の右辺には管理ポイント、データ項目、および条件を指定します。右辺の管理ポイント、データ項目、条件はそれぞれTABで区切ります。
ここで指定された管理ポイント、データ項目は以下の順序で問い合わせカタログから参照されます。
表側に置かれた管理ポイント
表頭に置かれた管理ポイント
条件フィールドに置かれた管理ポイント
条件フィールドに置かれたデータ項目
データフィールドに置かれたデータ項目
従って、同じ管理ポイントを表頭/表側と条件に置く場合、あるいは同じデータ項目を条件とデータフィールドに置く場合は、ラベルの一時変更機能を利用して一意にしておく必要があります。
条件の指定方法は管理ポイントとデータ項目で以下のように異なります。
[通常の管理ポイントの場合]
管理ポイント名 IN カテゴリ1 カテゴリ2 カテゴリ3 ...
指定できる条件はIN指定だけです。
カテゴリは複数個指定可能です。
管理ポイント、IN、カテゴリの間はTABで区切ります。
管理ポイント名 RM
RMを記述すると、問い合わせからこの管理ポイントを除外することができます。
問い合わせファイルを作成する際に、使用する可能性のある管理ポイントをすべてレイアウトしておき、実行時に不要な管理ポイントを除外することで多様なレポートを少ない問い合わせファイルで作成することができます。
[時間型の管理ポイントの場合]
年度/半年/四半期/月度/日 IN/BETWEEN YYYYMMDD [YYYYMMDD]
IN、またはBETWEENの指定が可能です。
INの場合は表示する年月日指定のみ、BETWEENの場合は開始年月日、終了年月日を指定することが可能です。
月で指定する場合YYYYMMDDのDDの部分は00を指定してください。
年度/半年/四半期/月度/日 RM
時間型の管理ポイントも通常の管理ポイントと同じく実行時に不要な場合は問い合わせから除外することが可能です。
[データ項目の場合]
データ項目名 op データ1 データ2 データ3 ...
指定できる条件(OPの部分)の種類は以下のとおりです。
IN/NOT IN | 続けて指定したデータに合うもの、または合わないものが対象 |
LIKE/NOT LIKE | 指定された文字列を含むデータ、または含まないデータが対象 なお、この指定は文字データにのみ使用することが可能です。 |
>,>=,<,<=,BETWEEN | 大小関係の指定 BETWEEN指定の場合には両端は含まれます。 |
データ項目名 RM
データ項目も実行時に不要な場合は問い合わせから除外することが可能です。
[プログラム例]
本サンプルプログラムのソースコードは以下のフォルダに格納されています。
Navigator APIインストールフォルダ\Samples\VB_Sample_2 |