zoukankan      html  css  js  c++  java
  • ◆◆0[Dump]BAPI_PRODORD_CHANGE dump分析

    1, 场景介绍

    调用bapi BAPI_PRODORD_CHANGE 更新生产订单排产日期,单独更新生产订单没有问题,但是有时批量更新多个生产订单时会dump。

    相关代码:

    dump信息:

    COMMIT WORK processing cannot be interrupted.

    Error in the ABAP Application Program

    The current ABAP program "SAPLCOZV" had to be terminated because it has
    come across a statement that unfortunately cannot be executed.

    The following are executed during the COMMIT WORK statement - the
    routines registered for this with the PERFORM .. ON COMMIT statement, -
    the methods registered for the events in the object services and
    possibly also local updating (SET UPDATE TASK LOCAL).

    An exception has occurred and has been caught. This causes the normal
    sequence of the routine to be interrupted, with the result that the
    program is continues before the COMMIT WORK call. As this can cause
    inconsistencies, normal processing cannot be continued.

    ST22截图

    2016-12-19_10-26-12

    2016-12-19_10-28-25

    2, 原因分析

    首先查看了 bapi BAPI_PRODORD_CHANGE 的文档,SE37

    2016-12-19_10-33-34

    2016-12-19_10-34-13

    看了之后发现 ‘ you must not execute a COMMIT WORK again.’ 就是说这个bapi 已经在bapi内commit过了,不能再次commit,排除多次commit的情况(可以设置一个statement的断点,在所有commit work 和 commit work and wait的语句停),只有从master data和customizing setting着手调查,

    结果发现,当bapi BAPI_PRODORD_CHANGE 修改基于相同销售订单的生产订单时,就会dump,

    如下:

    CO03,查看pp order,发现102622719和102622728都是基于SO 690000039 行项目200的,这个会导致dump。

    2016-12-19_10-41-09

    2016-12-19_10-42-03

    其他需要注意的是:调用这个bapi时,pp order的出口中不仅不能有commit work,rollback也不能有,需要排查各个出口。

    以上。

  • 相关阅读:
    go学习笔记day01
    go学习笔记day02
    SQLSERVER SQL性能优化
    Javascript面向对象编程(二):构造函数的继承
    Net 下采用GET/POST/SOAP方式动态调用WebService
    Asp.Net下采用GET/POST/SOAP方式动态调用WebService
    crontab用法(例子)
    Javascript面向对象编程(三):非构造函数的继承
    学习Javascript闭包(Closure)
    js 模拟队列类
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12533607.html
Copyright © 2011-2022 走看看