世界中で人材不足が課題となっている今、その課題への対抗措置として、SAP S/4HANA(以下、S/4HANA)ではBTP環境上でプロ開発者のみならず、「市民開発者」と呼ばれるプログラミング経験がない一般ユーザーでもアプリを作成できる機能を提供しています。
今回は、SAP Build Process Automationを使用して、サプライヤーからの請求書をSAP S/4HANA Cloud Public editionの環境へ自動で登録する機能を作成してみたいと思います。
SAP Build Process Automation(以下、BPA)は、プログラミング未経験の一般ユーザーでも、ノーコード、ローコードでアプリを作成できるツールです。例えば、ワークフローの自動化や、伝票登録の自動化など、単純な処理を人間の代わりにやってもらうような機能を作成できます。
作成にあたっては、難しいコードを書く必要がなく、ドラッグアンドドロップで作成できる点がポイントです。
今回作成する処理のイメージは以下です。
1.特定のフォルダに格納された請求書PDFを、BPAのOCR機能で読み取る
開発画面も交えながら手順を追って解説します。操作感を知っていただきたいので前半は動画で、後半は画像で説明します。
1.プロジェクトの作成
まず、自動化処理の箱として「プロジェクト」を作成します。SAP Buildのロビーから「作成」を押下後、シナリオタイプは「自動化」を選択し、プロジェクト名を入力すると、プロジェクトが作成されます。
2.請求書読み取りの自動化を作成(クリックで開く)
プロジェクト内に自動化処理を作成し、中身を組み立てます。
自動化処理にはTrigger、Start、Endの箱があり、このStartとEndの箱の間に任意のアクティビティをセットして処理を作成します。自動化では「自動化」「アクティビティ」「データ」「コントロール」の4つのツールを使用できます。
では、請求書読み取り処理を作成してみます。アクティビティから「Extract Data(Template)」を選択し、ドラッグアンドドロップでStartの下に配置します。
配置したExtract Data(Template)をクリックして、文書テンプレートを追加します。請求書の項目と、スキーマで定義した項目をマッピングし、保存します。
アクティビティは実行のためにInput Parametersを設定する必要があります。Extract Data(Template)の場合は、ドキュメントパスを設定します。あるフォルダに格納されているファイルを対象として処理を回すように設定するため、アクティビティ「Get File Collection」で対象フォルダからファイルの一覧を取得し、For Each処理で1件ずつファイル読み取りするように処理を作成します。
3.仕入先コードと、科目の変換処理を作成(クリックで開く)
請求書に記載された値と、SAPマスタ値が異なる場合は、変換テーブルを用いてSAPで使用できる形へコードを変換します。BPAでは、「Decision Table」というツールを使用して、値を変換することが可能です。「Decision Table」は自動化の中では使用できず、Processのみで使用可能です。
【操作概要】
まずは、プロセスを作成します。 仕入先コードの変換処理として、入力パラメータはOCRで読み取った仕入先、出力パラメータはSAPの仕入先マスタコードを定義します。 次に変換ルール(請求書上の顧客IDがXXの時、SAPでの仕入先は○○)を定義後、実際の値を設定します(数が多い場合はExcelでのエクスポート/インポートも可能です)。保存後、プロセスへ戻り、作成した決定表の入力パラメータに請求書読み取り結果の仕入先をマッピングします。
同じように、科目の変換表も作成し、入力パラメータのマッピングをします。
4.サプライヤ請求書登録処理の作成(クリックで開く)
サプライヤ請求書登録処理を作成します。登録するためには、APIを使用します。BPAのロビー→アクション→作成と画面遷移します。今回はBTPであらかじめ接続設定したAPI情報を呼び出すため、APIソースは「Odata宛先」を選択します。
アクションの画面から、入力パラメータ・出力パラメータを設定します。
請求書PDFからは読み取らない、会社コードや伝票通貨は固定値として設定しておきます。また、今回は伝票ヘッダ・明細の基本的な項目のみ連携するため、不要な項目は削除しておきます。
これで、アクションの準備は完了です。
プロセスの画面に戻り、アクションのアクティビティをフローに追加します。
入力パラメータに、OCR読み取り結果と、変換結果をマッピングします。
5.トリガーの作成(クリックで開く)
処理をキックするためのトリガを作成します。トリガには、スケジュールトリガやAPIトリガもありますが、今回はフォーム送信トリガを作成します。
フォーム送信作成画面では、ユーザーに対してテキストを入力させるボックスのほか、ドロップダウン、チェックボックスなども選択可能です。今回は、ユーザに対象PDFのパスを入力させる枠を作成し、右下の「送信」ボタンを押下することで、処理が開始するようにします。その後、OCR処理の入力パラメータに、送信フォームに入力された対象フォルダを設定します。
OCR処理の入力パラメータに、送信フォームに入力された対象フォルダを設定します。
OCR処理の入力パラメータに、送信フォームに入力された対象フォルダを設定します。
6.プロジェクトのリリース(クリックで開く)
実機の準備はこれで完了です。プロジェクトをリリース&デプロイし、実際に処理が開始できるようにします。
デプロイ後、処理トリガーとして設定したフォームのリンクが発行されます。
作成した処理を実行してみます。URLに飛ぶと、作成した送信フォームが表示されるため、対象フォルダにフォルダパスを設定し、送信ボタンを押下します。
フォーム送信され、裏でサプライヤ請求書登録処理が走ります。
S/4HANAのサプライヤ請求書一覧から確認すると、サプライヤ請求書が登録されています。
OCRで読み取った請求書情報が、各項目に設定されています。
BPAからS/4HANAへ伝票やマスタを登録したり、S/4HANAに登録されているマスタを参照したりする場合、BPAとS/4HANAを接続する必要があります。接続設定は、S/4HANA側のAPIの有効化の後、BPAのDestination設定の作成をする必要があります。
今回は、SAP Build Process Automation機能を利用して、指定フォルダに格納されたPDFをOCR技術を用いて読み取り、SAPのサプライヤ請求書登録のフォーマットへ変換・マッピングし登録する、といった処理を作成しました。簡単な処理のみで構築していますが、マスタの存在チェックや、承認ワークフローも処理に組み込むことが可能です。
今後の業務効率化に取り組むユーザー自身が、BPAを用いて自動化処理を作成する際の一つの参考となれば幸いです。