1.为BAPI定义构造体
BAPI用输入参数定义如图3-183所示。
图3-183
BAPI用输出参数定义如图3-184所示。
图3-184
■每个参数必须参照一个构造,必须以BAPI作为头字母,即使这个参数只有一个字段,它也必须参照一个构造的某个字段。
■一般情况下,项目中会对传入/传出的参数以结构形式定义。不推荐使用系统中已经存在的构造,因为当BAPI被释放后,BAPI用的构造就会被冻结。
在ABAP数据字典(SE11)中建立构造体(具体步骤参见《SAP Dsbs系列教程:ABAP数据字典》)。
2.定义函数体(具体步骤参见[第11章:函数])
(1)创建函数组
一个业务对象下的所有BAPI必须放在同一个函数组中,并且该函数组不能包含其他的函数,如图3-185所示。
图3-185
(2)创建函数
属性标签页设定如图3-186所示。
图3-186
注:在属性标签下选中,否则这个函数模块不能通过RFC被调用,也不能作为一个BAPI使用。
输入(Import)标签页设定如图3-187所示。
图3-187
输出(Export)标签页设定如图3-188所示。
图3-188
表(Tables)标签页设定如图3-189所示。
图3-189
■每个BAPI必须有RETURN参数,这个参数可能是Export Parameter,也可能是Export Table。它的类型一般是BAPIRET2或BAPARETURN。
■BAPI中不可以使用Exceptions,错误消息都放到RETURN中。
■所有的Currency字段都参照BAPICURR域。
■所有的日期字段都是YYYYMMDD的格式。
源代码如下:
■BAPI不能执行COMMIT WORK及ROLLBACK命令(用函数BAPI_TRANSACTION_COMMIT和BAPI_TRANSACTION_ROLLBACK代替)。
■BAPI常用于更新数据库和取值。
■BAPI不可以显示画面,并且BAPI调用的函数也不能显示画面。
(3)保存、有效化并发布函数
发布路径如图3-190所示。
图3-190
3.创建业务对象(事务代码:SWO1)
步骤一:业务对象制作程序的初始画面。
在“对象/接口类型”栏位中填入业务名称,单击按钮,如图3-191所示。
图3-191
在相应的栏位填入说明和程序信息,如图3-192所示。
图3-192
单击上图中的按钮,如图3-193所示。
图3-193
单击上图中的保存按钮,如图3-194所示。(www.daowen.com)
图3-194
单击上图中的按钮。
步骤二:业务对象制作程序的对象编辑画面和添加API的方法。
按照以下路径选中相应菜单项,如图3-195所示。
在“Function Module”栏位中填入已定义函数,如图3-196所示。
图3-195
图3-196
单击上图中的按钮,如图3-197所示。
图3-197
■[对话]复选框被选中表明该BAPI包含用户交互对话,否则不包含。
■[同步]复选框被选中表明该BAPI是同步调用。否则,是异步调用。
■[独立实例]复选框被选中表明该BAPI是实例非依存的。否则,是实例依存的。
注:比较低的版本有[返回结果]复选框,设定方法将返回一个参数作为结果,在结果类型中设定值列表,只有同步方法才能设定返回结果。
单击上图中的按钮,如图3-198所示。
图3-198
■「扩展」复选框被选中表明该参数是传出参数。
■「输入」复选框被选中表明该参数是传入参数。
■「Mline」复选框被选中表明该参数是一个表。
■「Man.」复选框被选中表明该参数是必选的。
■创建者必须指定表是传入参数还是传出参数,或者两者都是。
单击上图中的按钮,如图3-199所示。
图3-199
单击上图中的按钮,如图3-200所示。
图3-200
步骤三:保存、实现并生成业务对象。
1)单击标准工具栏中的按钮,如图3-201所示。
图3-201
2)选中画面中的业务对象,按照以下路径将其实装,如图3-202所示,其效果如图3-203所示。
图3-202
图3-203
3)选中方法,按照以下路径将其实装,如图3-204所示,其效果如图3-205所示。
图3-204
图3-205
注:以上两个步骤缺一不可,开发人员需要注意。
4)单击应用工具栏中的按钮,生成业务对象,如图3-206所示。
图3-206
步骤四:BAPI确认。
运行事务代码BAPI,确认BAPI生成结果,如图3-207所示。
图3-207
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。