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

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • qca wlan wifi modules 解析一

    qca wlan wifi modules 解析一分析lsdk-ap121lsdk-ap134源码:https://github.com/hades13/lsdk_ar9531包含wifidrivers另一wifidrivers版本:https://download.csdn.net/download/nolycjyf/3722308目录结果:appsbuilddriversincludemodulesbo…

  • python 去除字符串两端的引号[通俗易懂]

    python 去除字符串两端的引号[通俗易懂]使用遥感影像头文件时,需要获得里面的日期和时间信息,得到的字符串两端带有双引号,可以使用eval()函数去除。a='”srting”‘print(a)b=eval(a)print(b)结果:”srting”srting

  • 安卓java 模拟直装_安卓2.3java模拟器下载

    安卓java 模拟直装_安卓2.3java模拟器下载java模拟器app。该软件能够使安卓手机完美运行java环境,使用java软件,功能十分强大。用法也超简单!感兴趣的朋友快来IT猫扑下载吧~安卓2.3系统java模拟器直装版简介:此版本适合2.3.7安卓系统,本人手机2.3.4安卓系统安装运行却没压力;此版本还修复上个版本小字体问题,当然,jar游戏图画也大了许多,而且上百张网页图片照开(之前的版本无法显示);此版本还无需root,直接安装就行…

    2022年10月28日
  • epoll使用具体解释(精髓)

    epoll使用具体解释(精髓)

    2021年11月16日
  • 简述51单片机的内部结构_51单片机的硬件结构及其作用

    简述51单片机的内部结构_51单片机的硬件结构及其作用【1.基本组成】单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O等计算机所需要的基本功能部件的大规模集成电路,又称MCU。51单片机内包含下列几个部件:一个8位CPU一个片内震荡器及时钟电路一个片内4KBROM程序存储器128字节RAM数据存储器可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路32条可编程的I/O线(4个8位并行I/O端口)两个16位的定时/计数器一个可编程全双工串行口5个中断源、两个优先级嵌套中断结构

  • PyCharm 2021.10.3 x64 激活码[最新免费获取]

    (PyCharm 2021.10.3 x64 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

发表回复

您的电子邮箱地址不会被公开。

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