子程序和功能模块

2020-08-20 15:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) HI专家 Plz给我带来了...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


HI专家

Plz给我带来了外部子例程与功能模块之间的相似之处和区别。

谢谢。

5条回答
一只江湖小虾
2020-08-20 16:22

出于文档目的,外部子例程更好。 您可以将与该程序相关的所有子例程放在一个include程序中。

另一个区别是它们是用程序编译的,因此它们共享相同的内存,因此在调用子例程时不会更改上下文。 确实节省了系统时间。

此外,您可以在"外部"子例程中访问程序的所有全局变量,但不能在"功能"模块中访问它们,除非将它们作为参数传递。

使用哪种取决于您要处理的情况。

例如,如果您正在开发将ouptut转换为PDF格式的功能,那么最好创建一个功能模块,以便所有软件包中的所有程序都可以使用该功能。

如果您正在开发将由一组定义的程序(处理相同类型的数据)使用的功能,那么最好使用外部子例程,您可以在外部子例程程序中定义公共数据。

在外部子例程中,perform语句位于一个程序中,而窗体例程位于另一个程序中。用于可重用性。

检查此链接,

http://help.sap.com/saphelp_erp2004/ helpdata/zh-CN/9f/db999535c111d1829f0000e829fbfe/frameset.htm

*********************************************** *

以下是差异投注的注解。 FM和子例程。

Hi Function模块用于模块化。 您可以在任何程序中使用功能模块。 这在SAP系统中都是可用的。

作为子例程的位置是程序特定的。 在一个程序中创建子例程后,便可以在该程序以及相关程序(例如包含在该程序中)中使用该子例程,或者必须使用主程序名称专门调用该子例程。

最后,子例程用于程序模块化。 不能用于一般用途。

FM是通用的。 不依赖程序。

FM通常在许多程序要执行例程时使用。

子例程(窗体)通常仅在一个程序中执行。

您可以从其他程序执行例程,但这并不常见。

表格和FM都是可重用的模块化单元。

为区别起见,我们通常说表单用于内部模块化和

FM用于外部模块化。

要决定实施哪种方法,请考虑是否需要仅将内容用于有限的程序

或者可以从许多独立程序中调用它。

对于第一个目的,最好实现一个表单,而对于第二个目的,我们实现FM。

但是,ABAP不会隔离使用情况。

那是; 您可以从另一个程序中调用一个窗体,该程序的代码实际上并未实现。

但是,这需要引起注意,因为表单可能会使用全局变量。

FM也有同样的问题。

FM封装在功能组中,功能组可能具有全局变量

由其中的所有FM使用。

一周热门 更多>