Skip to main content
データベース チェック ルールは、認識されたfield値をデータベーステーブル内の値と比較します。値が見つかった場合、チェックに合格します。そうでない場合、このルールはエラーを返します。 このルールを使用すると、抽出した値がデータベース内に存在するかどうかを確認したり、fieldにタイプミスがある場合でもあいまい検索を実行したり、field値をデータベースレコードに置き換えたり、データベースの値を文書のfieldにコピーしたりできます。

データベース チェック ルールを作成する

1

プロパティ ダイアログを開く

field を右クリックして Properties を選択するか、Document Definition のプロパティを開きます (Document Definition エディターで Document Definition → Document Definition Properties を選択します) 。
2

新しいルールを作成する

Rules タブで New Rule をクリックします。データベース チェック を選択し、OK をクリックします。
3

共通ルール オプションを設定する

Name を入力し、重要度ルールを適用する条件、必要に応じて Tags を設定して、Next をクリックします。共通ルール オプションの一覧については、ルールを設定するを参照してください。
4

データ ソースに接続する

データ ソースの型と接続パラメーターを指定します。次のデータ ソースがサポートされています。
OLE DB Provider には、SQL にエクスポートする場合は OLE DB Provider for ODBC Drivers を、Oracle にエクスポートする場合は Oracle Provider for OLE DB を使用してください。詳細については、Oracle データベースにエクスポートを参照してください。
接続のたびに password を入力しないようにするには、Allow saving password を選択するか、データベースで password が不要となるように設定します (例: Windows authentication を使用する) 。
5

スキーマとテーブルを選択する

ドロップダウン リストからスキーマとデータベース テーブルを選択するか、データ セット に接続する場合はデータ セット を指定します。
Find in all schemas が選択されていて、テーブルが既定のスキーマにない場合、Invalid object name などのエラーが表示されることがあります。その場合は、テーブルを含むスキーマを明示的に指定してください。
6

残りのオプションを設定する

  • 比較対象の fields に値がない場合にチェックをスキップして validation を高速化するには、Don’t check if all fields are empty を選択します。
  • Document Definition fields とデータベース fields のリンクを設定します (比較する fields を指定するを参照) 。AddEditDelete を使用してリンクを管理します。
  • source が データ セット の場合は、Field where to save record ID リストから主キー field を選択します。
データ セット には、Button コントロールを使用してデータ フォームからもアクセスできます。Document Definition エディターで Form → Insert Control → Button を選択します。Properties ダイアログで Format タブをクリックし、Type リストで データベース ルックアップ を選択してから、作成したデータベース チェック ルールを選択します。

比較する field を指定する

Rule Settings タブの Field links グループには、field の比較が表示されます。単一の field またはfield のセットに対してデータベース チェック ルールを設定できます。 比較ごとに、次の項目を指定します。 ファジー検索では、最も近い一致が検索されます (一致させるために追加、削除、または置換が必要な文字数が最も少ないもの) 。許容エラー数は単語の長さによって異なります。複数の値が一致した場合、Operator には Too many records found と、選択できる近似一致のリストが表示されます。 次の追加オプションを使用できます。

データ セットの主キー

プロジェクトに、ソース field の値の取得元となるデータ セット (外部データベースのローカル コピー) が含まれている場合、データベース チェック ルールを使用して、field をデータ セット内の record の主キー (一意の識別子) として設定できます。 データ フォーム上のデータは、データ セット内のデータと照合されます。record を選択すると、すべての field にデータ セットの値が入力され、データ フォーム上の値は編集できなくなります。編集しようとすると、別の record を選択するか、既存の record を編集するよう求めるダイアログが表示されます。record を追加または編集するには、field を右クリックし、Edit Data Set Record または Add Data Set Record を選択します。入力済みの field のデータを Delete キーで削除すると、ルールに関連する他のすべての field のデータも削除されます。変更を適用すると、ルールが再チェックされます。

主キーの仕組み

  1. ルール の対象となるすべての field で Enter value from database を有効にする必要があります。主キー field に値がある場合、FlexiCapture はその値を検索せず、データベースから他の field に値を入力します。
  2. 主キー field に値がない場合、FlexiCapture は Field Link ダイアログで Search が有効になっている他の field を調べます (比較する field を指定するを参照) 。これらの field に一致する一意の record が見つかった場合は、手順 1 と同様にデータベースの値が使用されます。
その後、すべての変更を受け入れるか、データ セット から別の record を選択するかを決定します。 主キーは、次の場合にのみ機能します。
  • source として データ セット が選択されている。
  • データ セット で主キーが指定されている (field に対して Primary key オプションが有効になっている) 。
  • 主キー field が Rule Settings タブの Field links リストに含まれていない。
データ セット と sample プロジェクトの詳細については、ABBYY FlexiCapture for Invoices セクション、ベンダーおよび事業部門データベースの使用、およびデータベースでベンダーと事業部門をルックアップするを参照してください。

一連のfieldに対してデータベース チェックを実行する

FlexiCapture は、一連のfieldの値に一致する文字列をデータベースから検索し、各fieldを一致した文字列の異なるcolumnに関連付けます。 たとえば、document fieldである FaFbFc を、データベースのcolumnである TaTbTc に関連付けます。
  • FaTa と完全に一致する。
  • FbTb とあいまいに一致する。
  • 両方の条件が満たされると、Tc の値が Fc にコピーされる。
document field a、b、c をデータベースのcolumn Ta、Tb、Tc と比較する図。1 つのデータベース行で TRUE の一致が成功した例と、異なる行にまたがって FALSE の一致が失敗した例を示しています。
FlexiCapture が、TaFa と完全に一致し、かつ TbFb とあいまいに一致するデータベース文字列を見つけた場合、チェックは成功します。その文字列の Tc の値は Fc にコピーされます。そのような文字列が見つからない場合、Ta = FaTb = Fb が異なる文字列に存在していても、ルールはエラーを返します。
完全一致、あいまい一致、混在一致、自動入力なし、任意の数のfieldなど、さまざまな組み合わせが可能です。