如何调用 BO 业务对象方法

作者:ABAP三叔 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, Data Engineering, SD, WM, 仓库管理, 开发, 数据工程, 系统管理, 销售分销
如何调用 BO 业务对象方法 - 封面图
如何调用 BO 业务对象方法 - 封面图

前言

关于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界面,如下所示

如何调用 BO 业务对象方法 - 封面图
如何调用 BO 业务对象方法 - 封面图

方法二

透过现象看本质,在方法一中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类中对业务对象的显示做了简单的封装,

如何调用 BO 业务对象方法 - 封面图
如何调用 BO 业务对象方法 - 封面图

调用这个方法显示BP

如何调用 BO 业务对象方法 - 封面图
如何调用 BO 业务对象方法 - 封面图

显示IDOC

如何调用 BO 业务对象方法 - 封面图
如何调用 BO 业务对象方法 - 封面图

只要你愿意,SAP中常见的业务单据都可以使用这种方法进行显示

总结

1\. **GITHUB仓库地址** : https://github.com/a87b01c14/ZCL_COMMON

ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「如何调用BO业务对象方法.md」整理生成,仅用于内部技术分享与学习交流。