SAP ABAP BAPI 50连载35-BAPI_RESERVATION_CHANGES删除修改预留

在日常开发中,我们经常需要对表RESB中的预留单RESERVATION Order进行修改或者删除操作。

这个时候用到的BAPI是BAPI_RESERVATION_CHANGES,效果不错,可以用来做接口使用,也能批量进行操作处理。

取决于您SAP RFC函数的设计。

导入的参数:

参数名称 关联类型 可选的 说明
RESERVATION BAPI2093_RES_KEY-RESERV_NO 必选 预留/相关需求的编号
TESTRUN BAPI2093_TEST 可选 切换到模拟模式以写入BAPI
ATPCHECK BAPI2093_ATPCHECK 可选 标识, ATP 检查是否应该执行

表RESERVATIONITEMS_CHANGED与RESERVATIONITEMS_CHANGEDX常用字段:

参数名称 关联类型 可选的 说明
RESERVATIONITEMS_CHANGED BAPI2093_RES_ITEM_CHANGE 必选 更改预留项目,行项目
RESERVATIONITEMS_CHANGEDX BAPI2093_RES_ITEM_CHANGEX 必选 更改预留项目,行项目
RESERVATIONITEMS_NEW BAPI2093_RES_ITEM_NEW 可选 预留项目字段
RETURN BAPIRET2 必选 返回信息
EXTENSIONIN BAPIPAREX 可选 增强,扩展字段

备注:

RESERVATIONITEMS_CHANGED与RESERVATIONITEMS_CHANGEDX常用字段:

字段名 类型 简短描述
RES_ITEM RSPOS 预留 / 相关需求的项目编号
STGE_LOC LGORT_D 库存地点
BATCH CHARG_D 批号
ENTRY_QNT ERFMG 以录入项单位表示的数量
REQ_DATE BDTER 组件的需求日期
UNLOAD_PT ABLAD 卸货点
ITEM_TEXT SGTXT 项目文本
GR_RCPT WEMPF 收货方
FIXED_QUAN FMENG 数量固定
MOVEMENT XWAOK 允许预订的货物移动
DELETE_IND XLOEK 项目已删除
WITHDRAWN KZEAR 该预定的最后发货
PRIO_URGENCY PRIO_URG  
PRIO_REQUIREMENT PRIO_REQ 需求优先级

一段粘贴即可使用的demo代码供您参考使用,注意调用BAPI之后及时的COMMIT或者失败的时候及时回滚~

DATA: gs_item_change  TYPE bapi2093_res_item_change,
gt_item_change  TYPE TABLE OF bapi2093_res_item_change,
gs_item_changex TYPE bapi2093_res_item_changex,
gt_item_changex TYPE TABLE OF bapi2093_res_item_changex,
gs_return       TYPE bapiret2,
gt_return       TYPE TABLE OF bapiret2.

FIELD-SYMBOLS <fs_out> TYPE ty_out.

************************************

*中间省去gt_out的逻辑处理部分

************************************

LOOP AT gt_out ASSIGNING <fs_out> WHERE box = ‘X’.
CLEAR lv_check.
AT END OF rsnum.
lv_check = ‘X’.
ENDAT.
gs_item_change-res_item = <fs_out>-rspos.
gs_item_change-delete_ind = ‘X’.”删除标记DELETE FLAG
APPEND gs_item_change TO gt_item_change.
CLEAR gs_item_change.

gs_item_changex-res_item = <fs_out>-rspos.
gs_item_changex-delete_ind = ‘X’.
APPEND gs_item_changex TO gt_item_changex.
CLEAR gs_item_changex.

IF lv_check = ‘X’.
CALL FUNCTION ‘BAPI_RESERVATION_CHANGE’
EXPORTING
reservation               = <fs_out>-rsnum
 
TABLES
reservationitems_changed  = gt_item_change
reservationitems_changedx = gt_item_changex  “changed place marked tabe.
*             RESERVATIONITEMS_NEW      =
return                    = gt_return
*             EXTENSIONIN               =

.
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
EXPORTING
wait = ‘X’.

ENDLOOP.

 

注意事项:

在做预留单更新时,最好对resb的预留单状态(rssta)做筛选,不为空,否则可能会有单号不存在的错误。

我的微信公众号【 hot583 】 或者在这个链接联系我

本文链接 http://www.hot583.com/2022/06/21/bapi_reservation_changes

本文为作者原创,如果这篇文章对您有用,欢迎转载,

转载请务必注明来源《今日热点在看》http://www.hot583.com/

微信原文《全文完》

今日热点在看SAP HOT583