データベースのチェックルール
認識フィールド値とデータベース内の値の比較と、フィールド値のデータベースチェックは関連します。取得したフィールド値がデータベース内で検出された場合、チェックが完了します。さもなくば、エラーが生成されます
このルールを使用することで、データベースに特定のエントリーと一致する値がデータベースにあるかを確認することが出来ます。あいまい検索をするにあたり、フィールドにタイプミスもしくはエラーがある場合でも、フィールド値と一致するデータベースの記録を置き換え、特定の値をデータベースから文書フィールドにコピーする為にも使用できます。
データベースチェックルールを作成する
データベースチェックルールを作成するには以下の手順を踏んでください:
- フィールドプロパティダイアログボックス(フィールド上での右クリックでショートカットメニューが開けます)、プロパティ...もしくは文書定義ダイアログボックス(文書定義編集メニューから開けます。)を開き次のように選択。文書定義 →文書定義プロパティ...)。
- 移動してルールタブをクリックします。
- 次に新規ルール...ボタンをクリックして行ってください。
- ルールタイプのリストからデータベースチェックを選択してOK。
- ルール名を入力してください。
- またメッセージ内のルール名を検証者に表示オプションを有効します。もしこのオプションが無効である場合、”ルールの名前:エラーメッセージ”の代わりに"エラーメッセージ"というエラーメッセージが表示されます。
- ルールの重大度を設定してください。
- もし必要であれば、ルールが適用されるべき条件下を指定してください。(デフォルトではルールは条件問わず適用されることになっています)詳しくは、ルールを適用するための条件をご覧ください。
- ルール用にタグを指定してください。
- また有効なルールオプションを有効します。ルールは作成されますが、当該オプションがユーザーによい有効化されない限りは適用されません。
- クリック次へ >。
- タイプおよび接続パラメーターを指定することでデータソースとの接続を設定する。
以下のデータソースがサポートされています: - 外部データベース(シンプル)外部データベースへの接続は文書定義内の各ルールそれぞれに対して設定されます。
- 外部データベース(変数)外部データベースへの接続はプロジェクトのプロパティでのみ設定ができます(プロジェクトプロパティ→環境変数)。このタイプのデータソースは複数ルールに対して同時に使用することが出来ます。もし異なるデータベースをプロジェクトに使用している場合、プロジェクトプロパティでのみ接続設定を修正することが出来ます。
- データセットデータセットへの接続は文書定義のプロパティで設定出来ます(文書定義プロパティ→データセット)。
ヒント。OLE DB プロバイダとして以下を選択することを推奨します: - SQLをエクスポートする際、ODBCドライバーに対してOLE BDプロバイダを選択
- Oracleをエクスポートする際、OLE DBに対してOracleプロバイダを選択(詳細についてはOracleデータベースへのエクスポート)
注:データベースへの接続時にパスワードを毎回入力したくない場合は、パスワードの保存オプションを選択するか、接続時にパスワードを求めない設定をデータベースに施してください(例えば、Windows認証を変わりに使用するなど)。 - 必要な図表やデータベースをドロップダウンリストから選択するか、タイプのソースへの接続を設定している場合、必要なデータセットを指定してください。データセット。
注:もし、すべてのスキーマで検索がスキームとして選択され、指定されたテーブルがデフォルトスキームに含まれていない場合、以下のエラーメッセージが表示されます:
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name K1. [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared.
エラーメッセージが表示された場合、テーブルを含んだ図表名が明確に指定されなければなりません。 - そしてすべてのフィールドが空の場合はチェックしないもし比較対象のフィールドに値がない場合、ルールチェックを省略するオプションを選択してください。これはルール検証を高速化します。
- 文書定義内のフィールドとデータベース内のフィールド間で関連付けを確立します。(詳細は比較するフィールドの指定をご覧ください)
- 追加...,編集...と削除ボタンでフィールド間のリンクを追加、編集、削除できます。
- データセットをソースとして選択した場合、レコード ID を保存するフィールドドロップダウンリストからプライマリキーのフィールドを選択できます。
重要!データセットはデータからボタンタイプの管理経由で直接アクセスできます。ボタンをデータフォームに追加するには、フォーム→コントロールの挿入→ボタンを文書定義エディタで選択します。データフォームにボタンを追加すると、プロパティダイアログボックスが開きます。次に形式タブをクリックし、データベースルックアップ表示されたタイプドロップダウンリスト、そして次に、事前に作成したデータベースチェックルールを選択してください。
比較するフィールドの指定
表示されたルール設定タブ内のフィールドリンクグループにて、既に指定されたフィールド比較を確認頂けます。データベースチェックルールを一つ、または複数のフィールドに対して設定できます。。
比較用のフィールドを追加または修正した場合、以下のようにしていしなければなりません:
- 文書フィールドデータベースフフィールドと比較される文書定義フィールド
- データベースフィールド文書フィールドと比較されるデータベース内のフィールド
- 検索比較タイプを指定してください:
- 完全一致文書フィールド内の値はデータベースフィールド内の値と差異なく一致している必要があります(注:しかしながら、検索においては小文字大文字は区別されません)
- あいまい文書フィールド内の値はデータベース内の値と部分的にのみ一致する場合があります。テキストフィールドのみが比較タイプにて使用できます。
あいまい検索のヒント:
利用できる追加のオプションは以下の通りです:
- フィールドが空の場合は検索しないフィールドが空の場合、その値はデータベース内の値と比較されません。
- データベースから値を入力あいまい検索が一致する値をデータベースから発見した場合、その値は以下の場合で自動的に入力されます:
- フィールドとデータベースの値が異なる。
- フィールドが空。
注:完全一致の場合、データベースから値を入力値が一緒なので、オプション選択は意味をなしません。 - データベース内に空の値を許可データベースチェックおよび他設定の結果次第で、オプションは以下の意味を持ちます:
- もしデータベースフィールドが空で、文書フィールドがからでない場合、フィールドおよびデータベース値は同一であるとみなされます
- データベースフィールドが空で、文書フィールドがデータベースから入力されて選択されている場合、空のデータベース値はフィールドに入力されません。
データセット内のプライマリーキー
もしプロジェクトがデータセット(外部データベースのローカルコピー)を使用すると、データベースチェックルールを使用して、記録のプライマリーキー(ユニークな識別子)として使用されるフィールドを指定できますデータセット。
もしこれを行った場合、データフォームのデータは のデータと等しくなります。データセット。記録を選択した際、からの値が入力されている全てのフィールドがデータセット。データフォーム内の値を編集することは出来ません。編集しようとすると、以下いずれかの処理を勧めるダイアログボックスが表示されます:
- から他の記録を選択してください。データセット
- 既存の記録を編集してください
フィールドを右クリックして表示されるダイアログボックスで記録を追加または編集することができ、 をクリックすることでデータセットレコードを編集...またはデータセットレコードを追加...ショートカットメニューでクリックします。
を押すことで、入力されたフィールドのデータを削除した場合、削除キー、ルールに関連したすべてのフィールド内のデータも削除されます。
変更を加えた際に、当該ルールは再度チェックを行います。
プライマリキーの機能
- ルールの対象となっているすべてのフィールドはデータベースから値を入力有効なオプションを持っている必要があり、その場合、値を含んだプライマリキーとしてフィールドが動作するということになり、プログラムは他フィールドの値を検索しなくなります。代わりにデータベースから値を挿入します。
- プライマリキーとして動作しているフィールドが値を持たない場合、フィールドリンクダイアログボックスで比較が必要なフィールドが指定されている場合に、検索オプションが有効になっている他のフィールドが調べられます(上記の比較するフィールドの指定を参照)。他のフィールドが調べられます(上記の比較するフィールドの指定を参照)。(上記の比較するフィールドの指定を参照)。ユニークな記録がこれらフィールドで発見された場合、データベースからの値が使用されます(上記1の通り)
すべてのユーザーは変更を受け入れるか、 からの他の記録を使用するか選択しなければなりません。データセット。
以下の条件はプライマリキーが動作する為に満たされなければなりません:
- Aデータセットがソースとして選択される;
- プライマリキーは により指定されているデータセット例:プライマリキーの際にオプションはフィールドで有効
- プライマリキーとして作用しているフィールドは にてリストアップされませんフィールドリンクリストでルールの設定タブをクリックします。
そのABBYY FlexiCapture for Invoicesセクションには に対する情報があり、データセットサンプルプロジェクトでどのように使用されているかを解説しています。
詳しくは、ベンダーや部署のデータベースの接続。
詳しくは、データベースでのベンダーや部署の検索。
一連のフィールドに対してデータベースチェックを行う
この場合、プログラムはデータベースで一連のフィールド内の値と一致する値を検索します。当該フィールドの各値は発見された値の異なるカラムに関連付けられます。
以下の例を考えてみましょう:
文書フィールドをFa、Fb、そしてFcとし、データベースカラムをTa、TbそしてTcと以下のように表します:
- Tcカラムの正確に一致し、フィールドはTaフィールドのデータベースカラムの値が
- TcカラムのデータベースチェックはTbの値と部分一致Fbカラムの値の
- 特定の条件が満たされた際、Tcフィールドの値はFcフィールド。
データベース列が見つかった場合、データベースカラムの値がFaカラムの値と正確に一致し、Tbカラムの値がFbカラムの値の部分一致である場合、データベースチェックはフィールド。Tcカラムの値はFcフィールドにコピーされます。Fcフィールド。
そのような列が見つからなかった場合、ルールはエラーを生成します。例えプログラムが、例えば異なる列のTa=FaそしてTb=Fbというものを見つけた場合でも。
注:異なるコンビネーションは利用できます:完全/あいまい/混合一致、オートフィルなし、フィールド数の指定なし等など。
4/12/2024 6:16:06 PM