SAP PERFORM与INCLUDE的区别
我做功能的,但也需要经常看一下程序。在SAP中,经常看到有用PERFORM接一个子程序的用法,也有看到INCLUDE接一下子程序的用法。所以我比较好奇,这两种用法有什么区...
我做功能的,但也需要经常看一下程序。在SAP中,经常看到有用PERFORM接一个子程序的用法,也有看到INCLUDE接一下子程序的用法。所以我比较好奇,这两种用法有什么区别。如同一程序中同时出现如下:
PERFORM QUERY_DATA.
PERFORM SET_FIELD_CAT.
PERFORM DISPLAY_DATA.
INCLUDE ZDMS_RP011_F01. 展开
PERFORM QUERY_DATA.
PERFORM SET_FIELD_CAT.
PERFORM DISPLAY_DATA.
INCLUDE ZDMS_RP011_F01. 展开
1个回答
展开全部
perform 也叫sub routine,是独立存在于这个程序本身。除了这个程序别人都看不到。
include后面跟的,是另外一个程序,可以用SE38去看,但是该程序的本身属性是include,不能直接F8执行。
用你的例子来说就是,你SE38打开了一个程序A。程序里面有PERFORM QUERY_DATA.
那么就是程序A能够使用或者说看到这个perform下的所有逻辑。
至于 INCLUDE ZDMS_RP011_F01.他本身不能被直接执行,但是可以被任何的程序去调用。
还是程序A,里面写了INCLUDE ZDMS_RP011_F01,那么你就可以去SE38下面看到ZDMS_RP011_F01这个include程序下的所有逻辑,都被A使用了。
需要注意的是,假设include下也有PERFORM QUERY_DATA.
那么A程序如果调用了这个include,在A程序本身就不能再存在这个同名的perform:PERFORM QUERY_DATA。
举例一个常见的例子,假设一个大型项目开发。我们要兴建3个报表A B C(这些报表有一定的功能交集和数据交集)
那么我们通常会这么做,
首先去建一个include D,把所有的数据定义都放在D里面
那么ABC程序只要在程序中使用include D。就不用再定义公共的数据类型了。
ABC都可以有叫perform show_result. 这个名字的perfrom,但是都是为各自的程序独立服务,相互不会冲突。
include后面跟的,是另外一个程序,可以用SE38去看,但是该程序的本身属性是include,不能直接F8执行。
用你的例子来说就是,你SE38打开了一个程序A。程序里面有PERFORM QUERY_DATA.
那么就是程序A能够使用或者说看到这个perform下的所有逻辑。
至于 INCLUDE ZDMS_RP011_F01.他本身不能被直接执行,但是可以被任何的程序去调用。
还是程序A,里面写了INCLUDE ZDMS_RP011_F01,那么你就可以去SE38下面看到ZDMS_RP011_F01这个include程序下的所有逻辑,都被A使用了。
需要注意的是,假设include下也有PERFORM QUERY_DATA.
那么A程序如果调用了这个include,在A程序本身就不能再存在这个同名的perform:PERFORM QUERY_DATA。
举例一个常见的例子,假设一个大型项目开发。我们要兴建3个报表A B C(这些报表有一定的功能交集和数据交集)
那么我们通常会这么做,
首先去建一个include D,把所有的数据定义都放在D里面
那么ABC程序只要在程序中使用include D。就不用再定义公共的数据类型了。
ABC都可以有叫perform show_result. 这个名字的perfrom,但是都是为各自的程序独立服务,相互不会冲突。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询