Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BAPI to update batch characteristics

Former Member
0 Kudos

Hi,

We have a requirement to update batch characteristics in SAP. I used the VB_BATCH_CHANGE to update the batch characteristics. Below is my code. After the call, I don't get any error from this BAPI/RFC, but batch chararacteristcis values are not updated. Any ideas?


FUNCTION Z_VB_CHANGE_BATCH.
*"----------------------------------------------------------------------
*"*"Global Interface:
*"  IMPORTING
*"     VALUE(YMCHA) LIKE  MCHA STRUCTURE  MCHA
*"     VALUE(YUPDMCHA) LIKE  UPDMCHA STRUCTURE  UPDMCHA OPTIONAL
*"     VALUE(CHANGE_LGORT) LIKE  MCHB-LGORT OPTIONAL
*"     VALUE(BYPASS_LOCK) LIKE  AM07M-XSELK DEFAULT SPACE
*"     VALUE(BYPASS_POST) LIKE  AM07M-XSELK DEFAULT SPACE
*"     VALUE(X_BNCOM) LIKE  BNCOM STRUCTURE  BNCOM OPTIONAL
*"     VALUE(KZCLA) LIKE  T156-KZCLA OPTIONAL
*"     VALUE(XKCFC) LIKE  T156-XKCFC OPTIONAL
*"     VALUE(CLASS) LIKE  KLAH-CLASS OPTIONAL
*"     VALUE(NO_CHECK_OF_QM_CHAR) LIKE  AM07M-XSELK DEFAULT SPACE
*"     VALUE(REF_MATNR) LIKE  MCHA-MATNR OPTIONAL
*"     VALUE(REF_CHARG) LIKE  MCHA-CHARG OPTIONAL
*"     VALUE(REF_WERKS) LIKE  MCHA-WERKS OPTIONAL
*"     VALUE(SET_OLD_BATCH) LIKE  AM07M-XSELK DEFAULT 'X'
*"     VALUE(BUFFER_REFRESH) LIKE  AM07M-XSELK OPTIONAL
*"     VALUE(NO_CHANGE_DOCUMENT) LIKE  AM07M-XSELK DEFAULT SPACE
*"     VALUE(GRUND) LIKE  MSEG-GRUND DEFAULT SPACE
*"     VALUE(NO_CFC_CALLS) LIKE  AM07M-XSELK DEFAULT SPACE
*"     VALUE(BATCH_DEL_FLAGS) LIKE  BATCHDELFLG STRUCTURE  BATCHDELFLG
*"       DEFAULT SPACE
*"     VALUE(SEND_SYS) TYPE  LOGSYS DEFAULT SPACE
*"  EXPORTING
*"     VALUE(YMCHA) LIKE  MCHA STRUCTURE  MCHA
*"     VALUE(EMKPF) LIKE  EMKPF STRUCTURE  EMKPF
*"  TABLES
*"      CHAR_OF_BATCH STRUCTURE  CLBATCH OPTIONAL
*"      CHANGED_BATCH STRUCTURE  MCHA OPTIONAL
*"      ZIMSEG STRUCTURE  IMSEG OPTIONAL
*"      RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"  EXCEPTIONS
*"      NO_MATERIAL
*"      NO_BATCH
*"      NO_PLANT
*"      MATERIAL_NOT_FOUND
*"      PLANT_NOT_FOUND
*"      LOCK_ON_MATERIAL
*"      LOCK_ON_PLANT
*"      LOCK_ON_BATCH
*"      LOCK_SYSTEM_ERROR
*"      NO_AUTHORITY
*"      BATCH_NOT_EXIST
*"      NO_CLASS
*"      ERROR_IN_CLASSIFICATION
*"      ERROR_IN_VALUATION_CHANGE
*"----------------------------------------------------------------------
  DATA: F_TRANSACTION_ID           LIKE ARFCTID.

  CALL FUNCTION 'TRANSACTION_BEGIN'
    IMPORTING
      TRANSACTION_ID = F_TRANSACTION_ID.

  CALL FUNCTION 'VB_CHANGE_BATCH'
    EXPORTING
      YMCHA                     = YMCHA
      YUPDMCHA                  = YUPDMCHA
      CHANGE_LGORT              = CHANGE_LGORT
      BYPASS_LOCK               = BYPASS_LOCK
      BYPASS_POST               = BYPASS_POST
      X_BNCOM                   = X_BNCOM
      KZCLA                     = KZCLA
      XKCFC                     = XKCFC
      CLASS                     = CLASS
      NO_CHECK_OF_QM_CHAR       = NO_CHECK_OF_QM_CHAR
      REF_MATNR                 = REF_MATNR
      REF_CHARG                 = REF_CHARG
      REF_WERKS                 = REF_WERKS
      SET_OLD_BATCH             = SET_OLD_BATCH
      BUFFER_REFRESH            = BUFFER_REFRESH
      NO_CHANGE_DOCUMENT        = NO_CHANGE_DOCUMENT
      GRUND                     = GRUND
      NO_CFC_CALLS              = NO_CFC_CALLS
      BATCH_DEL_FLAGS           = BATCH_DEL_FLAGS
      SEND_SYS                  = SEND_SYS
    IMPORTING
      YMCHA                     = YMCHA
      EMKPF                     = EMKPF
    TABLES
      CHAR_OF_BATCH             = CHAR_OF_BATCH
      CHANGED_BATCH             = CHANGED_BATCH
      ZIMSEG                    = ZIMSEG
    EXCEPTIONS
      NO_MATERIAL               = 1
      NO_BATCH                  = 2
      NO_PLANT                  = 3
      MATERIAL_NOT_FOUND        = 4
      PLANT_NOT_FOUND           = 5
      LOCK_ON_MATERIAL          = 6
      LOCK_ON_PLANT             = 7
      LOCK_ON_BATCH             = 8
      LOCK_SYSTEM_ERROR         = 9
      NO_AUTHORITY              = 10
      BATCH_NOT_EXIST           = 11
      NO_CLASS                  = 12
      ERROR_IN_CLASSIFICATION   = 13
      ERROR_IN_VALUATION_CHANGE = 14
      OTHERS                    = 15.

  IF SY-SUBRC IS INITIAL.
    CALL FUNCTION 'TRANSACTION_END'
      EXPORTING
        TRANSACTION_ID = F_TRANSACTION_ID
      EXCEPTIONS
        OTHERS         = 1.
  ELSE.
    CALL FUNCTION 'BALW_BAPIRETURN_GET2'
      EXPORTING
        TYPE   = SY-MSGTY
        CL     = SY-MSGID
        NUMBER = SY-MSGNO
        PAR1   = SY-MSGV1
        PAR2   = SY-MSGV2
        PAR3   = SY-MSGV3
        PAR4   = SY-MSGV4
      IMPORTING
        RETURN = RETURN.
    APPEND RETURN.

    CALL FUNCTION 'TRANSACTION_ABORT'
      EXPORTING
        TRANSACTION_ID = F_TRANSACTION_ID
      EXCEPTIONS
        OTHERS         = 1.
    EXIT.
  ENDIF.

