[SAP®の自動化] SAP Fiori 自動化ソリューションと自動化Tipsの紹介

[SAP®の自動化]

はじめに

UiPathの劉です。

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

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

今回の記事は、SAP FioriのGUI 自動化について書かせていただきます。

 

本文

SAP S/4HANAへの移行に伴い、GUIクライアントをSAP Fioriにする企業が少なくないです。そんな中で、SAP Fiori 業務の自動化ニーズも一段と上がってきています。

UiPathはこういったニーズをいち早く汲み取り、SAP Fioriの業務自動化に向けた特別対応と専用ソリューションの提供をしてきました。

本記事では、UiPathが提供しているソリューションを説明するとともに、SAP Fiori GUIの自動化ノウハウも紹介していきます。

UiPathは「Snippets Pack for SAP Fiori」というソリューションをUiPath Marketplaceに無償提供しています。

こちらのコンポーネントは、SAP Fiori GUI を自動化するためのスニペットSAP Fioriへのログイン、ログオフだけではなく、アプリの選択、明細入力、実行結果確認までの処理をカバーしています。また、スニペットという形で提供しているため、そのまま利用できない場合、ご自身の環境に合わせて修正してからご利用可能です。

部品の構成は、以下のようになっています。

sap-fiori-gui-automation_01

ログイン ー Login.xaml

SAP Fioriにログインするためのスニペットです。そのまま利用可能なコンポーネントではありますが、必要に応じて修正が必要です。本コンポーネントはSAP Fioriのログイン画面を起動し、必要なログイン情報を入力します。

また、ログインの成否の判定においては、ホーム画面のメニューバーが表示されていれば成功、それ以外の場合は失敗と判定しています。

なお、ログインに必要なパスワード情報をセキュアパスワード(SecurePassword)として入力可能になっています。

 

ログオフ ー Logoff.xaml

SAP Fioriからログオフするためのスニペットです。ログオフ処理自体は、SAP Fiori画面のメニューバーのプロファイルアイコンをクリックし、プルダウンメニューからログアウトを選択しており、難しい処理ではないです。

しかしながら、スニペットを使わず実装すると、ログオフの成否とログオフ失敗時におけるリトライ処理の考慮を入れる必要があり実装に手間がかかります。ですが、こちらのコンポーネントはこういったことも配慮して開発しております。

ログオフの成否判定は、ログオンボタンの存在有無で確認してます。失敗した場合、最大3回リトライされるように実装されています。もちろんリトライ回数も変更できるようになっています。

 

アプリを選択

Fioriにログインした後に、ホーム画面が表示されます。ホーム画面にダッシュボードのように様々なアプリタイルが表示されています。通常の操作は、画面スクロールしながら、アプリタイルを探し、クリックしてアプリ画面に遷移させます。実際に、RPAで操作すると意外に躊躇するところがあります。例えば、そもそもアプリタイルが表示されていなかったりすることもあり、探すことができたとしても出てこない可能性もあります。こういった課題を解決するため、3つの手法を用意しています。

 

URLからアプリを選択 ー Select App by URL.xaml

こちらはSAP Fioriにログインした後に、URLを利用してアプリを選択し、画面遷移を行うスニペットです。

前述のように、アプリタイルからアプリ遷移することが一般的なやり方ですが、SAP Fioriの画面ではそもそもアプリタイルが表示されていないケースもあります。そのような場合、URLを利用して画面遷移するのが有効な手段です。

例:一般仕訳転記の画面のURLは以下のように構成しています

https://「domain name」/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html#AccountingDocument-postGLDocument

「#AccountingDocument-postGLDocument」という部分が画面を特定していることが分かります。そのため、URLを活用すれば、該当の画面項目に遷移することが可能です。

 

アプリ名からアプリを選択 ー Select App by Name.xaml

こちらは最も一般的なやり方です。SAP Fioriのホーム画面からアプリ名を指定し、アプリタイルを叩いて画面遷移を行います。こちらを利用する場合、アプリタイルがホーム画面に表示されている必要があることにご注意ください。

