子程序和功能模块之间的区别

2020-09-01 02:40发布

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

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


任何人都可以帮我给我子程序和功能模块之间的区别

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

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


任何人都可以帮我给我子程序和功能模块之间的区别

付费偷看设置
发送
11条回答
落灬小鱼
1楼-- · 2020-09-01 03:20

嗨shwetha,

您可以使用PERFORM命令从任何程序中调用ABAP子例程(窗体),但要遵守 正常的ABAP运行时授权检查。 您可以使用对子例程的此类调用来执行计算,从数据库中获取显示或打印时所需的数据,格式化数据等。

PERFORM命令和所有控制命令一样,是在格式化文档以进行显示或打印时执行的。 调用的子例程与文档之间的通信是通过符号来实现的,这些符号的值在子例程中设置。

表单窗口中的语法:

/:PERFORM

程序中的

/:使用&INVAR1&

/:使用&INVAR2&

...

/:更改&OUTVAR1&

/:更改&OUTVAR2&

.. 。

/:ENDPERFORM

INVAR1和INVAR2是变量符号,可以是四种SAPscript符号类型中的任何一种。

OUTVAR1和OUTVAR2是本地文本符号,因此必须是字符串。

必须通过以下命令在ABAP报告程序中定义通过上述命令行调用的ABAP子例程:

FORM TABLES IN_TAB STRUCTURE ITCSY

OUT_TAB结构ITCSY。

...

ENDFORM。

功能模块是在功能组中定义的过程(特殊ABAP) 类型为F的程序),并且可以从任何ABAP程序中调用。 功能组充当逻辑上属于在一起的功能模块的容器。 您可以使用功能构建器在ABAP工作台中创建功能组和功能模块。

功能模块允许您封装和重用R/3系统中的全局功能。 它们存储在中央库中。 R/3系统包含许多预定义的功能模块,您可以从任何ABAP程序中调用它们。 功能模块在数据库更新以及R/3系统之间或R/3系统与非SAP系统之间的远程通信中也起着重要作用。

子例程不同,您不会在程序的源代码中定义功能模块。 而是使用功能构建器。 实际的ABAP接口定义对程序员而言仍然是隐藏的。 您可以将功能模块的输入参数定义为可选。 您也可以为其分配默认值。 功能模块还支持异常处理。 这使您可以在功能模块运行时捕获某些错误。 您可以使用功能构建器测试功能模块,而不必将其包含在程序中。

希望这对您有所帮助,奖励积分。

葫芦娃快救爷爷
2楼-- · 2020-09-01 03:13

您好Shwetha,

功能模块和子例程之间的主要区别如下:

1)功能模块具有用于定义参数的特殊屏幕-参数不是通过ABAP/4语句定义的。

2)表的工作区不在功能模块和调用程序之间共享。

3)调用功能模块所用的语法不同于调用子例程。

4)离开功能模块是通过 raise 语句而不是检查,退出或停止来完成的。

此致

Vijay

粗暴的香蕉
3楼-- · 2020-09-01 03:23

子例程在特定程序内使用,特别是为了实现模块化,而功能模块可以在各个程序中使用,并且由于它们按功能组分组而具有全局可见性。

谢谢

Vasudha

小熊yu生菜
4楼-- · 2020-09-01 03:08

功能模块:

1。 它是预先编译的,当我们在那时创建功能模块时,它将自行编译。

2。 通过事务SE37可以创建功能模块。

3。 功能模块可以通过按键调用" CALL FUNCTION"

SUBRUTINE:

1. 尚未预先编译,当此时执行的程序本身的子例程将 编译。

2。子例程可以在程序中创建。

3。 Subrountine可以通过关键字" FORM"进行调用

如果获得正常奖励

Tong__Ming
5楼-- · 2020-09-01 03:17

嗨,

子例程

1>子例程只能在该程序中使用。

2>子例程不能返回任何值。

3>在子例程中,异常需要显式处理。

功能模块

1>功能模块集中存储在sap库中,因此可以在任何程序中全局使用。

2>功能模块返回值。

3>存在自动错误处理。

此致

Manjunath M

一周热门 更多>