knowledge AI-OCRに対するファイルアップロード・読み取り結果のダウンロードをRest APIで行うサンプル(新バージョンUI版)

※本記事は、「AutoMate定型OCRオプション with AI inside」をご利用頂いているお客様向けの記事です。

AutoMate定型OCRオプションでは新バージョンv2への移行が開始しています。
AutoMate定型OCRオプションにてRest APIを使用するタスクにおいても修正が必要となります。
以下新バージョンにおけるサンプルの変更点です。
旧バージョンのサンプルについては下記URLをご参照ください。
https://automate.sct.co.jp/knowledge/12203/

■AI-OCR新バージョン移行における注意点
AutoMate11.7以前をご利用のお客様につきまして、AutoMateの「HTTP」アクションを使用してAPI経由でファイルをアップロードする際に
ファイル名等にダブルバイト文字を含むファイルのアップロードができない事象が確認されています。
本事象はver.22.1以上にて修正パッチが用意されていますので、新バージョンをご利用の際にはver.22.1へのバージョンアップもご検討ください。
https://automate.sct.co.jp/news/16372/

■変更点
1) 変数の値について
以下の変数の値を追加、修正します。
・新規の変数「var_WorkflowID」
新バージョンのAI-OCRではWorkflowIDが必要となります。
AI-OCRにログイン後、「NewUI」から現在使用している読み取り定義の定義画面を選択し「…」から「ワークフローIDをコピー」にてWorkflowIDをコピーすることが可能です。

・既存の変数「var_URI」
初期値を「https://{サブドメイン}.dx-suite.com/wf/api/standard/v2」に変更します。

・既存の変数「var_DocumentID」
こちらの変数は新バージョンでは使用しないため削除します。

2) 以下の処理を修正します。
・ファイルのアップロード処理(「HTTP - Post」アクション)
「一般」
URL:%var_URI%/workflows/%ワークフローIDの変数%/units
ファイルフィールド:files
フィールドの要求:名前→workflowId 値→%ワークフローIDの変数%
「認証情報」
リクエストヘッダー:名前→apikey (値は変更なし)

・読み取りステータス確認処理(「HTTP - Get」アクション)
「一般」
URL:%var_URI%/units?unitId=%js_OCRUnit.unitId%
「認証情報」
リクエストヘッダー:名前→apikey (値は変更なし)

・var_ReadingStatusの値セット処理(「変数 - セット」アクション)
「一般」
新しい値:%js_Status.units(0).status%

・CSVファイルダウンロード処理(「HTTP - Get」アクション)
「一般」
URL:%var_URI%/units/%js_OCRUnit.unitId%/csv
ローカルファイル:%GetDesktopDirectory()%\%js_Status.units(0).unitName%.csv
「認証情報」
リクエストヘッダー:名前→apikey (値は変更なし)

以下、新バージョン用のサンプルです。
なお、このサンプルでは帳票アップロード~CSVダウンロードを実施するまで、エントリーを行わないことを前提としています。
また、本サンプルでは読み取り定義を指定します。自動仕分は考えないのでご注意ください。

<!--1ファイルをアップロードし読取ユニットを作成し、読取が終了次第チェックなしでCSVファイルをダウンロードするサンプル-->
<AMVARIABLE NAME="var_ReadingStatus" VALUE="0" DESCRIPTION="読取ステータス" TYPE="number" />
<!--サービスURLの指定:「ここを変更」の部分をお客様のサービスURLに変更-->
<AMVARIABLE NAME="var_URI" VALUE="https://ここを変更.com/wf/api/standard/v2" DESCRIPTION="APIの共通URI" />
<!--管理画面より生成したAPIキーを指定-->
<AMVARIABLE NAME="var_APIKey" VALUE="AAAaaa" DESCRIPTION="APIキー" />
<!--読取対象のファイル名を指定-->
<AMVARIABLE NAME="var_FileName" VALUE="C:\ファイル.pdf" DESCRIPTION="OCR処理対象のファイル名" />
<!--ワークフローIDを指定 ワークフローIDは、OCRのドキュメントを選択した際のURLから確認可能-->
<AMVARIABLE NAME="var_WorkflowId" VALUE="303179" DESCRIPTION="ワークフローID 対象の定義を選んだ際のURLから取得可能" />
<AMVARIABLE NAME="var_GetResult" VALUE="" DESCRIPTION="Get Requestの結果を格納する変数(ファイル指定回避)" />
<!--読取ユニット作成 ファイルを指定しないとContent-Typeが「multipart/form-data」にならない-->
<AMHTTP ACTIVITY="post" CONTENTTYPE="multipart/form-data" URL="%var_URI%/workflows/%var_WorkflowId%/units" TYPE="field" FILEFIELD="file" DATA="%var_FileName%" RESULTDATASET="ds_unit"><HEADER NAME="apikey" VALUE="%var_APIKey%" /><FIELD NAME="workflowtId" VALUE="%var_WorkflowId%" /></AMHTTP>
<AMJSON ACTIVITY="json_deserialize" JSONSTRING="%ds_Unit.Data%" RESULTSTRUCTURE="js_OCRUnit" />
<!--読取ユニットのステータスが「読取完了」以上になるまでループ-->
<AMLOOP ACTIVITY="expression" CONDITION="until" EXPRESSION="%12 &lt;= var_ReadingStatus AND var_ReadingStatus &lt;= 22 %" />
<AMHTTP URL="%var_URI%/units?unitId=%js_OCRUnit.unitId%" RESULTDATASET="ds_Status" RESULTVARIABLE="var_GetResult"><HEADER NAME="apikey" VALUE="%var_APIKey%" /></AMHTTP>
<AMJSON ACTIVITY="json_deserialize" JSONSTRING="%ds_Status.Data%" RESULTSTRUCTURE="js_Status" />
<AMVARIABLE ACTIVITY="set" VARIABLENAME="var_ReadingStatus">%js_Status.units(0).status%</AMVARIABLE>
<AMLOOP ACTIVITY="end" />
<!--読取ユニットを指定してCSVダウンロード 「生成された読取ユニット名」.csvの名前でダウンロードしデスクトップに保存-->
<AMHTTP URL="%var_URI%/units/%js_OCRUnit.unitId%/csv" FILE="%GetDesktopDirectory()%\%js_Status.units(0).unitName%.csv"><HEADER NAME="apikey" VALUE="%var_APIKey%" /></AMHTTP>

なお、自動仕分機能を使用した場合のファイルアップロード・CSVダウンロードは下記の記事をご参照ください。
AI-OCRの自動仕分けで仕分けられた帳票を、帳票定義ごとにCSVをダウンロードする方法

【APIキーの取得方法】
APIキーを取得するには、以下の手順で実施します。なお、管理者アカウントで実施する必要があります。
(以下、AutoMate定型OCRオプションに管理者アカウントでログインした後の手順)
① ユーザー名の右側にある「▼」ボタンを押す
② 「設定」をクリック

③ 「APIキー設定」から、「新規作成」を押下
④ ダイアログメッセージに「OK」で応答するとAPIキーが新たに生成される