如果大量数据,则数据库表未提交

2020-09-13 10:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个Z程序,用于使用'/AFS/BAPI_SALESORD_CHANGE'BAPI批量关闭订单。当我运行报表以减少记录时,它的工作状况很好,但是当我运行大量数据时,所有数据都是 除了前两个订单这是一个奇怪的行为而提交到数据库。

请指导我如何避免此问题。

下面是示例代码。

如果gt_vbap不是INITIAL。
   将gt_vbap循环到gst_vbap中。
     gs_so_item-itm_number = gst_vbap-posnr。
     gs_so_item-material = gst_vbap-matnr。
     gs_so_item-reason_rej = gc_rjection。
     将gs_so_item附加到gt_so_item。

     gs_so_itemx-itm_number = gst_vbap-posnr。
     gs_so_itemx-updateflag = gc_update。
     gs_so_itemx-material = gc_x。
     gs_so_itemx-reason_rej = gc_x。
     将gs_so_itemx附加到gt_so_itemx。

     gs_order_header_inx-updateflag = gc_update。
    
       在vbeln结束时。
         刷新:gt_return。
         等待最多3秒。
         通话功能'/AFS/BAPI_SALESORD_CHANGE'
             出口
                 salesdocument = gst_vbap-vbeln
                 order_header_in = gs_order_header_in
                 order_header_inx = gs_order_header_inx
             桌子
                 返回= gt_return
                 order_item_in = gt_so_item
                 order_item_inx = gt_so_itemx。

         如果sy-subrc = 0。
                 提交工作并等待。
         万一。
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个Z程序,用于使用'/AFS/BAPI_SALESORD_CHANGE'BAPI批量关闭订单。当我运行报表以减少记录时,它的工作状况很好,但是当我运行大量数据时,所有数据都是 除了前两个订单这是一个奇怪的行为而提交到数据库。

请指导我如何避免此问题。

下面是示例代码。

如果gt_vbap不是INITIAL。
   将gt_vbap循环到gst_vbap中。
     gs_so_item-itm_number = gst_vbap-posnr。
     gs_so_item-material = gst_vbap-matnr。
     gs_so_item-reason_rej = gc_rjection。
     将gs_so_item附加到gt_so_item。

     gs_so_itemx-itm_number = gst_vbap-posnr。
     gs_so_itemx-updateflag = gc_update。
     gs_so_itemx-material = gc_x。
     gs_so_itemx-reason_rej = gc_x。
     将gs_so_itemx附加到gt_so_itemx。

     gs_order_header_inx-updateflag = gc_update。
    
       在vbeln结束时。
         刷新:gt_return。
         等待最多3秒。
         通话功能'/AFS/BAPI_SALESORD_CHANGE'
             出口
                 salesdocument = gst_vbap-vbeln
                 order_header_in = gs_order_header_in
                 order_header_inx = gs_order_header_inx
             桌子
                 返回= gt_return
                 order_item_in = gt_so_item
                 order_item_inx = gt_so_itemx。

         如果sy-subrc = 0。
                 提交工作并等待。
         万一。
 
付费偷看设置
发送
3条回答
渐行渐远_HoldOn
1楼-- · 2020-09-13 11:13

呼叫功能'/AFS/BAPI_SALESORD_CHANGE'
   出口
     salesdocument = gst_vbap-vbeln
     order_header_in = gs_order_header_in
     order_header_inx = gs_order_header_inx
   桌子
     返回= gt_return
     order_item_in = gt_so_item
     order_item_inx = gt_so_itemx。

 如果sy-subrc = 0。
 提交工作并等待。
 万一。
 

您的实际代码,在这种情况下,用RETURN表上的循环替换sy-subrc检查,以查找错误类型(E)消息,如果找到,则回滚工作和填写异常/错误日志。 (您也可以使用BAPI_TRANSACTION_ [COMMIT,ROLLBACK] FM(用于某些缓冲区刷新)。那么您的问题的答案将是"执行SLG1" ...

hongfeng1314
2楼-- · 2020-09-13 11:06

请以后使用" 粘贴代码时单击"代码"按钮。如果要从编辑器粘贴,请右键单击"粘贴为纯文本"。确保您的代码缩进,格式化并易于阅读。

我已经

3楼-- · 2020-09-13 10:53

我还没有使用ORDER BY vbeln

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答