PP 生产版本创建(C223)BAPI

这个功能没有对应的BAPI,可以用对应的函数或者BDC录屏.

用函数 ‘CM_FV_PROD_VERS_DB_UPDATE’创建前

需要用函数'CM_FV_MKAL_CONSISTENCY_CHECK'检查生产版本的一致性

DATA :it_mkal_i    TYPE STANDARD TABLE OF mkal,
        ls_mkal      TYPE mkal,
        it_mkal_u    TYPE STANDARD TABLE OF mkal,
        it_mkal_d    TYPE STANDARD TABLE OF mkal,
        it_mkal_aend TYPE STANDARD TABLE OF mkal_aend.
  DATA: mkal_imp     TYPE mkal,
        flg_from_db  TYPE c,
        object_imp   TYPE c,
        cons_error   TYPE c,
        cons_warning TYPE c,
        result_tab   TYPE STANDARD TABLE OF mkal_result_tab.

  CLEAR:it_mkal_i.
  LOOP AT gt_excle INTO gs_excle WHERE checkbox = 'X'.
    CLEAR :ls_mkal.
    ls_mkal-matnr = gs_excle-matnr.
    ls_mkal-werks = gs_excle-werks.
    ls_mkal-verid  = gs_excle-verid ."生产版本
    ls_mkal-text1  = gs_excle-text1.
    ls_mkal-adatu  = gs_excle-adatu .
    ls_mkal-bdatu  = gs_excle-bdatu .
*    ls_mkal- = gs_excle-BISMT."图号
    ls_mkal-stlal  = gs_excle-stlal."备选物料清单
    ls_mkal-plnnr = gs_excle-plnnr."组
    ls_mkal-alnal  = gs_excle-plnal. "计数器
    ls_mkal-alort  = gs_excle-lgort. "收货库存地点

    ls_mkal-prfg_f = '1'.     "任务清单 1:绿灯
    ls_mkal-prfg_s = '1'.     "物料清单 1:绿灯
    ls_mkal-prdat = sy-datum.
    gs_excle-msg = '生产版本导入成功'.
"默认字段
    ls_mkal-stlan  = '1'."BOM 用途
    ls_mkal-plnty = 'N'."任务清单类型
    ls_mkal-serkz = ''."版本允许的重复制造
    ls_mkal-mdv01 = ''."用于重复制造的生产线
    ls_mkal-elpro = ''."对组件提出发货仓储地点
    ls_mkal-alort = ''."重复生产的收货库存地点
    ls_mkal-PRFG_F = '1'."重复生产的收货库存地点
    ls_mkal-PRFG_S = '1'."重复生产的收货库存地点
*ls_mkal-PRFG_R = '1'."重复生产的收货库存地点
*ls_mkal-PRFG_G = '1'."重复生产的收货库存地点

    "一致性检查
    CLEAR:result_tab.
    CALL FUNCTION 'CM_FV_MKAL_CONSISTENCY_CHECK'
      EXPORTING
        mkal_imp   = ls_mkal
*       FLG_FROM_DB        = ' '
*       OBJECT_IMP = ' '
* IMPORTING
*       CONS_ERROR = CONS_ERROR
*       CONS_WARNING       = CONS_WARNING
      TABLES
        result_tab = result_tab
      EXCEPTIONS
        mkal_err   = 1
        plko_err   = 2
        stko_err   = 3
        other_err  = 4.
    LOOP AT result_tab INTO DATA(lw_check_result).
      IF lw_check_result-object_status NE space AND lw_check_result-object = 'S'.
        ls_mkal-prfg_s = '3'.
        gs_excle-msg = '生产版本检查出错'.
      ENDIF.
      IF lw_check_result-object_status NE space AND lw_check_result-object = 'F'.
        ls_mkal-prfg_f = '3'.
        gs_excle-msg = '生产版本检查出错'.
      ENDIF.
    ENDLOOP.

    MODIFY gt_excle FROM gs_excle TRANSPORTING msg.

    APPEND ls_mkal TO it_mkal_i.

    CLEAR gs_excle.
  ENDLOOP.


  CALL FUNCTION 'CM_FV_PROD_VERS_DB_UPDATE'
    TABLES
      it_mkal_i    = it_mkal_i
      it_mkal_u    = it_mkal_u
      it_mkal_d    = it_mkal_d
      it_mkal_aend = it_mkal_aend.
  IF sy-subrc = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgty  INTO DATA(lv_msg) WITH sy-msgv1 sy-msgv2  sy-msgv3 sy-msgv4.
  ENDIF.

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值