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: 

Characteristic values are not changing

Former Member
0 Kudos

Hi Experts,

I am using the BAPI [BAPI_OBJCL_CHANGE] to transfer the material characteristics values .

In spite of getting success message the characteristics vales are not transferred to the materiel in classification view. 

Please suggest me any solution.

Thanks and Regards.

Uma

1 ACCEPTED SOLUTION

former_member209120
Active Contributor
0 Kudos

Hi uma devi,


1. debug and find the problem or

2. Share your code to understand your problem or

3. Just search in SCN or google you will get lot of information on BAPI_OBJCL_CHANGE

See this wiki page

http://wiki.scn.sap.com/wiki/display/Snippets/BAPI_OBJCL_CHANGE+for+modifying+characteristics+values

REPORT  zs1 NO STANDARD PAGE HEADING LINE-SIZE 500.

DATA: git_bapi1003 TYPE TABLE OF bapi1003_alloc_values_num,

      git_values_char TYPE TABLE OF bapi1003_alloc_values_char,

      git_values_curr TYPE TABLE OF bapi1003_alloc_values_curr,

      git_bapiret2    TYPE TABLE OF bapiret2,

      ls_bapiret2           TYPE bapiret2.

DATA: gs_bapi1003     TYPE bapi1003_alloc_values_num,

      gs_values_char  TYPE bapi1003_alloc_values_char,

      gs_values_curr  TYPE bapi1003_alloc_values_char,

      gc_flag_x(1)       TYPE c VALUE 'X'.

gs_values_char-charact = 'VIEWS_ID'.       "Characteristics

gs_values_char-value_char = '012'.         "characteristics value

APPEND gs_values_char TO git_values_char.

CALL FUNCTION 'BAPI_OBJCL_CHANGE'

  EXPORTING

    objectkey          = '1100000028' "Customer

    objecttable        = 'KNA1'

    classnum           = 'CATALOG_VIEW_CUST' "Class Number

    classtype          = '011'               "Class Type

  TABLES

    allocvaluesnumnew  = git_bapi1003

    allocvaluescharnew = git_values_char

    allocvaluescurrnew = git_values_curr

    return             = git_bapiret2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  EXPORTING

    wait   = 'X'

  IMPORTING

    return = ls_bapiret2.

https://www.google.co.in/search?q=BAPI_OBJCL_CHANGE&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official...

16 REPLIES 16

Former Member
0 Kudos

Hello,

Please have a glance at this link if it meets your requirements.

http://scn.sap.com/thread/1816534

Thanks and Kind Regards,

Yovish.

Former Member
0 Kudos

have you written the BAPI  COMMIT statement after executing the BAPI?

former_member209120
Active Contributor
0 Kudos

Hi uma devi,


1. debug and find the problem or

2. Share your code to understand your problem or

3. Just search in SCN or google you will get lot of information on BAPI_OBJCL_CHANGE

See this wiki page

http://wiki.scn.sap.com/wiki/display/Snippets/BAPI_OBJCL_CHANGE+for+modifying+characteristics+values

REPORT  zs1 NO STANDARD PAGE HEADING LINE-SIZE 500.

DATA: git_bapi1003 TYPE TABLE OF bapi1003_alloc_values_num,

      git_values_char TYPE TABLE OF bapi1003_alloc_values_char,

      git_values_curr TYPE TABLE OF bapi1003_alloc_values_curr,

      git_bapiret2    TYPE TABLE OF bapiret2,

      ls_bapiret2           TYPE bapiret2.

DATA: gs_bapi1003     TYPE bapi1003_alloc_values_num,

      gs_values_char  TYPE bapi1003_alloc_values_char,

      gs_values_curr  TYPE bapi1003_alloc_values_char,

      gc_flag_x(1)       TYPE c VALUE 'X'.

gs_values_char-charact = 'VIEWS_ID'.       "Characteristics

