はじめに
この記事は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に表示されなかった事です。(逆も同様でした)
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はやらずに済みましたが理由わかりません。
出来上がるとこのようにインスタンスのサービスキーが入手できます。
手順2:AccessTokenを入手する
手順はこちら↓
Get OAuth Access Token for Document Information Extraction via Web Browser
Step1:Get OAuth access token detailsについては記事のとおりでしたが、Step2:Get OAuth access tokenは記事の通りだとうまくいきませんでした。
なのでこちらのAPIの定義を参考にPOSTMANからリクエストを送ってみました。
IDをPWで認証していることから、Basic認証だということがわかるので、client_id
とclient_secret
はUserNameとPasswordに入れてあげます。
うまくいけばStatusCode200とAccessTokenが返されます。
Step3:SwaggerでAPI動作テストを行う
手順はこちら↓
Use Machine Learning to Extract Information from Documents with Swagger UI
Step4:Delete clientを実行し、Clientを削除したらDOX側でも何もアクセスできなくなるので注意。
Step4: PostmanからAPIをキックしてみよう
以下の通りURLを連結させることで、一般のRestClientからAPIをキックすることが可能です。
-
URL
[service keyのuaaセクションの外部の方のurl
] [service keyのswagger
] [各APIのパス(/hoge)]
おわりに
これでDOXをHTTPリクエストで使うことができるようになったので、BPAをはじめスクラッチで作ったアプリや3rdPartyツールからも利用できるようになります。
ただいちいちインスタンスを立てたりRESTで呼び出す設定をするのも面倒なので、BPAから直接DOXを呼び出せるようになったらよいのになと思うのですが、何かやり方あるんですかね。
ご存じのかたコメント頂けると嬉しいです。