欢迎光临散文网 会员登陆 & 注册

RPA-UIPath-006 VBA&SAP

2021-09-15 17:08 作者:狗头咖喱  | 我要投稿

RPA-UIPath-VBA Marco

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

Execute Macro

Execute Macro中填写要执行的Marco名称

这里UIPath执行的操作相当于打开宏文件执行Marco

或使用Excel application Scope+Invoke VBA两个Activity来运行EXCEL的宏代码

Invoke VBA

Invoke VBA中填写要执行Marco的txt文件路径和Marco名称

这里UIPath执行的操作相当于打开Excel文件,将txt宏代码加载到Excel中并运行Marco

另外还可以在VBA Marco与UIPath传入传出变量

在Execute Macro和Invoke VBA的属性中设置

InputParameters,像{TemplatePath,CustomerList}

OutputValue,像RunMarcoResult

Activity属性

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勾选如下

SAP-Script设置

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

启动Script Recording and Playback
Record and Playback

点击Record开始录制SAP操作

停止后录制的代码在Save To的路径下

将录制的代码以txt的格式打开,即得到刚刚在SAP的操作代码

将录制的SAP的操作代码以VBS的默认打开方式打开,在Start Process Activity中启动,可执行一些不含变量或参数的SAP固定操作

Start Process Activity启动VBS文件

整理修改得到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


RPA-UIPath-006 VBA&SAP的评论 (共 条)

分享到微博请遵守国家法律