なお、アプリタイルの表示が必ずしも同じ場所にあるとは限らないので、同じセレクターでもいつの間にかに動かなくなる可能性もあります。UiPath 20.10以降、SAP Fioriのこういった特徴に合わせてセレクターを取得できるようになりました。以下の通り、「入金転記」のタイルのセレクター情報に、UiPath20.10より以前のバージョンは 「id」プロパティ で特定していました。しかし、セレクターの数字の部分はタイルの位置を示していて、アプリタイルの位置が変わると数字も変わります。これですと不安定なため、UiPath 20.10以降のバージョンから「id」プロパティではなく、SAP Fiori画面を構成するSAP UI5フレームワークの専用プロパティ(ui5がついているプロパティ)をセレクターに入れるようにしました。こうすることによってタイルの表示位置が変わってもセレクターを再取得する必要がなくなりました。

sap-fiori-gui-automation_02

アプリ名からアプリを検索 ー Select App by Search.xaml

SAP Fioriのホーム画面から遷移先のアプリ名を検索し、画面遷移を行います。特にアプリが分かりやすい場所に表示されていない場合、こちらを利用して、ホーム画面のメニューバーにある検索ボタンからアプリを検索し、画面遷移を行うのが便利です。

 

処理結果を取得 ー Get Execute Status.xaml

SAP Fioriの処理結果は、ダイアログボックスで表示されています。こちらのスニペットは、実行結果が表示されているダイアログボックスから実行結果とメッセージを取得できます。本コンポネントはそのまま利用可能ですが、SAP Fioriでは、処理結果を出力するのが統一したインタフェースとは限りません。本コンポーネントがそのまま利用できない場合、ご自身の環境に合わせて修正してからご利用ください。

本スニペットは、SAP Fioriの処理結果Dialogboxのすべての ui5p-textプロパティ値を取得し、処理結果として出力しています。以下のようなメッセージを取得できます。

  • メッセージタイプ:ダイアログボックスのタイトルになります。こちらから成功にしているかエラーになっているか分かります。

  • ストリップメッセージ:テキストメッセージの補助メッセージのようなものです。必ずあるとは限らないので、ご注意ください。

  • テキストメッセージ:成功時や失敗時のメッセージがこちらに表示されます。複数のメッセージが表示されることもあります。 

sap-fiori-gui-automation_03

明細データ入力 ー Input Detail.xaml

伝票の明細データを入力するためのサンプルファイルです。そのまま利用できないですが、これを参考にして、様々な伝票の明細データ入力の自動化が簡単に実現できます。

例:仕訳伝票の借方のセレクター(デフォルトのセレクターではなく、UiExplorerを利用して、取得したセレクター)

<webctrl ui5-class='sap.m.Input' id='application-AccountingDocument-postGLDocument-component---posting--sap.fin.gl.lib.posting.DebitAmountInTransCrcy-__clone205-input' />

SAP Fioriの明細入力のセレクターに様々なプロパティを利用可能ですが、「id」に各種入力フィールドの意味が含まれているので、「id」を利用するのがおすすめしております。ただし、「id」の中に太字になっている数字のところも可変で、必ずしも一定の規則を持っているとは限らないです。明細が増えた場合、増えた分の明細入力が難しくなってきます。1件目から下まで順番に入力するため、数字の部分をワイルドカードに置き換える必要があります。さらに、何明細目が分かるように「idx」というプロパティを追加する必要があります。修正した後のセレクターは以下の通りです。

<webctrl ui5-class='sap.m.Input' id='application-AccountingDocument-postGLDocument-component---posting--sap.fin.gl.lib.posting.DebitAmountInTransCrcy-__clone*-input' idx='{{変数}}'/>

上記{{変数}}になっている箇所は、明細の行番号に置き換えれば、1から最後まで順番に入力できます。

sap-fiori-gui-automation_04

テーブル操作 ー Table Operation.xaml

「表のセル スコープ」(Table cell scope)というアクティビティを利用し、SAP Fioriのテーブルを操作するスニペットです。こちらのアクティビティは、UIAutomation 21.4以降からSAP Fioriでも利用可能になっています。ご注意ください。

本スニペットは、「仕入先明細画面」の明細テーブルを例にして、行番号を指定し、サプライヤーをクリックします。なお、「表のセル スコープ」は、一番最初の空行番号も取得できます。それを用いて明細データの追加は簡易に実装できます。

 

sap-fiori-gui-automation_05

まとめ

以上、UiPathが提供しているSAP Fiori 自動化ソリューションとUiPathで自動化するためのノウハウをご紹介させていただきました。皆様の自動化開発にご参考になれれば、大変嬉しく思います。

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

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

Binyang Liu
Binyang Liu

Senior Sales Engineer, UiPath