SAP 技巧篇:Script脚本模拟人工操作批量录入数据

 现在大环境都讲人工智能、自动化办公等场景的应用,这里我们介绍一下SAP本身自带的自动化工具”  文章最后附最终脚本

01

背景需求

SAP:批量录入工具:LSMW/BDC/Script 三大工具

LSMW:应用场景多,实现方法多,但有些事务代码不能录制;

BDC:需要一定开发经验,适用于开发者;

Script:需要简单开发经验,但是容易出错;

02

实现

第一步:系统设置

检查系统SAP脚本录制和回放功能有无启用

执行事务代码:RZ11

输入参数:sapgui/user_scripting

然后回车

如果当前值为FALSE则改为TURE,如果当前值为TURE,则表示已经启用,就不需要更改了,改完之后点击保存,会提示,如果系统重启服务,则需要在此更改这里的配置,否则就不生效了。

然后退出所有窗口,在SAP GUI中打开设置

点击启用脚本>应用>确认,后重启SAP GUI

第二步:脚本录制

进入脚本的录制:

点击增加

复制保存到后面的文件路径,打开文件,粘贴路径打开

此时该路径下已有13个脚本,可以更改路径脚本名称为14,如下图

然后点击红色按钮进行录制操作,就是把需要重复的动作在SAP内执行一遍,执行过程中不要有多余的操作,精简不必要的操作,录制完成之后回来点黄色按钮即录制完成。

绿色按钮为执行按钮,录入完成之后可以点这里执行脚本。

第三步:修改脚本,让脚本能重复执行:

找到对应脚本,点击鼠标右键,用记事本打开

END IF之前的不需要修改,直接忽略

然后在第一个session之前加入打开Excel与循环的语句,明确打开Excel位置和文件名:


dim oExcel,oWb,oSheetSet oExcel = CreateObject("Excel.Application")Set oWb = oExcel.Workbooks.Open("D:\mmm.xls")ON ERROR RESUME Next
for i = 2 to 623

然后修改文件路径:

Set oWb = oExcel.Workbooks.Open("C:\Users\XXX\Desktop\10.xlsx")

为需要录入的数据源文档所在路径,这里按照保存路径修改;

for i = 2 to 2   为EXCL中从第几行开始到第几行结束,比如从第一行开始到第8行结束,则为for i = 1 to 8 

把原来手工输入数据的地方,改为从excel中读取数据

比如

session.findById("wnd[0]/usr/ctxtVBAK-VBELN").text = "1000001269"

改成

session.findById("wnd[0]/usr/ctxtVBAK-VBELN").text = oExcel.Cells(i,1).Value

然后在最后加上关闭语句:


next
oExcel.WorkBooks.Close
oExcel.Quit

最终Script脚本如下:

If Not IsObject(application) ThenSet SapGuiAuto  = GetObject("SAPGUI")Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) ThenSet connection = application.Children(0)
End If
If Not IsObject(session) ThenSet session    = connection.Children(0)
End If
If IsObject(WScript) ThenWScript.ConnectObject session,     "on"WScript.ConnectObject application, "on"
End If
dim oExcel,oWb,oSheet
Set oExcel = CreateObject("Excel.Application")
Set oWb = oExcel.Workbooks.Open("C:\Users\SAIP\Desktop")
ON ERROR RESUME Next
for i = 1 to 8
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "VA02"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtVBAK-VBELN").text = oExcel.Cells(i,1).Value
session.findById("wnd[0]/usr/ctxtVBAK-VBELN").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/mbar/menu[0]/menu[11]").select
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press
next
oExcel.WorkBooks.Close
oExcel.Quit

原始脚本如下:

If Not IsObject(application) ThenSet SapGuiAuto  = GetObject("SAPGUI")Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) ThenSet connection = application.Children(0)
End If
If Not IsObject(session) ThenSet session    = connection.Children(0)
End If
If IsObject(WScript) ThenWScript.ConnectObject session,     "on"WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "VA02"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtVBAK-VBELN").text = "1000001269"
session.findById("wnd[0]/usr/ctxtVBAK-VBELN").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/mbar/menu[0]/menu[11]").select
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press

