ELCレポートのログデータを利用する
目次
概要
ELCでは、レポートログデータを以下のように複数のツールを利用して取り込むことができます。
- XMLを使用してMicrosoft Accessにインポート
- CSV形式でMicrosoft ExcelやAccessにインポート
XMLを使用してMicrosoft Accessにデータをインポートする方法
Microsoft Accessへのログデータのインポートは、Microsoft Office Access 2002以上のバージョンで利用可能です。
- Microsoft Accessを起動し、新しいデータベースを作成します。
- exportLogsコマンドの実行時に指定したディレクトリにあるELC export.xmlとlm_reporting_access.xsdファイルをインポートします。ディレクトリが指定されていない場合、エクスポートされたデータは<ELC>/export/export_<timestamp>/xmlディレクトリに配置(作成)されます。
- Microsoft Accessで、[ファイル]-[外部データの取得]-[インポート]を選択します。
- [インポート]ダイアログ ボックスで、ファイルの種類として XML(*.xml、*.xsd)を選択します。
- インポートする lm_reporting_access.xsd ファイルを選択します。このファイルには、データベース スキーマに関する情報が含まれています。
- インポート ボタンをクリックします。
- XML のインポート ダイアログ ボックスが表示されたら、[OK] をクリックします。
- 上記の手順で、データベーススキーマがインポートされました。
- Microsoft Accessで、[ファイル]-[外部データの取得]-[インポート]を選択します。(実際のデータをインポートする場合)
- [ファイルの種類]のドロップダウンリストからXMLを選択します。
- インポートするファイルとして export.xml を選択します。
- XML のインポート ダイアログ ボックスが表示されたら、[オプション >>] を選択し、[既存のテーブルにデータを追加] のラジオ ボタンをクリックします。
- OKをクリックすると、export.xmlからのデータが既存のデータベーステーブルにインポートされます。
CSVを使用してMicrosoft ExcelやAccessにデータを取り込む方法
- ELC exportLogs コマンドを -csv オプションで実行します。
- <ELC>¥bin ディレクトリから csvConvert スクリプトを実行します。このスクリプトは、エクスポートされたすべてのCSVファイルを1つのExcelワークブックにインポートします。
> csvConvert <csv_export_directory>
- インポートを実行すると、出力の例は以下のようになります。
Embarcadero ExportLogs Conversion Utility v1.0 Importing files into workbook.............. :Successfully created C:\export\export_xxxx\csv\embarcadero_reporting_logs.xls.
- Embarcadero_reporting_logs.xsl ファイルが作成されたら、Microsoft Excel でファイルを開きます。各.csvファイルが別のExcelワークシートにインポートされていることに注意してください。
クエリーなど発行し、データを照会してレポートを作成するには、これらのワークシートをMicrosoft Accessにインポートする必要があります。
- Microsoft Accessを起動し、新しいデータベースを作成します。
- ELC Embarcadero_reporting_logs.xsl ファイルをインポートします。このファイルは、csvConvert ユーティリティコマンドの実行時に指定したディレクトリにあります。
- スプレッドシートのインポート ウィザードが開きます。ウィザードでは、Embarcadero_reporting_logs Excel ワークブックから任意の数のワークシートをインポートすることができます。
Microsoft Accessでクエリを作成する方法
- [データベース] ウィンドウで [クエリ] リンクをクリックします。
- デザイン ビューの [クエリの作成] をダブルクリックして、新しいクエリを作成します。
- サムネイルの作成エラー: サムネイルを保存先に保存できません
- 利用可能な表をすべて選択します(この例では、元のワークシートからインポートされた 4 つの表を示しています)。
- [追加] をクリックします。
- クエリ デザイナーのデザイン ペインを右クリックし、SQLビューを選択します。
- 次の内容をコピーして、クエリデザイナウィンドウの SQLビューに貼り付けます。
SELECT LM_POOL_ENTRY.LM_REQ_USERNAME, LM_POOL_ENTRY.LM_HOST_NAME, LM_PRODUCT.LM_PRODUCT_NAME, LM_PRODUCT.LM_SKU_NAME, LM_POOL_TYPE_LU.LM_POOL_TYPE_DESC, LM_ENTRY_INSTANCE.LM_START_TIME, LM_ENTRY_INSTANCE.LM_FINISH_TIME FROM LM_POOL_ENTRY, LM_ENTRY_INSTANCE, LM_PRODUCT, LM_POOL_TYPE_LU WHERE (((LM_ENTRY_INSTANCE.LM_START_TIME)<[Enter a starting date (ie 2/20/2004) ]) AND ((LM_POOL_ENTRY.LM_REQUESTED_TYPE)=1) AND ((LM_POOL_ENTRY.LM_POOL_ENTRY_ID)=[LM_ENTRY_INSTANCE].[LM_POOL_ENTRY_ID]) AND ((LM_PRODUCT.LM_PRODUCT_ID)=[LM_POOL_ENTRY].[LM_PRODUCT_ID]) AND ((LM_PRODUCT.LM_SKU)=[LM_POOL_ENTRY].[LM_SKU_ID]) AND ((LM_POOL_TYPE_LU.LM_POOL_TYPE)=[LM_POOL_ENTRY].[LM_REQUESTED_TYPE]));
- このクエリを concurrent_usage という名前で保存します。
- データベースウィンドウで、新しく作成した concurrent_usage クエリを右クリックし、エクスポートをクリックします。これで、このクエリをエクセル形式にエクスポートすることができます。
Accessレポートデザイナまたはレポートウィザードを使用して、concurrent_usageクエリ(または作成したすべてのクエリ)のレポートをすばやく作成することもできます。
クエリのサンプル
クエリ例 (その1):
SELECT LM_POOL_ENTRY.LM_REQ_USERNAME, LM_POOL_ENTRY.LM_HOST_NAME, LM_PRODUCT.LM_PRODUCT_NAME, LM_PRODUCT.LM_SKU_NAME, LM_POOL_TYPE_LU.LM_POOL_TYPE_DESC, LM_ENTRY_INSTANCE.LM_START_TIME, LM_ENTRY_INSTANCE.LM_FINISH_TIME FROM LM_POOL_ENTRY, LM_ENTRY_INSTANCE, LM_PRODUCT, LM_POOL_TYPE_LU WHERE (((LM_ENTRY_INSTANCE.LM_START_TIME)<[Enter a starting date (ie 2/20/2004) ]) AND ((LM_POOL_ENTRY.LM_REQUESTED_TYPE)=1) AND ((LM_POOL_ENTRY.LM_POOL_ENTRY_ID)=[LM_ENTRY_INSTANCE].[LM_POOL_ENTRY_ID]) AND ((LM_PRODUCT.LM_PRODUCT_ID)=[LM_POOL_ENTRY].[LM_PRODUCT_ID]) AND ((LM_PRODUCT.LM_SKU)=[LM_POOL_ENTRY].[LM_SKU_ID]) AND ((LM_POOL_TYPE_LU.LM_POOL_TYPE)=[LM_POOL_ENTRY].[LM_REQUESTED_TYPE]));
- 説明:Microsoft Accessで使用できるこのクエリを使用すると、このクエリの例では、2004年2月20日より前に任意の製品の使用を開始したコンカレントライセンスを使用しているすべてのライセンスを選択できます(Enter a starting dateには任意の日付を挿入してください)。 これには、ライセンスのユーザー名、ホスト名、使用していた製品、ライセンスタイプ、開始時刻、および完了時刻(ライセンスがリリースされたとき)が含まれます。
クエリ例 (その2):
SELECT LM_REQ_USERNAME, LM_PRODUCT.LM_PRODUCT_NAME, LM_PRODUCT.LM_SKU_NAME, LM_ENTRY_INSTANCE.LM_START_TIME FROM LM_POOL_ENTRY, LM_ENTRY_INSTANCE, LM_PRODUCT WHERE LM_REQUESTED_TYPE=2 AND LM_DONE IS NULL AND LM_PRODUCT.LM_PRODUCT_ID=LM_POOL_ENTRY.LM_PRODUCT_ID AND ((LM_PRODUCT.LM_SKU)=[LM_POOL_ENTRY].[LM_SKU_ID]) AND LM_POOL_ENTRY.LM_POOL_ENTRY_ID=LM_ENTRY_INSTANCE.LM_POOL_ENTRY_ID
- 説明:このクエリは、現在使用中のライセンスを持つすべてのネットワーク指名ユーザを選択します。
クエリ例 (その3):
SELECT LM_REQ_USERNAME, LM_PRODUCT.LM_PRODUCT_NAME, LM_PRODUCT.LM_SKU_NAME, LM_ENTRY_INSTANCE.LM_START_TIME FROM LM_POOL_ENTRY, LM_ENTRY_INSTANCE, LM_PRODUCT WHERE LM_REQUESTED_TYPE=1 AND LM_DONE IS NULL AND LM_PRODUCT.LM_PRODUCT_ID=LM_POOL_ENTRY.LM_PRODUCT_ID AND ((LM_PRODUCT.LM_SKU)=[LM_POOL_ENTRY].[LM_SKU_ID]) AND LM_POOL_ENTRY.LM_POOL_ENTRY_ID=LM_ENTRY_INSTANCE.LM_POOL_ENTRY_ID
- 説明:このクエリは、現在使用中のライセンスを持つすべてのネットワークコンカレント(同時接続)ユーザーを選択します。
クエリ例 (その4):
SELECT LM_POOL_ENTRY.LM_REQ_USERNAME, LM_POOL_ENTRY.LM_HOST_NAME, LM_PRODUCT.LM_PRODUCT_NAME, LM_PRODUCT.LM_SKU_NAME, LM_ENTRY_INSTANCE.LM_START_TIME, LM_ENTRY_INSTANCE.LM_FINISH_TIME, (DateDiff("n",[LM_START_TIME],[LM_FINISH_TIME]) / 60 ) AS "TIMEUSED IN HOURS" FROM LM_POOL_ENTRY, LM_ENTRY_INSTANCE, LM_PRODUCT WHERE LM_ENTRY_INSTANCE.LM_START_TIME>[Enter a start date (ie 2/20/2004) ] AND LM_ENTRY_INSTANCE.LM_FINISH_TIME<[Enter a finish date (ie 2/20/2004) ] AND LM_PRODUCT.LM_PRODUCT_ID=LM_POOL_ENTRY.LM_PRODUCT_ID AND ((LM_PRODUCT.LM_SKU)=[LM_POOL_ENTRY].[LM_SKU_ID]) AND LM_POOL_ENTRY.LM_POOL_ENTRY_ID=LM_ENTRY_INSTANCE.LM_POOL_ENTRY_ID
- 説明:このクエリは、開始時刻、終了時刻、および時間単位で使用された時間のサマリーでユーザーと製品を連結します(DateDiff式はAccessでのみ使用可能です)。
データベーステーブルの説明
以下の表は、データベース内の各テーブルの名前と、それが含むデータの一般的な説明を示しています。
テーブル名 | 説明 |
---|---|
lm_denial_entry |
「拒否」とは、利用可能なすべてのライセンスが現在使用中である場合に、ライセンスにアクセスしようとすることを指します。 |
lm_entry_instance |
ライセンスの使用開始時期と終了時期に関するタイムスタンプ情報を記録します。 |
lm_license |
現在利用可能なライセンスに関する情報を掲載しています。 |
lm_license_pool |
ネットワークコンカレント(同時接続)およびネットワーク指名ユーザーのライセンスプールに関する情報が含まれています。 |
lm_permission |
ネットワークコンカレント(同時接続)ユーザーおよびネットワーク指名ユーザー権限が含まれています。 |
lm_pool_entry |
ユーザー、ホスト、製品などの使用データを追跡し、タイムスタンプデータと連動させることができます。 |
lm_pool_type_lu |
ライセンスプールの種類の説明が含まれています。 |
lm_product |
利用可能なライセンスに関連する製品情報が含まれています。 |
lm_timestamp |
現在のタイムスタンプを含みます。 |
lm_user |
ユーザー情報を含みます。但し、 |