Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Methode SAVE_PREPARE  Dokument im Navigationsbaum lokalisieren

Die Methode SAVE_PREPARE trifft vorbereitende Maßnahmen für das Sichern. Die wichtigste vorbereitende Maßnahme ist der zweite Teil der Anbindung an das Transport-System. Hier werden die bereits in der Methode GET_TRANSPORT_OBJECTS grob spezifizierten transportrelevanten Objekte (d.h. die betroffenen Tabellen) weiter konkretisiert bzw. eingeschränkt.

 

Beispiel-Quelltext:

HinweisIm Folgenden sind nur die wesentlichen Teile des Quelltextes aufgeführt.

 

 

*------ transport connection ------------------------------------------

  DATA:

    lv_is_local_object TYPE brf_boole_d.

 

  CALL METHOD cl_aux_brf=>get_applclass_details

    EXPORTING

      iv_applclass           = ms_brf150_cur-applclass

    IMPORTING

      ev_is_local_object     = lv_is_local_object

    EXCEPTIONS

      applclass_not_in_tadir = 1

      OTHERS                 = 2.

 

*------ no transport entries for local object -------------------------

  IF sy-subrc = 0 AND NOT lv_is_local_object IS INITIAL.

    REFRESH et_e071.

    EXIT.

  ENDIF.

 

  CALL METHOD super->if_maintenance_brf~save_prepare

    IMPORTING

      et_e071  = et_e071

      et_e071k = et_e071k.

 

*------ transport key entry for tbrf142 -------------------------------

  ls_tables = 'TBRF142'.

  READ TABLE mt_changed_tables FROM ls_tables

                               TRANSPORTING NO FIELDS.

  IF sy-subrc EQ 0.

    IF mv_edit_mode NE '4'.

      ls_brf142 = ms_brf142_cur.

    ELSE.

      ls_brf142 = ms_brf142_old.

    ENDIF.

    CALL METHOD cl_aux_brf=>get_tabkey_as_char

      EXPORTING

        iv_data  = ls_brf142

        iv_type  = ls_tables

      IMPORTING

        ev_e071k = ls_e071k.

    APPEND ls_e071k TO et_e071k.

  ELSE.

    DELETE et_e071 WHERE pgmid    EQ 'R3TR'

                     AND object   EQ 'TABU'

                     AND obj_name EQ ls_tables.

  ENDIF.

        

Beschreibung:

      Vor dem Aufruf der Methode SAVE_PREPARE der Superklasse wird zunächst sichergestellt, dass keine Objekte in nicht transportierbaren Anwendungsklassen auf einen Transportauftrag gelangen.

      Dann wird die Methode SAVE_PREPARE der Superklasse aufgerufen.

Dieser Aufruf ist obligatorisch, da die Basisklasse alle Tabellen ermittelt, bei denen Änderungen eingetreten sind. Die Basisklasse ruft dazu die Methode IS_MODIFIED auf. Dabei wird die Member-Tabelle mt_changed_table aufgebaut. Diese Member-Tabelle enthält nur die Tabellennamen, zu denen es geänderte Tabelleneinträge gibt.

      Anschließend wird die Tabelle der transportrelevanten Tabelleneinträge basierend auf den tatsächlich geänderten Datensätzen aufgebaut (Tabelle et_e071k).

Diese Tabelle et_e071k enthält in einer Zeile folgende Angaben:

       Name der Datenbanktabelle

       Schlüssel des Tabelleneintrages, der transportiert werden soll

      Der Aufbau der Tabelle et_e071k wird durch folgende statische Service-Methoden in der Klasse CL_AUX_BRF erleichtert.

       Methode GET_TABKEY_AS_CHAR

Die Methode GET_TABKEY_AS_CHAR erzeugt aus der übergebenen Struktur (in diesem Fall der Struktur LS_BRF142) und dem Namen der Struktur (LV_TABLES, 'TBRF142') einen Transporteintrag. Dieser Transporteintrag wird der Tabelle ET_071K zugefügt.

       Methode ADD_TABKEYS_FOR_TR

Die Methode ADD_TABKEYS_FOR_TR ermittelt die Transporteinträge aufgrund der CUR- bzw. OLD-Tabellen.

HinweisBeachten Sie allgemein bei dieser Methode das Verhalten beim Löschen. Wenn nämlich Einträge gelöscht werden sollen, müssen Sie für diese zu löschenden Einträge ebenfalls Transporteinträge erzeugen.

 

Ende des Inhaltsbereichs