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