ABAP 程序/接口调用其他程序的数据
在ABAP遇到的业务场景中,可能会遇到一种情况,需要调用其他报表的数据来发送或者二次加工,这个时候又不想对源程序做大的改动、有以下几种思路解决。
1.修改源程序,将需要展示的数据存储到DB中,然后主程序再从DB中读取;(增加存储开销)
2.Submit配合EXPORT/IMPORT :将数据临时存放到内存中,然后主程序再从内存中读取,及时Free Memory ID;(增加内存开销)
3.修改主程序和源程序的逻辑,增加耦合;(后期运维困难)
4.Copy出源程序的代码逻辑后,将源程序大卸八块,只要逻辑不变,随便怎么改就要能跑起来就行;(推荐这一种)
下面推荐第二种方法:
源程序【被调用程序】:
*&---------------------------------------------------------------------*
*& Report ZCHENH072
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT zchenh072.
PARAMETERS:p_call TYPE c NO-DISPLAY. " 被调用的标志 IF p_call IS INITIAL.
WRITE:/,'未被其他程序调用'.
ELSE.
* WRITE:/,'被其他程序调用开始'. DATA:lv_key TYPE i,
lv_value TYPE string,
BEGIN OF lt_tab OCCURS ,
key TYPE i,
value TYPE string,
END OF lt_tab.
DO TIMES.
lv_key = sy-index.
lv_value = '测试值'.
lt_tab-key = lv_key.
lt_tab-value = lv_value.
APPEND lt_tab.
ENDDO.
EXPORT lt_tab TO MEMORY ID 'EXPORTID'.
* WRITE:/,'被其他程序调用结束'.
ENDIF.
接口【主程序】:
*&---------------------------------------------------------------------*
*& Report ZCHENH072_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT zchenh072_1.
DATA:BEGIN OF lt_tab OCCURS ,
key TYPE i,
value TYPE string,
END OF lt_tab. SUBMIT zchenh072 WITH p_call = 'X'
AND RETURN.
IMPORT lt_tab FROM MEMORY ID 'EXPORTID'.
FREE MEMORY ID 'EXPORTID'.
BREAK-POINT.
此处注释掉Write的原因,请自行尝试后体会.
使用时注意以下几点:
1.export与import两边的内表(包含内表名称),字段结构(包括长度/内型/小数位数/字段的多少)保持完全一致,建议Copy源程序中的内表到主程序【接口】中,或SE11定义全局结构和内表。
2.Submit后要and return,将数据返回到主程序中。
3.该方法缺点:当后期源程序逻辑变动或者内表结构发生改变,风险极大,不轻易推荐使用。
ABAP 程序/接口调用其他程序的数据的更多相关文章
- Asp反向代理程序,调用远程站点全站数据,一款脚本级反向代理程序.
前些天临时写的一脚本级反向代理程序,用法很简单,设置好目标站地址,然后放到你网站根目录:index.asp,再将404页面自定义为:index.asp,即可. 由于暂时没有 url 替换需要,所以没有 ...
- 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码
直接拨号.将电话号码传入拨号程序.调用拨号程序.调用系统浏览器浏览网页.调用系统程序查看联系人.显示系统设置界面和显示Wi-Fi设置界面代码 拨打号码的代码如下: Intent callIntent= ...
- ABAP程序相互调用--SUBMIT
(1) 调用其他程序: * Trigger the IDOC SUBMIT zpcppmd001_idoc AND RETURN. (2) 调用其他程序参数传递参数: *当被调用的程序的屏幕有输入参数 ...
- DUBBO监控,设置接口调用数据的上报周期
目录 DUBBO监控,设置接口调用数据的上报周期 dubbo已有的监控方案 针对已有方案的改进 DUBBO监控,设置接口调用数据的上报周期 dubbo是目前比较好用的,用来实现soa架构的一个工具,d ...
- 以聚合数据免费接口为例,通过 Class 类继承方法,让小程序实现项目化接口调用
微信小程序数据来源,是通过接口实现的.但接口如何调,数据如何取?每个人都有不同的方法,下面以聚合数据免费接口为例. 配置接口 config.js 聚合数据请求接口需要以key作为参数. const c ...
- ABAP程序互调用:SUBMIT、CALL TRANSACTION、LEAVE TO TRANSACTION
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 【微信小程序】调用wx.request接口需要注意的问题
写在前面 之前写了一篇<微信小程序实现各种特效实例>,上次的小程序的项目我负责大部分前端后台接口的对接,然后学长帮我改了一些问题.总的来说,收获了不少吧! 现在项目已经完成,还是要陆陆续续 ...
- 【小程序】调用wx.request接口时需要注意的问题
写在前面 之前写了一篇<微信小程序实现各种特效实例>,上次的小程序的项目我负责大部分前端后台接口的对接,然后学长帮我改了一些问题.总的来说,收获了不少吧! 现在项目已经完成,还是要陆陆续续 ...
- 微信小程序PHP 微信支付接口调用
小程序端 /** * 微信支付接口 */ wxPaymoney:function (out_trade_no, true_money){ //out_trade_no 后台统一下单接口需要用 var ...
随机推荐
- js 获取url中的参数 修改url 参数 移除url参数
js 获取url中的参数 修改url 参数 移除url参数 var jsUrlHelper = { getUrlParam : function(url, ref) { var str = " ...
- TCP/IP各层对应的协议
应用层: 该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据协议.如: HTTP:超文本传输协议. TELNET:(网络电传),通过一个终端(terminal)登录到网络(运行在TCP ...
- centos7安装rabbitmq3.7.9
感谢此兄: https://blog.51cto.com/huwei555/2341513?source=dra (centos7 安装rabbitmq 3.7) 以root用户登录.cd /hom ...
- [转][ActiveMQ]Apache.NMS.ActiveMQ 用法
下载 C# 组件:http://archive.apache.org/dist/activemq/apache-nms/1.7.0/ 使用说明:https://www.cnblogs.com/cjm1 ...
- linux中.nfsxxxx引起的文件无法删除
一个linux系统中的某个文件夹无法删除,使用ls -al查看有1个.nfsxxxx的文件无法删除. 使用lsof +D /filepath/,查看到文件被一个进程一直占用. 再使用ps -aux | ...
- 怎么安装Scrapy框架以及安装时出现的一系列错误(win7 64位 python3 pycharm)
因为要学习爬虫,就打算安装Scrapy框架,以下是我安装该模块的步骤,适合于刚入门的小白: 一.打开pycharm,依次点击File---->setting---->Project---- ...
- LeetCode【101. 对称二叉树】
对称二叉树,就是左节点的左节点等于右节点的右节点,左节点的右节点等于右节点的左节点. 很自然就想到迭代与递归,可以创建一个新的函数,就是另一个函数不断的判断,返回在主函数. class Solutio ...
- php对函数的引用
function &example($tmp=0){ //定义一个函数,别忘了加“&”符 return $tmp; ...
- mysql ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constrain fails
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constrain fails. 可能是MySQL在In ...
- Windows 10(UWP)开发技巧 - PageUserControl
[本系列需要具有一定开发基础] 我们在开发中经常遇到这样的场景: 1.呈现详细信息,且包含一些操作.如:查看原图,支持放大,缩小,多图. 2.执行特定的行为,且要有回执结果.如:选择联系人,选中某图, ...