2011 Sep 06 12:21 PM
hello,
my issue is related with domain's fixed value append. My client does not have rights to update Domain's values manually, so i've created transaction which allows such action, but i have a problem when users try to use that value, system prompt to change it because this value is illegal (doesn't exit, but DD07T tables has it). i 've tryed different update combinations:
1) Only domain's update;
2) Only append's update;
3) Domain's and append's update, but without success. even changed the sequence;
...
move p_dom to lv_domain.
.
call function 'SVRS_GET_VERSION_DOMD_40'
exporting
object_name = lv_domain
versno = lv_versno
tables
dd01v_tab = gt_dd01v
* dd07v_tab = lt_dd07v
dd07tv_tab = lt_dd07tv
exceptions
no_version = 01.
loop at lt_dd07tv reference into lp_dd07tv.
move-corresponding lp_dd07tv->* to ls_doma.
append ls_doma to gt_doma.
clear ls_doma.
endloop.
....
"this part of code is executed when user presses save button
read table gt_dd01v into ls_dd01v index 1.
loop at gt_doma reference into lp_doma.
ls_dd07v-domname = p_dom.
ls_dd07v-valpos = sy-tabix.
ls_dd07v-ddlanguage = 'X'.
ls_dd07v-domvalue_l = lp_doma->domvalue_l.
ls_dd07v-domvalue_h = lp_doma->domvalue_h.
ls_dd07v-ddtext = lp_doma->ddtext.
ls_dd07v-appval = 'X'.
append ls_dd07v to lt_dd07v.
clear ls_dd07v.
endloop.
call function 'DD_DOMA_PUT'
exporting
dd01v_wa = ls_dd01v
domain_name = p_dom
prid = 0
ctrl_doma_put = 'A'
tables
dd07v_tab = lt_dd07v
exceptions
illegal_value = 1
op_failure = 2
object_inconsistent = 3
others = 4.
if sy-subrc is initial.
call function 'DB_COMMIT' .
message s043.
else.
message e044.
endif.i had tryed other Function modules, but i got the same result.
Thank you for any help.
dez_
2011 Sep 06 2:20 PM
Hi
You can SE11 Transaction code to append the values to domain.
http://wiki.sdn.sap.com/wiki/display/ABAP/FixedValueAppendForstandard+Domains
Shiva
2011 Sep 06 1:32 PM
These values are often determined by configuration settings development. Why aren't these updates being done that way?
2011 Sep 06 2:20 PM
Hi
You can SE11 Transaction code to append the values to domain.
http://wiki.sdn.sap.com/wiki/display/ABAP/FixedValueAppendForstandard+Domains
Shiva
2011 Sep 06 7:59 PM
Client doesn't have rights to use SE11. i wrote that before and i need function module or other variant which allows to maintain append's values and does not require user with development key . Any suggestions?
br,
dez_
2011 Sep 06 8:56 PM
Hi
With your code also, the values are getting updated but the domain is not adjusted and reactivated. Check the version management, there you can see a new TR under your name.
When you use FM 'DDIF_DOMA_PUT' the system will add the entries, but the domain will not get adjusted. So you need to use another FM 'DDIF_DOMA_ACTIVATE' to get the values.
Please have a look into the below code and adjust accordingly your code.
data :wa_dd01v type dd01v.
select
single *
into wa_dd01v
from dd01v
where DOMNAME = 'TEST'
and DDLANGUAGE = sy-langu.
DATA DD07V_TAB LIKE DD07V OCCURS 2 WITH HEADER LINE.
DD07V_TAB-DOMNAME = 'TEST'.
DD07V_TAB-VALPOS = '1'.
DD07V_TAB-DDLANGUAGE = 'E'.
DD07V_TAB-DOMVALUE_L = 'X'.
DD07V_TAB-DDTEXT = 'Fixed value text A'.
APPEND DD07V_TAB.
DD07V_TAB-DOMNAME = 'TEST'.
DD07V_TAB-VALPOS = '2'.
DD07V_TAB-DDLANGUAGE = 'E'.
DD07V_TAB-DOMVALUE_L = 'Y'.
DD07V_TAB-DDTEXT = 'Fixed value text B'.
APPEND DD07V_TAB.
*COMMIT WORK.
CALL FUNCTION 'DDIF_DOMA_PUT'
EXPORTING
NAME = 'TEST'
dd01v_wa = wa_dd01v
TABLES
DD07V_TAB = DD07V_TAB
EXCEPTIONS
PUT_FAILURE = 01
OTHERS = 02.
IF SY-SUBRC = 1.
ROLLBACK WORK.
ENDIF.
IF SY-SUBRC = 0.
CALL FUNCTION 'DDIF_DOMA_ACTIVATE'
EXPORTING
name = wa_dd01v-DOMNAME
* AUTH_CHK = 'X'
* PRID = -1
* IMPORTING
* RC =
* EXCEPTIONS
* NOT_FOUND = 1
* PUT_FAILURE = 2
* OTHERS = 3
.
if sy-subrc = 0.
COMMIT WORK.
endif.
WRITE / 'Domain TEST is now revised with two fixed values.'.
WRITE / 'The active version is unchanged.'.
ELSE.
WRITE / 'Domain TEST is still active in the old state.'.
endif.
Shiva
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |