SAP HANAの標準機能で簡単な自動化(マクロ)作成手順をご紹介

意外と知られていないようですが、SAP HANAでは標準機能を使って入力作業を記録し自動化(マクロ化)する事が出来ます。Helpで探してみると、記録方法についての説明は以下のあたりになるでしょうか。

https://help.sap.com/doc/saphelp_nw70/7.0.12/ja-JP/5a/2be93bec2a9e53e10000000a11402f/content.htm?no_cache=true

記載内容は短いですけど「ちょっと何を言っているのかわからない」となりますよね。

そこで今回は細かい前提条件や設定はおいておき、とりあえず動かしてみる方法を解説します。

後半では最近話題の自動化・RPAとの違いについても簡単に触れたいと思いますので、最後まで読んで頂けたら幸いです。

どんな感じで動作するの?

お忙しい方や「先にどう動くのかを見たい!」という方は多いと思います。まずは結果から、動作サンプルのデモ動画をお見せします。

この動画では、SAP HANAの販売伝票照会機能(VA03 )で3つの伝票を次々に表示します。

【自動化サンプル動画】伝票3件の連続表示

サンプル動画

ご覧になった感想はいかがでしたでしょうか?

わかり易くするために簡単な機能を選びましたが、実際の業務で考えると「伝票入力などの大変な作業も自動化できそう!」というイメージを持てたのではないでしょうか。勿論、もっと複雑な事はできますが、今回はこの簡単なサンプルで手順を解説いたします。

※どなたでも出来るよう、画像を交えて細かく説明します。SAP操作に慣れている方は画像だけ見て頂いても大丈夫そうです。

入力作業を自動化(マクロ化)する

それでは実際にS4 HANAを使った自動化マクロの作成手順をご説明します。

【自動化機能を有効にする】

SAP Guiを起動した直後の『SAP Logon Pad』画面で、左上のアイコンをクリックすると、「オプションメニュー」が開きます。

              ①赤丸のオプションアイコンをクリック

「オプションメニュー」から「オプション」を選んでクリックしますと、『SAP Gui オプション画面』が開きます。

           ②赤丸のオプションメニューをクリック                                  

画面が開いたら、下記図のように「スクリプト有効化」の設定をON(☑)にします。

           ③アクセシビリティ&スクリプトのフォルダをクリック。

           ④スクリプトをクリック。

           ⑤画面右側に「ユーザ設定」が表示されるので、「スクリプト有効化」にチェック。

           ⑥画面下部の「適用」ボタンを押下。

           ⑦画面下部の「OK」ボタンを押下し、画面を閉じる。

【自動化機能を起動する】

『SAP Logon Pad』画面で、左上の「ログオン」ボタンをクリックすると、「ログイン画面」が開きます。

           ①赤丸のログオンアイコンをクリック                                        

「ログイン画面」に表示されるオプションアイコンをクリックすると、オプションメニューが表示されます。

           ②赤丸の「オプションアイコン」をクリック

              ③「スクリプト記録と再生」をクリック。

「記録と再生」画面が別のウィンドウで開きます。

              ④「追加>」ボタンをクリック。

これから作成するスクリプト記録ファイルの保存先を設定します。

           ⑤「保存先」を任意のファイル名に変更。

           ※これで、任意のタイミングで作業の記録を開始できる状態になりました。

【自動化スクリプトを記録する】

今回は販売伝票照会(VA03)の操作を記録するので、先ずはSAPにログインします。

ログイン後の初期画面『SAP Easy Access』を表示したところで記録を開始します。

              ①ログインして『SAP Easy Access』画面を表示

              ②「記録」ボタンを押下。

              ③「停止」ボタンが黄色く点灯した事を確認。(記録中の状態)

「コマンドフィールド」からトランザクションコードを指定して「販売伝票照会」を起動します。

              ④「コマンドフィールド」に “VA03”を入力し、リターンキーを押下。

1件目の伝票番号を入力して検索実行します。

              ⑤「受注伝票」項目に“6000020”を入力。

              ⑥「検索」ボタンを押下。

1件目の伝票が表示されました。終了して『SAP Easy Access』画面に戻ります。

              ⑦黄色の「終了」ボタンをクリック。

1件目と同じ手順で、次の2件目の伝票を表示させます

              ⑧「コマンドフィールド」に “VA03”を入力し、リターンキーを押下。

              ⑨「受注伝票」項目に“6000021”を入力。

              ⑩「検索」ボタンを押下。

2件目の伝票が表示されました。終了して『SAP Easy Access』画面に戻ります。

              ⑪黄色の「終了」ボタンをクリック。

『SAP Easy Access』画面に戻ったところで、スクリプトの記録を終了させます。

              ⑫「記録停止」ボタンを押下。

【スクリプト編集】

3件目はスクリプトを編集して作ってみます。

2件目で終了させず、「同様に3件目も繰り返して記録してから終了」でも良いのですが、もっと大量に処理したい場合の参考としてご紹介します。

「保存先」に指定したフォルダから、先ほどまでの操作が記録されたスクリプトファイルを開きます。

  1. スクリプトファイルをNotepad(テキストエディタ)で編集。

