重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
背景:
成都创新互联公司是一家集网站建设,淅川企业网站建设,淅川品牌网站建设,网站定制,淅川网站建设报价,网络营销,网络优化,淅川网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
实现sap系统自动化前,需要先开启自动录制脚本功能和启用脚本功能。大部分机器默认是关闭这两个功能的,如果没开启这两个功能,后续也无法进行自动化。因此,我们需要先开启这两个功能。
问题现象:
1、如下图,在SAP界面的定制本地布局菜单中,脚本录制和回放功能为灰色,无法进行点击操作,因此也无法进行本地脚本录制。

2、执行sap脚本后,连接不上SAP系统,无法进行自动化操作。
解决方式:
步骤1、开启脚本录制功能
1、 进入事务RZ11。sap界面左上角输入框输入RZ11,回车即可进入对应事务(如果SAP左下角提示您无权限使用事务RZ11,那就找管理员先开事务权限吧。)
进入对应事务
2、 输入 sapgui/user_scripting,并点击显示按钮

3、 检查“当前值”是否为True。如果为False,则改为True。

步骤2、开启脚本功能
1、 如图,进入SAP界面的选项。

2、进行如下设置,点击确定按钮保存即可。(之后好像要重启SAP系统)

自动化脚本录制验证:
1、 点击脚本录制和回放功能

2、 录制脚本前,先设置脚本保存的路径,之后再点击红色按钮开始录制脚本,就可以在SAP系统上进行自动化操作了,结束操作时,点击黄色按钮结束录制。

3、之后打开录制的脚本文件,里面的代码就是自动录制的脚本了。可将其录制的脚本拷贝到Excel的宏里面执行,即可实现SAP自动化。
sap自动化录制的代码
4、补充,必看。
SAP脚本录制时,那录制窗口里面还有个绿色的回放按钮(我这边实测该按钮无效)。此外,因为我这边自动化还需要使用到excel的数据,所以将录制的脚本代码拷贝到含森孝excel的宏里面去执行。
代码拷贝到excel后,不要直接执行,我们需要先修改代码里面的application变量名(如上图绿色字体,该变量名会和excel的对象冲突),将其改为其他变量名字(自己随便起春雀个谈稿)。
以下是我录制到sap自动化代码,供大家参考。经过和Excel的表格数据结合,生成的VB脚本,直接存放于Excel的宏脚本里面。使用时,仅需要先将Excel数据录好,再登录SAP系统,就可以执行宏脚本了,即可实现SAP的自动化。
Sub 批量创建检验批()
Set SapGuiAuto = GetObject("SAPGUI")
Set AppSAP = SapGuiAuto.GetScriptingEngine
Set Connection = AppSAP.Children(0)
Set session = Connection.Children(0)
Cells(1, 8) = "检验批次"
maxrow = Sheets(1).[A65536].End(xlUp).Row
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "QA01"
session.findById("wnd[0]").sendVKey 0
For i = 2 To maxrow
session.findById("wnd[0]/usr/ctxtQALS-MATNR").Text = ""
session.findById("wnd[0]/usr/ctxtQALS-WERK").Text = ""
session.findById("wnd[0]/usr/ctxtQALS-MATNR").Text = Cells(i, 2)
session.findById("wnd[0]/usr/ctxtQALS-WERK").Text = Cells(i, 4)
session.findById("wnd[0]/usr/ctxtQALS-HERKUNFT").Text = "89"
session.findById("wnd[0]/usr/ctxtQALS-HERKUNFT").SetFocus
session.findById("wnd[0]/usr/ctxtQALS-HERKUNFT").caretPosition = 2
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpHERK/ssubSUBSCR_TABSTRIP:SAPLQPL1:0212/txtQALS-LOSMENGE").Text = Cells(i, 7)
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpHERK/ssubSUBSCR_TABSTRIP:SAPLQPL1:0212/ctxtQALS-PASTRTERM").SetFocus
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpHERK/ssubSUBSCR_TABSTRIP:SAPLQPL1:0212/ctxtQALS-PASTRTERM").caretPosition = 3
session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/usr/cntlCONTAINER/shellcont/shell").selectionInterval = Cells(i, 5) + "," + Cells(i, 5)
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpHERK/ssubSUBSCR_TABSTRIP:SAPLQPL1:0212/txtQALS-KTEXTLOS").Text = Cells(i, 6)
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpHERK/ssubSUBSCR_TABSTRIP:SAPLQPL1:0212/txtRMQEA-NAMEKUNDE").SetFocus
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpHERK/ssubSUBSCR_TABSTRIP:SAPLQPL1:0212/txtRMQEA-NAMEKUNDE").caretPosition = 15
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpVORG").Select
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpVORG/ssubSUBSCR_TABSTRIP:SAPLQPL1:0202/btnVORGSEL").press
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpSTIP").Select
session.findById("wnd[0]/usr/tabsTABSTRIP/tabpSTIP/ssubSUBSCR_TABSTRIP:SAPLQPL1:0203/btnDYNA").press
Cells(i, 8) = session.findById("wnd[0]/usr/subLOT_HEADER:SAPLQPL1:1102/ctxtQALS-PRUEFLOS").Text
session.findById("wnd[0]/tbar[0]/btn[11]").press
Next i
session.findById("wnd[0]/tbar[0]/btn[12]").press
End Sub
引用:
艺赛旗:自己动手实现 SAP GUI 自动化
可以在虚拟衡闹机里启首拦拍动服务,在实体机上运行客户端连接。
需要配置一下VMware的网络,使本机和虚拟机共享一个网络,然后给虚拟机分配一个IP地址,再给者羡实体机网络连接中的VMware1这个链接分配同一网段的IP,能Ping到就可以用客户端连接了
EHP6是ECC打了最新版补丁的,有财务会计(新)这个菜单
具体操作如下:我将虚拟机网卡采用NAT的方式连接,同时将虚拟正粗机里面的网卡地址(假设为192.168.122.1)设置与VMnet8下的IP在一者运个网段内(为192.168.122.3,网关设置为192.168.122.2)。打开虚拟机的编辑-虚拟网卡设置,将虚拟机里面的3201端口映射到服务器的3201端口上(因为我虚拟机里面的实例编号为01,一般设置3200的是因为实例编号为00),再将服务器的3201端口开放。就可以通过GUI7.2新建连接条目访问虚拟机上的系统了。应用服务器程序就是服务器的对外IP地址,实例编号是01,系统标识要打开虚拟机的SAP控制台看一下是什么了。
此方式可以让局域网内的其他机器访问这台服务器的系统。因为我的服务器有公网IP所以,我可以在家访问了!!速度很快
我为此花费了一首清梁天的时间,希望能对其他朋友有帮助!!
纠结的问题为一直打开3200端口,而忽略了是01号实例。