前言
关于SAP中的业务对象的定义与解释,推荐阅读江老师的文章: 业务对象和BAPI - 江正军 - 博客园 (cnblogs.com)
https://www.cnblogs.com/jiangzhengjun/p/4291469.html。
本文主要介绍如何调用业务对象的方法。
方法一
REPORT ztest.INCLUDE <cntn01>."引用宏
DATA: vbak_ref TYPE swc_object.DATA: container TYPE STANDARD TABLE OF swcont."定义业务对象vbak_ref,类型为VBAK(销售订单),主键key为0000000001(订单编号)swc_create_object vbak_ref 'VBAK' '0000000001'."调用业务对象vbak_ref的DISPLAY(显示)方法swc_call_method vbak_ref 'DISPLAY' container.代码执行之后,会打开VA03界面,如下所示
方法二
透过现象看本质,在方法一中swc_create_object宏代码,实际上是调用了SWO_CREATE方法创建业务对象;swc_call_method宏代码实际上是调用了SWO_INVOKE来执行业务对象方法.
以下示例将使用这两个方法来实现方法一中显示销售订单的相同功能
REPORT ztest.DATA: vbak_ref TYPE swotrtime-object.DATA: container TYPE swconttab.CALL FUNCTION 'SWO_CREATE' EXPORTING objtype = 'VBAK' objkey = '0000000001' IMPORTING object = vbak_ref.
CALL FUNCTION 'SWO_INVOKE' EXPORTING access = 'C' object = vbak_ref verb = 'DISPLAY' persistent = ' ' TABLES container = container.代码执行之后,会打开VA03界面,同方法一一样
封装使用
在ZCL_COMMON类中对业务对象的显示做了简单的封装,
调用这个方法显示BP
显示IDOC
只要你愿意,SAP中常见的业务单据都可以使用这种方法进行显示
总结
1\. **GITHUB仓库地址** : https://github.com/a87b01c14/ZCL_COMMON