‎2009 Apr 25 4:24 PM
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
‎2009 Apr 25 5:53 PM
‎2009 Apr 25 5:53 PM
‎2009 Apr 25 7:34 PM
>
> 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
do not populate anything in "wa_desc"