前言
最近很长一大段时间,自己在学习新的技术。
所以很久很久不更新了。想说学好了搞一个新项目搞搞。但是学习的时间成本,加上工作很忙,就比较慢吧。
手头在做一个项目,有了一点我自己的需求:
每晚我们要对外抛一些凭证信息,是通过sap的定时后台作业实现。但是目前没有合适的监控,导致每天都要登陆系统去查log表。
于是我就想是否有一个RFC函数,可以查询table,这样我通过调用函数就可以去看log表,以实现监控的效果。
Google了一下,原来sap本身自带了函数RFC_READ_TABLE
,可以实现我的需求。
函数使用说明
首先看一下这个函数的参数和表,
入参
QUERY_TABLE
,输入要查询的table。这里要说明下,执行该函数的账号必须有该table的查看权限才可以,否则会报错未授权。DELIMITER
输入分隔符号。输出的结果如果有多列,不同列的值之间就是这个符号做分割。NO_DATA
输入“X”表示不需要输出table的值,只输出表结构。如果不清楚某个table有哪些列,就可以先选中它,获取下表结构。ROWSKIPS
输出的结果要掠过多少行。比如某条件查询会查到100行,这个参数输入50,则输出结果从51行开始。ROWCOUNT
输出多少行结果。比如某条件查询会查到100行,这个参数输入10,则输出只有10行结果。
表
OPTIONS
查询的条件。可以根据自己的需要编写查询的条件。
需要注意的是,这里是abap的写法,如果跨行,就当作正常的abap换行写就好。FIELDS
要输出结果包含table的哪些列。DATA
输出结果的表,所有期望结果输出都在这里。
执行结果
按照我上面图例的条件,执行后结果就是这样子的。
总之这个函数还是很容易上手的。
补充
之所以我觉得它很霸道的原因是,有了它可以少掉很多额外的开发工作。如果我只是单纯的要从某些表里获取数据,我就可以直接使用它,而不是在要通过写程序或者单独写函数去抓。可以把更多精力放在处理获取的数据上。
我干了点啥
我呢,用它干了点啥呢,就是可以一点程度上实现我的定时监控,并将监控结果发给我自己。
大体逻辑就是,定时调用这个rfc,然后抓取结果做一定加工后,调用企业微信的webhook,发送到我的企业微信上。
每个环节之前都搞过好多次,也都介绍过,所以就不单独说了。
最后的 效果大概就是下面这个样子的,非常的nice。