ABAP 常用BAPI

ABAP 常用BAPIABAP常用BAPI

大家好,又见面了,我是你们的朋友全栈君。

调用bapi都需要判断return消息类型,如果没有报错则BAPI_TRANSACTION_COMMIT和COMMIT WORK AND WAIT.,否则BAPI_TRANSACTION_ROLLBACK。

同时,部分bapi调用之后还需调用特定的函数进行垃圾回收,否则会造成duplicate问题。

常用的处理方式:

LOOP AT lt_return INTO wa_return.
IF wa_return-type EQ 'E' OR
wa_return-type = 'A' OR
wa_return = 'X'.
cp_eind = 'X'.  "失败
ENDIF.

IF cp_eind NE 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

COMMIT WORK AND WAIT.
ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
ENDIF.

如果需要记录错误消息,可以通过使用bapi的return表中的消息号和id取T100.
SELECT SINGLE *
INTO CORRESPONDING FIELDS OF gt_t100
FROM t100
WHERE sprsl = 'E' "取英文.
AND  arbgb =  wa_return-id
AND  msgnr = wa_return-number.

有一点需要注意:insert数据库的操作必须在BAPI_TRANSACTION_COMMIT 或ROLLBACK后,否则无法insert成功!

MM模块

1、 BAPI_MATERIAL_SAVEDATA 创建物料主数据

注意参数EXTENSIONIN的使用,可以创建自定义字段

例如:

WA_BAPI_TE_MARA-MATERIAL = ITAB_UP-MATNR.

T_EXTENSIONIN-STRUCTURE = ‘BAPI_TE_MARA’.

T_EXTENSIONIN-VALUEPART1 = WA_BAPI_TE_MARA.

APPEND T_EXTENSIONIN.

WA_BAPI_TE_MARAX-MATERIAL = ITAB_UP-MATNR.

T_EXTENSIONINX-STRUCTURE = ‘BAPI_TE_MARAX’.

T_EXTENSIONINX-VALUEPART1 = WA_BAPI_TE_MARAX.

APPEND T_EXTENSIONINX.

2、 BAPI_OBJCL_CREATE 分类视图的创建

3、 BAPI_OBJCL_GETCLASSES 分类视图得到详细信息

4、 BAPI_MATERIAL_SAVEREPLICA 物料视图的扩充

5、 BAPI_GOODSMVT_CREATE 创建物料凭证 注意表T158G可以决定goodsmvt_code

      BAPI_GOODSMVT_CANCEL 冲销物料凭证

      BAPI_GOODSMVT_GETDETAIL 显示物料异动明细

      BAPI_GOODSMVT_GETITEMS 显示物料文件的明细清单

     BAPI_PR_CREATE 创建PR(采购申请,用BAPI_PR_CREATE也可以,最后别忘了commit work.)

     BAPI_REQUISITION_CREATE 建立请购单

     BAPI_REQUISITION_CHANGE 更改请购单

     BAPI_REQUISITION_GETDETAIL 显示请购单明细

     BAPI_REQUISITION_RELEASE_GEN 核发请购单

8、 BAPI_PO_CREATE1 创建PO

9、 BAPI_PO_CHANGE 修改PO和删除PO

      BAPI_PO_GETDETAIL 显示采购单明细

      BAPI_PO_RELEASE 核发采购单

10、WS_REVERSE_GOODS_ISSUE 冲销交货单的过账发货

11、BAPI_RESERVATION_CREATE1 创建预留

12、BAPI_RESERVATION_CHANGE 修改和删除预留

 其他:

BAPI_OBJCL_CREATE 建立/更改物料主档分类

BAPI_OBJCL_CHANGE 建立/更改物料主档分类

CLMM_MAINTAIN_CLASSIFICATIONS 批量建立/更改物料主档分类

CLAF_CLASSIFICATION_OF_OBJECTS   显示物料主档分类特性值

BAPI_MATERIAL_EXISTENCECHECK 检查物料主档是否存在

BAPI_MATERIAL_GETLIST 显示物料主档明细

BAPI_CHARACT_CREATE 建立特性

BAPI_CHARACT_CHANGE 更改特性

BAPI_CHARACT_DELETE 删除特性

BAPI_CHARACT_RENAME 重新命名特性

BAPI_CHARACT_GETDETAIL 读取特性属性

BAPI_CHARACT_ADDLONGTEXT 设定特性或数值的长文

BAPI_CHARACT_REMOVELONGTEXT 删除特性或数值的长文

BAPI_CHARACT_GETLONGTEXT 读取数值的特性长文

CARD_CHARACTERISTIC_READ 显示特性值的值列表

BAPI_CLASS_CREATE 建立类别

BAPI_CLASS_CHANGE 变更类别

BAPI_CLASS_DELETE 删除类别

BAPI_CLASS_GETDETAIL 读取类别资讯(取分类下特性及特性值)

BAPI_CLASS_EXISTENCECHECK 检查物件存在性

BAPI_VENDOR_GETDETAIL 显示供应商明细

BAPI_VENDOR_EXISTENCECHECK 检查存在性

BAPI_MATERIALGROUP_GET_LIST 读取物料群组/物料群组说明

SD模块

  • BAPI_SALESORDER_CREATEFROMDAT2 创建普通销售订单
  • SD_SALESDOCUMENT_CREATE 创建销售订单

*注意:退货订单、借项凭证及贷项凭证(VA01)均不能用BAPI_SALESORDER_CREATEFROMDAT2创建、系统会报错(不允许业务对象 BUS2032 和销售凭证类别 H 的组合),需使用函数SD_SALESDOCUMENT_CREATE.

  • BAPI_OUTB_DELIVERY_CREATE_SLS 根据销售订单创建交货单
  • BAPI_OUTB_DELIVERY_CHANGE执行拆分、拣配、交货单修改操作.
  • SD_DELIVERY_UPDATE_PICKING更改拣配数量(经反复测试,BAPI_OUTB_DELIVERY_CHANGE无法录入拣配数量,因此此处单独处理)

 交货单捡配时用到的主要表:

