Skip to Content
0
Former Member
Apr 25, 2009 at 03:24 PM

Create a variant dynamically..

63 Views

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