- 請求書プロジェクトのメイン FlexiLayout の適用時に検出されたフィールドの領域を基準に、要素の位置を指定できます。
- ベンダーおよび事業部門の識別子を、Document Definition のデータ セットへのリクエストで使用できます。
- FlexiLayout のキーワードのリストやその他のパラメーターを XML ファイルにエクスポートできるため、FlexiLayout や Document Definition を編集しなくてもそれらを編集できます。
追加の FlexiLayout を作成する
1
FlexiCapture でバッチを開く
FlexiCapture で、認識済みの請求書を含むバッチを開きます。
2
FlexiLayout Studio プロジェクトを作成する
ABBYY FlexiLayout Studio で新しいプロジェクトを作成します。メイン メニューで、Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project… を選択します。
このコマンドは、お使いのコンピューターに保存されている FlexiCapture プロジェクトでのみ使用できます。Distributed バージョンの FlexiCapture を使用していて、プロジェクトがサーバーに保存されている場合は、まず Project メニューの Export Project… をクリックして、プロジェクトをコンピューターにダウンロードします。
ABBYY FlexiLayout Studio プロジェクトの接尾辞は、プロジェクト作成時点の Document Definition のバージョンを示します。
追加の FlexiLayout にfieldを追加する
- fieldの検索ロジックを記述するには、一意の名前を持つブロックを作成します。
- すでに Document Definition に存在するfieldの検索ロジックを変更するには、同じ名前のブロックを作成します。
追加のFlexiLayoutにページを追加する
- FlexiCapture の Batches は、Tools → Export Batch to FlexiLayout Studio → Create New FlexiLayout Studio Project… を選択して作成した ABBYY FlexiLayout Studio プロジェクトにのみエクスポートできます。
- FlexiCapture の batch を ABBYY FlexiLayout Studio にエクスポートすると、その batch 用の新しい batch が ABBYY FlexiLayout Studio に作成されます。
- 新しい Document Definition に、ABBYY FlexiLayout Studio プロジェクトで使用している Document Definition より多くの fields がある場合、エクスポートログには追加された field ごとに警告が記録されます。
- プログラムが追加された fields もエクスポートするようにするには、追加された field ごとに、SearchElements ツリーの CommonBlockRegions ノードに同じ名前のブロックを追加します。
Document Definition からデータ セットにリクエストを送信する
関数
- ABBYY FlexiLayout Studio で FlexiLayout を操作する際、データ セットにアクセスするには、Document Definition へのパスとデータ セット名を使用します。
- コンパイル済みの FlexiLayout を FlexiCapture の Document Definition に追加した後は、データ セットへのアクセス時にその名前のみが使用されます。
-
connectionString の形式:
注: パスの各部分は二重バックスラッシュ (
\\) で区切ってください。 - searchFields — 値を取得する列名の配列。
-
searchCriteria — Column-Entry ペアの配列。空の場合はすべての値を返します。
- リクエストに 1 つの field に対する複数の値が含まれる場合は、OR 演算子を使用します。
- リクエストに、それぞれが 1 つの field にのみ対応する複数の値が含まれる場合は、AND 演算子を使用します。
- リクエストに 1 つの field に対する複数の値と、複数の fields に対する値が含まれる場合は、1 つの field に対する複数の値を区別するために OR 演算子を使用し、複数の fields の値を結合するために AND 演算子を使用します。
画像上の外部データベースで、列を指定して行を検索する
1
列の一覧を取得する
FieldNamesOfFCDataset を使用して、インデックス番号の昇順に並んだ列の一覧を取得します。
2
列のインデックスを特定する
検索するデータが含まれる列のインデックス番号を特定します。
3
フィルターを作成する
データ セットからデータを絞り込むための条件の配列を作成します。
4
検索を実行する
列のインデックス番号とフィルター条件を SearchTextFromFCDataSet に渡します (正規表現を使用する必要がある場合は RegularExpressionFromFCDataSet) 。
複数の列のエントリを画像内で検索する
1
列を一覧化する
検索対象のデータが含まれる列名の配列を作成します。
2
フィルターを作成する
データ セット内のデータを絞り込むためのフィルター条件の配列を作成します。
3
エントリ数を数える
RecordCountOfFCDataset 関数を使用して、返されるエントリ数を確認します。
4
クエリを準備する
PrepareRecordsetOfFCDataset 関数を使用してクエリデータを準備します。
5
各レコードを読み取る
すべてのレコードを順に処理し、RecordOfFCDataset メソッドを使用して各レコードの配列を取得します。
6
値を SearchText に渡す
配列内の各要素の値を SearchText 関数に渡します。
複合列に関する追加の考慮事項
-
FieldNamesOfFCDataset 関数は、複合列の名前が複数回含まれる array を返します。出現回数は、エンコードされた外部データベース内の列インスタンス数と同じです。
例:
{VendorId, VATID, Name, Name, Name, City}。この場合、外部データベースには、データ セット 内の 1 つの複合列 Name に対応する列が 3 つあります。 - SearchCriteria に複合列に対応する field の条件が含まれている場合 (上記の例のように) 、その条件はそれらすべての列インスタンスに対してチェックされます。
-
searchFields に複合列に対応する field の条件が含まれている場合 (上記の例のように) 、結果には各列インスタンスの値の array が含まれます。
たとえば、
{VendorId, VATID, Name, Name, Name, City}に対して次のように要求すると: - searchFields array を FieldNamesOfFCDataset 関数に渡すことで、返される columns の List を取得できます。
