The transport interface for extended table maintenance has been changed in 3.0A (view maintenance, SM30).
In addition to the manual transport option, which exists since 2.0, there is now an automatic transport interface where all the changed entries are taken over into a change request to be specified when you save the object.
This new function is always active for client-independent objects and objects of delivery class "S". For client-specific objects it is active when required by teh client (see Changes and transports for client-dependent objects on the client table maintenance screen).
In addition, the new function can be deactivated for individual objects using the Transaction "Generate table maintenance dialog" (SE54; field Recording method).
You have to carry out the actions described in the following only if you have created your own table maintenance dialogs using the program RSVIEWGN or Transaction SE54 before Release 3.0. For the objects delivered by SAP, these actions have already been performed, i.e., no action needs to be taken.
Due to the changed transport interface for extended table maintenance, the generated components of the table maintenance dialog also had to be changed and must be re-generated.
If you have your own routines in your table maintenance dialogs to include other tables maintained via individual modules, you have to make minor changes in these modules.
Actions required
If you do not have separate FORM routines in your table maintenance dialogs to include other tables maintained via individual modules, all the required actions are now completed.
However, if you have used such routines, you have to edit the routines and transport them. You need to perform these actions for all the tables or views for which Table TVIMF contains entries for the events 10, 11, and/or 12.
Maintenance object: View AROTA01
Table | Comments |
---|---|
T9AR_TA1 | Primary table, changeable |
T9AR_TA1T | Text table for primary table, changeable |
T9AR_TA1S | Secondary table, changeable |
T002 | Secondary table, not changeable |
T002T | Secondary table, not changeable |
Table | Comments |
---|---|
T9AR_TA1 | contained in view |
T9AR_TA1S | contained in view |
T9AR_TA1T | contained in view |
T9AR_TA2 | not contained in view |
*--------------------------------------------------------
* FORM E071_AROTA01
*-------------------------------------------------------
* Filling VIM_CORR_OBJTAB with additional objects. Only * objects that are NOT listed in the object description * list (SOBJ) are to be included here. * In this case, only Table T9AR_TA3 is relevant. -------------------------------------------------------*
FORM E071_AROTA01. VIM_CORR_OBJTAB = E071. VIM_CORR_OBJTAB-PGMID = 'R3TR'. VIM_CORR_OBJTAB-OBJECT = 'TABU'. VIM_CORR_OBJTAB-OBJ_NAME = 'T9AR_TA3'. VIM_CORR_OBJTAB-OBJFUNC = 'K'. APPEND VIM_CORR_OBJTAB. ENDFORM.
*---------------------------------------------------------
* FORM E071KS_AROTA01
*---------------------------------------------------------
* Filling CORR_KEYTAB with the key entries of the * additional objects that belong to the current view * entry. When the call is executed, this entry is in the * corresponding work area. *---------------------------------------------------------
FORM E071KS_AROTA01. DATA: RC LIKE SY-SUBRC, RC_SAFE LIKE SY-SUBRC VALUE '1'. * 1. Additional object: T9AR_TA2 (included in * object list): * Build up CORR_KEYTAB entry (E071K): * 1.1 Initialize with E071K (global settings) CORR_KEYTAB = E071K. * or: * 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 "e.g.AROTA01 * 1.2 Specify individual object name CORR_KEYTAB-OBJNAME = 'T9AR_TA2'. * 1.3 Determine object keys to be transported * depending on the current view entry and * enter them in CORR_KEYTAB... LOOP AT IT9AR_TA2 INTO T9AR_TA2 WHERE KEY1 EQ AROTA01-KEY1. CORR_KEYTAB-TABKEY = T9AR_TA2-KEY1. * ...The object key has been determined. Use a central * FORM routine to update the table: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. RC_SAFE = RC * RC_SAFE. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN . * in check mode exit when a sub-object is not * included in the correction (RC <> 0) EXIT. ENDIF. ENDLOOP. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN . * in check mode exit when a sub-object is not * included in the correction (RC <> 0) SY-SUBRC = RC. EXIT. ENDIF. * 2. Additional object: T9AR_TA3 (NOT included in * object list: * - Build up CORR_KEYTAB entry (E071K): * 2.1 Fill fields with individual values CLEAR CORR_KEYTAB. CORR_KEYTAB-TRKORR = E071K-TRKORR. CORR_KEYTAB-PGMID = 'R3TR'. CORR_KEYTAB-OBJECT = 'TABU'. CORR_KEYTAB-OBJNAME = 'T9AR_TA3'. CORR_KEYTAB-MASTERTYPE = 'TABU'. CORR_KEYTAB-MASTERNAME = 'T9AR_TA3'. * 2.2 Determine object keys to be transported * depending on the current view entry and * enter in CORR_KEYTAB ... LOOP AT IT9AR_TA3 INTO T9AR_TA3 WHERE KEY1 EQ AROTA01-KEY1. CORR_KEYTAB-TABKEY = T9AR_TA3-KEY1. CORR_KEYTAB-TABKEY+4 = T9AR_TA3-KEY2. * ...The object key has now been determined. Use a * central FORM routine to update the table: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. RC_SAFE = RC * RC_SAFE. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN . * in check mode exit when a sub-object is not * included in the correction (RC <> 0) EXIT. ENDIF. ENDLOOP. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN . * in check mode exit when a sub-object is not * included in the correction (RC <> 0) SY-SUBRC = RC. EXIT. ENDIF. SY-SUBRC = RC_SAFE. ENDFORM.
*---------------------------------------------------------
* FORM E071KA_AROTA01
*---------------------------------------------------------
* Filling CORR_KEYTAB with the key entries of * the additional objects that cannot be assigned * to an individual view entry. *---------------------------------------------------------
FORM E071KA_AROTA01. DATA: RC LIKE SY-SUBRC. * 1. Additional object: T9AR_TA2 (included in * object list): * Build up CORR_KEYTAB entry (E071K): * 1.1 Initialize with E071K (global settings) CORR_KEYTAB = E071K. * or: * 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 "z.B.AROTA01 * 1.2 Specify individual object name CORR_KEYTAB-OBJNAME = 'T9AR_TA2'. * 1.3 Determine object keys to be transported * and enter in CORR_KEYTAB ... ...... Individual coding, the view entries can be ...... taken from the internal table TOTAL. CORR_KEYTAB-TABKEY = T9AR_TA2-KEY1. * ...The object key has now been determined. Use a * central FORM routine to update the table: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. RC_SAFE = RC * RC_SAFE. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN . * in check mode exit when a sub-object is not * included in the correction (RC <> 0) SY-SUBRC = RC. EXIT. ENDIF. * 2. Additional object: T9AR_TA3 ( not in object list * - Build up CORR_KEYTAB entry (E071K): * 2.1 Fill fields with individual values: CLEAR CORR_KEYTAB. CORR_KEYTAB-TRKORR = E071K-TRKORR. CORR_KEYTAB-PGMID = 'R3TR'. CORR_KEYTAB-OBJECT = 'TABU'. CORR_KEYTAB-OBJNAME = 'T9AR_TA3'. CORR_KEYTAB-MASTERTYPE = 'TABU'. CORR_KEYTAB-MASTERNAME = 'T9AR_TA3'. * 2.2 Determine object keys to be transported * and enter in CORR_KEYTAB ... ...... Individual coding, the view entries can be ...... taken from the internal table TOTAL. CORR_KEYTAB-TABKEY(4) = T9AR_TA3-KEY1. CORR_KEYTAB-TABKEY+4 = T9AR_TA3-KEY2. * ...The object key has now been determined. Use a * central FORM routine to update the table: CLEAR RC. PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC. RC_SAFE = RC * RC_SAFE. IF RC NE 0 AND CORR_ACTION EQ PRUEFEN . * in check mode exit when a sub-object is not * included in the correction (RC <> 0) SY-SUBRC = RC. EXIT. ENDIF. SY-SUBRC = RC_SAFE. ENDFORM.
To maintain the data, proceed as follows:
Carry out the second step after you have completed the activities, i.e.,immediately before you release the change task to the change request. Since all changed entries are logged, you cannot forget anything. In particular, you can also transport table entry deletions.
Of course you can still work as before using the manual transport interface. However, you cannot transport deletions this way.
To facilitate editing of change requests, it will be possible to go from the display of request contents (for example, in the Workbench Organizer) directly to the maintenance transaction for the respective object.