写在前面

  我们使用Python驱动SAP时,经常会需要导出一些SAP报表数据至本地Excel文件。这个看似简单的问题背后,其实暗藏玄机,今天小爬就带各位同学好好捋捋。

以事务代码FB03(凭证清单)为例,进入清单界面后,SAP会为我们加载默认布局,布局决定了我们报表中显示哪些字段,以什么样式来显示,最后我们导出的表格样式也大抵如此。

问题一:

  倘若默认布局不是我们当前想要的(每个用户的SAP界面针对特定事务代码,默认布局不尽相同,如果我们导出数据前不统一布局,后续导出的excel文件模板就没法统一,给后续的数据批量处理带来诸多不便),我们又不想修改默认布局,该怎么做呢?

回答一:

  我们可以先预设一个统一的全局布局,每次数据加载完后,我们的自动化脚本先设置布局至我们想要的,然后再执行数据的导出;

问题二:

  为啥SAP的布局在不同账号下呈现两种界面样式,该如何处理(示例界面:FAGLB03)?

回答二:

  我们可以点击【选择布局】后,判断弹窗的窗口标题,因为两种布局界面下的标题不一样。我们可以判断当前布局所属的样式,再决定是否自动点击SAP菜单栏的【设置】-【切换清单】。将布局样式一调整为样式二之后,再来进行后续的自动化操作。

问题三:

  为啥布局要先自动切换到【界面样式二】模式,该模式方便在哪儿?

回答三:

  我们通过之前系列【python驱动SAP完成自动化】文章中提到的Tracker工具,利用其Analyser功能,得到两者的布局界面(ID:/app/con[0]/ses[2]/wnd[1])的分布:

由于布局样式二的界面主体是GridView,它可以通过GetCellValue方法快速得到某个Cell(类似于单元格)的值,从而方便我们快速基于布局名称,定位并切换到想要的布局;与之对应,布局样式一的主体是GuiLabel对象,遍历每行布局相对没有那么方便。

不难看出,SAP的GUI自动化并不是一招鲜,吃遍天,真正实践时有太多的细节需要我们关注,希望看了这篇文章,你们可以少踩坑,快速积累实战经验!

快来扫码关注我的公众号 获取更多爬虫、数据分析的知识!

python驱动SAP完成数据导出(一)的更多相关文章

  1. python驱动SAP完成数据导出(二)

    在上一篇 python驱动SAP完成数据导出(一)中,我们提到了数据导出前,SAP布局的重要性,如何识别当前布局模式,以及如何切换到想要的布局.本篇小爬将着重讲讲数据导出的注意事项. 我们可以通过如下 ...

  2. Python 把数据库的数据导出到excel表

    import io,xlwt def export_excel(request): """导出数据到excel表""" list_obj = ...

  3. VBA驱动SAP GUI实现办公自动化(一)

    小爬之前写过一系列Python驱动SAP GUI实现办公自动化的文章,其实如果我们的实际业务不是太复杂,且我们对VBA语法比较熟悉的话,我们完全可以借助Excel VBA来驱动SAP GUI做很多自动 ...

  4. API例子:用Python驱动Firefox采集网页数据

    1,引言 本文讲解怎样用Python驱动Firefox浏览器写一个简易的网页数据采集器.开源Python即时网络爬虫项目将与Scrapy(基于twisted的异步网络框架)集成,所以本例将使用Scra ...

  5. python打造漏洞数据导出工具

    功能 [x] 支持导出的数据:IP地址.漏洞名称.风险等级.整改建议.漏洞描述.漏洞CVE编号.漏洞对应端口.漏洞对应协议.漏洞对应服务等. [x] 导出不同端口的同一个漏洞,也就是一个端口对应一个漏 ...

  6. python学习笔记3.2_数据导出

    一.data.to_csv:数据导出 1.to_csv:将数据导出为逗号分隔的文件 2.输出为其他分隔符的文件 写入到控制台,并打印:sys.stdout na_rep:对空值进行标注 二.serie ...

  7. Python结合SAP GUI Script操作sap的简易教程

    众所周知,如果要用Python做一些桌面WIN32应用的自动化工作,就需要用到著名的pywin32尤其是其中的win32com.client模块,pywin32的安装不能直接通过pip install ...

  8. hive的数据导入与数据导出:(本地,云hdfs,hbase),列分隔符的设置,以及hdfs上传给pig如何处理

    hive表的数据源有四种: hbase hdfs 本地 其他hive表 而hive表本身有两种: 内部表和外部表. 而hbase的数据在hive中,可以建立对应的外部表(参看hive和hbase整合) ...

  9. Python 进程之间共享数据

    最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享  在mp库当中,跨进程对象共享有三种方式,第一种 ...

随机推荐

  1. Linux入侵 反弹shell

    目录 一.简介 二.命令 三.NetCat 一.简介 黑入服务器很少会是通过账号密码的方式进入,因为这很难破解密码和很多服务器都做了限制白名单. 大多是通过上传脚本文件,然后执行脚本开启一个端口,通过 ...

  2. 时间同步——TSN协议802.1AS介绍

    前言之前的主题TSN的发展历史和协议族现状介绍了TSN技术的缘起,最近一期的主题TSN协议导读从定时与同步.延时.可靠性.资源管理四个方面,帮助大家了解TSN协议族包含哪些子协议,以及这些子协议的作用 ...

  3. CF1454A Special Permutation 题解

    Content 给定一个整数 \(n\),请构造出一个长度为 \(n\) 的排列 \(\{a_i\}_{i=1}^n\),使得对于每个 \(a_i\),都有 \(a_i\neq i\). 我们称一个长 ...

  4. C# Dispose模式

    需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象: 非托管资源:不 ...

  5. Qt之使用qss设置Qwidget背景色无效解决

    如题 解决方案 添加头文件 #include <QStyleOption> 重写函数paintEvent 内容如下 void statistics_assistant::paintEven ...

  6. Git统计代码变化率

    统计2017-03-01到2017-03-31代码变更率 代码统计命令参考:git log --pretty=tformat: --since ==2017-03-01 --until=2017-03 ...

  7. C1. 组队活动 Small(BNUOJ)

    C1. 组队活动 Small Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld      Java cl ...

  8. 1144 - Ray Gun

    1144 - Ray Gun    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You are ...

  9. 关于 TCP/IP

    基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层.网络层.传输层和应用层. (1)应用层:这里面有http,ftp 等等我们熟悉的协议. (2)传输层:著名的TCP和UDP协议就在这个层 ...

  10. Bean拷贝工具

    Apache BeanUtils Spring BeanUtils cglib BeanCopier Hutool BeanUtil Mapstruct Dozer 1.Apache  BeanUti ...