关于SAP LUW的超详细解析

本文详细解析了SAP ABAP中不同调用方式的影响,包括CALLFUNCTION, SUBMIT, CALLTRANSACTION等指令如何改变SAPLUW(工作单元)和internalsession的结构,以及在不同调用下COMMITWORK的重要性。

假设MAIN PROGRAM(调用程序)为MAIN,其所在的为SAP LUW 1。

使用CALL FUNCTION 'AAA'的时候,MAIN被打断,在同一个internal session执行FM 'AAA',当FM执行完毕之后,继续执行MAIN。因此整个过程是在同一个SAP LUW内进行的。

使用SUBMIT AAA AND RETURN或者CALL TRANSACTION TCODE的时候,MAIN被打断,新开一个internal session(SAP LUW 2),AAA或者TCODE在新的internal session中执行,执行完之后,新开的internal session终止,MAIN继续执行,因此整个过程有两个SAP LUW。

当使用CALL TRANSACTION <tcode>的时候,有点特别的东西要注意.如果MAIN程序和调用的TCODE程序中都含有POC或者CFIUT,因为它们分属不同的 SAP LUW,因此在两个程序中都必须有各自的COMMIT WORK.该情况也适用于SUBMIT <program> AND RETURN。

使用SUBMIT AAA的时候,MAIN终止,SAP LUW 1结束,但是还是在同一个internal session,AAA被加载,新的SAP LUW 2产生。

使用LEAVE TO TRANSACTION TCODE的时候,效果跟使用SUBMIT AAA看起来差不多,但是是有本质区别的。当前external session所在的所有的internal session先被删除,再产生一个新的internal session,TCODE加载到新的internal session中执行。所以虽然都是两个SAP LUW,但是过程不太一样。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值