<スクリプトの中身 Top> 

※青字行は後から追加したコメントです。赤字は入力データ値です。

REM 『SAP Easy Access』画面からスタート

If Not IsObject(application) Then

   Set SapGuiAuto  = GetObject(“SAPGUI”)

   Set application = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(connection) Then

   Set connection = application.Children(0)

End If

If Not IsObject(session) Then

   Set session    = connection.Children(0)

End If

If IsObject(WScript) Then

   WScript.ConnectObject session,     “on”

   WScript.ConnectObject application, “on”

End If

session.findById(“wnd[0]”).resizeWorkingPane 143,19,false

REM 1回目 トランザクションコードの入力&実行

session.findById(“wnd[0]/tbar[0]/okcd”).text = “VA03”

session.findById(“wnd[0]”).sendVKey 0

REM 伝票番号入力&実行

session.findById(“wnd[0]/usr/ctxtVBAK-VBELN”).text = “6000020”

session.findById(“wnd[0]/usr/ctxtVBAK-VBELN”).caretPosition = 16

session.findById(“wnd[0]/usr/btnBT_SUCH”).press

session.findById(“wnd[0]/tbar[0]/btn[15]”).press

REM 2回目 トランザクションコードの入力&実行

session.findById(“wnd[0]/tbar[0]/okcd”).text = “VA03”

session.findById(“wnd[0]”).sendVKey 0

REM 伝票番号入力&実行

session.findById(“wnd[0]/usr/ctxtVBAK-VBELN”).text = “6000021”

session.findById(“wnd[0]/usr/btnBT_SUCH”).press

session.findById(“wnd[0]/tbar[0]/btn[15]”).press

<スクリプトの中身 End>

ざっとスクリプトを見た印象は如何でしょうか? ぱっと見だと閉じたくなったでしょうか。

ですが、落ち着いて入力値(赤字)を頼りにコメントを入れてみましょう(青字)。

これならVbScriptを知らない方でも、何となく3件目は何を追加すれば良いのか予想できそうですね。

ここでは、2回目の部分をコピーして伝票番号を”6000022″号に変更して追記してみました。

REM 2回目 トランザクションコードの入力&実行

session.findById(“wnd[0]/tbar[0]/okcd”).text = “VA03”

session.findById(“wnd[0]”).sendVKey 0

REM 伝票番号入力&実行

session.findById(“wnd[0]/usr/ctxtVBAK-VBELN”).text = “6000022”

session.findById(“wnd[0]/usr/btnBT_SUCH”).press

session.findById(“wnd[0]/tbar[0]/btn[15]”).press

  1. 上記内容をスクリプトに追記して保存。※念のため別名保存する。

後は動作確認して終了となります。思っていたより簡単だったのではないでしょうか?

今回は1発で動きました!! (嬉)

※動作確認の方法と結果は最初のデモ動画の内容をご覧ください。

SAP S/4HANA マイグレーションで知っておくべきこと、今からやれること、とは?

自動化・RPAとの違い

これまでご紹介した方法と、もう少し踏み込んでExcel VBAを連携させる事で複雑な動作や大量データの扱いなど実現可能です。

ただし、利用範囲や規模が大きくなると検討事項が必要となってきます。それは安定性や機能の拡張、他アプリとの連携などの視点であり、その重要度は増えていくと思われます。

以下に今回のSAPスクリプトと一般的な自動化TOOLの特徴を図にしてみました。

<比較図>

比較ポイントSAP スクリプトRPA/自動化TOOL
実行速度
開発期間
安定性(サポート含む)
機能・拡張性
他アプリとの連携性

まとめ

今回のように、SAPの標準機能とVB Script編集だけでも“ある程度の自動化”は実現できます。

個人的にちょっと数回だけ利用する場合や、部分的な作業、またはRPAの部品として利用する場合には有効な手段となり得ます。

それが“無償”である事と“わかり易さ”は大変魅力的ですが、実際の大規模テストや業務運用で使用するとなると機能追加が必要になります。その要件が“ある程度”の規模を超えた場合に、自動化TOOL導入メリットの方が上回ると考えられます。

パソナテックでは、これまでのSAP自動化対応による経験とお客様のフィードバックを集め、どんな場合に自動化TOOLを導入すべきかのノウハウと複数のソリューションがあります。

詳しい内容は別途ご紹介したいと思いますが、興味がございましたらお問合せ下さい。

また今回の自動化に関連した情報をご紹介します。

パソナテックではSAP S/4HANAマイグレーションを検討する際に欠かせない、考慮すべきポイントをまとめた入門資料「SAP S/4HANAへの道知っておくべきこと、今からやれること、とは?」をご用意しました。本資料は、SAP S/4HANAマイグレーションへ進む方へ必見の資料です。ぜひダウンロードいただき、ご覧ください。 本記事は2021年8月1日の情報を基に作成しています。S/4HANA機能に関する最新の情報やより詳しいお問い合わせは、別途お問い合わせください。

SAP S/4HANA 導入支援サービス 基本ガイドブック
SAP S/4HANA マイグレーションで知っておくべきこと、今からやれること、とは?