当前位置: 首页 > news >正文

SAP GUI Script简单案例

简单介绍:

SAP GUI Script是一种基于SAP GUI的功能增强,与BDC,LSMW,LTMC一样都可以做为数据迁移的工具,SAP GUI Script操作简单,灵活度高,可用于处理日常紧急的工作,代码量少,但不利于维护,缺乏强大的逻辑处理能力,且效率较为低下。
操作步骤

1、RZ11参数文件sapgui/user_scripting值为TRUE

在这里插入图片描述

2、打开脚本录制

若此按钮灰色不可点击,建议推出重进SAP(前提是参数文件已修改)
在这里插入图片描述
在这里插入图片描述

3、进行屏幕录制,就和正常操作SAP一样,结束后记得点击暂停按钮

4、录制结束后会生成一个脚本

在这里插入图片描述
以文本文件方式打开脚本获取到里面的代码

5、新建Excel,alt+F11打开宏,新建一个模块,将脚本中的代码放入到模块中

在这里插入图片描述
这里最好将application全部改成别的名字
在这里插入图片描述

6、回到Excel界面,制作运行按钮

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、打开SAP 后,在EXCEL中点击按钮执行

8、批量插入数据

参考以下代码改吧改吧,也是可以看懂的,Sub creatte()中进行数据处理,获取excel中的数据,以参数的方式传到Function CreateMigo中
原脚本中的application已被替换为SapApp

Sub creatte()'定义工作表对象'Dim ws As Worksheet'定义测试数据变量Dim testData As Variant'定义循环变量,用于循环测试数据Dim i As Long'定义创建项目所需字段变量Dim Matnr As String, Erfmg As Integer'定义SAP脚本执行相关对象Dim SapGuiAuto As ObjectDim SapApp As ObjectDim Connection As ObjectDim Session As Object'忽略错误On Error Resume Next'获取 SAP GUI 自动化接口对象Set SapGuiAuto = GetObject("SAPGUI")If SapGuiAuto Is Nothing ThenMsgBox "SAP GUI 未运行,请先打开 SAP。", vbExclamationExit SubEnd IfOn Error GoTo 0'获取脚本引擎Set SapApp = SapGuiAuto.GetScriptingEngine'获取第一个连接Set Connection = SapApp.Children(0)'获取第一个会话Set Session = Connection.Children(0)'获取测试数据Set ws = ThisWorkbook.Sheets("Sheet1")'将测试数据放入数组中testData = ws.UsedRange.Value'循环储存测试数据的数组,第二行还是读For i = 2 To UBound(testData, 1)'把每行数据对应值赋予相关字段'物料编码(第一列)Matnr = testData(i, 1)'数量(第二列)Erfmg = testData(i, 2)'调用创建项目的脚本代码Call CreateMigo(Session, Matnr, Erfmg)Next iEnd SubFunction CreateMigo(Session As Object, Matnr As String, Erfmg As Integer)Session.findById("wnd[0]").maximize
Session.findById("wnd[0]/tbar[0]/okcd").Text = "/NMIGO"
Session.findById("wnd[0]").sendVKey 0
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_MATERIAL").Select
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_QUANTITIES").Select
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_DESTINAT.").Select
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_EXT_1").Select
Session.findById("wnd[0]/shellcont/shell/shellcont[1]/shell[1]").topNode = "          1"
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_MATERIAL/ssubSUB_TS_GOITEM_MATERIAL:SAPLMIGO:0310/ctxtGOITEM-MAKTX").Text = Matnr
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_QUANTITIES/ssubSUB_TS_GOITEM_QUANTITIES:SAPLMIGO:0315/txtGOITEM-ERFMG").Text = "1"
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_DESTINAT./ssubSUB_TS_GOITEM_DESTINATION:SAPLMIGO:0325/ctxtGOITEM-NAME1").Text = "C001工厂"
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_DESTINAT./ssubSUB_TS_GOITEM_DESTINATION:SAPLMIGO:0325/ctxtGOITEM-LGOBE").Text = "C001"
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_EXT_1/ssubSUB_TS_GOITEM_EXT_1:SAPLZFG_MM021:9001/txtZSMM_068-ZZLOTID").SetFocus
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_EXT_1/ssubSUB_TS_GOITEM_EXT_1:SAPLZFG_MM021:9001/txtZSMM_068-ZZLOTID").caretPosition = 0
Session.findById("wnd[0]").sendVKey 0
Session.findById("wnd[0]/tbar[0]/btn[11]").press

在这里插入图片描述

请添加图片描述

参考:https://mp.weixin.qq.com/s/gf8iwtYgYbg2JnDNJgbHYA

http://www.dtcms.com/a/403512.html

相关文章:

  • Nestjs框架: 番外篇之如何基于VsCode调试nodejs项目
  • 手机app网站铜仁做网站公司
  • 基于Cesium倾斜摄影数据的多区域裁剪 / 挖空
  • PyTorch 中可以实现张量形状的改变的有几种方式
  • 三亚市住房与城乡建设局网站企业展馆展厅设计公司
  • Linux----使用vim编辑器
  • [Spring_SpringBoot_Redis] Redis stater
  • 超细整理,保险寿险项目测试项目分析+面试(详细)
  • 濮阳网站设计公司wordpress的编辑器在哪个目录
  • 【Linux】如何通过uptime查看系统负载是否过高?
  • PostgreSQL 16 Administration Cookbook 读书笔记:第10章 Performance and Concurrency
  • Elasticsearch 7.15索引模板介绍
  • 做海外房产最好的网站济南企业网站建设
  • STM32学习-UART串口通信:物理层/协议层/UART基本架构/代码实战
  • [C++——lesson11.static关键字]
  • 小说网站开发流程具体app开发公司 上海
  • 【阿里DeepResearch】写作组件WebWeaver详解
  • 汽车面向服务架构(SOA)网络安全对策
  • 视频网站用php做做视频网站需要什么职位工作
  • Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
  • 佛山网站设计是学校网站建设项目需求报告
  • (8)ASP.NET Core2.2 中的MVC路由一
  • pytest中的assert断言
  • C++开源库使用:nlohmann/json
  • Appium笔记
  • 找人做彩票网站多少钱专业网站优化公司报价
  • 天津平台网站建设公司东莞市南城区
  • 【开题答辩全过程】以 Java医院就医平台系统为例,包含答辩的问题和答案
  • 11.路由器的接口及其相关知识(2025年9月25日)
  • C#调用基于python打包的税务申报期限解析器exe工具