zoukankan      html  css  js  c++  java
  • SAP脚本录制工具 Script Recording 简单介绍

    众所周知,SAP提供了丰富的批处理工具,比如CATT,ECATT,LSMW,BDC等,从而可以批量操作业务数据,避免了大量重复的劳动过程。这些工具无疑都不复杂,开发人员很容易掌握。但是某些时候,如果我们要批量操作一些更为简单的流程呢,比如某报表A,屏幕参数只支持输入单个工厂,业务人员需要导出20个工厂的数据进行汇总,并下载到excel里分析,这时候就需要连续执行报表20次。(也许有人会说此时应该增强报表,允许输入范围的工厂,但这只是一个有可能发生的想象场景,请大家不要在意。秉只是一时间没找到更合适的例子。我们完全可以假设这个报表不允许修改,或者像某些公司一样,传生产系统的代码必须要等待很久。)

    也许业务人员只用一次,也许以后还会需要,这时候当然可以写一个程序或者做一个批处理工具去完成,但是都需要一定时间由开发人员完成,麻烦到业务人员会觉得,有这个时间,我自己都能手动做完了。

    毕竟人类的本质是复读机,机械重复是血液中流淌的本能。

    有没有更简单的方案呢?也许'Script Recording and Playback' 是一个更好的选择,而且完全可以不依赖于开发人员,当然,有简单的VBA编程基础最佳。

    从字面意义来看,“脚本录制和回放”已经完美诠释了它的功能。接下来我们用一个简单的例子,来阐述它是怎么工作的。

    首先,该功能的入口为:

     

    如果这里是灰色的,那说明功能没有启用,请自行解决或者联系管理员,这里不做赘述。

    点击之后,我们将看到如下弹窗界面。

     

    绿色为‘Playback Script’,用来回放我们的录制好的脚步。

    红色为“Record Script”,用来录制脚本。

    灰色为停止录制。

    最后的More按钮,点击会拓展出一些存储设置。

    界面简洁地就像是老式收音机一样。

    这里基于假设场景,做了一个简单报表如下,功能很简单,直接基于输入的公司代码hardcode了一条数据作为ALV显示。

     

    而我们要做的,就是要把公司代码X001-X020的数据下载到本地。

    首先在GUI初始界面打开脚本功能,设置好脚本默认保存路径,文件名应以.vbs作为后缀。点击红色按钮,开始录制,此时红色按钮变成灰色,而后面的灰色停止按钮编程橘色(不同界面风格颜色可能不同)。

    此时我们进行以下操作,运行SE38,输入报表名称,执行,输入参数X001,执行,点击左上角List,Export->Spreadsheet, 使用默认格式,选择文件夹,输入名称“数据-X001.XLSX”,保存,

    (请注意,此时如果弹出SAP GUI Security的提示,请选择Remember My Decision->Allow,并重新录制。我们要保证每次的操作必须完全相同。)

    最后依次退出程序到初始界面,点击停止录制。

    此时录制已经完成,我们可以从预设的路径下找到VBS文件。回放之前,我们可以先分析一下生成的VBA代码。

    (.VBS文件可以用文本文档打开)

     

    代码主要分成两部分,即便没有VBA基础,我们也可以粗略看懂,第一部分为与GUI的连接,第二部分,则是脚本内容,我们可以发现很多熟悉的东西,比如SE38,X001(我们曾经输入的参数)等等,我们来运行一遍该脚本(可以双击VBS运行也可以用playback),就会发现GUI完美还原了我们之前的操作,而且更快,因为省略了中间的时间。即便你录制的时候参数输入花了5秒,生成的脚本也是秒完成的。

    当然,在最后一步的时候可能会出问题,因为我们路径下已经有一个下载好的文件,会多出提示框来询问是否覆盖,而我们的简单脚本显然并没有这个功能,如果我们直接修改脚本换个名字,或者把之前下载的文件删掉,那么该脚本能正常执行到结束,回到初始界面。

    到此为止,我们就已经完成了脚本功能的基本学习,回到预设的场景,如果我们需要这个脚本执行20次,用不同的参数,该怎么办呢?

    显然,最简单的办法就是直接复制第二部分二十遍,改掉输入参数以及文件名,保存重新执行即可。

    如果有VBA基础,当然会想到更简单的方法,那就是创建一个内表…这句划掉,创建一个数组,保存好我们的所有X001-X020的参数,然后循环该数组,执行后半部分即可。

    当然,报表程序可以不必退出,直接使用新的参数执行,所以我们只需要循环SE38之后以及最后一个F15退出部分即可。

    这里就不再花费篇幅了。

    最后,执行脚本,完美下载了20个EXCEL文件,在第一个EXCEL中继续写VBA代码读取其他文件内容,就可以快捷汇总到单独的sheet进行后续分析。

    到此为止,我们已经完成了预设场景的解决方案,并且全部操作不需要一行ABAP代码,也就是说,这个操作完全可以由业务人员或者模块顾问来完成。

    这篇文章并不是一个详尽的教程,它只是完成了一个初步的介绍,希望大家可以多去尝试,发现更多SAP的妙用。

  • 相关阅读:
    算法与时间复杂度
    Pandas库
    数据分析之Numpy、Matplotlib库
    增量式爬虫
    分布式爬虫
    scrapy框架之CrawlSpider全站自动爬取
    django 修改 request 对象中的请求参数, 并重新赋值给 request 对象
    nginx 请求文件 进行用户认证/鉴权: internal(限制为内部调用)
    Django 缓存配置的多种方式
    Python 加入类型检查
  • 原文地址:https://www.cnblogs.com/yibing-jia/p/15469289.html
Copyright © 2011-2022 走看看