Hi Gurus,
I have used following code to change a variant contents dynamically. But variant itself deleted when executed. Has anybody done this before? Pls advice me or giv me sample code.
My code is given below:
I have created a variant 'TEST' in program 'ZBW_SD_TEST' and executed this program to change one of its parameter value.
REPORT Z11_TEST1.
Select variant contents
CALL FUNCTION 'RS_VARIANT_CONTENTS'
EXPORTING
report = 'ZBW_SD_TEST'
variant = 'TEST'
MOVE_OR_WRITE = 'W'
NO_IMPORT = ' '
EXECUTE_DIRECT = ' '
IMPORTING
SP =
TABLES
L_PARAMS =
L_PARAMS_NONV =
L_SELOP =
L_SELOP_NONV =
valutab = it_var
OBJECTS =
FREE_SELECTIONS_DESC =
FREE_SELECTIONS_VALUE =
EXCEPTIONS
variant_non_existent = 1
variant_obsolete = 2
OTHERS = 3
read variant content and just changing one value of P_FIELD
read table it_var into wa_var with key selname = 'P_FIELD'.
wa_var-low = '/bwguest/data/'.
modify it_var from wa_var index 2 transporting low .
mandatory structure for below fn module
CLEAR wa_desc.
wa_desc-mandt = sy-mandt.
wa_desc-report = 'ZBW_SD_TEST'.
wa_desc-variant = 'TEST'.
wa_desc-ename = sy-uname.
wa_desc-edat = sy-datum.
wa_desc-etime = sy-uzeit.
wa_text-langu = 'E'.
wa_text-report = 'ZBW_SD_TEST'.
wa_text-variant = 'TEST'.
wa_text-vtext = 'SD_TEST'.
APPEND wa_text TO it_text.
Fn module to change a variant
CALL FUNCTION 'RS_CHANGE_CREATED_VARIANT'
EXPORTING
curr_report = 'ZBW_SD_TEST'
curr_variant = 'TEST'
vari_desc = wa_desc
ONLY_CONTENTS =
tables
vari_contents = it_var
VARI_TEXT =
VARI_SEL_DESC =
OBJECTS =
EXCEPTIONS
ILLEGAL_REPORT_OR_VARIANT = 1
ILLEGAL_VARIANTNAME = 2
NOT_AUTHORIZED = 3
NOT_EXECUTED = 4
REPORT_NOT_EXISTENT = 5
REPORT_NOT_SUPPLIED = 6
VARIANT_DOESNT_EXIST = 7
VARIANT_LOCKED = 8
SELECTIONS_NO_MATCH = 9
OTHERS = 10
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Thanks in advance...
Saj