SAP MM MSC2N 修改下一次检验时间

这篇博客详细介绍了如何通过ABAP远程开发修改SAP系统中批次特性的过程,包括使用BAPI_BATCH_CHANGE进行基本数据修改,以及深入到分类页签中的‘dates’字段进行下次检验日期的更新。博主分享了获取批次对应GUID、调用BAPI函数进行更改的完整代码示例,对于SAP开发者具有实践指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

MSC2N  修改批次特性对应的BAPI :BAPI_BATCH_CHANGE



  DATA: LS_BAPIBATCH  TYPE BAPIBATCHATT.
  DATA: LS_BAPIBATCHX TYPE BAPIBATCHATTX.
  DATA: LT_RETURN     TYPE STANDARD TABLE OF BAPIRET2.
  DATA: LS_RETURN     TYPE BAPIRET2.

        CALL FUNCTION 'BAPI_BATCH_CHANGE'
          EXPORTING
            MATERIAL         = LS_DATA-MATNR   
            BATCH            = LS_DATA-CHARG
*           PLANT            =
            BATCHATTRIBUTES  = LS_BAPIBATCH
            BATCHATTRIBUTESX = LS_BAPIBATCHX
*           BATCHCONTROLFIELDS       =
*           INTERNALNUMBERCOM        =
*           EXTENSION1       =
*           MATERIAL_EVG     =
*   IMPORTING
*           BATCHATTRIBUTES  =
          TABLES
            RETURN           = LT_RETURN.

用了这个BAPI之后发现只是改了  基本数据 如图

但是 分类页签中的 dates 中的下一次检验日期没改成功 如图 

接下来去修改这个值 


      "获取批次对应GUID
        SELECT SINGLE CUOBJ_BM FROM MCH1 INTO LV_GUID_IN
         WHERE MATNR EQ LS_DATA-MATNR
           AND CHARG EQ LS_DATA-CHARG.
        IF SY-SUBRC = 0.
          REFRESH RETURN.
          CALL FUNCTION 'BAPI_OBJCL_GET_OBJECT_OF_KEY'
            EXPORTING
              CLOBJECTKEYIN = LV_GUID_IN
            IMPORTING
              OBJECTNAME    = LV_OBJECTNAME
              OBJECTTABLE   = LV_OBJECTTABLE
              CLASSTYPE     = LV_CLASSTYPE
            TABLES
              RETURN        = RETURN.
          READ TABLE RETURN WITH KEY TYPE = 'E'.
          IF SY-SUBRC NE 0.
            "获取类别
            REFRESH RETURN.
            CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
              EXPORTING
                I_MATNR = LS_DATA-MATNR
                I_CHARG = LS_DATA-CHARG
                I_WERKS = LS_DATA-WERKS
              IMPORTING
                E_OBJEK = LV_OBJEK
                E_OBTAB = LV_OBTAB
                E_KLART = LV_KLART
                E_CLASS = LV_CLASS.

            I_OBJEK = LV_OBJEK.
            I_OBTAB = LV_OBTAB.
            I_CLASS = LV_CLASS.
            I_KLART = LV_KLART.
            REFRESH RETURN.
            CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
              EXPORTING
                OBJECTKEY        = I_OBJEK
                OBJECTTABLE      = I_OBTAB
                CLASSNUM         = I_CLASS
                CLASSTYPE        = I_KLART
                UNVALUATED_CHARS = 'X'
              TABLES
                ALLOCVALUESNUM   = CLASSVALUATIONSNUM
                ALLOCVALUESCHAR  = CLASSVALUATIONSCHAR
                ALLOCVALUESCURR  = CLASSVALUATIONSCURR
                RETURN           = RETURN.
            LOOP AT CLASSVALUATIONSNUM.

              CASE CLASSVALUATIONSNUM-CHARACT.
                WHEN  'LOBM_QNDAT'.
                  LV_DATE = LS_BAPIBATCH-NEXTINSPEC.
                  CONDENSE LV_DATE.
                  CALL FUNCTION 'CTCV_CONVERT_DATE_TO_FLOAT'
                    EXPORTING
                      DATE  = LV_DATE
                    IMPORTING
                      FLOAT = CLASSVALUATIONSNUM-VALUE_FROM.

              ENDCASE.

              MODIFY CLASSVALUATIONSNUM.
            ENDLOOP.

            "更改批次特性
            REFRESH RETURN.

            CALL FUNCTION 'BAPI_OBJCL_CHANGE'
              EXPORTING
                OBJECTKEY          = I_OBJEK
                OBJECTTABLE        = LV_OBJECTTABLE
                CLASSNUM           = LV_CLASS
                CLASSTYPE          = LV_CLASSTYPE
              TABLES
                ALLOCVALUESNUMNEW  = CLASSVALUATIONSNUM
                ALLOCVALUESCHARNEW = CLASSVALUATIONSCHAR
                ALLOCVALUESCURRNEW = CLASSVALUATIONSCURR
                RETURN             = RETURN.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值