Skip to Content
0
Former Member
Oct 08, 2009 at 10:58 AM

BAPI_OBJCL_GET_KEY_OF_OBJECT - No error but key not created

312 Views

Hi Experts,

I have to write a program to create a new batch for a material and copy the properties of another batch into it. I am using the following code to create a new batch

material2 = p_matnr.
plant2    = p_werks.
lgort2    = p_lgort.
CALL FUNCTION 'BAPI_BATCH_CREATE'
  EXPORTING
    MATERIAL                   = material2
    PLANT                      = plant2
    BATCHSTORAGELOCATION       = lgort2
  IMPORTING
    BATCH                      = batch2
  TABLES
    RETURN                     = return2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

refresh return2.
concatenate material2 batch2 into object2.
CALL FUNCTION 'BAPI_OBJCL_GET_KEY_OF_OBJECT'
  EXPORTING
    OBJECTNAME               = object2
    OBJECTTABLE              = 'MCH1'
    CLASSTYPE                = '023'
    CREATE_MISSING_KEY       = 'X'
  IMPORTING
    CLOBJECTKEYOUT           = obj_key
  TABLES
    RETURN                   = return2
          .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

refresh return2.
clnum = e_class1.

CALL FUNCTION 'BAPI_OBJCL_CHANGE_KEY'
  EXPORTING
    CLOBJECTKEY               = obj_key
    CLASSNUM                  = clnum
  TABLES
    ALLOCVALUESNUM_NEW        = tnum
    ALLOCVALUESCHAR_NEW       = tchar
    ALLOCVALUESCURR_NEW       = tcurr
    RETURN                    = return2
          .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

The first two bapi execute successfully. But the third one BAPI_OBJCL_CHANGE_KEY returns an error saying

Class type 023 is not defined for object obj_key

Can someone let me know where am I going wrong. I tried the forums and the method specified is the same that I am following.

Thanks,

Abdullah