Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404519
  • 博文数量: 120
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 1266
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 16:04
文章分类

全部博文(120)

文章存档

2011年(4)

2010年(10)

2009年(38)

2008年(68)

我的朋友

分类:

2009-01-11 18:32:33

假设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 的时候,有点特别的东西要注意.如果MAIN程序和调用的TCODE程序中都含有POC或者CFIUT,因为它们分属不同的SAP LUW,因此在两个程序中都必须有各自的COMMIT WORK.该情况也适用于SUBMIT 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,但是过程不太一样。
阅读(1081) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~