2020-08-20 15:43发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
HI专家
Plz给我带来了外部子例程与功能模块之间的相似之处和区别。
谢谢。
汗
子例程-您无法返回任何值,因为您可以使用FM进行相同的操作,子例程中不存在异常处理,因此无法在程序外部调用它们。
嗨,
功能模块是在功能组(类型为F的特殊ABAP程序)中定义的过程,可以从任何ABAP程序中调用。 功能组充当逻辑上属于在一起的功能模块的容器。
功能模块允许您封装和重用R/3系统中的全局功能。 它们存储在中央库中。 R/3系统包含许多预定义的功能模块,您可以从任何ABAP程序中调用它们。 功能模块在数据库更新以及R/3系统之间或R/3系统与非SAP系统之间的远程通信中也起着重要作用。
子例程是可以在任何ABAP程序中定义的过程,也可以从任何程序调用。 子例程通常在内部被调用,也就是说,它们包含本地经常使用的部分代码或算法。
子例程主要用于本地模块化,也就是说,通常从定义它们的程序中调用它们。 您可以使用子例程来编写在程序中重复使用的函数。 您可以在任何ABAP程序中定义子例程
注意事项
JLN
SUBROUTINE的主要四个区别------ ---- v ----------功能模块
1)子例程是本地的,这意味着我们可以在服务器本身中访问它们,但是就功能模块而言,它们是全局的,可以在服务器内部和外部进行访问。
2)我们不能在不调用子例程的情况下对其进行独立测试,但是功能模块可以进行独立测试。
3)无法处理子例程中的错误,可以通过功能模块中的异常来处理错误。
4)子例程在ABAP编辑器中定义,功能模块在函数生成器SE37中定义。
出于文档目的,外部子例程更好。 您可以将与该程序相关的所有子例程放在一个include程序中。
另一个区别是它们是用程序编译的,因此它们共享相同的内存,因此在调用子例程时不会更改上下文。 确实节省了系统时间。
此外,您可以在"外部"子例程中访问程序的所有全局变量,但不能在"功能"模块中访问它们,除非将它们作为参数传递。
使用哪种取决于您要处理的情况。
例如,如果您正在开发将ouptut转换为PDF格式的功能,那么最好创建一个功能模块,以便所有软件包中的所有程序都可以使用该功能。
如果您正在开发将由一组定义的程序(处理相同类型的数据)使用的功能,那么最好使用外部子例程,您可以在外部子例程程序中定义公共数据。
在外部子例程中,perform语句位于一个程序中,而窗体例程位于另一个程序中。用于可重用性。
检查此链接,
http://help.sap.com/saphelp_erp2004/ helpdata/zh-CN/9f/db999535c111d1829f0000e829fbfe/frameset.htm
*********************************************** *
以下是差异投注的注解。 FM和子例程。
Hi Function模块用于模块化。 您可以在任何程序中使用功能模块。 这在SAP系统中都是可用的。
作为子例程的位置是程序特定的。 在一个程序中创建子例程后,便可以在该程序以及相关程序(例如包含在该程序中)中使用该子例程,或者必须使用主程序名称专门调用该子例程。
最后,子例程用于程序模块化。 不能用于一般用途。
FM通常在许多程序要执行例程时使用。
子例程(窗体)通常仅在一个程序中执行。
您可以从其他程序执行例程,但这并不常见。
为区别起见,我们通常说表单用于内部模块化和
FM用于外部模块化。
要决定实施哪种方法,请考虑是否需要仅将内容用于有限的程序
或者可以从许多独立程序中调用它。
对于第一个目的,最好实现一个表单,而对于第二个目的,我们实现FM。
但是,ABAP不会隔离使用情况。
那是; 您可以从另一个程序中调用一个窗体,该程序的代码实际上并未实现。
但是,这需要引起注意,因为表单可能会使用全局变量。
FM也有同样的问题。
FM封装在功能组中,功能组可能具有全局变量
由其中的所有FM使用。
SUBROUTINES
ABAP/4通过子例程(也称为表单)支持将大型程序分解为较小的模块的过程。
功能模块
功能模块是存储在中央库中的特殊外部子例程。 R/3系统提供了许多预定义的功能模块,您可以从ABAP/4程序中调用它们,还可以创建自己的功能模块。
感谢和问候,
Dharani Kumar G
最多设置5个标签!
子例程-您无法返回任何值,因为您可以使用FM进行相同的操作,子例程中不存在异常处理,因此无法在程序外部调用它们。
嗨,
功能模块是在功能组(类型为F的特殊ABAP程序)中定义的过程,可以从任何ABAP程序中调用。 功能组充当逻辑上属于在一起的功能模块的容器。
功能模块允许您封装和重用R/3系统中的全局功能。 它们存储在中央库中。 R/3系统包含许多预定义的功能模块,您可以从任何ABAP程序中调用它们。 功能模块在数据库更新以及R/3系统之间或R/3系统与非SAP系统之间的远程通信中也起着重要作用。
子例程是可以在任何ABAP程序中定义的过程,也可以从任何程序调用。 子例程通常在内部被调用,也就是说,它们包含本地经常使用的部分代码或算法。
子例程主要用于本地模块化,也就是说,通常从定义它们的程序中调用它们。 您可以使用子例程来编写在程序中重复使用的函数。 您可以在任何ABAP程序中定义子例程
注意事项
JLN
SUBROUTINE的主要四个区别------ ---- v ----------功能模块
1)子例程是本地的,这意味着我们可以在服务器本身中访问它们,但是就功能模块而言,它们是全局的,可以在服务器内部和外部进行访问。
2)我们不能在不调用子例程的情况下对其进行独立测试,但是功能模块可以进行独立测试。
3)无法处理子例程中的错误,可以通过功能模块中的异常来处理错误。
4)子例程在ABAP编辑器中定义,功能模块在函数生成器SE37中定义。
出于文档目的,外部子例程更好。 您可以将与该程序相关的所有子例程放在一个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使用。
SUBROUTINES
ABAP/4通过子例程(也称为表单)支持将大型程序分解为较小的模块的过程。
功能模块
功能模块是存储在中央库中的特殊外部子例程。 R/3系统提供了许多预定义的功能模块,您可以从ABAP/4程序中调用它们,还可以创建自己的功能模块。
感谢和问候,
Dharani Kumar G
一周热门 更多>