[SAP®の自動化] UiPath Accelerators for SAPを使い倒せ

[SAP®の自動化]

はじめに

UiPathの劉です。

最近、「UiPathを使ってSAP製品のオペレーションの自動化をしたいと考えているが、どうやって始めれば良いのか、どういう業務で使えるのか、どのように使うのか分からない・・・」といった声を多く耳にします。

本連載では、こういった課題を解消するために、SAPにまつわる業務の自動化に取り組まれる方を対象に、 SAPの基礎から筆者も現場で活用しているSAP連携ソリューションの概要および開発ノウハウまで、幅広くお届けいたします。

今回の記事は、UiPathが提供しているSAPソリューション「UiPath Accelerators for SAP」(旧名称:SRC)について紹介します。 

本文

部品概要

2019年に、UiPathがSAPの自動化に向けて、再利用可能な部品100本以上をUiPath MarketPlace上で無償公開しました。

こちらの部品は、JSUG(Japan SAP User Group の略称)からの要望や意見を吸い上げて、日本で長年SAP導入に携わるコンサルタントを中心とした開発チームが作ったものです。

また英語版のドキュメントも充実しているため、海外の企業にも利用されている状況です。

2021年より海外のユーザーでも分かりやすいように、「UiPath Accelerators for SAP」と名称を変更したうえで、部品をSAPモジュールに合わせて再構成しました。

現在は下図のように、部品を、【基本部品】【保守管理】【販売】【会計】【購買】【生産】に分かれて構成されています。

部品の一覧はこちらのリンクから確認できます。

uipath-accelerators-for-sap_01

基本部品

ほかの部品を構成するための基本となる部品と便利ツールから構成されています。

例えば、基本部品の中にある「SRC_Common」パックはすべての部品を使うために必要な部品です。

また、便利ツールとして、「SRCCMFNCMDLEXE」(汎用モジュール実行)、「SRCBAPIv2.2TABLEDATAOUTPUT」(汎用モジュール「RFCREADTABLE」を利用したテーブルデータ出力)などがあります。

保守管理

SAPの運用保守の業務を想定して開発したのが運用保守で使用する部品です。

例えば、ID権限管理ではユーザの作成や削除、ロック解除、グループ権限付与、ユーザ権限データダウンロードなどの部品が用意されています。

ジョブ管理系では、ジョブ登録やジョブログエクスポートといった部品が利用可能です。

ほかには、GUIを使用して移送依頼をインポートする部品、ショートダンプログ出力や表領域データをエクスポートを行う部品があります。

SAPコア業務部品(販売、会計、購買、生産)

販売、会計、購買、生産の部品についは、SAPのコア業務の一連の流れが完結できるように設計・開発されました。

例えば、下図の販売・購買業務のように一連の業務が完結できるように、各機能(下図内青枠)ごとの部品を開発しました。

部品がカバーしていない「入金消込」や「残高確認」などについて、開発フレームワークなどのソリューションは別途用意されています。

こちらについてのご紹介を希望される方はお気軽に弊社までお問い合わせください。 

購買・販売の業務フロー

uipath-accelerators-for-sap_02

部品の適用範囲

uipath-accelerators-for-sap_03

開発コンセプト

「UiPath Accelerators for SAP」には、BAPIを利用した部品とGUIを利用した部品の両方があります。

BAPI系の部品は、バックグラウンド処理でUI操作が伴わないため速度が速く、高い安定性を持っています。そのため、BAPIで開発可能な業務に関してBAPIを利用した部品開発を優先的に行ってきました。

BAPIが利用できないもしくは使用するのが難しい業務のみGUIで開発しました。

ただ、例外もあります。

品目マスタ登録といった多くの企業で行われている業務に関しては、BAPIを利用した部品とGUIを利用した部品の両方を用意しています。

BAPI部品

BAPI系の部品は、本体とカセットのような構成になっています。

下図ではわかりやすくゲーム本体とカセット(ソフト)を例にしています。

本体には基本的な機能として権限チェック、ロギングや繰り返し入力といった機能が装備されています。

その他カセットは、各種BAPIそのものです。

本体では処理に必要な機能が備わっており、赤枠の部分は必要に応じて変更できます。 

uipath-accelerators-for-sap_04

 なお、BAPI系の部品の最大の特徴は、ワークフロー開発不要で、エクセルにデータを入れるだけで実行できる点です。

BAPI系の部品には、実際のBAPIを呼び出すXAMLファイルと入力用のエクセルファイルから構成されています。入力用のエクセルファイルにデータを入れるだけで開発が完了になります。

GUI部品

GUI部品は、テンプレート形式になっています。

SAPの画面では設定によって画面項目の表示が変わることが多いため、それらの変化も柔軟に対応できるようにテンプレート形式にしています。

GUI部品の最大の特徴は、画面項目のセレクター情報(UiPathが画面項目を識別する際に利用するXML形式のメタデータのこと)をエクセルファイルへ外出しして管理しています。

そのため、ご利用する際にご自身の環境でそのまま実行できない場合でも、エクセルファイルを変更するだけで対応できます。

また、SAPのバージョンアップ等でセレクタが変更になった場合でも、エクセルの修正のみで対応できるため、メンテナンス性も向上しています。

例えば、ECCで使用したワークフローは、S/4HANAで動かない場合にエクセルファイルを一部修正するだけで、S/4HANAでも動くようになります。

さらに、デフォルトで英語版と日本語版のセレクターファイルを提供しているため、同じワークフローを海外拠点でも利用可能です。

