当前位置: 首页 > article >正文

SAP PP 死循环bom,递归BOM的问题 ,再bom保存时校验

如何这样的话 CS_BOM_EXPL_MAT_V2 跑多层就陷入死循环了 

实际校验的 在cs01/cs02的对应的增强里面

  METHOD IF_EX_BOM_UPDATE~CHANGE_BEFORE_UPDATE.
    DATA:
      LV_ID     TYPE ZTEXIT-ID,          "增强序列号
      LV_STATUS TYPE CHAR1.              "增强状态
    DATA :LS_DELTA_MASTB TYPE MASTB.
    DATA :LS_DELTA_STPOB TYPE STPOB.
    DATA: T_STB TYPE TABLE OF STPOX.

    LV_ID = 'ZMM130'."循环bom的校验
    CALL FUNCTION 'ZABAP_CHECK_EXIT'
      EXPORTING
        ID       = LV_ID
      IMPORTING
        E_STATUS = LV_STATUS.
    IF LV_STATUS = 'S'.
      LOOP AT DELTA_MASTB INTO LS_DELTA_MASTB.
        LOOP AT DELTA_STPOB INTO LS_DELTA_STPOB WHERE STLNR = LS_DELTA_MASTB-STLNR.
          CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
            EXPORTING
              AUFSW                 = 'X'
              CAPID                 = 'PP01'
              DATUV                 = SY-DATUM
              MEHRS                 = 'X'
*             MDMPS                 = P_MDMPS
              EMENG                 = 1
              POSTP                 = 'L'
              MTNRV                 = LS_DELTA_MASTB-MATNR
              WERKS                 = LS_DELTA_MASTB-WERKS
*            IMPORTING
*             TOPMAT                = T_TOPMAT
*             DSTST                 = IDSTST
            TABLES
              STB                   = T_STB
*             MATCAT                = T_MATCAT
            EXCEPTIONS
              ALT_NOT_FOUND         = 1
              CALL_INVALID          = 2
              MATERIAL_NOT_FOUND    = 3
              MISSING_AUTHORIZATION = 4
              NO_BOM_FOUND          = 5
              NO_PLANT_DATA         = 6
              NO_SUITABLE_BOM_FOUND = 7
              CONVERSION_ERROR      = 8
              OTHERS                = 9.
          IF SY-SUBRC = 0.
            DELETE ADJACENT DUPLICATES FROM T_STB COMPARING WERKS IDNRK.
            LOOP AT T_STB INTO DATA(LSTP).
              IF LSTP-IDNRK = LS_DELTA_MASTB-MATNR.
                MESSAGE E001(00) WITH '循环BOM,不能保存!'.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    ENDIF.
  ENDMETHOD.

效果

写于 浙江 台州 20241218


http://www.kler.cn/a/441893.html

相关文章:

  • Java中的构造器
  • 阳振坤:AI 大模型的基础是数据,AI越发达,数据库价值越大
  • 多层 RNN原理以及实现
  • Linux 使用 GDB 进行调试的常用命令与技巧
  • Restormer: Efficient Transformer for High-Resolution Image Restoration解读
  • 如何使用MaskerLogger防止敏感数据发生泄露
  • python练习之“用 Python 的 Pygame 库创建五子棋游戏”
  • Spring Boot 声明式事务
  • CentOs7使用yum安装docker
  • UITableView显示数据,增加数据,删除数据及移动数据行
  • 完全二叉树【东北大学oj数据结构9-1】C++
  • 面试之手撸安全队列
  • 栈(线性表2)
  • 关于opengauss
  • 《半导体芯片制程:微观世界里的科技风云》
  • 蓝桥杯数列求值(2019试题C)
  • 【系统】Windows11更新解决办法,一键暂停
  • 安卓课设版算法计算器
  • 用.Net Core框架创建一个Web API接口服务器
  • lambda 表达式 闭包写法
  • 模具生产过程中的标签使用流程图
  • 前端的Python入门指南(完):错误和异常处理策略及最佳实践
  • YOLOv9-0.1部分代码阅读笔记-activations.py
  • 亚远景-实施ASPICE标准:全面提升汽车软件开发质量与效率的策略
  • leetcode二叉搜索树部分笔记
  • MySQL 中 Varchar(50) 和 varchar(500) 区别是什么?