[SAP®の自動化] SAPアクティビティを使ってみよう

[SAP®の自動化]

はじめに

こんにちは、UiPathプリセールスの長田栞と申します。

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

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

StudioやStudioXで開発経験のある皆様、もしくはSAP業務の自動化を実装しようと思った皆様は、アクティビティの中に「SAP」というカテゴリがあることはご存じかもしれません。

本日はこの 「SAP WinGUI 専用アクティビティ」 についてご紹介したいと思います。

※この記事では、下記の製品バージョンを使用しています。Studio: 2021.10.3 UIAutomation: 21.10.3(モダンデザイン)

 

本文

SAP WinGUI 専用アクティビティについて

StudioやStudioXにおいて、「SAP」カテゴリ下にある下記の一覧がSAP WinGUI 専用アクティビティです。

UiPath.UIAutomation.Activitiesアクティビティパッケージに含まれ、SAP WinGUI向けに作られています。

sap-wingui-activities_01

公式アクティビティガイド

SAP WinGUI 専用アクティビティの特徴

SAP WinGUI 専用アクティビティは、アプリケーション専用に作られたアクティビティなので、通常アクティビティを使うよりも安定する・処理スピードが速いなどのメリットを享受できる可能性があります。

さっそく、SAP WinGUI 専用アクティビティの使い方例を見てみましょう。

[SAPにログオン / SAP Logon]アクティビティ・[SAPにログイン / SAP Login]

名前が似ていて紛らわしい2つのアクティビティですが、これらを使うことでSAPアプリの立ち上げ→ログインまでを自動化することができます。

<使い方>

  1. まずは[SAPにログオン / SAP Logon]を置き、SAPアプリのPathと接続名を入力します。

    • アプリケーションPathはデフォルトで入力されているため、そのままで問題無いかどうか確認します。

    • 接続名はSAPログイン画面に表示される接続先の名前です。右クリックしてシステムエントリのプロパティ画面を開くことで接続名のコピーができます。

  2. [SAPにログイン / SAP Login]アクティビティを置き、ログイン情報を入力します。

    sap-wingui-activities_02

この状態で実行すると、SAPアプリが立ち上がりログインされることが確認できます。

これを通常アクティビティで実装した場合

SAP専用ではなく通常のUIアクティビティで実装した場合、下記のようになります。

もちろん実装は可能なのですが、SAP WinGUI 専用アクティビティを使ったほうがアクティビティの数が少なくなるのでスッキリしますね。

また、キーボードショートカットを使うと ”ロボットの動きが画面描画より早すぎてしまう” ということがありがちなので、通常アクティビティ実装ではそのへんの微調整が必要になってしまうこともあります。

sap-wingui-activities_03

[トランザクションを呼び出し / Call Transaction]

SAPには必須のアクション、トランザクション(機能)を呼び出すという処理を実現するアクティビティです。

<使い方>

  1. [トランザクションを呼び出し / Call Transaction]を置き、「画面上で指定」を選んで、

    SAPのメニュー画面全体

    を選択します。

  2. トランザクションコードを入力します。

sap-wingui-activities_04

これだけでOKです。実行すると指定のメニューが開くと思います。

サンプル画像では「仕入先明細照会」のトランザクションコードを指定しています。

これを通常アクティビティで実装した場合

sap-wingui-activities_05

[文字を入力 / Type Into]と[キーボードショートカット / Keyboard Shortcuts]を使用しています。アクティビティの数も多くなく簡単ですね。

なお、デバッグ実行時間はSAP WinGUI 専用アクティビティが2秒、通常アクティビティが4秒でした。通常アクティビティもチューニングすればもっと早くできると思いますが、SAP WinGUI 専用アクティビティのほうが(GUI操作ではなく)直接コマンドを送るためパフォーマンスが良いようです。

[ステータスバーを読み取り / Read Statusbar]

たとえばデータ登録を行った際に「XXが登録されました」というように、SAPアプリでは操作を行うと下部のバーに処理結果が表示されます。

ロボットが繰り返し処理を行う際は、成功したのか失敗したのか、このバーの情報を読み取りながら処理を分岐したりログに記載したりすることが重要となります。

[ステータスバーを読み取り / Read Statusbar]では、このステータス情報を適切に取得することのできる便利なアクティビティです。

<使い方>

  1. [ステータスバーを読み取り / Read Statusbar]を置き、画面の指定で下部のステータスバー全体を指定します。

  2. メッセージの種類・メッセージ文・メッセージデータをそれぞれ取得する変数を必要に応じてセットします。

  • メッセージの種類は、処理の結果を表すSAPのステータスです。

    • S:成功/W:警告/E:エラー

  • メッセージは、実際に下部に表示されるメッセージの文言です。

  • メッセージデータは、処理に関連するデータ(数など)です。

sap-wingui-activities_06

これを通常アクティビティで実装した場合

通常UIアクティビティでは、[テキストを取得]などでステータスバーのテキストを読みとることはできますが、種類やデータについては一発で取るアクティビティがありません。

取得したテキストから条件で対象情報を検索する(Stringメソッドを駆使)、という方法が想定されますので、SAP WinGUI 専用アクティビティのほうがとても簡単で便利かと思います。

 

まとめ

いかがでしたでしょうか?

紹介したSAP WinGUI 専用アクティビティは一部だけですが、特化しているだけあってSAPアプリの自動化にはとても便利に使えるということがお伝えできていれば幸いです。

是非、専用アクティビティを上手く活用して開発時・実行時のパフォーマンスを上げていきましょう!

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

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

Avatar Placeholder Big
Shiori Osada

Sales Engineer, UiPath