在日常开发中,我们经常需要对表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/
微信原文《全文完》