gs_values_char-value_char = '012'.         "characteristics value

APPEND gs_values_char TO git_values_char.

CALL FUNCTION 'BAPI_OBJCL_CHANGE'

  EXPORTING

    objectkey          = '1100000028' "Customer

    objecttable        = 'KNA1'

    classnum           = 'CATALOG_VIEW_CUST' "Class Number

    classtype          = '011'               "Class Type

  TABLES

    allocvaluesnumnew  = git_bapi1003

    allocvaluescharnew = git_values_char

    allocvaluescurrnew = git_values_curr

    return             = git_bapiret2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  EXPORTING

    wait   = 'X'

  IMPORTING

    return = ls_bapiret2.

https://www.google.co.in/search?q=BAPI_OBJCL_CHANGE&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official...

0 Kudos

Hi Ramesh,

When am debugging, return table is filling with success message but stranded is not updating the same.

This is my BAPI

call function 'BAPI_OBJCL_CHANGE'

       exporting

         objectkey          = gv_objek

         objecttable        = 'MARA'

         classnum           = 'COILS_BATCH_CLASS'

         classtype          = '023'

         keydate            = sy-datum

       tables

         allocvaluesnumnew  = it_num

         allocvaluescharnew = it_char

         allocvaluescurrnew = it_curr

         return             = it_return.

     call function 'BAPI_TRANSACTION_COMMIT'

       exporting

         wait = 'X'.

    

1SCL506Saving changes to assignments$000002000001
2SCL737Assignment changed
000000

This what am getting in return table

Thanks and regards,

Uma

0 Kudos

Looking at the message it looks like Classification data is not created and you are trying to change it . I think you should use 'BAPI_OBJCL_CREATE to create the classifications first

0 Kudos

Hi Madan,

Yes what you said is right Classification data is not created but change bapi  changes an existing classification, or creates the classification if it does not yet exist right?

0 Kudos

You should use CREATE one if no classifcation exist.

0 Kudos

Hi Madan,

When am trying to create Assignment  getting the below errors...

ICL732Assignment does not exist or is not valid on
ECL117Class type 023, object type MARA, object 000000000001093352
ECL763Object 000000000001093352 does not exist
ICL736Assignment was not created

Am using below code

CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY_KEY'

   EXPORTING

     objecttable          = 'MARA'

     classtype            = '023'

  IMPORTING

    CLOBJECTKEYOUT       = l_objnum

   tables

     objectkeytable       = IT_KEY

     return               =  it_return

           .

CALL FUNCTION 'BAPI_OBJCL_CREATE'

   EXPORTING

     objectkeynew            = l_objnum

     objecttablenew          = 'MARA'

     classnumnew             = 'COILS_BATCH_CLASS'

     classtypenew            = '023'

*   STATUS                  = '1'

*   STANDARDCLASS           =

*   CHANGENUMBER            =

    KEYDATE                 = SY-DATUM

*   NO_DEFAULT_VALUES       = ' '

* IMPORTING

*   CLASSIF_STATUS          =

   tables

    ALLOCVALUESNUM          = it_num

    ALLOCVALUESCHAR         = it_char

    ALLOCVALUESCURR         = it_curr

     return                 = it_return

           .

Please help me on this

regards

uam

0 Kudos

Dont use the first FM

  W_CLASSTYPE = 'ABC'

  W_CLASSNUM =  '123'.
        W_OBJECTTABLE = 'MARA'.
        W_OBJECT = 'ENTER MATERIAL NUMBER'.
        DATA: W_CLASSIF_STATUS(1).
        CALL FUNCTION 'BAPI_OBJCL_CREATE'
          EXPORTING
            OBJECTKEYNEW            = W_OBJECT
            OBJECTTABLENEW          = W_OBJECTTABLE
            CLASSNUMNEW             = W_CLASSNUM
            CLASSTYPENEW            = W_CLASSTYPE
   IMPORTING
     CLASSIF_STATUS          = W_CLASSIF_STATUS
          TABLES
            RETURN                  = W_RETURN
                  .

