Skip to main content
ABBYY FlexiLayout Studio には、請求書プロジェクト向けの追加の FlexiLayout を開発するための特長がいくつかあります。
  • 請求書プロジェクトのメインの FlexiLayout の適用時に検出されたfield Regionを基準に、要素の位置を指定できます。
  • ベンダーおよび事業部門の識別子を、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 プロジェクトでのみ使用できます。分散インストール環境でプロジェクトがサーバーに保存されている場合は、事前にプロジェクトをコンピューターにダウンロードしてください。ダウンロードするには、Project メニューの Export Project… をクリックします。
新しい ABBYY FlexiLayout Studio プロジェクトには、FlexiCapture バッチ内のすべてのドキュメントが含まれます。さらに、認識時に検出された field のRegionも reference layout として含まれます。プロジェクト名のサフィックスは、プロジェクト作成時点での Document Definition のバージョンを表します。

追加の FlexiLayout にfieldを追加する

追加の FlexiLayout にfieldを追加するには、そのfield用のブロックを作成し、その検索要素を指定します。Document Definition 内のfieldには一意の名前が必要なため、目的に応じて次のようにブロックに名前を付けます。

追加の FlexiLayout にページを追加する

追加の FlexiLayout に加えた変更を新しい画像でテストするには、FlexiCapture のバッチを ABBYY FlexiLayout Studio の既存の請求書プロジェクトにエクスポートします。Tools → Export Batch to FlexiLayout Studio → Add to Existing FlexiLayout Studio Project… をクリックします。 FlexiCapture のバッチのエクスポート先にできるのは、Create New FlexiLayout Studio Project… コマンドで作成した ABBYY FlexiLayout Studio プロジェクトのみです。エクスポートした FlexiCapture バッチは、それぞれ ABBYY FlexiLayout Studio プロジェクト内の新しいバッチになります。

プロジェクト作成後に追加されたfieldのエクスポート

新しい Document Definition には、ABBYY FlexiLayout Studio プロジェクトで使用したものより多くのfieldが含まれている場合があります。その場合、エクスポートログには、追加されたfieldごとに警告が記録されます。追加されたfieldをエクスポートするには、SearchElements ツリーの CommonBlockRegions ノードに、各fieldと同じ名前のブロックを追加してください。

Document Definition からデータ セットにリクエストを送信する

サンプルリクエストは DataSetRequestSample 要素にあります。この要素はデフォルトで無効になっています。

NamedValue 型

名前付きの値。 コンストラクター: NamedValue( String, String )

NamedValueArray 型

名前付きの値の配列。 コンストラクター:
  • NamedValueArray()
  • NamedValueArray( NamedValue namedValue )

関数のパラメーター

searchCriteria 内のリクエストに複数の値が含まれる場合は、OR 演算子と AND 演算子で組み合わせます。

関数

画像上の外部データベースで、列を指定して行を検索する

1

列の一覧を取得する

FieldNamesOfFCDataset を使用して、インデックス番号の昇順に並んだ列の一覧を取得します。
2

列のインデックスを特定する

検索するデータが含まれる列のインデックス番号を特定します。
3

フィルターを作成する

データ セットからデータを絞り込むための条件の配列を作成します。
4

検索を実行する

列のインデックス番号とフィルター条件を SearchTextFromFCDataSet に渡します (正規表現を使用する必要がある場合は RegularExpressionFromFCDataSet) 。
このコードは、認識済みバッチが FlexiCapture からエクスポートされる際に自動生成されます。

複数の列のエントリを画像内で検索する

SearchTextFromFCDataSet 関数は呼び出すたびに検索パラメーターを置き換えるため、繰り返し呼び出しても効果はありません。回避策として、外部データベースから文字列を取得し、それらを SearchText 関数に渡します。SearchText は、各文字列で既存の検索パラメーターを置き換えるのではなく、既存の検索パラメーターに追加します。
1

列を一覧化する

検索対象のデータが含まれる列名の配列を作成します。
2

フィルターを作成する

データ セット内のデータを絞り込むためのフィルター条件の配列を作成します。
3

エントリ数を数える

RecordCountOfFCDataset 関数を使用して、返されるエントリ数を確認します。
4

クエリを準備する

PrepareRecordsetOfFCDataset 関数を使用してクエリデータを準備します。
5

各レコードを読み取る

すべてのレコードを順に処理し、RecordOfFCDataset メソッドを使用して各レコードの配列を取得します。
6

値を SearchText に渡す

配列内の各要素の値を SearchText 関数に渡します。

複合列

データセット内の複合列は、エンコードされた外部データベースでは複数の列として格納されます。以下の例では、複合列 Name が 3 つの列として格納されているため、データセットの field は {VendorId, VATID, Name, Name, Name, City} となります。 リクエストで返される列の一覧を取得するには、searchFields 配列を FieldNamesOfFCDataset 関数に渡します。

FlexiLayout 設定を含む XML ファイルへのリクエストを行う

FlexiLayout 設定を含む XML ファイルに対しては、ABBYY FlexiLayout Studio の Documentation で説明されている 2 つの標準関数を使用してリクエストを行うことができます。
ABBYY FlexiLayout Studio で FlexiLayout の作業時にこのファイルを使用するには、このファイルをプロジェクト フォルダーまたはそのサブフォルダーに配置します。ファイルのパスは、ABBYY FlexiLayout Studio のプロジェクト ファイルからの相対パスです。 コンパイル済みの FlexiLayout を FlexiCapture の Document Definition にロードし、追加の FlexiLayout として使用する場合、XML ファイルは Templates フォルダーに配置されます。このファイルはそのフォルダー内で編集できます。FlexiLayout が適用されると、プログラムがこのファイルへのアクセスを自動的に管理します。