zoukankan      html  css  js  c++  java
  • 造成DUMP SAPSQL_ARRAY_INSERT_DUPREC的两个原因

    观察:

    用户BATCH01每天都爆出30多个dump SAPSQL_ARRAY_INSERT_DUPREC

    先来看一下ST22的错误分析

    关键字:  

    "SAPSQL_ARRAY_INSERT_DUPREC"

    "CX_SY_OPEN_SQL_DB" "SAPLV05I" or "LV05IU15" 

    "SD_PARTNER_UPDATE"

    代码出错位置(注意其中的VBPA,后面要用到):

    可能原因一:

    SD Number Range爆掉了..用SNRO检查Object RV_BELEG

    然后分别检查表VBUP VBUK LIPS LIKP VBAP是否已经用完分配的number range

    如果是这个原因的话,解决方法:

    1. Archiving of the old deliveries

    2. Assignment of an unused number range to the corresponding delivery type (e.g. transaction 0VLK).

    可能原因二(较常出现):

    先来看一下SM13的update error,发现与ST22的dumps完全匹配. 该用户在使用VA02时,无法将某些表内容更新进去.


    点击随便一个update error

    进入FM RV_SALES_DOCUMENT_UPDATE,记得前面说的表VBPA吗,就是在这里出的错,所以我们要点击table FXVBPA 

    注意比较最后一行70,它有2行PA值都为"PY",而其他项目则是PA=BP, PA=PY  [PA即Partner Function]

    再来看看table VBPA, 70行已经有一个RG了(就是PY),无法再插入同一个PY,所以更新失败了!!!

    回到table FXVBPA,找字段UPDKZ, 发现其他行都为空,只有70行是"I",说明这里更新失败

    ("I": The entry should be included again in the database.

     " ":  The entry should not be changed in the database.)

    MAN VBELN      POSNR   PA   KUNNR UPDKZ

    500 2717          000050    BP    174

    500 2717          000050    PY    174

    500 2717          000060    BP    174

    500 2717          000060    PY    174

    500 2717          000070    PY    174

    5002717          000070    PY    174            I               <--- root cause here

    原因找到了..接下来说说如何继续排查到底是如何导致有2个相同的parter function

    1.先来验证是否是user exits有问题

    可以在program MV45AFZZ, MV45AFZA, MV45AFZB中的FORM最上面插入如下代码:

    CHECK SY-UNAME <> 'SAPWALLD'. (或任何你可以使用的用户名).

    如此一来,该用户跳过写在这些程序中的user exits,然后检查是否该用户在使用VA02时有同样的dump

    如果果然是user exits出了问题,则需要检查写在program MV45AFZZ, MV45AFZA, MV45AFZB中的user exits

    特别是"USEREXIT_SAVE_DOCUMENT"和"USEREXIT_SAVE_DOCUMENT_PREPARE"

    SAP Note:

    178328  Problems due to incorrect user exits in SD

    207934  Update termination in RV_SALES_DOCUMENT_ADD/RV_SALES_DOCUMEN

  • 相关阅读:
    北邮OJ103.反转单词 c++/java
    北邮oj 104. 912星球的研究生
    北邮oj 97. 二叉排序树
    北邮OJ 89. 统计时间间隔 java版
    用欧几里得定理求最大公约数和最小公倍数
    shell执行${var:m:n}报错Bad substitution解决办法
    基于ffmpeg不同编码方式转码后的psnr对比
    ffmpeg使用ss与t参数对视频进行剪辑
    黑菜菌的JAVA学习笔记
    Linux服务器内存监控—每小时检查&超出发送邮件&重启占用最高的Java程式
  • 原文地址:https://www.cnblogs.com/lazymango/p/1874449.html
Copyright © 2011-2022 走看看