0 Kudos

Thanks a lot Madan

Issues is solved .....

Admire and appreciate your skill

0 Kudos

Hi Madan,

Is there any BAPI or can we use same BAPI to  create or change the characteristic values pertaining to Batch.

Thanks And Regards.,

Uma

0 Kudos

You can use the same

0 Kudos

Thanks Madan...

May i know how to fill the objectkeynew, i tried as following ways 

1st way:      move: g_matnr to gv_objek(18),

         w_ztppi-werks to gv_objek+18(4),

         w_ztppi-rcharg to gv_objek+22(10).

CALL FUNCTION 'BAPI_OBJCL_CREATE'

   EXPORTING

     objectkeynew            = gv_objek

     objecttablenew          = 'MARA'

     classnumnew             = 'COILS_BATCH_CLASS'

     classtypenew            = '023'

STATUS                  = '1'

STANDARDCLASS           =

CHANGENUMBER            =

    keydate                 = sy-datum

NO_DEFAULT_VALUES       = ' '

IMPORTING

CLASSIF_STATUS          =

   TABLES

    allocvaluesnum          = it_num

    allocvalueschar         = it_char

    allocvaluescurr         = it_curr

     return                 = it_return

           .

2nd way:

CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY_KEY'

       EXPORTING

         objecttable    = 'MARA'

         classtype      = '023'

       IMPORTING

         clobjectkeyout = l_objnum

       TABLES

         objectkeytable = it_key

         return         = it_return.

then i passed l_objnum to  objectkeynew  .

BOTH WAYS ARE NOT WORKING.

Please suggested me to fill the objectkeynew


Regards,

Uma

former_member184569
Active Contributor
0 Kudos

Check this sample code for modifying classification value in customer Master.

REPORT  ZS1 no standard page heading line-size 500.

data: git_bapi1003 type table of bapi1003_alloc_values_num,

     git_values_char type table of bapi1003_alloc_values_char,

     git_values_curr type table of bapi1003_alloc_values_curr,

     git_bapiret2    type table of bapiret2,

     ls_bapiret2           type bapiret2.

data: gs_bapi1003     type bapi1003_alloc_values_num,

     gs_values_char  type bapi1003_alloc_values_char,

     gs_values_curr  type bapi1003_alloc_values_char,

     gc_flag_x(1)       type c value 'X'.

gs_values_char-charact = 'VIEWS_ID'.       "Characteristics

gs_values_char-value_char = '012'.         "characteristics value

append gs_values_char to git_values_char.

CALL FUNCTION 'BAPI_OBJCL_CHANGE'

EXPORTING

   objectkey                = '1100000028' "Customer

   objecttable              = 'KNA1'       

   classnum                 = 'CATALOG_VIEW_CUST' "Class Number

   classtype                = '011'               "Class Type

*   STATUS                   = '1'

*   STANDARDCLASS            =

*   CHANGENUMBER             =

*   KEYDATE                  = SY-DATUM

*   NO_DEFAULT_VALUES        = ' '

* IMPORTING

*   CLASSIF_STATUS           =

tables

   allocvaluesnumnew        = git_bapi1003

   allocvaluescharnew       = git_values_char

   allocvaluescurrnew       = git_values_curr

   return                   = git_bapiret2

         .

call function 'BAPI_TRANSACTION_COMMIT'

exporting

  wait          = 'X'

importing

  return        = ls_bapiret2


http://sapabap-techsupport.blogspot.ae/2010/09/bapiobjclchange-for-modifying.html

Make sure you have also added this second function module BAPI_TRANSACTION_COMMIT to complete the updation.

Former Member
0 Kudos

Hi Friends,

Issues was solved..

0 Kudos

Did u pass MCHA as object..? Please share the solution