Show TOC

Tutorial für Messreihen: BeispielprogrammLocate this document in the navigation structure

Vorgehensweise

Nachfolgend ist das vollständige Programm, das im Tutorial für Messreihen beschrieben wird.

Das Programm führt die folgenden Aufgaben durch. Es:

  • legt eine Messreihe an. Wenn der Messreihenname bereits existiert, lädt das Programm die vorhandenen Messreihen.

  • legt die standardmäßigen Auswahl- und Konfigurationseinstellungen für die Messreihe an. Die daraus resultierenden Objekte werden nur verwendet, wenn eine Messreihe angelegt wird. Die Standardeinstellungen können nach dem ersten Sichern der Messreihe nicht geändert werden.

  • führt eine Messung der Quelltextabdeckung durch und berechnet ein Ergebnis. Das Ergebnis verwendet die Standardkonfiguration für Berechnungen und Entitätsauswahl, die in der Messreihe gesichert wurden. Das Programm berechnet auch ein zweites Ergebnis für ein angegebenes Paket.

  • sichert das Ergebnis und implizit die Messung sowie die Messreihe.

  • Zeigt die aktuellen Ergebnisse im graphischen Browser des Coverage API an. Die Statistiken zur Quelltextabdeckung können auch als Text für die Wiederverwendung extrahiert werden.

REPORT  z_coverage_api_series_example.

* The Series
DATA: factory    TYPE REF TO if_scv_factory,
      repository TYPE REF TO if_scv_repository,
      series     TYPE REF TO if_scv_series.
* Default configuration
DATA: configuration TYPE REF TO if_scv_result_configuration,
      selection     TYPE REF TO if_scv_selection,
      users         TYPE if_scv_measurement=>users.
* Measurements and results
DATA: measurement    TYPE REF TO if_scv_measurement,
             default_result TYPE REF TO if_scv_result,
                    package_result TYPE REF TO if_scv_result.
* Display
DATA: display TYPE REF TO if_scv_result_display.
* Exceptions
DATA: ops_ex TYPE REF TO cx_scv_execution_error,
      call_ex TYPE REF TO cx_scv_call_error.
TRY.
* Create measurement series
  factory    = cl_scv_coverage_api=>get_factory( ).
  repository = cl_scv_coverage_api=>get_repository( ).
  series = factory->create_series( 'TEST_SERIES_NW_EHP3' ).

* Set defaults for the series - first the scope of recording
    series->set_local_server_only( abap_false ).

* Set the default users
    append 'KELLERH' to users.
    series->set_users( users ).

* Then the selection of entities for which results are calculated
* (not changeable after initial save)
    selection = series->get_selection( ).
    selection->include_component( 'BC-CCM-MON' ).
    " Exclude a sub-component of BC-CCM-MON
    selection->exclude_component( 'BC-CCM-MON-SHM' ).
    " Include explicitly two packages
    selection->include_package( 'SCSM' ).
    selection->include_package( 'SMOI' ).
    " Exclude a class pool and function group - the full
    " technical names of these entities must be used.
    selection->exclude_program( 'CL_CCMS_AL_DOC_VIEW_AL_FILTER=CP' ).
    selection->exclude_program( 'SAPLSALF' ).

* Then the configuration of the results calculation
* (read-only after initial save)
    configuration = series->get_result_configuration( ).
    " Calculate only top-level aggregated results
    configuration->set_ignore_hierarchy( abap_true ).

* Try to save the series
    repository->save_series( series ). " Uniqueness of series name is checked.
  CATCH cx_scv_execution_error.
    TRY.
* Load the series if it already has been created
        series = repository->load_series( 'TEST_SERIES_NW_EHP3' ).
      CATCH cx_scv_execution_error INTO ops_ex.
    ENDTRY.
ENDTRY.

* Create a measurement in the series - the name can be the
* same for all instances of measurement
TRY.
    measurement = series->create_measurement( 'MONITORING_API' ).
    measurement->start( ).

* Run test programs - here a harmless CCMS standard program
    SUBMIT rsdssmpl_status AND RETURN.

    measurement->stop( ).

* Calculate the results using the defaults of the measurement series
* Series default selection and configuration are used
    default_result = measurement->build_selection_result(
                      i_result_name = 'MONITORING_COVERAGE' ).

* Calculate the results for a separate package
    package_result = measurement->build_package_result( 'SCSM' ).

* Save the results and implicitly the measurement and series
    repository->save_result( default_result ).
    repository->save_result( package_result ).

* Display the results in a graphical pop-up - show_as_fullscreen also available
* The display
    display = cl_scv_coverage_ui=>get_result_display( default_result ).
    display->show_as_popup( ).
    display = cl_scv_coverage_ui=>get_result_display( package_result ).
    display->show_as_popup( ).

  CATCH cx_scv_execution_error INTO ops_ex.
  CATCH cx_scv_call_error INTO call_ex.
ENDTRY.