BAPI基于数据库表的操作函数传入传出数据,本身函数有接口与增强无关
目录
一、BAPI接口定义
二、业务对象
三、查询方法
四、调用
五、BAPI创建
(1)在DDIC中创建一个结构
(2)创建BAPI函数模块和函数或API方法
(3)创建BAPI对象
(4)释放BAPI函数模块和BAPI对象
六、长文本修改
一、BAPI接口定义
BAPI (Business Application Programming Interfaces) 业务应用编程接口.它实际上是一种特殊的Remote Function Modules (RFC)是为了提供使用外部程序与系统来进行交易活动. 与RFC不同的是它提供的基于(Business Object) 技术的接口应用界面。
SAP采用了Object-Oriented技术,逻辑定义了SAP R/3系统的所有功能对象,并且将所有的对象(Objects)和BAPIs存储于业务对象库BOR(Business Objects Repository)。
SAP R/3 业务对象类型(Object Type) 相当于程序设计语言中类(Class) 的概念,其定义结构由以下几部分组成:基本数据、接口界面、键(Key Fields)、方法(Methods)、特征(Attributes)、事件(Events)。利用BAPI,开发人员可以实现对BOR进行实时访问,从而实现应用系统(SAP-SAP)之间在数据/逻辑层上的有效整合。
一般都以BAPI开头。
二、业务对象
SAP业务对象描述了在SAP系统中每个模块中真实的对象体(如:销售订单,生产工单,物料清单等),它是基于00(0bjectOriented)思想而设计,通过业务组件(BusinessComponent),业务对象(BusinessObjectType)和BAPI等实现。
业务对象的而整体架构包含四层(对应下图):
最内层:SAP业务对象内核层,包含对象本身的内部数据结构及标准设定
整合层:包含对象的业务逻辑
接口层:提供该业务对象类型的外部访问接口,包括属性、方法、BAPI方法、事件等
访问层:支持对业务对象数据访问的具体技术,RFC/ICO等
业务对象仓库BOR,是SAP业务对象类型和相关BAPI组织中心。业务对象组件:SAP对象的接口、属性、方法、事件。
接口:特殊的业务对象类型,本身不能生成对象实例
关键字段:唯一确定一个业务对象类型的实例
属性:业务对象的数据部分
方法:外界对业务对象进行访问的接口,BAPI是一种特殊的业务对象方法
事件:可通过事件触发工作流或任务
三、查询方法
事务码:SWO3 查询业务对象 SWO1也可以
事务码:BAPI 查看函数模块
四、调用
创建report程序,执行BAPI调用。数据可以通过:界面录入、其他系统传输、文件上传等方式获取获取数据之后,进行数据检查判断,调用BAPI函数,获取返回值。
五、BAPI创建
SAP系统中存在大量的与业务相关的BAPI函数,供其它外部的系统调用,但如果现存在的业务BAPI确实不能满足用户的需求,用户可以创建自己的BAPI并通过创建Business ObjectType后,将用户建的BAPI封装到BusinessObject.这样用户就可以在BAPI浏览器查看的到。
BAPI开发的步骤如下:
(1)在DDIC中创建一个结构
创建BAPI函数之前,需要先在DDIC中创建一个结构。
创建的结构必保存在开发类中,要包在对应的请求号中,不是是本地对象。
(2)创建BAPI函数模块和函数或API方法
运行事务码:SE37
在创建新的函数之前,需要创建BAPI对应的函数组(FunctionGroup)
在FunctionGroup基础上创建Function,由于是BAPlFunction是基于RFC技术和协议的函数,所以对应的属性是有关RFC的设定。对应的Import参数设定为:
由于BAPI函数执行后,无论成功与否,都可以查看其反回结果,其对应的需要设定好Export参数,设置如下:
Function的输入输出参数设定好后,就可以写FunctionModule的处理逻辑了所以业务处理源代码就直在Source code编写,这跟写普通的functionModule完全一样。
(3)创建BAPI对象
由于BAPI函数是基于RFC的函数一种接口,提供给外部系统调用,是属于业务对象的一种方法,如需在BAPI流览器查看,并提供给外部系统使用,需要创建一个业务对象类型来对BAPI函数进行封装。
创建业务对象类型(Businessobjecttype)的T-code是SWO1
把创建好的FunctionModule加进BusinessObject 中:
BAPI方法加进BusinessObject之后,显示为绿色后,就表示是可以用的方法:
(4)释放BAPI函数模块和BAPI对象
要想添加的函数模块与方法在BAPI流览器查看,并能发布和提供给外部系统使用需要先释放。释放的步骤是,先释放函数。
释放后,点击保存,然后点生成按钮(上面第四个红白交织的按钮)也可点击“PROGRAM”按钮查看源代码。所有这些操作步骤都做完成后,自己创建的BAPI就相当于发布成功。释放和发部成功后才可以在BAPI流览器中查看的到。这样也就可以提供给外部系统调用和访问。释放并发布成功后,在BAPI中可以查看所有详细的信息,具体信息如下:
六、长文本修改
长文本修改时,和基本的字段值修改不同。没有固定的字段名,通过函数进行录入、读取等操作。录入函数:SAVE_TEXT 读取函数:READTEXT 长文本ID查找方式
-双击长文本框
-查看GOTO-{>}HEADER,查找对应方法的输入参数内容,使用LNE传输
-TDFORMAT,是否转行
- TDLINES,行内容