Skip to Content
0
Former Member
Jan 17, 2011 at 11:17 AM

CEI00000 - Update Material configuration -

513 Views

Hi expert.

First excuse me for my english 😉

Now my problem.

I create sales document with va41 transaction.

When I grab my material value, the configuration screen appeared.

The aim is to modify one characteristic value of my configuration with data stored in a data file.

For this I create a project ZCONF in transaction CMOD.

I add enhancement CEI00000 (Availability of Customer Functions in Configuration Editor).

Then, in CU50 I have modified configuration to add a push button in the interface design

The name of my push button is CUSTOMER_PUSHBUTTON_10, so i have a link with my EXIT_SAPLCEI0_010.

Now, when I click on my push button, my user-exit is operational.

In my exit (ZXCEI0U02), i want to extract the current configuration, modify it and update my configuration material.

Here, my value is not modified.

Normaly, in mv45afzz , i use module fonction cucb_get_configuration and cucb_change _configuration and it work well.

Anybody has an idea?

Abap code :

&----

-


*& Include ZXCEI0U02

&----

-


TYPE-POOLS ibco2.

tables : cabn.

data : w_instance like VBAP-CUOBJ.

data : p_cuobj like vbap-cuobj,

li_config TYPE TABLE OF ibco2_instance_rec2,

ls_config TYPE ibco2_instance_rec2,

li_values TYPE ibco2_value_tab,

ls_values TYPE ibco2_value_rec.

data : s_values TYPE ibco2_value_rec,

i_values TYPE ibco2_value_tab.

DATA: BEGIN OF CHARACTS_I OCCURS 0.

INCLUDE STRUCTURE API_CHAR.

DATA: END OF CHARACTS_I.

data : w_object_instance like DDB_C02-INSTANCE.

data : w_cinst like DDB_C02-INSTANCE.

DATA: ls_charac TYPE api_char,

lt_charac TYPE STANDARD TABLE of api_char,

ls_value TYPE api_value,

lt_value TYPE STANDARD TABLE of api_value,

ls_val TYPE api_val_i,

lt_val TYPE STANDARD TABLE of api_val_i,

lt_val_err TYPE STANDARD TABLE of api_val_i.

data : i_config TYPE TABLE OF ibco2_instance_rec2,

s_config TYPE ibco2_instance_rec2.

CALL FUNCTION 'CE_I_HAS_ACTUAL_INSTANCE'

IMPORTING

INSTANCE = p_cuobj.

CALL FUNCTION 'CUCB_GET_CONFIGURATION'

EXPORTING

instance = p_cuobj

IMPORTING

configuration = li_config

EXCEPTIONS

OTHERS = 1.

IF sy-subrc EQ 0.

*Recherche des caractéristiques

LOOP AT li_config INTO ls_config.

li_values[] = ls_config-values.

EXIT.

ENDLOOP.

ENDIF.

select single * from cabn where atnam = 'NUM_PRE_ETUDE'.

  • Vidage de la caractéristique.

LOOP AT li_values INTO ls_values WHERE atinn = cabn-atinn.

CLEAR : ls_values-atwrt.

MODIFY li_values FROM ls_values INDEX sy-tabix.

ENDLOOP.

sort li_values by atinn.

DELETE ADJACENT DUPLICATES FROM li_values COMPARING atinn atwrt atflv.

READ TABLE li_values INTO ls_values WITH KEY atinn = cabn-atinn.

ls_values-ataut = 8.

ls_values-atwrt = 'PRE_ETUDE'.

modify li_values from ls_values index sy-tabix.

  • Mise à jour de la configuration

MOVE li_values[] TO ls_config-values.

MODIFY li_config FROM ls_config INDEX 1.

CALL FUNCTION 'CUCB_CHANGE_CONFIGURATION'

EXPORTING

root_instance = p_cuobj

CHANGING

inserted_or_changed_instances = li_config

EXCEPTIONS

invalid_input = 1

invalid_instance = 2

instance_is_a_classification = 3

OTHERS = 4.

Edited by: Candia_30 on Jan 17, 2011 5:21 PM