第四:提示:

保存执行前SAP GUI只能留一个界面是打开的,然后直接运行Script脚本,

窗口会一步步在前台执行操作,直到结束,但如果有报错,会直接跳入到下一行数据,所以创建后一定要再检查数据,是否有错误,这里也是Script脚本的缺点。

脚本可以直接双击运行。

公告:周一至周五每日一更,周六日存稿,请您点“关注”和“在看”,后续推送的时候不至于看不到每日更新内容,感谢。

这是一条刮刮乐,按住全部选中:点关注的人最帅最美,欢迎:分享+收藏+在看+点赞+关注! 

Allways  on  the  way

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/311147.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测出Bug就完了?从4个方面教你Bug根因分析

01 现状及场景 🎯 1.缺失bug根因分析环节 工作10年,虽然不是一线城市,也经历过几家公司,规模大的、规模小的都有,针对于测试行业很少有Bug根因环节,主流程基本上都是测试提交bug-开发修改-测试验证-发送报…

Docker部署MongoDB数据库

文章目录 官网地址docker 网络部署 MongoDB部署 mongo-expressdocker-compose.ymlMongoDB shell 官网地址 https://www.mongodb.com/zh-cn docker 网络 # 创建 mongo_network 网络 docker network create mongo_network # 查看网络 docker network list # 容器连接到 mongo_…

CANoe中LIN工程主节点的配置(如何切换调度表)

1:前置条件 1)工程已经建立,simulation窗口已经配置好(包括且不限于通道mappin好,数据库文件已经添加) 2)我已系统自带sampleCfg工程,作为例子。如下图 2 :主节点的配置…

ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写教程

原文链接:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601506&idx2&sn5dae3fdc3e188e81b8a6142c5ab8c994&chksmfa820c85cdf58593356482880998fc6eb98e6889b261bf62…

element日期时间选择器,禁止选择当前时间以后的时间

效果如下&#xff1a; 源码附上&#xff1a; pickerOptions 对象包含一个disabledDate函数&#xff0c;该函数会对超出当前日期一年后的日期进行禁用。Date.now() - 8.64e7计算当前日期减去一年的毫秒数&#xff0c;从而禁用当年之后的所有年份。 <xx-date-picker v-model…

课堂行为动作识别数据集

一共8884张图片 xml .txt格式都有 Yolo可直接训练 已跑通 动作类别一共8类。 全部为教室监控真实照片&#xff0c;没有网络爬虫滥竽充数的图片&#xff0c;可直接用来训练。以上图片均一一手工标注&#xff0c;标签格式为VOC格式。适用于YOLO算法、SSD算法等各种目标检测算法…

vue3中单框双时间选择模式

在单框双时间选择下&#xff0c;给当前时间框赋值&#xff0c;可以使用vue中的v-model双向绑定方式 如前端元素代码&#xff1a; <el-form-item label"创建时间" style"width: 308px;"><el-date-pickerv-model"dateRange"value-forma…

公钥基础设施 (PKI) 助力物联网安全

物联网&#xff08;InternetofThings&#xff0c;缩写IoT&#xff09;在制造业、农业、家居、交通和车联网、医疗健康等多个领域广泛应用&#xff0c;让我们进入万物互联时代&#xff0c;实现智能生产、智慧生活。然而&#xff0c;随着物联网的发展&#xff0c;网络威胁日益增加…

高风险IP的来源及其影响

随着互联网的发展&#xff0c;网络安全问题越来越引人关注。其中&#xff0c;高风险IP的来源成为了研究和讨论的焦点之一。高风险IP指的是那些经常涉及到网络攻击、恶意软件传播以及其他不良行为的IP地址。它们的存在不仅对个人和组织的网络安全构成威胁&#xff0c;还可能给整…

MYSQL5.7详细安装步骤

MYSQL5.7详细安装步骤&#xff1a; 0、更换yum源 1、打开 mirrors.aliyun.com&#xff0c;选择centos的系统&#xff0c;点击帮助 2、执行命令&#xff1a;yum install wget -y 3、改变某些文件的名称 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base…

