メインコンテンツへスキップ
自社システム内で ABBYY Vantage を利用する場合、手動確認機能も活用したくなるでしょう。本セクションでは、手動確認の統合方法を説明します。 Vantage API 経由で複数のドキュメントを処理に送信した後は、Vantage API を使用してドキュメントを処理する方法に記載のとおり、トランザクションのステータスを監視します。ドキュメントに人手での確認が必要な場合、トランザクションのステータス応答にはセキュアなリンクを持つ manualReviewLink キーが含まれ、レビュアーは当該トランザクションのデータのみにアクセスできるようになります。 そのリンクを src とする iframe を、サービスのウェブページに埋め込みます。
<iframe src="manual-review-link"></iframe>
リンクは作成から168時間後に失効します。レビューを継続する必要がある場合は、これまでどおり transactions リソースに GET リクエストを送信して新しいリンクを取得してください。

Iframe の外観

サービスの外観をすっきりさせるために、Vantage のロゴを非表示にしたり、手動確認クライアントのインターフェースで一部のペインを隠したりする場合があります。 Vantage のロゴを非表示にするには、リンクに displayMode クエリ Parameter を追加し、値に iframe を指定します。
<iframe src="manual-review-link&displayMode=iframe"></iframe>
次のオプションを使用して、手動確認クライアント インターフェースを構成します。
KeyDescription
features
batchEditorfalse に設定すると、ページのサムネイル ペインを非表示にします。
batchEditor.toolbarfalse に設定すると、ページのサムネイル ペインは表示しますが、ツールバー ペインを非表示にします。
batchEditor.autoCollapsetrue に設定すると、手動確認クライアント インターフェースを開いたときに、ページのサムネイル ペインを折りたたみます。
docEditorfalse に設定すると、ページ画像ペインを非表示にします。
docEditor.toolbarfalse に設定すると、ページ画像ペインは表示しますが、そのツールバーを非表示にします。
formEditorfalse に設定すると、抽出されたフィールドの一覧ペインを非表示にします。
rulesReportfalse に設定すると、ルール エラーの一覧ペインを非表示にします。
sendToStageAvailabletrue に設定すると、Send to Stage… ボタンを表示します。
これらのオプションは 1 つの JSON オブジェクトにまとめられています。次のサンプル コードは、ルール エラー ペインを非表示にし、ページのサムネイル ペインを折りたたんだ状態の iframe を表示します。
"features": {
   "batchEditor": {
      "autocollapse": true,
   },
   "rulesReport": false,
}
手動確認用のリンクに、この JSON オブジェクトの内容を含む settings クエリ Parameter を追加してください。
<iframe src="manual-review-link&settings=%7B%22features%22%3A%7B%22batchEditor%22%3A%7B%22autoCollapse%22%3Atrue%7D%2C%22rulesReport%22%3Afalse%7D%7D"></iframe>

Iframe イベント

iframe オブジェクトは、手動確認クライアントインターフェースでのレビュアーの操作を親ウィンドウに通知するためにメッセージを送信します。これにより、適切なタイミングで次のステップに進むことができます。 イベントは targetOrigin=parent Parameter とともに送信されます。監視すべきイベントは以下のとおりです。
  • ManualReviewWasPaused。レビュアーが Reject ボタンをクリックしたときに送信されます。
  • ManualReviewWasCompleted。レビュアーが Complete ボタンをクリックしたときに送信されます。
  • ManualReviewWithdrawn。レビュアーの無操作が一定時間続いた場合に送信され、手動確認クライアントのタスクが共通のタスクキューに戻されます。
以下のサンプルコードは、手動確認用の iframe を表示し、上記のいずれかのイベントが発生したら非表示にする方法を示しています。 iframe イベントをリッスンするためのサンプルコード:
<html style="min-height: 100%; height: 100%;">
<head>
  <script>
    var manualReviewLink; // トランザクションステータスレスポンスからのリンク
    window.addEventListener("DOMContentLoaded", init, false);
    function init() {
      var iframe = document.createElement("iframe");
      iframe.src = getUrl();
      iframe.style.width = "100%";
      iframe.style.height = "95%";
      try {
        document.getElementById("main").removeChild(document.querySelector("iframe"));
      } catch (e) { }
      document.getElementById("main").appendChild(iframe);
      window.addEventListener("message", receiveMessage, false);
    }
    function getUrl() {
      return manualReviewLink + "&displayMode=iframe";
    }
    function receiveMessage(event) {
      console.log(event.data);
      if (event.data.target === "parent") {
        if (event.data.eventName === "ManualReviewWithdrawn" || 
            event.data.eventName === "ManualReviewWasPaused" || 
            event.data.eventName === "ManualReviewWasCompleted" ) {
          document.getElementById("iframe").style.display = "none";
        }
      }
    }
  </script>
</head>
<body
  style="background-color: #999999; min-height: 100%; height: 100%; position: relative; margin: 0; padding: 0; background: linear-gradient(to bottom right, #4380bc, #5ba484);">
  <div id="main"
    style="height: 100%; position: relative; padding:20px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;">
  </div>
</body>
</html>