Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Create a variant dynamically..

Former Member
0 Likes
494

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
431
2 REPLIES 2
Read only

Former Member
0 Likes
432
Read only

Former Member
0 Likes
431

>

> 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"