第四百六十二回

文章目录 1. 概念介绍2. 实现方法3. 示例代码4. 内容总结 我们在上一章回中介绍了"关于MediaQuery的优化"相关的内容&#xff0c;本章回中将介绍readMore这个三方包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的readMore是一个…

一文读懂Javascript中var、let和const的区别,包括提升hoisting(文章非常简短易懂,适合小白)

一张表格整理var、let和const的区别 关键词 范围 提升 可以重新分配 可以重新声明 var 函数作用域 是 是 是 let 块作用域 否 是 否 const 块作用域 否 否 否 相信在上面的表格中&#xff0c;大家有疑问的应该是提升&#xff0c;那么下面就给大家来讲讲js…

Excel VBA技术:编织数据之梦的魔法语言

想要让你的Excel技能瞬间升级&#xff0c;成为数据处理与展示的顶尖高手吗&#xff1f;Excel VBA技术正是你不可错过的魔法武器&#xff01;它能让你轻松驾驭复杂的数据任务&#xff0c;自动化处理繁琐操作&#xff0c;释放你的双手和大脑。通过VBA&#xff0c;你可以创建精美的…

媒体邀约采访的分类?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约采访可以根据不同的标准进行分类。以下是一些常见的分类方式&#xff1a; 1. 按照邀约形式&#xff1a; - 电话邀约&#xff1a;通过电话与媒体联系&#xff0c;说明采访或报道…

吴恩达2022机器学习专项课程(一) 第二周课程实验:实践线性回归

目标 假设您是一家餐厅连锁店的首席执行官&#xff0c;并正在考虑在不同的城市开设新店。您希望将您的业务扩展到可能为您的餐厅带来更高利润的城市。该连锁店已经在各个城市设有餐厅&#xff0c;您已经获得了这些城市的利润和人口数据。您还拥有关于新餐厅候选城市的数据。对…

机器学习算法快速入门

文章目录 0.简介1.常用术语1) 模型2) 数据集3) 样本&特征4) 向量5) 矩阵6)假设函数&损失函数7&#xff09;拟合&过拟合&欠拟合 2.线性回归3.梯度下降求极值4.Logistic回归算法&#xff08;分类问题&#xff09;5.KNN最邻近分类算法6.朴素贝叶斯分类算法7.决策树…

前端开发攻略---在页面上渲染大量元素,使用defer减少白屏等待时间,优化页面响应速度

1、优化前 2、优化后 3、优化思路 1、在元素数量不变的情况下&#xff0c;进行一步一步的渲染&#xff0c;先渲染一些重要的元素或者需要用户第一时间看到的元素。 2、使用Hooks封装优化函数 4、优化代码 拥有大量元素的组件&#xff08;Item&#xff09;&#xff1a;文件位置&…

随着深度学习的兴起,浅层机器学习没有用武之地了吗?

深度学习的兴起确实在许多领域取得了显著的成功&#xff0c;尤其是那些涉及大量数据和复杂模式的识别任务&#xff0c;如图像识别、语音识别和自然语言处理等。然而&#xff0c;这并不意味着浅层机器学习&#xff08;如支持向量机、决策树、朴素贝叶斯等&#xff09;已经失去了…

thinkphp5关联预载入with指定字段属性查询

一、thinkphp5.0 如果要指定属性查询&#xff0c;可以使用&#xff1a; $list User::field(id,name)->with([profile>function($query){$query->field(email,phone);}])->select([1,2,3]); foreach($list as $user){// 获取用户关联的profile模型数据dump($user…

学习经验分享【32】本科/硕士开题报告、中期报告等写作经验分享

本科/硕士阶段首先就是要写开题报告&#xff0c;然后中期报告&#xff0c;这篇博文就是分享一下写报告的经验&#xff0c;避免被老师打回来。本人有丰富的写报告经验&#xff0c;有需要的朋友可添加文末联系方式与我联系。 一、本科开题报告的提纲 课题来源及研究的目的和意义…