试用场景:与外围系统进行对接需要进行接口开发
1.BAPI接口
我们可以使用事务码SWO1查询业务对象,事务码BAPI查询BAPI接口
MM常用BAPI | 描述信息 |
BAPI_OBJCL_CREATE
|
分类视图的创建
|
BAPI_OBJCL_GETCLASSES
|
分类视图得到详细信息
|
BAPI_MATERIAL_SAVEREPLICA
|
物料视图的扩充
|
BAPI_GOODSMVT_CREATE
|
创建物料凭证
|
BAPI_GOODSMVT_CANCEL
|
冲销物料凭证
|
BAPI_PR_CREATE
|
创建
PR
|
BAPI_PO_CREATE1
|
创建
PO
|
BAPI_PO_CHANGE
|
修改
PO
和删除
PO
|
W S_REVERSE_GOODS_ISSUE
|
冲销交货单的过账发货
|
BAPI_RESERVATION_CREATE1
|
创建预留
|
BAPI_RESERVATION_CHANGE
|
修改和删除预留
|
SD常用BAPI | 描述信息 |
BAPI_SALESORDER_CREATEFROMDAT2
|
创建销售订单
|
SD_SALESDOCUMENT_CREATE
|
创建销售订单
|
BAPI_OUTB_DELIVERY_CREATE_SLS
|
根据销售订单创建交货单
|
BAPI_BILLINGDOC_CREATEMULTIPLE
|
创建发票
|
BAPI_SALESORDER_CHANGE
|
修改或者删除销售订单
|
MB_CANCEL_GOODS_MOVEMENT
|
冲销交货单的过账发货
|
BAPI_BILLINGDOC_CANCEL
|
发票的冲销
|
勾选"远程启用的模块"即可被外部系统调用
2.RFC接口
同步通信优点: 可以及时将数据返还给系统缺点: 系统对话时必须保证两个系统处于活动状态,否则对话出现中断,影响业务应用的处理异步通信优点: 不影响请求发送系统的业务处理缺点: 不适用于及时响应的处理过程
提示Tips:在RFC模块中,只允许使用具有传递值的参数
由于资源有限,我们假设ZFM_GET_EKPO_12是外部系统(ZDEST)提供的函数,需要在本系统中进行调用,可编写如下代码
有关上述自定义创建ZFM_GET_EKPO_12函数可参考以下文章
3.Web Service接口*
例如,一个用 Java 开发的电商系统可通过 Web Service 与基于 ABAP 的 SAP ERP 系统交换订单数据
Web Service 是一种基于网络的分布式计算技术,它允许不同应用程序通过网络互相通信和共享数据,无论应用程序使用什么编程语言或运行在哪种操作系统上,只要遵循Web Service的标准,它们就可以相互通信
上述涉及Web Service的事务码包括:SE80,SE37,SOAMANAGER
Web Service Provider
向外部暴露出一个能够通过Web调用的API(Application Interface),生成WSDL,以供外部调用
例如,外部系统需要查看SAP系统的销售订单详情,我们就可以创建一个 Web Service Provider,将准备好的RFC函数发布出去
创建 Web Service Provider 方法
① SE80 ---> 右键Package ---> 创建企业服务(Enterprise Services) ---> Service Provider
② SE37打开FM ---> 实用程序 ---> 更多实用程序 ---> 创建Web服务
例如,创建一个Web Service Consumer,调用外部系统提供的销售订单详情查询接口,查询销售订单
创建 Web Service Consumer 方法
① SE80 ---> 右键Package ---> 创建企业服务(Enterprise Services) ---> Service Consumer
WSDL(Web Services Description Language)
WSDL 是一种 XML 文档,用于描述 Web Service 的接口、方法、参数和返回至等详细信息
通过 WSDL ,服务的提供者可以明确地定义服务的功能,而服务的使用则可以通过 WSDL文件,了解如何正确地调用该服务
4.PI(接口中间件)
事务代码:SPROXY
关于PI的相关操作,读者可自行查阅相关的资料
5.RESTFUL*
RESTful (Representational State Transfer,简称REST)
ABAP Restful Client
ABAP作为Client端,连接外部系统的Restful服务,可理解为调用Restful API
ABAP Restful Server
ABAP作为Server端,对外提供Restful服务,可理解为发布Restful API
GET用来获取资源
POST用来新建或更新资源
PUT用来更新资源
DELETE用来删除资源
关于如何调用Restful API 以及发布Restful API 的操作,读者可自行查阅相关资料