> ## 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.

# データ セットの更新

> FlexiCapture のデータ セットを外部データベースと同期します。手動更新、スケジュール更新、コマンドライン更新、およびデータのマージ規則に対応しています。

FlexiCapture には、2 種類のデータ セットがあります。

* 1 つ目の種類には、データの構造に関する情報のみが含まれます。
* 2 つ目の種類には、外部データベースのデータが含まれます。これは、データ セットのプロパティで **Cache data** オプションを選択すると有効になります。

データ セットを更新すると、外部データベースとの同期が行われます。更新する意味があるのは、外部データベースのデータを含むデータ セットだけです。更新により、外部データベースの最新データを FlexiCapture で利用できるようになります。

データ セットは、さまざまなタイミングで更新されます。

* 更新は、ユーザーが Document Definition エディター から開始できます。
* 更新は、前回の更新から一定時間が経過した後、Administrator Station、FlexiCapture Standalone の Operator Station、または FlexiCapture Distributed の Project Setup Station でバッチを開いたときに行われることがあります。この時間は変更できます。
* 更新は、Processing Server のユーザーまたはフル機能ステーションのユーザー (つまり、ローカル エリア ネットワーク内でのみ使用できる、プログラムのすべての機能にアクセス可能な FlexiCapture ステーションのユーザー) が明示的に開始することも、Processing Server または Project Setup Station で設定されたスケジュールに従って実行されることもあります。

<div id="update-data-sets-in-the-document-definition-editor">
  ## Document Definition エディターでデータ セットを更新する
</div>

<Steps>
  <Step title="Document Definition のプロパティを開く">
    **Document Definition** メニューを開き、**Document Definition Properties...** をクリックします。
  </Step>

  <Step title="Data Sets タブを開く">
    開いたダイアログで **Data Sets** タブを開きます。
  </Step>

  <Step title="データ セットを更新する">
    更新するデータ セットを選択し、**Update** ボタンをクリックします。
  </Step>
</Steps>

<div id="update-data-sets-when-batches-are-opened">
  ## バッチを開いたときのデータ セットの更新
</div>

自動更新を有効にするには、データ セットのプロパティを開き、**更新間隔** を選択して、更新の間隔を指定します。

前回の更新から一定時間が経過しており、かつ Standalone バージョンのいずれかのステーション、または FlexiCapture の Distributed バージョンの Project Setup Station でバッチが開かれると、更新が開始されます。

ステーションによっては外部データベースにアクセスできず、データ セットを更新できない場合があります。ステーションでのデータ セットの更新は、**Options** ダイアログの **文書処理** タブで **バッチを開いたときにデータセットを更新する** オプションをオフにするか、次のレジストリ サブキーを編集することで無効にできます。

```
[HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller]
"DisableCacheUpdate"="1"
```

<div id="schedule-data-set-updates">
  ## データ セットの更新をスケジュールする
</div>

FlexiCapture Distributed では、データ セットの更新は、Processing Server 上、または任意のフル機能ステーション上 (リモートステーションと Web Station を除く) でコマンドラインから開始できます。これは、Processing Server またはステーションから `FlexiBr.exe` または `FlexiBrSvc.exe` ファイルにアクセスできる場合にのみ可能です。データ セットを更新するには、次のコマンドを使用します。

```
update dataset <project path> [<Document Definition name>] [<data set name>]
```

* `<project path>` は、FlexiCapture Application Server 上のプロジェクトの URL です (例: `https://<ApplicationServer>/ProjectId`) 。ここで、`<ApplicationServer>` は Application Server がインストールされているコンピューター名です。この URL は、Project Setup Station 上でプロジェクトのプロパティダイアログからコピーできます。
* `<Document Definition name>` は、そのデータ セットが属する Document Definition の名前です。
* `<data set name>` は、更新するデータ セットの名前です。

FlexiCapture では、管理者および Project Setup Station のユーザーのみがこのコマンドを使用できます。

Processing Server 上で **Vendors** データ セットを更新するために実行できるコマンドの例:

```
FlexiBRSvc.exe update dataset "https://myAppServer/ProjectId/ProjectName" "Invoice" "Vendors"
```

このコマンドは、Processing Server 上のデータ セットを更新します。ただし、フル機能ステーションは、再起動されるまでデータ セットのローカルコピーを引き続き使用します。

Windows サービスとして実行される Processing Stations は、各認識処理の前に、バックグラウンドでデータ セットのローカルコピーを更新します。

また、Windows Scheduler を使用して、データ セットがスケジュールどおりに更新されるよう設定することもできます。

<div id="merge-data-when-updating-a-data-set">
  ## データ セットの更新時にデータをマージする
</div>

FlexiCapture では、オペレーターが処理中にデータ セットを編集できます。特に、ユーザーは新しいベンダーと事業部門のデータを追加したり、既存のデータを変更したりできます。これらの変更は外部データベースには反映されません。

外部データベースは個別に編集できます。

データ セットは次のように更新されます。

| レコードの種類       | 更新時の動作                                                                      |
| ------------- | --------------------------------------------------------------------------- |
| **既存のレコード**   | ユーザーが行ったすべての変更は保持されます。<br />外部データベースに加えられたすべての変更はデータ セットに反映されます。            |
| **新規レコード**    | オペレーターが作成した新規レコードは削除されます。<br />外部データベースの新規レコードはデータ セットに反映されます。              |
| **削除されたレコード** | 削除済みとしてマークされたデータ セットのレコードは復元されません。<br />外部データベースで削除されたレコードはデータ セットから削除されます。 |

<div id="replace-data-set-data-with-data-from-an-external-database">
  ## 外部データベースのデータでデータ セットの内容を置き換える
</div>

オペレーターがデータ セットを変更していない場合は、そのデータ セットに含まれるすべてのデータが、更新のたびに外部データベースのデータで置き換えられます。オペレーターがデータ セットを変更した場合は、管理者が外部データベースのデータで上書きでき、その際オペレーターによる変更はすべて削除されます。

これを行うには、データ セットを再接続します。

<Steps>
  <Step title="データ セットを選択する">
    **Document Definition Properties** ダイアログの **Data Sets** タブを開き、再接続するデータ セットを選択します。
  </Step>

  <Step title="設定を開く">
    **Set Up...** ボタンをクリックします。
  </Step>

  <Step title="データ セットを再接続する">
    接続文字列を指定し、スキーマとテーブルを選択して、マッチングに使用する列を指定します。
  </Step>
</Steps>

詳細については、[ベンダーおよび事業部門データベースの使用](/ja/flexi-capture/invoice-reader/ir-db-connection)を参照してください。

<div id="update-data-sets-using-scripts">
  ## スクリプトを使用したデータ セットの更新
</div>

詳細については、[データ セット更新スクリプト](/ja/flexi-capture/appendix/scripts/script-update)を参照してください。