試してみましょう

百聞は一見に如かず、早速手を動かして試してみましょう。

「UiPath Accelerators for SAP」はBAPIを利用した部品がほとんどのため、今回はBAPI系の部品を使ってみたいと思います。

購買伝票登録用のBAPI部品「SRCBAPIPOCREATE1v2.2」を使って、購買伝票登録を実装していきます。

実装といっても部品の組み合わせだけで、特にワークフロー開発するようなこともないです。 

手順は以下の通りです。

  1. 「SRCBAPIPOCREATE1v2.2」を利用するため、まず必要な構成部品をUiPath MarketPlaceからダウンロードしておきましょう。「SRCBAPIPOCREATE1v2.2」は、「UiPath Accelerator for SAP S4HANA for Sourcing and Procurement」にありますので、こちらとすべての部品が必要となる「UiPath Foundation pack for Accelerators for SAP S/4HANA」をダウンロードします。

    uipath-accelerators-for-sap_05

  2. ダウンロードしたらZIPファイルを解凍します。

  3. PCのデスクトップ上(場所は任意)にプロジェクトフォルダーを1個新規作成します。こちらでは「PO_CREATE」という名称のフォルダーを作成します。

  4. 「POCREATE」に、 「UiPath Foundation pack for Accelerators for SAP S/4HANA」から、「Data」、「SRCCommon」と「SampleSRCBAPIv2.2REGISTER.xaml」、 「UiPath Accelerator for SAP S4HANA for Sourcing and Procurement」から、「SRCBAPIPOCREATE1_v2.2」 を入れます。できたら、以下の図のようになっています。

    uipath-accelerators-for-sap_06

  5. 「SRCBAPIPOCHANGEv2.2」の「Data」フォルダーを「POCREATE」の直下に持ってきます。できましたら、「SampleSRCBAPIv2.2REGISTER.xaml」をダブルクリックし、UiPath Studioが立ち上がると、作成した「PO_CREATE」プロジェクトが自動的に読み込まれます。以下の図にようになっているはずです。

    uipath-accelerators-for-sap_07

  6. 「Data」フォルダーに日本語と英語の設定ファイル両方が入っています。日本語の設定ファイル「Arg-SRCBAPIPOCHANGEv2.2_JA」を開いて、SAPへの接続情報や必要な設定情報を入力してください。

    uipath-accelerators-for-sap_08

  7. 「SRCBAPIPOCHANGEv2.2」の下に、同様に英語と日本語用の入力エクセルファイルが入っています。日本語用の入力ファイル「SRCBAPIPOCHANGEv2.2_JA.xlsx」を開いてみましょう。下図のように、各シートはSAP SE47 の各種パラメータ名に対応しています。ただし、各パラメータに1つしかない入力項目については、個別にシートはなく、BAPI名のシートに項目がありますので、必要に応じて、値を入力します。

    uipath-accelerators-for-sap_09

  8. 各シートごとに購買発注伝票登録に必要な情報を入力します。「No」カラムはUiPathが足したデータカラムで、SAPのパラメータではないことをご注意ください。「No」カラムは複数件のデータの登録時に利用されます。下図では、「POHEADER」シートに「No」が1と3のデータそれぞれ1件があります。「POITEM」には「No」が1のデータが1件で、「No」が3のデータは1件も入っていません。これは、ヘッダーシート「POHEADER」にNoが1のデータに対して、明細2件があるということを意味しています。一方で「No」が3のデータは明細データがありません。 また、シート名の最後が「X」のシートが存在する場合、「X」のないシートと対比し、更新する項目には桁以上の値(下記のように、同値を入力することも可)を入力しておく必要があります。

    uipath-accelerators-for-sap_10

  9. UiPath Studioから実行します。(注:初回実行前に、「UiPath.SAP.BAPI.Activities」のインストールしてください)

  10. 入力データファイル「SRCBAPIPOCHANGEv2.2JA.xlsx」を開き、SRCLogシートから実行結果を確認できます。 「Status」カラムが「S」の場合、成功です。「E」は、エラーで、「W」がワーニングです。「SAP Message」カラムはSAP側から帰ってきたメッセージです。「Exception」カラムには、実行中にエラーが起きた場合のエラーメッセージを格納しています。

uipath-accelerators-for-sap_11

以上、BAPI系の部品を使うための手順になります。

開発するようなことは一切なかったことにお気づきでしょうか。

また、「エクセルに入力データ項目が多いために間違いやすい」といった声もあります。

こちらに関して、入力ファイルに不要なデータ項目とシートを削除しても問題ありませんが、シートを削除した場合、BAPIを呼び出すところ(「SRCBAPIPOCHANGEv2.2.xaml」にBAPIをコールする箇所)に、それに対応しているパラメータも同時に削除する必要もあります。

ほかに、入力データファイルのフォーマットに合わせて、データを自動的にほかのエクセルファイルからコンバートできるツール「InputDataConverter」もMarketPlaceに無償公開しています。必要に応じてご活用ください。 

まとめ

以上、「UiPath Accelerators for SAP」のBAPI系の部品の使い方をご紹介させていただきました。皆様の自動化開発のご参考になれれば、大変嬉しく思います。最後に今回の記事の中で取り上げた部品のリンク先などをお知らせします。

また、SAP製品のオペレーションの自動化、S/4HANAへの移行、会社全体のDXなどについてもっと知りたい方はお気軽に弊社までご連絡お願いいたします。

Binyang Liu
Binyang Liu

Senior Sales Engineer, UiPath