- class ZCL_VARIANTS DEFINITION.
- PUBLIC SECTION.
- data: G_program type RSVAR-REPORT,
- g_variant type RSVAR-VARIANT,
- g_params type RSPARAMS_TT,
- g_varitext type DIWPS_VARIT_T,
- g_varid type VARID,
- g_vardesc type RVART_VTXT.
- METHOds: VARIANT_CHECK returning value(p_result) type sy-subrc,
- variant_delete returning value(p_result) type sy-subrc,
- variant_create returning value(p_result) type sy-subrc,
- variant_read returning value(p_result) type sy-subrc.
- ENDCLASS.
- class ZCL_VARIANTS IMPLEMENTATION.
- method variant_read.
- if me->G_program is INITIAL or
- me->g_variant is INITIAL.
- p_result = 4.
- else.
- CALL FUNCTION 'RS_VARIANT_CONTENTS'
- EXPORTING
- report = me->g_program
- variant = me->g_variant
- * MOVE_OR_WRITE = 'W'
- * NO_IMPORT = ' '
- * EXECUTE_DIRECT = ' '
- * GET_P_XML_TAB =
- * IMPORTING
- * SP =
- * P_XML_TAB =
- TABLES
- * L_PARAMS =
- * L_PARAMS_NONV =
- * L_SELOP =
- * L_SELOP_NONV =
- valutab = me->g_params
- * VALUTABL =
- * OBJECTS =
- * VARIVDATS =
- * FREE_SELECTIONS_DESC =
- * FREE_SELECTIONS_VALUE =
- * FREE_SELECTIONS_OBJ =
- EXCEPTIONS
- VARIANT_NON_EXISTENT = 1
- VARIANT_OBSOLETE = 2
- OTHERS = 3.
- IF sy-subrc <> 0.
- p_result = sy-subrc.
- ENDIF.
- endif.
- ENDMETHOD.
- method variant_create.
- data: l_varitxt like LINE OF g_varitext.
- if me->G_program is INITIAL or
- me->g_variant is INITIAL.
- p_result = 4.
- else.
- me->g_varid-report = me->G_program.
- me->g_varid-variant = me->g_variant.
- me->g_varid-environmnt = 'A'.
- me->g_varid-aedat = sy-datum.
- me->g_varid-aetime = sy-uzeit.
- l_varitxt-langu = sy-langu.
- l_varitxt-report = me->g_program.
- l_varitxt-variant = me->g_variant.
- l_varitxt-vtext = me->g_vardesc.
- if me->g_vardesc is INITIAL.
- CONCATENATE l_varitxt-report
- l_varitxt-variant
- sy-uname sy-uzeit
- into l_varitxt-vtext SEPARATED BY ' '.
- endif.
- APPEND l_varitxt TO g_varitext.
- CALL FUNCTION 'RS_CREATE_VARIANT'
- EXPORTING
- curr_report = me->g_program
- curr_variant = me->g_variant
- vari_desc = me->g_varid
- TABLES
- vari_contents = me->g_params
- vari_text = me->g_varitext
- EXCEPTIONS
- illegal_report_or_variant = 1
- illegal_variantname = 2
- not_authorized = 3
- not_executed = 4
- report_not_existent = 5
- report_not_supplied = 6
- variant_exists = 7
- variant_locked = 8
- OTHERS = 9.
- p_result = sy-subrc.
- endif.
- endmethod.
- METHOD variant_delete.
- if me->G_program is INITIAL or
- me->g_variant is INITIAL.
- p_result = 4.
- else.
- CALL FUNCTION 'RS_VARIANT_DELETE'
- EXPORTING
- report = me->G_program
- variant = me->g_variant
- flag_confirmscreen = 'X'
- flag_delallclient = 'X'
- IMPORTING
- variant = me->g_variant
- EXCEPTIONS
- not_authorized = 1
- not_executed = 2
- no_report = 3
- report_not_existent = 4
- report_not_supplied = 5
- variant_locked = 6
- variant_not_existent = 7
- no_corr_insert = 8
- variant_protected = 9
- OTHERS = 10.
- p_result = sy-subrc.
- endif.
- endmethod.
- method VARIANT_CHECK.
- if me->G_program is INITIAL or
- me->g_variant is INITIAL.
- p_result = 4.
- else.
- CALL FUNCTION 'RS_VARIANT_EXISTS'
- EXPORTING
- report = me->G_program
- variant = me->g_variant
- IMPORTING
- r_c = p_result
- EXCEPTIONS
- not_authorized = 1
- no_report = 2
- report_not_existent = 3
- report_not_supplied = 4
- OTHERS = 5.
- if sy-subrc ne 0.
- p_result = sy-subrc.
- endif.
- endif.
- ENDMETHOD.
- ENDCLASS.
- end-of-SELECTION.
- data: oo type REF TO ZCL_VARIANTS.
- create OBJECT oo.
- oo->G_program = 'ZZZZ'.
- oo->g_variant = 'PRUEBA22'.
- if oo->VARIANT_CHECK( ) is INITIAL.
- if oo->variant_read( ) is INITIAL.
- clear sy-subrc.
- oo->g_variant = 'Z0101'.
- if oo->variant_create( ) is INITIAL.
- clear sy-subrc.
- endif.
- endif.
- endif.
Última modificación de la página el 29 October 2022 a las 19h03
Powered by
PmWiki