SAP PP BOM查询函数 CS_BOM_EXPL_KND_V1,CS_BOM_EXPL_MAT_V2

 本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。 

基本每个上公司上了PP 模块的都会有一个BOM查询报表

SE37->CS_BOM_EXPL_KND_V1 (展开销售BOM的函数)

  DATA: LT_STB     LIKE STPOX OCCURS 0 WITH HEADER LINE .
  DATA: LT_MATCAT  LIKE CSCMAT OCCURS 0 WITH HEADER LINE .

CALL FUNCTION 'CS_BOM_EXPL_KND_V1'
    EXPORTING
      VBELN                 = IV_VBELN  "销售订单号
      VBPOS                 = IV_POSNR  "销售订单行号
      CAPID                 = P_CAPID   "bom应用程序
      DATUV                 = P_BUDAT   "有效期
      MKTLS                 = 'X'        
      MEHRS                 = IV_MEHRS  " X标识多层展开到底,空为单层展开
      MTNRV                 = IV_MATNR 
      WERKS                 = IV_WERKS
      STLAL                 = P_STLAL   "可选BOM
    TABLES
      STB                   = LT_STB
      MATCAT                = LT_MATCAT
    EXCEPTIONS
      MATERIAL_NOT_FOUND    = 4
      NO_PLANT_DATA         = 8
      NO_BOM_FOUND          = 12
      NO_SUITABLE_BOM_FOUND = 16
      ALT_NOT_FOUND         = 24
      MISSING_AUTHORIZATION = 28
      CONVERSION_ERROR      = 36.

IF LT_STB[] IS NOT INITIAL .

    LOOP AT LT_STB .
      CLEAR GS_DATA.

      GS_DATA-PSITP  = LT_STB-STLTY.   "项目类别
      GS_DATA-SPOSN  = LT_STB-STLNR.   "BOM 项目号
      GS_DATA-STLAN  = LT_STB-STLAN.   "bom 用途
      GS_DATA-STLAL  = P_STLAL.        "可选bom
      GS_DATA-PLNBEZ = IV_MATNR.  "顶层物料编码
      GS_DATA-KDAUF  = IV_VBELN.  "销售订单
      GS_DATA-KDPOS  = IV_POSNR.  "销售订单项目
      GS_DATA-WERKS  = IV_WERKS.  "工厂

      LV_STUFE = LT_STB-STUFE.
      LV_WEGXX = LT_STB-WEGXX.
      CONDENSE: LV_STUFE, LV_WEGXX.
      CONCATENATE LV_STUFE '_' LV_WEGXX INTO GS_DATA-BOMLEV. "BOM 层级
*这一段是根据子物料找他的父物料,就是将 LT_MATCAT 和 LT_STB关联起来
      READ TABLE LT_MATCAT
      WITH KEY INDEX = LT_STB-TTIDX.
      IF SY-SUBRC = 0 .
        GS_DATA-MATNR       = LT_MATCAT-MATNR.           "父阶物料编码
        SELECT SINGLE MAKTX INTO GS_DATA-MATNR_MAKTX     "父阶物料描述
          FROM MAKT
          WHERE MATNR = GS_DATA-MATNR
          AND   SPRAS = SY-LANGU.
      GS_DATA-SBOMF = LT_MATCAT-STKTX.                   "销售BOM创建标识
      ENDIF.



      GS_DATA-MATNR1       = LT_STB-IDNRK.         "组件物料号
      GS_DATA-MATNR1_MAKTX = LT_STB-OJTXP.         "组件物料描述
      GS_DATA-MENGE        = LT_STB-MENGE.          "组件数量
      GS_DATA-MEINS        = LT_STB-MMEIN.          "组件计量单位
      GS_DATA-AACOD        = LT_STB-POTX1.          "属性代码
      IF IV_MEHRS IS NOT INITIAL .
        GS_DATA-ZTYPE         = '多层展开'.                    "展开类型
      ELSE.
        GS_DATA-ZTYPE        = '单层展开'.                    "展开类型
      ENDIF.
      GS_DATA-ZZGXM        = LT_STB-SORTF.          "工序码
      GS_DATA-ECNNO        = LT_STB-AENNR.          "ECN码
      GS_DATA-FILLS        = LT_STB-SCHGT.          "散装物料
      GS_DATA-COSTF        = LT_STB-SANKA.          "与成本相关标识
      GS_DATA-VIRTS        = LT_STB-ITSOB.          "虚设件
      GS_DATA-REPLA        = LT_STB-ALPGR.          "替代项目组
      GS_DATA-PROIS        = LT_STB-ALPRF.          "优先级
      GS_DATA-STATG        = LT_STB-ALPST.          "策略
      GS_DATA-ACAIL        = LT_STB-EWAHR.          "使用可能性



      APPEND GS_DATA TO GT_DATA.
    ENDLOOP.


 SE37-->CS_BOM_EXPL_MAT_V2 (物料BOM展开函数)

  DATA: LT_STB     LIKE STPOX OCCURS 0 WITH HEADER LINE .
  DATA: LT_MATCAT  LIKE CSCMAT OCCURS 0 WITH HEADER LINE .

  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
    EXPORTING
      CAPID                 = P_CAPID           " BOM应用
      DATUV                 = P_BUDAT         " 有效起始日
      EHNDL                 = '1'
      EMENG                 = P_MENGE           " 需求数量
      MEHRS                 = IV_MEHRS          " 多层展开
      MMORY                 = '1'              " 是否使用缓存
      MTNRV                 = IV_MATNR     " 展开物料号
      STLAN                 = '1'          " BOM用途
      STLAL                 = P_STLAL
      WERKS                 = IV_WERKS      " 物料所在工厂
    TABLES
      STB                   = LT_STB
      MATCAT                = LT_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 LT_STB[] IS NOT INITIAL .

    LOOP AT LT_STB .
      CLEAR GS_DATA.

      GS_DATA-PSITP  = LT_STB-STLTY.   "项目类别
      GS_DATA-SPOSN  = LT_STB-STLNR.   "BOM 项目号
      GS_DATA-STLAN  = LT_STB-STLAN.   "bom 用途
      GS_DATA-STLAL  = P_STLAL.        "可选bom
      GS_DATA-PLNBEZ = IV_MATNR.  "顶层物料编码
