- 請求書プロジェクトのメイン FlexiLayout の適用時に検出されたフィールドの領域を基準に、要素の位置を指定できます。
- ベンダーおよび事業部門の識別子を、Document Definition のデータ セットへのリクエストで使用できます。
- FlexiLayout のキーワードのリストやその他のパラメーターを XML ファイルにエクスポートできるため、FlexiLayout や Document Definition を編集しなくてもそれらを編集できます。
追加の FlexiLayout を作成する
このコマンドは、お使いのコンピューターに保存されている FlexiCapture プロジェクトでのみ使用できます。Distributed バージョンの FlexiCapture を使用していて、プロジェクトがサーバーに保存されている場合は、まず Project メニューの Export Project… をクリックして、プロジェクトをコンピューターにダウンロードします。
ABBYY FlexiLayout Studio プロジェクトの接尾辞は、プロジェクト作成時点の Document Definition のバージョンを示します。
| Tree | Node | Description |
|---|---|---|
| SearchElements | CommonBlockRegions | このノードには、Document Definition のすべての field に対応する要素が含まれています。FlexiCapture で各ドキュメントに FlexiLayouts が適用された際に検出された blocks のすべての region の座標が、ABBYY FlexiLayout Studio プロジェクトに保存されます。既定では、これらの座標を持つ region は、Document Definition の field と同じ名前の要素に割り当てられます。これにより、要素の相対位置を指定したり、新しい要素を作成したりできます。 |
| SearchElements | CustomSearchElements | このノードにはサンプル要素が含まれています。FlexiLayout の適用時に干渉しないよう、既定では無効になっています。 DataSetRequestSample — Document Definition に保存されているベンダーと事業部門の データ セット への request の例です。この データ セット には、ベンダーと事業部門の識別子が含まれています。 |
追加の 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 からデータ セットにリクエストを送信する
| 型 | 説明 |
|---|---|
| NamedValue | 名前付きの値。 |
| コンストラクター | |
NamedValue( String, String ) | |
| メソッド | |
String Name() | 名前付きの値の名前を返します。 |
String Value() | 名前付きの値の値を返します。 |
| NamedValueArray | 名前付きの値の配列。 |
| コンストラクター | |
NamedValueArray() | |
NamedValueArray( NamedValue namedValue ) | |
| メソッド | |
Int Count() | 配列内の要素の総数を返します。 |
NamedValue GetAt( Int index ) | 指定した index の要素を返します。 |
Void Add( NamedValue namedValue ) | 配列に名前付きの値を追加します。 |
Void Add( NamedValueArray namedValueArray ) | 名前付きの値の配列に、別の名前付きの値の配列を追加します。 |
Void InsertAt( Int index, NamedValue namedValue ) | 指定した位置 index に名前付きの値を挿入します。 |
Void DeleteAll() | 配列内のすべての要素を削除します。 |
Void DeleteAt( Int index ) | 指定した位置 index の要素を削除します。 |
Int FindByName( String name ) | name で指定した名前の値の位置を返します。 |
関数
- 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 演算子を使用します。
| Definition | Description |
|---|---|
Logic TestAccessToFCDataSet( String connectionString ) | データ セットへの接続をテストします。 |
Logic TestFCDataSetSearchCriteria( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | データ セットの検索条件をテストします。 |
StringArray FieldNamesOfFCDataset( String connectionString ) | データ セット内のすべての field のリストを、インデックス番号の昇順で返します。 |
StringArray FieldNamesOfFCDataset( String connectionString, StringArray searchFields ) | 指定したデータ セットのデータ セット field のリストを、インデックス番号の昇順で返します。複合列がある場合は、RecordOfFCDataset 関数と組み合わせて使用する必要があります。 |
Int RecordCountOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) | 検索条件で指定されたデータ セット内のエントリ数を返します。RecordOfFCDataset 関数を使用して返される可能性があるエントリ数を確認するために使用します。 |
Void PrepareRecordsetOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | データ セットへのクエリに使用するデータを準備します。これは、RecordOfFCDataset 関数を呼び出す前に、新しい検索条件の set ごとに実行する必要があります。 |
StringArray RecordOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int rowIndex ) | データ セットへのクエリ結果のうち、rowIndex 番のエントリから値の配列を返します。値の数は、searchFields で渡された field の数と等しくなります (複合列の場合も含みます) 。 |
Quality ValidateByFCDataSet( String word, String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxErrors, Rational maxErrorsPart, Logic ignoreSpaces = true, Int maxRecordsCount = DefaultMaxRecordsCount ) | 文字列 word の品質を返します。field のインデックス番号を受け取ります。インデックス番号は、FieldNamesOfFCDataset 関数の出力に indexing して取得できます。 |
Void SearchTextFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | Static Text 関数の単語に対する検索条件を指定するために使用します。この関数が呼び出されると、既存の検索条件は新しい条件に置き換えられます。field のインデックス番号を受け取ります。インデックス番号は、FieldNamesOfFCDataset 関数の出力に indexing して取得できます。 |
Void RegularExpressionFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) | CharString 関数に対して、正規表現を使用した検索条件を指定するために使用します。この関数が呼び出されると、既存の検索条件は新しい条件に置き換えられます。field のインデックス番号を受け取ります。インデックス番号は、FieldNamesOfFCDataset 関数の出力に indexing して取得できます。 |
画像上の外部データベースで、列を指定して行を検索する
このコードは、認識済みバッチが FlexiCapture からエクスポートされる際に自動生成されます。
複数の列のエントリを画像内で検索する
複合列に関する追加の考慮事項
-
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 を取得できます。
