[SAP®の自動化] SAPの表形式のデータ操作を自動化しよう!

[SAP®の自動化]

はじめに

こんにちは。UiPath関西でプリセールスをやっております渡邊です。

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

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

今回の記事は、UiPathでSAPを自動化した際にぶつかりがちな表形式(テーブル)のデータ操作を自動化する方法をご紹介します。

 

本文

自動化対象の表形式のデータとは

実務でSAPを使われたことがある方であればパッと思いつくかと思いますが、以下の画面を指しております。(画像はG/L 勘定伝票入力画面より)

sap-table-data-automation_01

SAPのような基幹システムでは会社の経営に関わる様々な情報を集約しているため、非常に入力内容が多いかつ間違うことがないように、各項目を入力していく必要があります。

そのため、多くの業務時間をSAPのデータ入力に費やされている方もいらっしゃるのではないでしょうか。

この表形式のデータ入力については、時間もかかり、入力ミス等の手戻りも発生しがちなため、ロボットで代替することに非常に適しております。

SAP GUIについては概ねUiPathにより自動化が可能となっており、表形式の画面でももちろん自動化が可能となっております。

では、どのように自動化することができるのでしょう。みなさまに一番適した方法を是非探してみて頂ければと思います。

※本記事はUiPath Studio v2021.10を元に作成しておりますが、以前のバージョンでも同様となります。  また、SAP GUIの自動化は前提条件としてこちらの設定(SAP GUI Scriptingの有効化)が必要となります。

方法1:テーブルセルスコープを利用した自動化

UiPath StudioのCore Activity(デフォルトでインストールされているActivity)にはSAP専用の様々なActivityを用意しています。

sap-table-data-automation_02

この中の「表のセルスコープ」(CellScope)を使うことにより表形式のデータ操作を自動化することができます。

サンプルのアクティビティの設定を見てみましょう。

sap-table-data-automation_03

このActivityは、対象となるSAPのテーブルを選択すると、列名を取得し、列名の「▼」ボタンで列を指定することができます。

続いて、行番号を指定(ゼロ始まり)することで表の中の特定のセルに対して様々な操作が可能となります。

上記画像の設定例では、”原価センタ”列の"2"行目に、"10000000"と文字を入力しています。

この方法では、表のセル1つ1つに入力していくため、大量のデータを各行に入力するには繰り返しのアクティビティ等をあわせて利用する必要があります。

通常、SAPでは表を1行入力する毎にチェックが行われている場合がありますので、そのときは「ステータス バーを読み取り」(ReadStatusbar)を使って

正しく入力されているかチェックしながら処理をすると良いと思います。

方法2:通常のActivityを利用した自動化

UiPathが提供しているActivityの中で最も使われているトップ3に入るであろうActivityと言えば、「文字を入力」(TypeInto)でしょう。

このActivityを使ってSAPの表形式のデータ入力を行うことももちろん可能となっております。

設定サンプルはこちらになります。セレクタの情報も確認しましょう。

sap-table-data-automation_04
sap-table-data-automation_05

SAPのトランザクションによってはこの限りではないですが、概ねこのようなセレクタを取得できます。

可変行の自動化をする場合、tableRow属性を変数化することで対応することができます。

項目によっては正しくcolTooltip属性(列項目)が取得できない場合があります。その時は、tableCol属性を追加することで対応することができます。

方法1と比べると、他のアプリケーションを自動化しているような方法でSAPも自動化できるという点では作りやすいかと思います。

方法3:伝家の宝刀コピー&ペースト

ここまでアクティビティを使って1つずつ入力する方法を紹介してきましたが、SAPを触られている方であれば、

実際は項目を1つずつ入力することはあまり無く、Excel等に入力する表のデータを用意しておいて、

行をコピーしてSAPの画面へコピー&ペースト(コピペ)することがほとんどではないでしょうか。

sap-table-data-automation_06

もちろんこの流れもStudioで実装することが可能となっております。

このとき重要となるのが、「ホットキーを押下」(Send Hotkey)Activityになります。このActivityは非常に汎用性が高く、

今回のようなコピペの動作を実装する場合や、SAPでよく使うショートカットキー(F3やCtrl+S、右矢印キー等)の操作を実装したい場合にも利用できます。

sap-table-data-automation_07

このように設定することでコピペの動作を自動化することができます。

注意点として、「ホットキーを押下」がご利用の環境によっては正しく動かない場合があります。

その場合はオプションの”ウインドウメッセージを送信”をTrueにする、又は処理の前に「ウインドウにアタッチ」(Attach Window)を追加することで動く場合もあります。

まとめ

今回はSAPの表形式(テーブル)の操作を自動化する方法をご紹介させていただきました。

最初は少しハードルが高いかもしれませんが、一度理解してしまえばSAPの他のトランザクションでも同様に自動化が可能になりますので、

ぜひチャレンジして頂ければと思います。

最後に今回の記事の中で取り上げた部品のリンク先などをお知らせします。

また、SAP製品のオペレーションの自動化、S/4HANAへの移行、会社全体のDXなどについてもっと知りたい方は、ぜひUiPathまでご連絡ください。

Avatar Placeholder Big
Kosuke Watanabe

Associate Emerging Enterprise Sales Executive, UiPath