### SAP BAPI 应用详解 #### 一、概述 SAP系统中广泛采用BAPI(Business API)作为实现业务逻辑的重要方式之一。BAPI是一种标准化接口,它为开发人员提供了一种统一的方式去访问SAP系统中的业务功能。本文将详细介绍几个常见的SAP BAPI及其应用场景,包括去除加前导零、收货处理、领用处理以及冲销领用/收货等功能。 #### 二、去除加前导零 **BAPI名称:** `CONVERSION_EXIT_ALPHA_OUTPUT` **描述:** 此BAPI用于移除字符串中的前导零。 **参数:** - **输入参数 (EXPORTING):** - `input`: 输入字符串,需要去除前导零。 - **输出参数 (IMPORTING):** - `output`: 处理后的字符串,前导零已被去除。 **示例代码:** ```abap DATA: p_out TYPE string VALUE '0012345'. CALLFUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = p_out IMPORTING output = p_out. WRITE: / p_out. " 输出应为12345 ``` #### 三、收货处理 **BAPI名称:** `BAPI_GOODSMVT_CREATE` **描述:** 此BAPI用于创建物料凭证,常用于处理收货流程。 **参数:** - **输入参数 (EXPORTING):** - `goodsmvt_header`: 收货头数据。 - `goodsmvt_code`: 代码信息。 - **输出参数 (IMPORTING):** - `goodsmvt_headret`: 头部返回信息。 - `materialdocument`: 物料凭证号。 - **表参数 (TABLES):** - `goodsmvt_item`: 收货详情项。 - **返回参数 (RETURN):** - `returnmsg`: 错误或警告消息。 **示例代码:** ```abap DATA: gmhead LIKE bapi_goodsmvt_header, gmcode LIKE bapi_goodsmvt_code, itabsh LIKE bapi_goodsmvt_item, mthead LIKE bapi_goodsmvt_headret, mat_doc1 TYPE marbe-mblnr, returnmsg LIKE bapi_error. gmhead-pstng_date = sy-datum. gmhead-doc_date = sy-datum. gmcode-gm_code = '01'. " 收货 APPEND VALUE #( entry_qnt: zsjmenge material: it_ekpo-matnr plant: it_ekpo-werks stge_loc: ilgort move_type: '101' po_number: it_ekpo-ebeln po_item: it_ekpo-ebelp mvt_ind: 'B' ) TO itabsh. CALLFUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = gmhead goodsmvt_code = gmcode IMPORTING goodsmvt_headret = mthead materialdocument = mat_doc1 TABLES goodsmvt_item = itabsh RETURNING RETURN = returnmsg. IF sy-subrc EQ 0. WRITE: / '收货操作不成功:' returnmsg-MESSAGE. ELSE. WRITE: / '收货凭证号:' mat_doc1. COMMIT WORK AND WAIT. ENDIF. ``` #### 四、领用处理 **BAPI名称:** `BAPI_GOODSMVT_CREATE` **描述:** 此BAPI同样用于创建物料凭证,但在此场景下用于领用流程。 **参数:** - **输入参数 (EXPORTING):** - `goodsmvt_header`: 领用头数据。 - `goodsmvt_code`: 代码信息。 - **输出参数 (IMPORTING):** - `goodsmvt_headret`: 头部返回信息。 - `materialdocument`: 物料凭证号。 - **表参数 (TABLES):** - `goodsmvt_item`: 领用详情项。 - **返回参数 (RETURN):** - `errmsg`: 错误或警告消息。 **示例代码:** ```abap DATA: gmhead LIKE bapi_goodsmvt_header, gmcode LIKE bapi_goodsmvt_code, itab LIKE bapi_goodsmvt_item, mthead LIKE bapi_goodsmvt_headret, mat_doc TYPE marbe-mblnr, errmsg LIKE bapi_error. gmhead-pstng_date = idate. gmhead-doc_date = idate. gmcode-gm_code = '03'. " 领用 APPEND VALUE #( material: temp_matnr plant: iwerks stge_loc: ilgort move_type: ibwart costcenter: ikostl gl_account: isaknr entry_qnt: zt-menge item_text: zt-sgtxt gr_rcpt: iwempf entry_uom: zt-meins asset_no: iasset_no sub_number: isub_number orderid: iaufnr ) TO itab. CALLFUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = gmhead goodsmvt_code = gmcode IMPORTING goodsmvt_headret = mthead materialdocument = mat_doc TABLES goodsmvt_item = itab RETURNING RETURN = errmsg. IF errmsg IS INITIAL. CALLFUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. WRITE: / '配件领用凭证 ' mat_doc ' 已成功创建!'. ELSE. WRITE: / '过账操作不成功:' errmsg-MESSAGE. ENDIF. ``` #### 五、冲销领用/收货凭证 **BAPI名称:** `BAPI_GOODSMVT_CANCEL` **描述:** 此BAPI用于冲销之前创建的领用或收货凭证。 **参数:** - **输入参数 (EXPORTING):** - `materialdocument`: 要冲销的物料凭证号。 **示例代码:** ```abap DATA: it_zshqrpzgl TYPE marbe-mblnr. CALLFUNCTION 'BAPI_GOODSMVT_CANCEL' EXPORTING materialdocument = it_zshqrpzgl. ``` ### 总结 以上介绍了SAP系统中常用的几种BAPI及其使用方法,包括去除加前导零、收货处理、领用处理以及冲销领用/收货等。这些BAPI在实际工作中非常实用,能够有效提高工作效率并减少错误。了解并掌握这些BAPI的使用方法对于SAP开发者来说至关重要。
- 粉丝: 49
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现
- 小说网站-JAVA-基于springBoot“西贝”小说网站的设计与实现
- 游戏分享网站-JAVA-基于springBoot“腾达”游戏分享网站的设计与实现
- 学习交流-JAVA-基于springBoot“非学勿扰”学习交流平台设计与实现
- EDAfloorplanning
- 所有课程均提供 Python 复习部分.zip