3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Document Information ExtractionのAPIを外部から呼び出す

Posted at

はじめに

この記事はSAP Advent Calendar 2024の12月15日分の記事として執筆しています。

Document Information Extractionとは

画像からデジタルデータを抽出するためのBTPソリューションです。
PDFやJPEGの帳票等から金額、品目、伝票番号等を読み取ることが主要な用途です。
後述するBuild Process Automationと相性が良いサービスで、Build Process Automationにも組み込まれています。
長ったらしいのでアルファベット3文字で言いたいところですが頭文字をとってしまうと"〇ね"になってしまうのでどう略すのかと調べたところ"DOX"だそうです。

チュートリアルはこちら↓
Use Generative AI to Process Business Documents

Schemaとは

DOXを使って情報抽出処理を共通化したデータの型のこと。
例えば'DeliveryNote'というSchemaには、ヘッダに'伝票番号、'得意先名、明細には'品目コード'、'数量'といった項目を定義すれば、それらに対応する値を抽出できます。

Templateとは

スキーマの情報を帳票の画像データのどこから読み取るのかを定義したものです。スキーマの項目と画像上の文字を紐づけたものです。

SAP Build Process Automationとは

主にワークフローをTriggerとし、様々な処理を自動化するローコードツールです。
略称はBPAです。
下記のチュートリアルでは、フォームでローカルのPDFのInvoiceを読み取って、'金額'や'伝票番号'といった情報を読み取っています。
Invoice Processing and Approval Using SAP Build Process Automation

やりたいこと:DOXを外部からCallしたい

上記の2つのチュートリアルを実際にやってみてわからなかったのが、BPAで作成したスキーマやTemplateがDOXに表示されなかった事です。(逆も同様でした)

  • BPA
    image.png

  • DOX
    image.png

DOXは単体で運用するツールではなく、Build Process Automation等の外部のサービスからCallして使うものだと思います。
この記事ではDOXで作ったTemplateを外部からAPIで呼び出す手順を解説したいと思います。

手順1:Boosterを実行してService Instanceを作成・起動する

手順はこちら↓
Use Free Tier to Set Up Account for Document Information Extraction and Get Service Key

チュートリアルのStep2:Run boosterの4-7はやらずに済みましたが理由わかりません。
出来上がるとこのようにインスタンスのサービスキーが入手できます。
image.png

手順2:AccessTokenを入手する

手順はこちら↓
Get OAuth Access Token for Document Information Extraction via Web Browser

Step1:Get OAuth access token detailsについては記事のとおりでしたが、Step2:Get OAuth access tokenは記事の通りだとうまくいきませんでした。

image.png

なのでこちらのAPIの定義を参考にPOSTMANからリクエストを送ってみました。

image.png

IDをPWで認証していることから、Basic認証だということがわかるので、client_idclient_secretはUserNameとPasswordに入れてあげます。
image.png

うまくいけばStatusCode200とAccessTokenが返されます。

image.png

Step3:SwaggerでAPI動作テストを行う

手順はこちら↓
Use Machine Learning to Extract Information from Documents with Swagger UI

Step4:Delete clientを実行し、Clientを削除したらDOX側でも何もアクセスできなくなるので注意。

image.png

Step4: PostmanからAPIをキックしてみよう

以下の通りURLを連結させることで、一般のRestClientからAPIをキックすることが可能です。

  • URL
    [service keyのuaaセクションの外部の方のurl] [service keyのswagger] [各APIのパス(/hoge)]

  • Authorization
    Auth Type: OAuth2.0
    image.png

  • Bodyタグ
    以下のように、SwagerのAPI仕様と同じようにパラメータを設定
    image.png

  • 結果
    下記の通りきちんと動作します。
    image.png

image.png

おわりに

これでDOXをHTTPリクエストで使うことができるようになったので、BPAをはじめスクラッチで作ったアプリや3rdPartyツールからも利用できるようになります。
ただいちいちインスタンスを立てたりRESTで呼び出す設定をするのも面倒なので、BPAから直接DOXを呼び出せるようになったらよいのになと思うのですが、何かやり方あるんですかね。
ご存じのかたコメント頂けると嬉しいです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?