*          gs_data-kdauf  = iv_vbeln.  "销售订单
*          gs_data-kdpos  = iv_posnr.  "销售订单项目
      LV_STUFE = LT_STB-STUFE.
      LV_WEGXX = LT_STB-WEGXX.
      CONDENSE: LV_STUFE, LV_WEGXX.
      CONCATENATE LV_STUFE '_' LV_WEGXX INTO GS_DATA-BOMLEV. "BOM 层级


      GS_DATA-WERKS  = IV_WERKS.  "工厂

      READ TABLE LT_MATCAT
      WITH KEY INDEX = LT_STB-TTIDX.
      IF SY-SUBRC = 0 .
        GS_DATA-MATNR       = LT_MATCAT-MATNR.           "父阶物料编码
        SELECT SINGLE MAKTX INTO GS_DATA-MATNR_MAKTX     "父阶物料描述
          FROM MAKT
          WHERE MATNR = GS_DATA-MATNR
          AND   SPRAS = SY-LANGU.

        GS_DATA-SBOMF = LT_MATCAT-STKTX.            "销售BOM创建标识

      ENDIF.


      GS_DATA-MATNR1       = LT_STB-IDNRK.         "组件物料号
      GS_DATA-MATNR1_MAKTX = LT_STB-OJTXP.         "组件物料描述
      GS_DATA-MENGE        = LT_STB-MENGE.          "组件数量
      GS_DATA-MEINS        = LT_STB-MMEIN.          "组件计量单位
      GS_DATA-AACOD        = LT_STB-POTX1.          "属性代码
      IF IV_MEHRS IS NOT INITIAL .
        GS_DATA-ZTYPE        = '多层展开'.                    "展开类型
      ELSE.
        GS_DATA-ZTYPE        = '单层展开'.                    "展开类型
      ENDIF.
      GS_DATA-ZZGXM        = LT_STB-SORTF.          "工序码
      GS_DATA-ECNNO        = LT_STB-AENNR.          "ECN码
      GS_DATA-FILLS        = LT_STB-SCHGT.          "散装物料
      GS_DATA-COSTF        = LT_STB-SANKA.          "与成本相关标识
      GS_DATA-VIRTS        = LT_STB-ITSOB.          "虚设件
      GS_DATA-REPLA        = LT_STB-ALPGR.          "替代项目组
      GS_DATA-PROIS        = LT_STB-ALPRF.          "优先级
      GS_DATA-STATG        = LT_STB-ALPST.          "策略
      GS_DATA-ACAIL        = LT_STB-EWAHR.          "使用可能性



      APPEND GS_DATA TO GT_DATA.

    ENDLOOP.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值