データセットのセットアップと使用方法

質問

FlexiCapture の文書定義内で利用可能なデータセットのセットアップ方法及び、その使用方法を教えてください。

回答

セットアップ手順

  1. データセットの設定:
    対象の文書定義を開き、文書定義エディタ:「文書定義メニュー>文書定義プロパティ」から表示された画面から、「データセット」タブを選択、「追加」ボタンをクリックします。
    mceclip0.png
    mceclip1.png
    新規データセット画面が表示されるので、データセット名を入力、「OK」をクリックします。
  2. データセット:データベースの指定
    「データセット」画面が表示されます。
    • ソース:「データベース」を選択します。
    • 「指定」ボタンをクリックし、「データリンクプロパティ」画面から、ウィザードに従い、設定を実施します。

    ※Excelファイルをデータベースとして使用しデータセットを作成する例については、「Excelファイルからのデータセット作成」をご参照ください。

    mceclip2.png

    正常に、設定が完了すると、「データベースのテーブル」が選択できるようになるので、該当のテーブルを選択、

    以下のような、

    「データベーステーブルからデータセットテーブルへ列をコピーしますか?」確認画面が表示されるので、「はい」を選択し、テーブルが自動作成されることを確認します。

    mceclip4.png

    OK」ボタンをクリックし、「プロパティ」画面に戻ります。

データセット:登録内容の確認

登録した、データセットを選択(下部画面、青色ハイライト)、「更新」ボタンで、データの取り込みを実施、登録されているレコード数が、「レコードカウント」に反映されることを確認します。

「表示」ボタンで、登録している内容を確認することができます。

mceclip5.png

データセット情報取得方法

  1. 前提条件

    一例として、FlexiLayoutで作成した文書定義のフィールド:VendorNameを基に、ベンダー情報を取得する方法について記載します。

    現在の帳票は、文書定義エディタ内で、以下の様な体裁になっていることを前提に記載します。

    • InvoiceNo :請求書番号
    • TotalAmount :合計金額
    • InvoiceDate :請求書日付
    • VendorName:ベンダー名
    • VATID :VATID

    mceclip7.png

  2. 「ベンダー」内容、反映項目の追加

    データセットの「ベンダー」情報から、取得した内容を反映するフィールドを作成します。具体的には、上記画面にあるように、「文書構造」のフィールドを選択し、「右クリック > フィールドを作成」を選択し、以下の表の内容のフィールドを作成していきます。

    フィールドタイプ

    階層+名前

    備考

    グループ

    文書セクション1\Vendor

    ベンダー情報グループ(取得結果が判り易いよう、まとめる為、グループ利用してます)

    テキスト

    文書セクション1\Vendor\ID

    データセットのID

    (帳票から取得したベーダ―名で、データソースとマッチング後、銀行コードを反映します。)

    テキスト

    文書セクション1\Vendor\Name

    データセットのベンダー名(帳票から取得したベーダ―名は、ここでマッチングをします。)

    テキスト

    文書セクション1\Vendor\BANKCode

    データセットの銀行コード

    (帳票から取得したベーダ―名で、データソースとマッチング後、銀行コードを反映します。)

    以下のような文書構造になっていることが確認できます。

    mceclip8.png

  3. 帳票から取得した、ベンダー名をキーにし、データセットからベンダー情報を取得

    「文書セクション1\Vendor」(グループ)に、スクリプト処理で、ベンダー情報の取得を実施します。

    「文書セクション1\Vendor」のプロパティを開き、「ルール」タブから、「新規ルール」ボタンをクリックします。

    「検証ルール:ルールタイプを選択」画面で、「スクリプト」を選択「OK」を実施します。

    mceclip9.png

    「新しいスクリプトルール」画面で、任意の名前を設定、「次へ」ボタンをクリックします。

    mceclip10.png

    「新しいスクリプトルール」画面で、「追加」ボタンをクリック、

    「フィールドを選択」画面で、ベンダー情報を反映する項目を選択後、「選択する」ボタンで、「新しいスクリプトルール」画面に反映させます。

    mceclip11.png

    ベンダー情報を反映する為、その値を反映する項目(ここでは、「Vendor」、「ID」、「Name」、「BANKCode」)の読み取り専用チェックを外します。

    mceclip12.png

    「編集」ボタンをクリックし、「スクリプトエディタ」を起動し、以下のようなスクリプトを記載します。

    // ----- ↓ここから ------------------------------
    // get VATID name from image
    string sVID = Context.Field("VATID").Text;
    sVID = ( string.IsNullOrEmpty(sVID))? "":sVID.Trim();

    if (0<sVID.Length && “0”!= sVID){
       // make a data set and call the query
       IDataSet ds = Context.DataSet( "Vendors" );
       IDataSetQuery dsq = ds.CreateQuery();
       dsq.AddValue( "VATID", sVID );

       // get record
       IRecordset rs = ds.GetRecords(dsq);
       if(0<rs.Count){
           var record = rs.GetRecord(0);
           Context.Field("ID").Text = record.GetValue(0).ToString();
           Context.Field("Name").Text = record.GetValue(3).ToString();
           Context.Field("BANKCode").Text = record.GetValue(9).ToString();
           return;
       }
    }

    // get Vendor name from image
    sVID = Context.Field("VendorName").Text;  
    sVID = ( string.IsNullOrEmpty(sVID))? "":sVID.Trim();
    if (0<sVID.Length){
       // make a data set and call the query
       IDataSet ds = Context.DataSet( "Vendors" );
       IDataSetQuery dsq = ds.CreateQuery();
       dsq.AddValue( "name", sVID );

       // get record
       IRecordset rs = ds.GetRecords(dsq);
       if(0<rs.Count){
           var record = rs.GetRecord(0);
           Context.Field("ID").Text = record.GetValue(0).ToString();
           Context.Field("Name").Text = record.GetValue(3).ToString();
           Context.Field("BANKCode").Text = record.GetValue(9).ToString();
       }else{
           Context.Field("Name").Text = "err rs_cnt=" + rs.Count;
       }
    }
    // ----- ↑ここまで ------------------------------

以上の設定により、認識結果:VendorNameによってデータセットを検索し、該当するベンダー情報を取得・出力する事が可能となります。

注意:今回の例では、ベンダー名を「キー」にデータセットから、ベンダー情報を取得していますが、電話番号等、英数値で表現される情報の方が、「キー」としては、誤認識が起き難く、安全であることを補足します。

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。