How to automate repetitive SAP tasks using VBA [反復作業をVBAで自動化させてみましょう]
[日本語版]
As digitilization progresses, the need to automate and standardize repetitive tasks increases. If you are using SAP for your daily business operations utilizing Excel VBA could present a easy to implement solution for automizing reoccuring and time-consuming tasks. In this article I am going to show you how to setup excel to access SAP's GUI Scripting API and how to automatically login to the system. The login process serves as a base for further GUI Scripting programming and eventually automization of tasks.
The Setup
Since SAP does provide an API you only need to activate the reference in the VBA-Editor to access the functionality of SAP via Excel. In order to do so you need to open your VBA-Editor (Press Alt + F11) and access the references of your project by clicking on "Tools".
Then you need to select the file "sapfewse.ocx" as shown in the picture below. After doing so SAP GUI Scripting API is activated by ticking the corresponding box.
Automatic SAP Login
Now, let us try to automatically Login to SAP by utilizing the following VBA code:
_________________________________________________________________________________
Public Function SAP_Login()
Dim SapGui As Object
Dim App As SAPFEWSELib.GuiApplication
Dim Conn As SAPFEWSELib.GuiConnection
Dim Session As SAPFEWSELib.GuiSession
Dim Coll As SAPFEWSELib.GuiCollection
'Initiation of the SAP Session
Set SapGui = GetObject("SAPGUI")
If IsObject(SapGui) Then
' Ref auf ScriptingEngine
Set App = SapGui.GetScriptingEngine
If IsObject(App) Then
Set Conn = App.OpenConnection(<Server>)
If IsObject(Conn) Then
Set Session = Conn.Children(0)
' Maximize the window
Session.FindById("wnd[0]"). Maximize
' Fill in the Login information
Session.FindById("wnd[0]/usr/ txtRSYST-BNAME").Text = <User>
Session.FindById("wnd[0]/usr/ pwdRSYST-BCODE").Text = <Password>
'Set the language --> EN = English
Session.FindById("wnd[0]/usr/ txtRSYST-LANGU").Text = "EN"
' Enter-Key
Session.FindById("wnd[0]"). SendVKey 0
End If
End If
End If
End Function
_________________________________________________________________________________
Please note, that the information in red must be provided by you.
Further Steps
Building up on this code you are able to interact with SAP, for instance pressing buttons or entering information by adding your own lines of code. Using the integrated VB-script recording function of SAP might come in handy as you do so, since it provides code that in some cases can be just integrated into your project.
The output of the VB-Script recorder should look like this:
The commands that start with "session." can be embedded in your code. So go ahead and give it try! Please do not hesitate to ask me if you have a question
As digitilization progresses, the need to automate and standardize repetitive tasks increases. If you are using SAP for your daily business operations utilizing Excel VBA could present a easy to implement solution for automizing reoccuring and time-consuming tasks. In this article I am going to show you how to setup excel to access SAP's GUI Scripting API and how to automatically login to the system. The login process serves as a base for further GUI Scripting programming and eventually automization of tasks.
The Setup
Since SAP does provide an API you only need to activate the reference in the VBA-Editor to access the functionality of SAP via Excel. In order to do so you need to open your VBA-Editor (Press Alt + F11) and access the references of your project by clicking on "Tools".
Then you need to select the file "sapfewse.ocx" as shown in the picture below. After doing so SAP GUI Scripting API is activated by ticking the corresponding box.
Automatic SAP Login
Now, let us try to automatically Login to SAP by utilizing the following VBA code:
_________________________________________________________________________________
Public Function SAP_Login()
Dim SapGui As Object
Dim App As SAPFEWSELib.GuiApplication
Dim Conn As SAPFEWSELib.GuiConnection
Dim Session As SAPFEWSELib.GuiSession
Dim Coll As SAPFEWSELib.GuiCollection
'Initiation of the SAP Session
Set SapGui = GetObject("SAPGUI")
If IsObject(SapGui) Then
' Ref auf ScriptingEngine
Set App = SapGui.GetScriptingEngine
If IsObject(App) Then
Set Conn = App.OpenConnection(<Server>)
If IsObject(Conn) Then
Set Session = Conn.Children(0)
' Maximize the window
Session.FindById("wnd[0]").
' Fill in the Login information
Session.FindById("wnd[0]/usr/
Session.FindById("wnd[0]/usr/
'Set the language --> EN = English
Session.FindById("wnd[0]/usr/
' Enter-Key
Session.FindById("wnd[0]").
End If
End If
End If
End Function
_________________________________________________________________________________
Please note, that the information in red must be provided by you.
Further Steps
Building up on this code you are able to interact with SAP, for instance pressing buttons or entering information by adding your own lines of code. Using the integrated VB-script recording function of SAP might come in handy as you do so, since it provides code that in some cases can be just integrated into your project.
The output of the VB-Script recorder should look like this:
The commands that start with "session." can be embedded in your code. So go ahead and give it try! Please do not hesitate to ask me if you have a question
反復作業をVBAで自動化させてみましょう
デジタル化が進むにつれて、反復作業を標準化し、自動化させるニーズが高まっています。日常的なSAPはエクセルのVBA(マクロ)を活かし、反復作業或いは煩雑な作業を自動化させることが可能です。当記事ではエクセルでどのようにSAP GUI Scripting APIを有効化し、自動的にSAPシステムログインするかを紹介します。自動ログインに使用されたコードをベースに、GUI Scriptingコードを加えることで作業の自動化が可能です。
SAP GUI Scripting APIを有効にする方法
SAPによりAPIはすでに稼働しているため、エクセルのVBAエディタ参照設定よりAPIの参照をオンにするだけでエクセルでSAP GUI Scripting APIをアクセス出来るようになります。エクセルでVBAエディターを開いて頂き(ALT+F11を押してください)、ツールをクリックし、参照設定を開いてください。
SAPの自動ログイン
では、下記のVBAコードで自動的にSAPにログインしてみましょう:
_________________________________________________________________________________
Public Function SAP_Login()
Dim SapGui As Object
Dim App As SAPFEWSELib.GuiApplication
Dim Conn As SAPFEWSELib.GuiConnection
Dim Session As SAPFEWSELib.GuiSession
Dim Coll As SAPFEWSELib.GuiCollection
'Initiationof the SAP Session
Set SapGui = GetObject("SAPGUI")
If IsObject(SapGui) Then
' Ref auf ScriptingEngine
Set App = SapGui.GetScriptingEngine
If IsObject(App) Then
Set Conn = App.OpenConnection(<サーバー>)
If IsObject(Conn) Then
Set Session = Conn.Children(0)
' Maximize the window
Session.FindById("wnd[0]"). Maximize
' Fill in the Login information
Session.FindById("wnd[0]/usr/ txtRSYST-BNAME").Text = <ユーザ>
Session.FindById("wnd[0]/usr/ pwdRSYST-BCODE").Text = <パスワード>
'Set the language --> EN = English
Session.FindById("wnd[0]/usr/ txtRSYST-LANGU").Text = "EN"
' Enter-Key
Session.FindById("wnd[0]"). SendVKey 0
End If
End If
End If
End Function
_________________________________________________________________________________
次のステップ
自動でボタンを押すことやテキストボックスを入力するなど、自らコードを加え、SAPを様々な場面で操作することが可能です。VBスクリプト記録統合機能でSAPでのプロセスをコードとして記録し、記録されたコードをそのまま自分のコードに導入することが可能でありますので、追加コードを作成するのに使用する価値があるかもしれません。
VBスクリプト記録統合機能で記録されましたコードは下記の画像のようになっています。
"session"で始まる行に書かれたコードをそのまま埋め込めます。ではエクセルのSAP GUI Scriptingをやってみませんか。もしこの記事に関する質問がある場合には私までメールでご連絡ください。
デジタル化が進むにつれて、反復作業を標準化し、自動化させるニーズが高まっています。日常的なSAPはエクセルのVBA(マクロ)を活かし、反復作業或いは煩雑な作業を自動化させることが可能です。当記事ではエクセルでどのようにSAP GUI Scripting APIを有効化し、自動的にSAPシステムログインするかを紹介します。自動ログインに使用されたコードをベースに、GUI Scriptingコードを加えることで作業の自動化が可能です。
SAP GUI Scripting APIを有効にする方法
SAPによりAPIはすでに稼働しているため、エクセルのVBAエディタ参照設定よりAPIの参照をオンにするだけでエクセルでSAP GUI Scripting APIをアクセス出来るようになります。エクセルでVBAエディターを開いて頂き(ALT+F11を押してください)、ツールをクリックし、参照設定を開いてください。
.
下記画像の通り、ファイル"sapfewse.ocxを選択し、ボックスをチェックすることでSAP GUI
Scripting APIを有効化します。
SAPの自動ログイン
では、下記のVBAコードで自動的にSAPにログインしてみましょう:
_________________________________________________________________________________
Public Function SAP_Login()
Dim SapGui As Object
Dim App As SAPFEWSELib.GuiApplication
Dim Conn As SAPFEWSELib.GuiConnection
Dim Session As SAPFEWSELib.GuiSession
Dim Coll As SAPFEWSELib.GuiCollection
'Initiationof the SAP Session
Set SapGui = GetObject("SAPGUI")
If IsObject(SapGui) Then
' Ref auf ScriptingEngine
Set App = SapGui.GetScriptingEngine
If IsObject(App) Then
Set Conn = App.OpenConnection(<サーバー>)
If IsObject(Conn) Then
Set Session = Conn.Children(0)
' Maximize the window
Session.FindById("wnd[0]").
' Fill in the Login information
Session.FindById("wnd[0]/usr/
Session.FindById("wnd[0]/usr/
'Set the language --> EN = English
Session.FindById("wnd[0]/usr/
' Enter-Key
Session.FindById("wnd[0]").
End If
End If
End If
End Function
_________________________________________________________________________________
赤字箇所にログイン情報を入力下さい。
次のステップ
自動でボタンを押すことやテキストボックスを入力するなど、自らコードを加え、SAPを様々な場面で操作することが可能です。VBスクリプト記録統合機能でSAPでのプロセスをコードとして記録し、記録されたコードをそのまま自分のコードに導入することが可能でありますので、追加コードを作成するのに使用する価値があるかもしれません。
VBスクリプト記録統合機能で記録されましたコードは下記の画像のようになっています。
"session"で始まる行に書かれたコードをそのまま埋め込めます。ではエクセルのSAP GUI Scriptingをやってみませんか。もしこの記事に関する質問がある場合には私までメールでご連絡ください。
Kommentare
Kommentar veröffentlichen