SAP ABAP 宏
如果我们想在程序中多次重复使用同一组语句,我们需要将它们包含在宏中。 例如,宏可用于长计算或用于编写复杂的WRITE语句。 我们只能在定义它的程序中使用宏。 宏定义应在程序中使用宏之前发生。
宏是基于占位符设计的。 占位符的工作方式类似于C语言中的指针。 您可以在DEFINE … END-OF-DEFINITION语句中定义一个宏。
以下是宏定义的基本语法:
DEFINE <macro_name>. <statements>
END-OF-DEFINITION.
......
<macro_name> [<param1> <param2>....].
704/5000在调用它之前必须首先定义一个宏。 …。 替换宏定义中包含的ABAP语句中的占位符和1 …。
宏定义中占位符的最大数量为9。 也就是说,当执行程序时,SAP系统用适当的语句替换宏,并且用参数param1,param2,… param9替换占位符&1,&2,…,&9。 我们可以在另一个宏中调用宏,但不能调用同一个宏。
例
转到事务SE38。 创建一个新程序ZMACRO_TEST以及短文本字段中的描述,以及类型和状态等适当属性,如以下屏幕截图所示:
下面是代码:
REPORT ZMACRO_TEST.
DEFINE mac_test.
WRITE: 'This is Macro &1'.
END-OF-DEFINITION.
PARAMETERS: s1 type C as checkbox.
PARAMETERS: s2 type C as checkbox.
PARAMETERS: s3 type C as checkbox default 'X'.
START-OF-SELECTION.
IF s1 = 'X'.
mac_test 1. ENDIF.
IF s2 = 'X'.
mac_test 2.
ENDIF.
IF s3 = 'X'.
mac_test 3.
ENDIF.
我们有3个复选框。 在执行程序时,让我们选择S2复选框。
上面的代码产生以下输出:
A Macro Program
This is Macro 2
如果选中所有复选框,代码将生成以下输出:
A Macro Program
This is Macro 1 This is Macro 2 This is Macro 3
关于赛锐信息
作为SAP的资深合作伙伴,赛锐信息是一家专业提供SAP行业化管理软件解决方案的顾问公司,致力于为企业提供SAP ERP系统咨询服务、IT规划、业务流程优化、信息系统实施、行业信息系统方案开发,运营外包及售后维护等全面的服务方案。已服务1000+家不同行业、规模的大中小型企业客户。在电子高科技、汽车零部件、印刷包装、医疗器械、快消品、专业服务等行业信息化管理领域具有领导性地位。