SAP开发常用BAPI
调用bapi都需要判断return消息类型,如果没有报错则BAPI_TRANSACTION_COMMIT和COMMIT WORK AND WAIT.,否则BAPI_TRANSACTION_ROLLBACK。
同时,部分bapi调用之后还需调用特定的函数进行垃圾回收,否则会造成duplicate问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
常用的处理方式: 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 物料
剩余80%内容付费后可查看
如若转载,请注明出处:https://www.gavindong.com/3012.html