> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# レポートサービスの設定

> レポートデータベースを作成し、データアクセスコンポーネントをセットアップし、データベースを切り替えて、テナントで ABBYY FlexiCapture 12 レポートサービスを有効にします。

<div id="configuring-the-abbyy-flexicapture-12-reporting-service">
  ## ABBYY FlexiCapture 12 レポートサービスの構成
</div>

このサービスは、すべての情報を別個のデータベースに保存します。そのため、インストールが完了したら、文書処理に関するデータを保存するデータベースを作成する必要があります。これを行うには、次の手順に従ってください。

1. ABBYY FlexiCapture 12 レポートサービスがインストールされているコンピューターで、管理者権限で PowerShell を起動します。
2. サービスのインストール先ディレクトリにある **CreateDb** フォルダーに移動します。サービスが既定のパスにインストールされている場合は、次のコマンドを使用することもできます。

   ```powershell theme={null}
   cd C:\inetpub\wwwroot\FlexiCapture12Reporting\CreateDb
   ```
3. 必要なパラメーターを指定して **CreateEventLogDb.ps1** スクリプトを実行します。例:

   ```powershell theme={null}
   CreateEventLogDb.ps1 HostName\SQLInstanceName DATABASENAME user password
   ```

   このスクリプトのパラメーターは、作成するデータベース名とお使いの認証情報に置き換える必要があります。

   <Info>
     User と Password は省略可能なパラメーターで、Microsoft SQL 認証を使用する場合にのみ指定します。スクリプトの実行時に User または Password を指定しない場合、プログラムはレポートサービスの実行に使用されている Windows アカウントを使用します。この Windows アカウントに、レポートサービス データベースへのアクセス権限があることを確認してください。
   </Info>
4. 管理および監視コンソールの **web.config** ファイルの **AppSettings** セクションに、次のキーを追加してから、変更を保存します:

   ```xml theme={null}
   <add key="ExternalLogServiceSettingEnabled" value="true" />
   ```
5. 管理および監視コンソールを開き、**設定 → イベントログモード** に移動します。**ABBYY FlexiCapture 12 レポートサービス** field で、次の形式でレポートサービスのアドレスを指定します: `http://<ServiceAddress>:8001`。ポート 8001 が他のアプリケーションで使用されていないことを確認してください
6. Internet Information Services (IIS) で、“FlexiCapture 12 Reporting” Application Server プールをリサイクルします

これらの手順を完了すると、プログラムは既定のテナントの文書処理データを、データベース内の **DocumentEditingStatistic** テーブルと **EventLog** テーブルに記録します。

<div id="configuring-reporting-service-data-access">
  ## レポートサービス のデータアクセスを構成する
</div>

レポートサービス の準備ができたら、このコンポーネントをインストールして使用する場合は、データアクセスコンポーネントを構成します。

1. データアクセスコンポーネントがインストールされているディレクトリに移動します。既定のディレクトリは **C:\inetpub\wwwroot\FlexiCapture12ReportingDataAccess.** です。
2. **appsettings.json** ファイルを開き、次の設定を指定します。
   * アプリケーションサーバーの **web.config** にある **DecryptionKey**。この設定は既定で **C:\inetpub\wwwroot\FlexiCapture12\Server** にあります。
   * アプリケーションサーバーの **web.config** にある **ValidationKey**。
   * レポート用データベースに接続するための **ConnectionString**。これは レポートサービス の **appsettings.json** にあります (既定のパスは **C:\inetpub\wwwroot\FlexiCapture12Reporting** です) 。
   * **ReportingDataPath** — データのエクスポート先フォルダーへのパス。テナントが複数ある場合は、各テナントのデータが個別のサブフォルダーに保存されます。
   * **RunTenantsDataGenerationPeriodSec** — 新しいレポートデータを自動エクスポートする間隔 (秒単位) 。既定値は 14400 で、4 時間に相当します。

<Note>
  **ValidationKey**、**ConnectionString**、**RunTenantsDataGenerationPeriodSec**、**ReportingDataPath** の各パラメーターは、データアクセスコンポーネントとともにインストールされる **appsettings.json** ファイルには含まれていません。これらのパラメーターは、**DecryptionKey** パラメーターの後にカンマで区切って手動で追加する必要があります。
</Note>

1. IIS で ABBYY FlexiCapture ReportingResults Web サービスを再起動します。
2. Services で ABBYY FlexiCapture ReportingResults Service を再起動します。

上記の手順を完了すると、プログラムは **appsettings.json** で指定されたフォルダーにレポートデータを自動的にエクスポートします。なお、自動データエクスポートの場合、レポートサービス は前日に蓄積されたレポートデータをエクスポートします。つまり、レポートデータの最初のエクスポートは、レポートサービス をインストールして構成した 1 日後に実行されます。また、API を使用していつでも手動でレポートデータをエクスポートできます (詳しい手順については、[REST API data access](/ja/flexi-capture/reporting-service/reporting-data-access-rest-api) を参照してください) 。

<div id="changing-the-database-used-by-the-abbyy-flexicapture-12-reporting-service">
  ## ABBYY FlexiCapture 12 レポートサービスで使用するデータベースの変更
</div>

レポートサービスで使用するデータベースを変更するには、**appsettings.json** ファイルを修正する必要があります。これは手動で行うこともできます。また、ABBYY FlexiCapture 12 Release 4 Update 2 以降では、**EventLogApiCreateDb.exe** ユーティリティと **ConnectEventlogDb.ps1** スクリプトを組み合わせて行うこともできます。

データがすでに含まれている既存のデータベースに切り替えることも、新しい空のデータベースに切り替えることもできます。新しい空のデータベースに切り替える場合は、**EventLogApiCreateDb.exe** ユーティリティによって最初にデータベースが初期化されます。

以下に手順を示します。

* 手動でデータベースを変更するには:
  1. ABBYY FlexiCapture 12 レポートサービスがインストールされているコンピューターで、管理者権限で PowerShell を起動します。
  2. C:\inetpub\wwwroot\FlexiCapture12Reporting にある **appsettings.json** ファイルを開き、必要な変更を行います。

* **EventLogApiCreateDb.exe** ユーティリティを使用してデータベースを変更するには:
  1. 該当するユーティリティコマンドを実行します:
     * 新しい空のデータベースを初期化するには:
       EventLogApiCreateDb.exe \[ServerName] \[NewDatabaseName] \[User Password] init
     * すでにデータが含まれている既存のデータベースに接続するには:
       EventLogApiCreateDb.exe \[ServerName] \[NewDatabaseName] \[User Password] connect

このユーティリティは、**appsettings.json** ファイルから接続文字列を読み込みます。

1. **ConnectEventlogDb.ps1** スクリプトを実行して、**appsettings.json** ファイル内の接続文字列を変更します。スクリプトの一般的な書式は次のとおりです:

```
ConnectEventlogDb.ps1 ServerName OtherDatabaseName [User Password]
```

セキュリティ上の対策として、**appsettings.json** 内のパスワードは暗号化されます。その後、**ConnectEventlogDb.ps1** スクリプトにより レポートサービス が再起動されます。

<div id="enabling-the-reporting-service-for-a-non-default-tenant">
  ## 既定以外のテナントで レポートサービス を有効にする
</div>

既定では、レポートサービス は既定のテナントでのみ実行されます。既定以外のテナントで レポートサービス を有効にするには、**dbo.Tenant** テーブルの **Flags** field で、該当するテナントに対応する先頭ビットを設定します。
これにより、プログラムは指定した既定以外のテナントの文書処理データを、データベース内の **DocumentEditingStatistic** テーブルおよび **EventLog** テーブルに記録するようになります。
