首页 BAPI操作手册

BAPI操作手册

举报
开通vip

BAPI操作手册BAPI操作手册 作者:丑儿 MSN: njchouer@hotmail.com 刚刚开始学BAPI,不知道从什么地方入手,因此好多的东西都不知道怎么去做。前2天在网上看到一篇关于这样的文章,但是自己手动操作的时候还是出现了一些问题,现在把它整理成文档的形式,以供参考。 这里我非常感谢我的好朋友杜善晶,谢谢她给了我很大的帮助。 ---题记(丑儿 2007-10-31) 1) 给BAPI创建数据结构(1) ...

BAPI操作手册
BAPI操作手册 作者:丑儿 MSN: njchouer@hotmail.com 刚刚开始学BAPI,不知道从什么地方入手,因此好多的东西都不知道怎么去做。前2天在网上看到一篇关于这样的文章,但是自己手动操作的时候还是出现了一些问题,现在把它整理成文档的形式,以供参考。 这里我非常感谢我的好朋友杜善晶,谢谢她给了我很大的帮助。 ---题记(丑儿 2007-10-31) 1) 给BAPI创建数据结构(1) 事务代码:SE11- 输入结构的名称:ZBAPI_ORDER_STATUS_IMPORT 输入如下的3个字段 激活 保存 2) 给BAPI创建数据结构(2) 事务代码:SE11- 输入结构的名称:ZBAPISTAT 输入如下字段 激活 保存 2) 创建函数 事务代码:SE37 创建函数组:转到—〉函数组—〉创建组 输入函数组 和 函数组短文本 保存 输入Function module:Z_BAPI_GET_ORDER_STATUSWW 点 创建 输入函数模块 和 函数组() 短文本 SAVE 属性选择状态如下 Import输入如下的参数 Export输入如下参数 Tables选择参数 选择goto –〉Global data 定义全局变量 激活 保存 输入代码如下 Types:   begin of Type_tj02t,     istat  like tj02t-istat,     txt04  like tj02t-txt04,     txt30  like tj02t-txt30,   end of type_tj02t. DATA: * Declarations for TABLE parameter   T_BAPISTAT like ZBAPISTAT occurs 0,   G_BAPISTAT like ZBAPISTAT, * Table for object texts   t_tj02t    type type_tj02t occurs 0,   g_tj02t    type type_tj02t. * Structure for return messages DATA:   BEGIN OF MESSAGE,     MSGTY LIKE SY-MSGTY,     MSGID LIKE SY-MSGID,     MSGNO LIKE SY-MSGNO,     MSGV1 LIKE SY-MSGV1,     MSGV2 LIKE SY-MSGV2,     MSGV3 LIKE SY-MSGV3,     MSGV4 LIKE SY-MSGV4,   END OF MESSAGE. Source code中增加对应代码 激活 保存 增加的代码如下: FUNCTION Z_BAPI_GET_ORDER_STATUSWW. *"---------------------------------------------------------------------- *"*"Local interface: *" IMPORTING *" VALUE(BAPI_ORDER_STATUS_IMPORT) TYPE ZBAPI_ORDER_STATUS_IMPORT *" EXPORTING *" VALUE(RETURN) TYPE BAPIRETURN *" TABLES *" T_BAPISTAT STRUCTURE ZBAPISTAT *"---------------------------------------------------------------------- DATA: l_aufnr LIKE afko-aufnr, l_objnr LIKE jest-objnr. ******************************************** * Check if order exists ******************************************** SELECT SINGLE aufnr FROM afko INTO l_aufnr WHERE aufnr = BAPI_ORDER_STATUS_IMPORT-orderid. IF sy-subrc NE 0. CLEAR message. message-msgty = 'E'. message-msgid = 'Z3'. message-msgno = '000'. message-msgv1 = BAPI_ORDER_STATUS_IMPORT-orderid. PERFORM set_return_message USING message CHANGING return. IF 1 = 2. * The only reason to include this statement, that will obviously * never execute, is that it will create a referecence so that you * can find out where a particular message is being used. This * functionality is used by the BAPIs programmed by SAP MESSAGE e000(z3). ENDIF. ENDIF. CHECK return IS INITIAL. ******************************************** * Read order status ******************************************** CONCATENATE 'OR' BAPI_ORDER_STATUS_IMPORT-orderid INTO l_objnr. IF BAPI_ORDER_STATUS_IMPORT-i_excludeinactive = 'X'. SELECT objnr stat inact FROM jest INTO TABLE t_bapistat WHERE objnr = l_objnr AND inact <> 'X'. ELSE. SELECT objnr stat inact FROM jest INTO TABLE t_bapistat WHERE objnr = l_objnr. ENDIF. IF sy-subrc <> 0. * No object status found CLEAR message. message-msgty = 'E'. message-msgid = 'Z3'. message-msgno = '001'. message-msgv1 = BAPI_ORDER_STATUS_IMPORT-orderid. PERFORM set_return_message USING message CHANGING return. IF 1 = 2. MESSAGE e001(z3). ENDIF. ENDIF. CHECK return IS INITIAL. ******************************************** * Read order status texts ******************************************** SELECT istat txt04 txt30 FROM tj02t INTO TABLE t_tj02t FOR ALL ENTRIES IN t_bapistat WHERE istat = t_bapistat-stat AND spras = BAPI_ORDER_STATUS_IMPORT-i_spras. SORT t_tj02t BY istat. LOOP AT t_bapistat INTO g_bapistat. READ TABLE t_tj02t WITH KEY istat = g_bapistat-stat BINARY SEARCH INTO g_tj02t. IF sy-subrc = 0. MOVE: g_tj02t-txt04 TO g_bapistat-txt04, g_tj02t-txt30 TO g_bapistat-txt30. MODIFY t_bapistat FROM g_bapistat TRANSPORTING txt04 txt30. ENDIF. ENDLOOP. ENDFUNCTION. ***INCLUDE LZBAPISTATUSF01 . *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form SET_RETURN_MESSAGE *&---------------------------------------------------------------------* * This routine is used for setting the BAPI return message. * The routine is a standard routine for BAPIs that handles the message * structure for the BAPIRETURN structure. It has been copied from the * BAPI Company Code Getlist *----------------------------------------------------------------------* * -->P_MESSAGE text * <--P_RETURN text *----------------------------------------------------------------------* form SET_RETURN_MESSAGE USING VALUE(P_MESSAGE) LIKE MESSAGE CHANGING P_RETURN LIKE BAPIRETURN. CHECK NOT MESSAGE IS INITIAL. CALL FUNCTION 'BALW_BAPIRETURN_GET' EXPORTING TYPE = P_MESSAGE-MSGTY CL = P_MESSAGE-MSGID NUMBER = P_MESSAGE-MSGNO PAR1 = P_MESSAGE-MSGV1 PAR2 = P_MESSAGE-MSGV2 PAR3 = P_MESSAGE-MSGV3 PAR4 = P_MESSAGE-MSGV4 * LOG_NO = ' ' * LOG_MSG_NO = ' ' IMPORTING BAPIRETURN = P_RETURN EXCEPTIONS OTHERS = 1. endform. " SET_RETURN_MESSAG 3) 创建API Method 事务代码:SWO1 输入对象/接口类型:ZORDERSTAW 点 创建 输入如下的参数 确定 保存 选择实用程序—>API方法(Add方法 输入Function module:Z_BAPI_GET_ORDER_STATUSWW 确定 选择 选择 确定 选择 编辑—>更改版本状态—>对象类型—>To Implemented 确定 Note that the BAPI wizard has added a wrapper class for the function module so it can be sued as method in the business object. 选择Choose menu Goto->Program to display the program 4) 最后一步释放 事务代码:SE37 释放模组 事务代码:SWO1 释放业务对象类型 选择 对象类型—>修改版本状态到—>已实现 释放对象类型(把光标放在 对象类型 上) 选择 编辑—更改版本状态—对象类型—已释放 Release the BAPI as a method in the BOR 把光标放在zproder…ZgetOrderSt… 选择 编辑—更改版本状态—对象类型组件—已释放 保存 后退 生成 选择对象类型—生成 成功的信息 5) 查看BAPI 事务代码:BAPI 结束 附件: http://www.erpgenie.com/abap/bapi/example.htm
本文档为【BAPI操作手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_825083
暂无简介~
格式:doc
大小:399KB
软件:Word
页数:18
分类:互联网
上传时间:2010-03-18
浏览量:27