RPA-UIPath-006 VBA&SAP
RPA-UIPath-VBA Marco
UIPath可以使用Excel application Scope+Execute Macro两个Activity来运行EXCEL宏文件的Marco代码

Execute Macro中填写要执行的Marco名称
这里UIPath执行的操作相当于打开宏文件执行Marco
或使用Excel application Scope+Invoke VBA两个Activity来运行EXCEL的宏代码

Invoke VBA中填写要执行Marco的txt文件路径和Marco名称
这里UIPath执行的操作相当于打开Excel文件,将txt宏代码加载到Excel中并运行Marco
另外还可以在VBA Marco与UIPath传入传出变量
在Execute Macro和Invoke VBA的属性中设置
InputParameters,像{TemplatePath,CustomerList}
OutputValue,像RunMarcoResult

VBA代码格式如下
Function Make_Statement(TemplatePath, CustomerList As String) As String
'
'
'
Make_Statement = "OK"
'
'
'
End Function
RPA-UIPath-SAP
通过EXCEL的Marco来控制SAP进行一系列SAP操作是使用UIPath-VBA Marco来解决SAP相关RPA的优质解决方案。
SAP本身就有录制和运行功能
需将SAP做如下图设置CustomizeLocalLayout---Options---Scripting---UserSetting勾选如下

在CustomizeLocalLayout---Script Recording and Playback启动Record and Playback


点击Record开始录制SAP操作
停止后录制的代码在Save To的路径下
将录制的代码以txt的格式打开,即得到刚刚在SAP的操作代码
将录制的SAP的操作代码以VBS的默认打开方式打开,在Start Process Activity中启动,可执行一些不含变量或参数的SAP固定操作

整理修改得到SAP的操作代码,得到样式如下的宏代码
需将下面的红字代码替换为绿字代码方可在EXCEL的Macro中使用
原因:红字代码为直接操作SAP代码,需加工为绿字代码才可以在EXCEL的Macro中在执行操作SAP
Sub Test
'
'
'
If Not IsObject(applicationSAP) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set applicationSAP = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(ConnectionSAP) Then
Set ConnectionSAP = applicationSAP.Children(0)
End If
If Not IsObject(session) Then
Set session = ConnectionSAP.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject applicationSAP, "on"
End If
'
'
'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
'
'
'
End Sub