ELCレポートのログデータを利用する

提供: Support
移動先: 案内検索

概要

ELCでは、レポートログデータを以下のように複数のツールを利用して取り込むことができます。

  • XMLを使用してMicrosoft Accessにインポート
  • CSV形式でMicrosoft ExcelやAccessにインポート

XMLを使用してMicrosoft Accessにデータをインポートする方法

Microsoft Accessへのログデータのインポートは、Microsoft Office Access 2002以上のバージョンで利用可能です。

  1. Microsoft Accessを起動し、新しいデータベースを作成します。
  2. exportLogsコマンドの実行時に指定したディレクトリにあるELC export.xmlとlm_reporting_access.xsdファイルをインポートします。ディレクトリが指定されていない場合、エクスポートされたデータは<ELC>/export/export_<timestamp>/xmlディレクトリに配置(作成)されます。
    1. Microsoft Accessで、[ファイル]-[外部データの取得]-[インポート]を選択します。
    2. [インポート]ダイアログ ボックスで、ファイルの種類として XML(*.xml、*.xsd)を選択します。
    3. インポートする lm_reporting_access.xsd ファイルを選択します。このファイルには、データベース スキーマに関する情報が含まれています。
    4. インポート ボタンをクリックします。
      Thumb03000219ujpn.jpg
    5. XMLのインポート ダイアログ ボックスが表示されたら、[OK] をクリックします。
      Thumb03002049ujpn.jpg
    6. 上記の手順で、データベーススキーマがインポートされました。
    7. Microsoft Accessで、[ファイル]-[外部データの取得]-[インポート]を選択します。(実際のデータをインポートする場合)
    8. [ファイルの種類]のドロップダウンリストからXMLを選択します。
    9. インポートするファイルとして export.xml を選択します。
    10. XML のインポート ダイアログ ボックスが表示されたら、[オプション >>] を選択し、[既存のテーブルにデータを追加] のラジオ ボタンをクリックします。
      Thumb03000221ujpn.jpg
    11. OKをクリックすると、export.xmlからのデータが既存のデータベーステーブルにインポートされます。

CSVを使用してMicrosoft ExcelやAccessにデータを取り込む方法

  1. ELC exportLogs コマンドを -csv オプションで実行します。
  2. <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.
    
  3. Embarcadero_reporting_logs.xsl ファイルが作成されたら、Microsoft Excel でファイルを開きます。各.csvファイルが別のExcelワークシートにインポートされていることに注意してください。


クエリーなど発行し、データを照会してレポートを作成するには、これらのワークシートをMicrosoft Accessにインポートする必要があります。

  1. Microsoft Accessを起動し、新しいデータベースを作成します。
  2. ELC Embarcadero_reporting_logs.xsl ファイルをインポートします。このファイルは、csvConvert ユーティリティコマンドの実行時に指定したディレクトリにあります。
    1. Microsoft Accessで、[ファイル]-[外部データの取得]-[インポート]を選択します。
    2. [インポート]ダイアログボックスで、ファイルの種類としてMicrosoft Excelを選択します。
    3. インポートボタンをクリックします。
      Thumb03000222ujpn.jpg
  3. スプレッドシートのインポート ウィザードが開きます。ウィザードでは、Embarcadero_reporting_logs Excel ワークブックから任意の数のワークシートをインポートすることができます。
    Thumb03000223ujpn.jpg
    1. インポート先のワークシートを選択してください。詳しくは以下の「クエリのサンプル」を参照してください。lm_product、lm_pool_type_lu、lm_pool_entry、および lm_entry_instance という名前のテーブルだけをインポートする必要があります。
      Thumb03002050ujpn.jpg
    2. [First Row Contains Column Headings] チェック ボックスをクリックします。
    3. [Finish]をクリックします。上記の手順により、ワークシートが同じ名前のアクセス テーブルにインポートされました。


Microsoft Accessでクエリを作成する方法

  1. [データベース] ウィンドウで [クエリ] リンクをクリックします。
  2. デザイン ビューの [クエリの作成] をダブルクリックして、新しいクエリを作成します。
    Thumb03000225ujpn.jpg
  3. 利用可能な表をすべて選択します(この例では、元のワークシートからインポートされた 4 つの表を示しています)。
  4. [追加] をクリックします。
  5. クエリ デザイナーのデザイン ペインを右クリックし、SQLビューを選択します。
  6. 次の内容をコピーして、クエリデザイナウィンドウの 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]));
    
  7. このクエリを concurrent_usage という名前で保存します。
  8. データベースウィンドウで、新しく作成した 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

ユーザー情報を含みます。但し、userlist.txtuserlist-current.txtに保持されているユーザーのみを対象としています。

関連情報