likp

lips

mchb(批次级库存)

mard(库存地点级库存)

mch1(批次主数据)

vbbe(批次交货计划,会占用实际可用库存、导致捡配的时候实际可用库存减少)

Vbuk(单据状态表)

T100(消息号对应的文本信息,做消息可视化用,方便运维)

4、 BAPI_BILLINGDOC_CREATEMULTIPLE 创建发票,注意参数ref_doc_ca

5、 BAPI_SALESORDER_CHANGE 修改或者删除销售订单

6、 MB_CANCEL_GOODS_MOVEMENT 冲销交货单的过账发货

7、 BAPI_BILLINGDOC_CANCEL 发票的冲销

8、 WS_DELIVERY_UPDATE交货单发货过账

注意,每次调用WS_DELIVERY_UPDATE前需要执行以下代码段,否则会出现莫名奇妙的错误。

CALL FUNCTION ‘RV_DELIVERY_INIT’.

PM模块

1、BAPI_OBJCL_CREATE 、BAPI_OBJCL_CHANGE、BAPI_OBJCL_GETDETAIL

计量点通用属性导入

2、MEASUREM_DOCUM_RFC_SINGLE_001 计量凭证创建

FI模块

1、K_HIERARCHY_TABLES_READ 成本要素组明细

2、BAPI_ACC_DOCUMENT_POST 创建会计凭证

3、BAPI_ACC_DOCUMENT_REV_POST 反冲会计凭证

4、POSTING_INTERFACE_START、POSTING_INTERFACE_CLEARING 、POSTING_INTERFACE_END清账(核销)

注意:POSTING_INTERFACE_CLEARING并非纯函数,本质上是call bdc.


PS模块

1、BAPI_PS_INITIALIZATION、BAPI_BUS2001_CREATE、BAPI_PS_PRECOMMIT 创建项目定义

2、BAPI_PS_INITIALIZATION、BAPI_BUS2054_CREATE_MULTI、BAPI_PS_PRECOMMIT 创建WBS

创建WBS的时候,注意参数 wbs_left和 wbs_up,这个是创建有层级的WBS必须要填写的

3、KBPP_EXTERN_UPDATE_CO 修改项目和WBS的预算

本文作者: GavinDong

版权属于: GavinDong博客

文章链接: https://www.gavindong.com/3012.html

如果使用过程中遇到问题,可 **点击此处** 交流沟通。

版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163917.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库建模

    1)定义:在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。2)作用:1.模型能准确表达设计意图,更易于进行技术交流。2.模型可以用来高效地生产代码、脚本、技术文档,可以做到“一处改动,多处同步”的效果。3.模型驱动的开发能使开发过程保持一致性,提高开发人员的效率,而且能保持我们的设计模型能被准确的实现而不产生歪曲。

    2022年4月8日
    196
  • 使用Boostrap V4,左侧菜单栏可缩进,并根据屏幕宽度自适应大小。[通俗易懂]

    使用Boostrap V4,左侧菜单栏可缩进,并根据屏幕宽度自适应大小。[通俗易懂]使用Boostrap V4,左侧菜单栏可缩进,并根据屏幕宽度自适应大小。

    2022年4月21日
    44
  • github 网络安全_黑客编程语言

    github 网络安全_黑客编程语言这个开源项目是黑客的多合一工具包,包含了各种黑客工具,比如逆向工程、老鼠工具、SQL注入工具等等。声明:该开源项目仅限学习使用,勿用与从事违法活动。开源地址:https://github.com/Z4nzu/hackingtool这个开源项目是教程序员如何优雅地挣零花钱,本开源项目是一本电子书,从副业的重要性、到程序员可能得副业路径,以及知识付费、课程录制等实战案例为基础,打磨的一本程序员副业指南。开源地址:https://github.com/easychen/lean-side-bussiness“Aw

    2025年11月30日
    5
  • Java 0xffffffff隐式类型转换的坑

    Java 0xffffffff隐式类型转换的坑一、场景复现项目需求,long的低32位存储ip地址,需要将ip信息展示成为字符串ip。publicstaticvoidmain(String[]args){longipLong=0x457145130A1901F6L;Stringip=longToIp(ipLong&0xffffffff);//取低32位System.ou…

    2022年5月13日
    39
  • visual studio community 2019激活_visual studio 2019社区版安装教程

    visual studio community 2019激活_visual studio 2019社区版安装教程VS2019社区版是免费的,但是需要登录微软账户,不登录只能使用30天,30天之后就无法使用了,如下图:首先使用能够访问外网的电脑登录微软账户注册VS。也可以使用我这个Licensing,直接进入第三步 找到注册文件,路径:C:\Users\{系统登录用户}\AppData\Local\Microsoft\VSCommon 将两个文件夹复制到需要注册的电脑上,路径:C:\…

    2022年8月22日
    24
  • 用App Designer 制作2048小游戏

    用App Designer 制作2048小游戏用 AppDesigner 制作 2048 小游戏用 AppDesigner 制作的 2048 MATLAB 版本是 2020b 记录下创作思路 以免日后忘记 APP 界面设计 APP 界面如下 为了好玩 还加入了游戏进行时播放音乐的功能 下面是游戏结束界面 除了按钮和开关部分 其余都可用标签控件制作 游戏结束界面在制作时将其 Visible 属性设为 Off 确保在主界面上层 当判定游戏结束时再将 Visible 属性修改为 On 即可 app gameOverLabe Visible

    2025年10月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号