Additional Transport Information
Use
If additional tables are maintained in the background, they should be assigned to the associated maintenance object in the mintenance object definition object list, because of the logical relationship. It is also possible to not include the tables in the object list, but this loses the logical relationship with the maintenance object. The associated entries for these tables must then be created in the change request.
If other lockable objects and so on are changed in the background, then userentries must be made in the request.
Example
ExampleStructure
-
In view V1, the tables T1 and T2 are maintained in the background.
-
T1 and T2 are not contained in the view definition.
-
T1 is contained in the V1 maintenance description object list, T2 is not.
-
Additional structures
-
IT1: internal tables with values from T1
-
IT2: internal table with values from T2
-
The table T1 is automatically put in the change task in this constellation. A header entry must be created for the table T2.
-
Routine for entering other objects in the request event 10
The header entry for the objects must be included in the internal table HyperLink: TX.SM30_EXIT_CORR_TABS VIM_CORR_OBJTAB v>, as they are neither in the view structure definition, nor are they associated text tables, nor are they in the maintenance object description object. In particular, lockable objects (for example, programs) are also allowed.
The routine, following the example, is as follows:
FORM name10. VIM_CORR_OBJTAB = E071. VIM_CORR_OBJTAB-PGMID = 'R3TR'. VIM_CORR_OBJTAB-OBJECT = 'TABU'. VIM_CORR_OBJTAB-OBJ_NAME = 'T2'. VIM_CORR_OBJTAB-OBJFUNC = 'K'. APPEND VIM_CORR_OBJTAB. ENDFORM. -
Routine Create/Delete/Check a change request key entry event 11
This routine adds the key entries for the additional background-maintained tables which belong to the current maintenance object entry, to the internal table CORR_KEYTAB v>.
The master object of the maintenance object must be specified for the additional tables which are contained in the object list. This is is already done in the global variable E071K.
The master object TRANSP_OBJECT must be entered for the additional tables which are not contained in the object list.
The routine, following the example, is as follows:
FORM name11. * 1. zusätzliche Tabelle T1 (in Stückliste enthalten) CORR_KEYTAB = E071K. * oder es ist auch möglich: * CORR_KEYTAB-TRKORR = E071K-TRKORR. * CORR_KEYTAB-PGMID = TRANSPORTER. "R3TR * CORR_KEYTAB-OBJECT = TRANSP_OBJECT. "TABU * CORR_KEYTAB-MASTERTYPE = MASTER_TYPE "VDAT * CORR_KEYTAB-MASTERNAME = MASTER_NAME "im Bsp. V1 * 1.2 individuellen Objektnamen angeben CORR_KEYTAB-OBJNAME = 'T1'. * 1.3 zu transportierende Keys des Objektes in * Abhängigkeit vom aktuellen View-Eintrag ermitteln * und in die CORR_KEYTAB eintragen... LOOP AT IT1 INTO T1 WHERE KEY1 EQ V1-KEY1. CORR_KEYTAB-TABKEY = T1-KEY1. * ...Objektkey ist jetzt ermittelt, zum Tabellenupdate * zentrale FORM-Routine benutzen: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING HyperLink: TX.SM30_EXIT_KON_TRSP CORR_ACTION v> RC. ENDLOOP. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN. * im Prüfmodus exit, wenn ein Teilobjekt nicht in * Korrektur ist SY-SUBRC = RC. EXIT. ELSE. "hinzugefügt, gelöscht oder kein Fehler RC_SAFE = RC. ENDIF. * 2. zusätzliche Tabelle: T2 * (NICHT in Stückliste enthalten): * - CORR_KEYTAB-Eintrag (E071K) aufbauen: * 2.1 Felder mit individuellen Werten füllen CLEAR CORR_KEYTAB. CORR_KEYTAB-TRKORR = E071K-TRKORR. CORR_KEYTAB-PGMID = 'R3TR'. CORR_KEYTAB-OBJECT = 'TABU'. CORR_KEYTAB-OBJNAME = 'T2'. CORR_KEYTAB-MASTERTYPE = 'TABU'. CORR_KEYTAB-MASTERNAME = 'T2'. * 2.2 zu transportierende Keys d. Objektes in * Abhängigkeit vom aktuellen View-Eintrag ermitteln * und in die CORR_KEYTAB eintragen... LOOP AT IT2 INTO T2 WHERE KEY1 EQ V1-KEY1. CORR_KEYTAB-TABKEY = T2-KEY1. CORR_KEYTAB-TABKEY+4 = T2-KEY2. * ...Objektkey ist jetzt ermittelt, zum Tabellenupdate * zentrale FORM-Routine benutzen: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. ENDLOOP. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN. * im Prüfmodus exit, wenn ein Teilobjekt nicht in * Korrektur ist SY-SUBRC = RC. EXIT. ELSE. "hinzufügen oder löschen oder kein Fehler * endgültigen Returncode ermitteln IF RC_SAFE EQ 0 OR RC EQ 0. * mindestens ein update erfolgreich CLEAR SY-SUBRC. "return ok. ELSE. "alle Updates nicht notwendig SY-SUBRC = RC. "return nicht ok. ENDIF. ENDIF. ENDFORM.The current table/view entry, from which the required CORR_KEYTAB entry structure information can be taken, is in the table/view work area at this event.
-
Routine for insert additional table entry keys event 12
This routine adds the key entries for the additional tables, which do not necessarily belong to individual maintenance object entries, to the internal table CORR_KEYTAB (structure E071K). The same applies as for the exit routine at event 11.
The routine, following the example, is as follows:
FORM name12. DATA: RC LIKE SY-SUBRC. * 1. Zusätzliche Tabelle: T1 (in Stückliste enthalten) * CORR_KEYTAB-Eintrag (E071K) aufbauen: * 1.1 Initialisieren mit global vorbelegter E071K CORR_KEYTAB = E071K. * oder es ist auch möglich: * CORR_KEYTAB-TRKORR = E071K-TRKORR. * CORR_KEYTAB-PGMID = TRANSPORTER. "R3TR * CORR_KEYTAB-OBJECT = TRANSP_OBJECT. "TABU * CORR_KEYTAB-MASTERTYPE = MASTER_TYPE "VDAT * CORR_KEYTAB-MASTERNAME = MASTER_NAME "im Bsp. V1 * 1.2 individuellen Objektnamen angeben CORR_KEYTAB-OBJNAME = 'T1'. * ...Objektkey ist jetzt ermittelt, zum Tabellenupdate * zentrale FORM-Routine benutzen: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. IF RC NE 0. RC_SAFE = RC. ENDIF. * 2. zusätzliche Tabelle: T2 * ( NICHT in Stückliste enthalten) * - CORR_KEYTAB-Eintrag (E071K) aufbauen: * 2.1 Felder mit individuellen Werten füllen CLEAR CORR_KEYTAB. CORR_KEYTAB-TRKORR = E071K-TRKORR. CORR_KEYTAB-PGMID = 'R3TR'. CORR_KEYTAB-OBJECT = 'TABU'. CORR_KEYTAB-OBJNAME = 'T2'. CORR_KEYTAB-MASTERTYPE = 'TABU'. CORR_KEYTAB-MASTERNAME = 'T2'. * 2.2 zu transportierende Keys des Objektes ermitteln * und in die CORR_KEYTAB eintragen... ...... individuelles Coding, die View-Einträge können ...... der internen Tabelle TOTAL entnommen werden. CORR_KEYTAB-TABKEY = T2-KEY1. CORR_KEYTAB-TABKEY+4 = T2-KEY2. * ...Objektkey ist jetzt ermittelt, zum Tabellenupdate * zentrale FORM-Routine benutzen: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. * endgültigen Returncode ermitteln IF RC_SAFE EQ 0 OR RC EQ 0. * mindestens ein update erfolgreich CLEAR SY-SUBRC. "return ok. ELSE. "alle Updates nicht notwendig SY-SUBRC = RC. "return nicht ok. ENDIF. ENDFORM.