大家好,又见面了,我是你们的朋友全栈君。
调用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的使用,可以创建自定义字段
代码语言:javascript复制例如:
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.cn/163917.html原文链接:https://javaforall.cn