批次特性获取

这段代码主要展示了如何在SAP系统中获取和修改批次特性。首先通过调用BAPI_OBJCL_GETDETAIL_KEY和VB_BATCH_2_CLASS_OBJECT获取批次的特性信息,然后填充到相应的数据结构中。接着,如果需要修改特性值,首先创建批次,然后使用BAPI_BATCH_SAVE_REPLICA保存更改,确保所有步骤都成功完成。
摘要由CSDN通过智能技术生成

批次特性获取:
DATA:WK_OBTAB TYPE TABELLE,  


       WK_KLART TYPE KLASSENART, 


       WK_CLASS TYPE KLASSE_D,  


WK_OBJEK TYPE OBJNUM.  


  


CALL FUNCTION BAPI_OBJCL_GETDETAIL_KEY


获取特性


 


      CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT' 


        EXPORTING  


          I_MATNR = ITAB_MSEG-MATNR 


          I_CHARG = ITAB_MSEG-CHARG 


          I_WERKS = 'WG01' 


        IMPORTING  


          E_OBJEK = WK_OBJEK 


          E_OBTAB = WK_OBTAB 


          E_KLART = WK_KLART 


          E_CLASS = WK_CLASS. 


  


      CLEAR MCH1. 


      SELECT SINGLE * 


        FROM MCH1  


       WHERE MATNR = ITAB_MSEG-MATNR 


         AND CHARG = ITAB_MSEG-CHARG. 


  


*      SELECT SINGLE CLINT 


*        INTO CLINT 


*        FROM KSSK  


*       WHERE OBJEK = MCH1-CUOBJ_BM 


*         AND KLART = '023'. 


*  


*      SELECT SINGLE CLASS 


*        INTO CLASS 


*        FROM KLAH  


*       WHERE CLINT = CLINT. 


 


  


*


取特性值并填充


segment zchar  


      CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY' 


        EXPORTING  


          CLOBJECTKEY     = MCH1-CUOBJ_BM 


          CLASSNUM        = WK_CLASS 


        TABLES  
 ALLOCVALUESNUM  = ALLOCVALUESNUM 


          ALLOCVALUESCHAR = ALLOCVALUESCHAR 


          ALLOCVALUESCURR = ALLOCVALUESCURR 


          RETURN          = RETURN. 


  


      LOOP AT ALLOCVALUESCHAR.  


        ZCHAR-ATNAM = ALLOCVALUESCHAR-CHARACT.  


        ZCHAR-ATWRT = ALLOCVALUESCHAR-VALUE_NEUTRAL. 


        CLEAR INT_EDIDD.  


        INT_EDIDD-SDATA = ZCHAR. 


        INT_EDIDD-SEGNAM = 'ZCHAR'. 


        APPEND INT_EDIDD. 


      ENDLOOP. 


  


      LOOP AT ALLOCVALUESNUM.  


        WK_MENGE = ALLOCVALUESNUM-VALUE_FROM. 


        ZCHAR-ATNAM = ALLOCVALUESNUM-CHARACT. 


        ZCHAR-ATWRT = WK_MENGE. 


        CONDENSE ZCHAR-ATWRT. 


  


        CLEAR INT_EDIDD.  


        INT_EDIDD-SDATA = ZCHAR. 


        INT_EDIDD-SEGNAM = 'ZCHAR'. 


        APPEND INT_EDIDD.  


ENDLOOP.


÷


  


  


批次特性修改


  


  SELECT SINGLE * 


    FROM MCHA  


   WHERE MATNR = GOODSMVT_ITEM-MATERIAL 


     AND WERKS = GOODSMVT_ITEM-PLANT 


     AND CHARG = GOODSMVT_ITEM-BATCH. 


  


  IF SY-SUBRC <> 0. 


  


    CALL FUNCTION 'BAPI_BATCH_CREATE' 


      EXPORTING  


        MATERIAL = GOODSMVT_ITEM-MATERIAL 


        BATCH    = GOODSMVT_ITEM-BATCH 


        PLANT    = GOODSMVT_ITEM-PLANT 


      TABLES  


        RETURN   = RETURN.  
LOOP AT RETURN WHERE TYPE = 'E' OR TYPE = 'A'. 


      EXIT. 


    ENDLOOP. 


  


    IF SY-SUBRC <> 0. 


      FLAG = '0'.  


      COMMIT WORK AND WAIT. 


    ELSE.  


      FLAG = '1'. 


    ENDIF. 


  


    MESSAGE = RETURN-MESSAGE. 


  


  ENDIF. 


  


  CHECK FLAG = '0'. 


  


  IF NOT CHAR[] IS INITIAL.  


      CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT' 


      EXPORTING  


        I_MATNR = GOODSMVT_ITEM-MATERIAL 


        I_CHARG = GOODSMVT_ITEM-BATCH 


        I_WERKS = 'WG01' 


      IMPORTING  


        E_OBJEK = WK_OBJEK 


        E_OBTAB = WK_OBTAB 


        E_KLART = WK_KLART 


        E_CLASS = WK_CLASS. 


  


    BAPIBATCHCTRL-CLASS_NUM = WK_CLASS. 


    BATCHATTRIBUTES-AVAILABLE = SY-DATUM. 


    BATCHATTRIBUTESX-AVAILABLE = 'X'. 


  


    REFRESH: CLASSALLOCATIONS,RETURN. 


  


    CLASSALLOCATIONS-OBJECTKEY = WK_OBJEK. 


    CLASSALLOCATIONS-OBJECTTABLE = WK_OBTAB. 


    CLASSALLOCATIONS-CLASS_TYPE = '023'. 


    CLASSALLOCATIONS-CLASSNUM = WK_CLASS. 


    CLASSALLOCATIONS-CLASSTYPE = '023'. 


    APPEND CLASSALLOCATIONS. 


  


    LOOP AT CHAR.  
 CHAR1-OBJECTKEY = WK_OBJEK. 


      CHAR1-CHARACT = CHAR-ATNAM. 


      CHAR1-VALUE_CHAR = CHAR-ATWRT. 


      CHAR1-CLASS_TYPE = '023'. 


      CHAR1-OBJECTTABLE = WK_OBTAB. 


      APPEND CHAR1. 


    ENDLOOP. 


 


  


    CALL FUNCTION 'BAPI_BATCH_SAVE_REPLICA' 


      EXPORTING  


        MATERIAL            = GOODSMVT_ITEM-MATERIAL 


        BATCH               = GOODSMVT_ITEM-BATCH 


        PLANT               = GOODSMVT_ITEM-PLANT 


        BATCHATTRIBUTES     = BATCHATTRIBUTES 


        BATCHATTRIBUTESX    = BATCHATTRIBUTESX 


        BATCHCONTROLFIELDS  = BAPIBATCHCTRL 


      TABLES  


        RETURN              = RETURN  


        CLASSALLOCATIONS    = CLASSALLOCATIONS 


        CLASSVALUATIONSCHAR = CHAR1. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值