ENDFUNCTION.

Thanks,

Sara

6 REPLIES 6

Former Member
0 Kudos

Hi,

Did you try BAPI_BATCH_CREATE? Check the documentation for more help.

Use BAPI_TRANSACTION_COMMIT after this func.module call.

Thanks,

Subramanian

0 Kudos

Hi Subramani,

Thanks for your response.

BAPI_BATCH_CREATE will not work for us, because we are trying to update batch, not creating new batch.

Also, The function TRANSACTION_END, I am calling in the code is responsible for committing the transaction.

Thanks,

Sara

0 Kudos

Hello Sara,

Check the logic for populating the FM input parameters in the include "MQEVAF40".

may be you are not populating the Values properly.

Thanks,

Greetson

Former Member
0 Kudos

Greetson,

Can you please give more details what to check on the include program? That means, do you see any errors in my code?

Thansk,

Sara

0 Kudos

Hello Sara,

I don't see any error on your code. What I mean to say is you may not properly sending all the input parameters to the FM call. Check the return code after your FM call and then see the Expections parameter if the return SY-SUBRC code is not equal to 0.

If the SY-SUBRC is 0 and you are passing all the parameters propery then check for OSS.

Thanks,

Greetson

Former Member
0 Kudos

Hi Greetson,

Thanks once again for your response. I checked all of the things you mentioned, everything looks fine. Now I have the doubt that the original FM VB_CHNAGE_BATCH updates the batch characteristics values.

Thanks,

Sara