Chapter

4

SAP SOFTWARE LOGISTICS

A

ll changes to the software and customizing, which need to be promoted through an SAP application landscape, are managed through a process known as “Software Logistics.” This SAP term includes all processes and tools that are used to deploy, update, promote, and remove application objects or complete components. There are several processes, procedures, and tools available to the customer in order to achieve this. The most common tool is TMS (formerly known as CTS— Change and Transport System) and it is embedded in the SAP Basis layer.

All programs, screens, menus, texts, master data, transaction data, and configuration data reside in tables. These tables are stored in a relational database, which is hosted by a relational database management system or RDBMS. SAP supports various RDBMS vendors like Oracle, Microsoft SQLServer, IBM DB2 (several versions), SAPDB/MaxDB (formerly known as Adabas/D), and Informix4 (acquired by IBM). The development of programs, screens, and menus for SAP configuration is just changing the content of tables. Therefore, the promotion of these changes through a SAP landscape is just a copy process of table data from one system to another system, or from one client to another client.

4

Informix database support is only available under special conditions

15

16

UPGRADING SAP

Figure 4.1: Database tables in SAP.

In case an ABAP program is developed in system D01 and needs to be promoted to the test system A01, a set of tools is used to extract the data from the table that keeps all the ABAP programs (SAP stores all ABAP programs in table REPOSRC). This extraction is downloaded into two separate flat-files at the operating system level and copied from D01 to the A01 system. On the A01 system, the data is uploaded and inserted in the appropriate tables. A similar process is followed for other types of development or configuration data.

4.1

SAP DEVELOPMENT OBJECTS
In order to manage all these different objects like ABAP programs, reports, screens and table structures, SAP has organized these objects in classes. Each object is identified by its “Object-Identifier”, which consist of two parts:. The first part is the so-called “PGMID” and the second is the “Object Type”. The “Object Identifier” is used to classify all objects in the SAP system.

4.1.1

Object Classification
The link between objects and their object identifiers is kept in table TADIR, which is better known as the “Object Directory.” This “Object Directory” is used by the Transport Workbench to prepare objects for transportation between SAP systems. SAP has grouped their object identifiers in two main groups: “Whole-” and “Sub-”object identifiers. “Whole” object identifiers are referring to one or more objects that can be transported to another SAP system as a single identity. For example, we can take the “Whole” object “R3TR PROG” object identifier that consists of several sub-objects.

SAP SOFTWARE LOGISTICS LIMU REPS LIMU REPT LIMU VARI - ABAP Report Source Code Text - ABAP Report Description - ABAP Report Variant

17

We can transport these individual sub-objects separately, however, if we want to transport them together, we just include R3TR PROG into the transport. There are two “Whole-” object identifiers: R3TR, which refer to transportable objects and R3OB, which are application objects. All “sub-” object identifiers start with LIMU. The combination of the PGMID, object type, and object name is unique in the system and stored in table TADIR. For example, ABAP program RSPFPAR is stored in its own unique row in TADIR as “R3TR PROG RSPFPAR.” A complete list of supported object identifiers in SAP R/3 can be found in Appendix A, however, SAP BW does have additional object identifiers that are unknown to R/3. TIP In table TADIR, you will find a PGMID that is called “HEAD” and object type “SYST” and object name “<your database SID.” When you have to reinitialize the Transport Organizer with SE06 or STMS after a database refresh using one of SAP’s system copy guides, this particular row in table TADIR is adjusted.

4.1.2

ABAP
ABAP is a programming language that is shipped with all SAP software products based on the SAP NetWeaver ABAP AS. The history of ABAP is almost the same as the history of SAP AG itself. ABAP was created as a “reporting” language for SAP R/2, the predecessor of SAP R/3, in the late 1970s. ABAP stood for “Allgemeiner Berichts- und Aufbereitingsprozessor,” which in English means “General Reporting and Preparation Processor.” With the release of SAP R/3 in 1992, SAP also released a new evolved ABAP/4, which stood for “Advanced Business Application Programs/fourth generation language.” SAP R/1 and SAP R/2 were both programmed in Assembler/370 and at that time ABAP was basically a sequence of assembler macros and instructions. In order to overcome some shortages of ABAP, SAP developed ABAP/3, which was a third-generation language extension of ABAP and offered the ability to create business programs and dialog controlled transactions. The programming language ABAP/4 is accessed through the ABAP Workbench, which allows developers to create programs, screens, and menus. The business functionality of R/3, BW, CRM, SRM, and APO is entirely written in ABAP/4. The combination of ABAP/4 language, the ABAP Workbench, and the scalability of the SAP Basis Kernel helped some companies decide to use it as their enterprise development platform. SAP has evolved this to the “standalone” SAP Web Application Server as a runtime platform for general applications. SAP still implements improvements on their ABAP AS. Even now a lot of development effort has been shifted into the Java AS space. ABAP supports object

However. D010Q. the ABAP Virtual Machine will do this on the fly.6C or table REPOLOAD for releases as of 6. where the Java source code is compiled by the “javac” compiler into a platform-neutral class (Java byte code) format that is interpreted by the Java Virtual Machine (jre or java). you will have double growth in these load tables: both Little.” The latest development includes the support of Web browser–based applications and server-side scripting. this load is not directly executed by the CPU.and Big-Endian formats to store their compiled coding. the entire library of ABAP programs is changed.6C or table REPOSRC for releases as of 6. However. . and PowerPC). BSP allows developers to combine HTML with ABAP coding and generate HTML output for Web browsers. In case a database is exchanged between these kinds of machines. This process is more or less similar to the Java language. HP-PA. the resultant ABAP loads are stored in three different tables. this will impact the end-users response time. Table D010L or REPOLOAD contains the actual ABAP load. D010Q.6. and D010Y. D010Q.. such as the last time of change and the size of the data in D010L.and Big-Endian data will be stored. Table D010LINF contains general information about the load. which is part of the ABAP (or Developers) Workbench and stored as ABAP source code in table D010S for SAP Basis release up to 4. After the program is written. The table D010Y is no longer used as of SAP releases above 4. The ABAP load consists of four tables in the database: D010LINF. which supports Little Endian (such as Alpha or Intel) and a machine that supports Big Endian (such as SPARC. ABAP code is written in the ABAP Editor. which resides in the SAP Kernel. like ASP = Microsoft Active Server Pages and JSP = Sun Java Server Pages) with BSP (Business Server Pages). SAP answered to the increasing demand for so-called xSP-based Web servers (x Server Pages. it is generated (or compiled) to executable code. This executable code (also known as report load) is stored in the tables D010L. and D010Y. SAP uses Little. Therefore.10. it needs to be regenerated before it can be used. the ABAP report load is not changed. but rather through the ABAP Virtual Machine. ABAP report loads cannot be exchanged between a machine. During one of the upgrade phases. After the generation of the ABAP source code. tables D010Q and D010Y contain the line references or the symbol table of the generated program.18 UPGRADING SAP orientation and is therefore called “ABAP Objects. therefore. Every time an ABAP program is changed.10. and D010Y for SAP Basis release up to 4. all ABAP report loads need to be regenerated. Both server-based scripting through BSP and client-based scripting through JavaScript is supported. all ABAP programs need to be regenerated after the upgrade. There is a significant difference between the two byte-code formats. When you run your application servers (dialog instances) in a mixed environment on Intel CISC machines and UNIX RISC machines. better know as Repository Switch. D010L. However. If a program has not been generated in advance.

D010Q.D010LINF.SAP SOFTWARE LOGISTICS 19 Figure 4. More information can be found in SAP Note 668560. (3) Run transaction SGEN to regenerate all ABAP loads As of SAP Basis release 6. compile. the ABAP load tables are not copied over. The ABAP source is stored in table REPOSRC and all ABAP load is stored in REPOLOAD. TIP The compilation phase of ABAP programs is known under two terms: generation and activation. SQL> truncate table SAPR3. the ABAP Source and Load tables have been changed. SQL> truncate table SAPR3. SQL> truncate table SAPR3. and run an ABAP program.10 and above. . Therefore you remove the load inconsistency by just delete all rows from table REPOLOAD only. When you perform an OS/DB migration using the R3load toolset. It’s also possible to delete all entries from this table in case of an inconsistency: (1) Be sure all users are of the system (2) Delete all ABAP loads (for Oracle RDBMS): SQL> truncate table SAPR3. you have to run SGEN to populate them again. After the migration. using “truncate table” statement.2: Edit.D010L. Both terms are used by SAP.D010Y.

obsolete Consolidation system. All these different objects can be assigned to one single development class. newly created objects can be assigned to it. SAP has renamed the development class into “Development Package” or just “Package. Through this mechanism. a package is more than just a new name for development classes. development objects that have a logical relationship can be easily managed. Packages are more or less object-oriented development classes. and tables. It’s relatively easy to exchange all development objects belonging to one single development class between two SAP systems. However. Third-party development objects. for example.1. certain industry-specific programs. This applies for both SAP objects and for all customer and partner objects. Packages can contain other packages as well. transactions. screens. which are identified by their unique name. The “$TMP” development class is normally used to perform quick development of programs.10. The TDEVC table has the following structure (most important fields): Field DEVCLASS INTSYS CONSYS CTEXT AS4USER NAMESPACE COMPONENT Type (dimension) CHAR (30) CHAR (10) CHAR (10) CHAR (60) CHAR (12) CHAR (10) CHAR (20) Description Name of Development Class Integration system. These objects are not assigned to a “regular” development class and therefore can not be transported to another SAP system. . which contains “local” objects. After a “new” development class has been defined. obsolete Description of development class User/Creator of development class Name space of development class SAP Component The development class “$TMP” is a special development class. so transportation of these objects to other SAP systems is possible. you can assign “local” objects to a regular development class. Development classes. which consists of several ABAP programs. SAP has extended this mechanism by the introduction of Name Spaces.20 4. Development classes are stored in table TDEVC and because there is a maintenance dialog available. can be created using transaction code SE80 in the Development Workbench.3 UPGRADING SAP Development Classes All objects in the SAP system are grouped in Development Classes.” However. are delivered with their own development class. they can be maintained using SM30. Assume your company will develop certain functionality in SAP for business usage. Since the release of SAP Web Application Server 6.

For objects in the name-range A*-X*. you only need to have a developer access-key. All objects that start with letter Y are reserved for either customers or SAP partners. ABAP report RSWBODVC (as of SAP R/3 release 4. Objects.SAP SOFTWARE LOGISTICS 21 TIP Assume you’re performing an upgrade of an SAP instance. Both developer. Name-Range Y* Z* A* – X* Description SAP partners Customer development SAP developments Example Object Table YINVOICE ABAP ZTEST ABAP RSUSR003 When you create a “new” object in the name-ranges Y* and Z*. These individual name-ranges are stored in table TRESC.1. you also need an object-key. Name-range also does exist for customizing tables and generated reports. like Y* and Z* Can name-range be ignored? Generation flag Name of last editor Date of last change . 4.4 Name-Ranges To make distinction between objects developed by SAP or by its customers. and you need to adjust an object during the upgrade. SAP uses this to keep track of all changed objects that are part of SAP standard delivered objects. which is part of a non-existing development. SAP has introduced the concept of name-ranges. which has the following structure: Field OBJECT TABNAME FIELDNAME KEYLOW IGNOREFLAG GENFLAG LASTNAME LASTDATE Type (dimension) CHAR (4) CHAR (30) CHAR (30) CHAR (30) CHAR (1) CHAR (1) CHAR (12) DATS Description Object type like REPS or TABU Name of customizing table Field in table Name-range. for instance tables or ABAP programs that starts with the letter Z.and object-keys are stored in SAP tables DEVACCESS and ADIRACCESS. however. Name-ranges are reserved naming conventions. You cannot use TMS during the upgrade. All other objects are belonging to SAP.6) offers the ability to create missing development classes. do belong do the customer. which is a copy of another SAP instance. which is used for object-names. which can be obtained from the SAP Service Marketplace.

1. All installed namespaces.com/namespace. SAP A. and SAP itself. it’s important to know whether an object is a customerdevelopment object or if it’s delivered by SAP. Some known namespaces are: Namespace /BMC/ /SAPDMC/ /BI0/ /BIC/ /VIRSA/ Owner BMC Software SAP A. The upgrade will preserve all customer-developed objects during the upgrade and restore it afterward. and software products without the risk of name clashes.G. screens. it is possible that this software comes with its own namespace.sap. The namespace identifier is included as an object in the transport request as well. This means custom-created developments are not destroyed. or tables) from thirdparty vendors.0B. This is done online using the following URL: http://service. which has the following layout: Field NAMESPACE ROLE LICENSE EDITFLAG SSRCFLAG SAPFLAG GEN_ONLY Type (dimension) CHAR (10) CHAR (1) CHAR (20) CHAR (1) CHAR (1) CHAR (1) CHAR (1) Description Namespace name Role of namespace License key Modifications allowed SSCR dialog box SAP standard delivered Only generated objects allowed Since the introduction of namespaces in SAP R/3 4. needs to be identified with “/XYZ/ZTEST. SAP A.G. a significant number of namespaces have been registered with SAP. SAP namespaces need to be registered with SAP first before they can be used. 4.” . which belongs to a namespace /XYZ/. are stored in table TRNSPACE.5 Namespaces Namespaces are identifiers assigned exclusively by SAP that enable SAP customers. SAP A. including SAP’s own namespaces. to develop objects.G. SAP Partners.22 UPGRADING SAP For the upgrade. components. When you deploy software (ABAP programs. Description BMC Patrol (Trak) objects Legacy Data Migration Workbench SAP BW standard objects SAP BW customer objects Virsa (SAP GRC) An object with the name ZTEST.G.

These different documents are uniquely identified by a document number. which are basically kinds of counters. Playing around with number ranges can be quite dangerous. but leaves this up to the user to fill in. This document number is just a sequential number that is generated by SAP or assigned by an external source.1. a sales order document using transaction VA01. Changed values might lead to the creation of duplicate document numbers. A number range is assigned to a particular fiscal year and contains both a start and end value. These locks are used to protect objects against overwrites and protect the SAP system against . but each belongs to its own client. Number ranges within SAP are implemented using Number Range Objects. which means you can have the same sales order document number in the database. for example.’ SAP will not create a new document number for you.SAP SOFTWARE LOGISTICS 23 4. If the flag EXTERNIND is set to ‘X.7 Development Locks SAP uses a few flags and tables to store Development Locks. Every time a new document is created. SAP has its dedicated Number Range Objects residing in table NRIV.1. goods movement letters. For each document in the system. contracts. sales order documents. HR records.6 Number Ranges The SAP R/3 database is a large collection of all kinds of documents: purchasing order documents. for example. etc. This NRIV table is client specific. Transaction SNRO includes all Number Range Objects. 4. The table NRIV has the following structure: Field OBJECT SUBOBJECT NRRANGENR TOYEAR FROMNUMBER TONUMBER NRLEVEL EXTERNIND Type (dimension) CHAR (10) CHAR (6) CHAR (2) NUMC 4 CHAR (20) CHAR (20) NUMC 20 CHAR (1) Description SAP logon client Name of Number Range Object Number range subobject value Number Range version Fiscal year for document Start range End range Current number External number range CLIENT (MANDT) CLNT (CHAR (3) ) The maintenance of Number Range Objects is done at two levels as part of the general customizing through IMG (Implementation Management Guide) using transaction SPRO or using transaction SNRO. the end user of some application. SAP will use this counter to assign a unique number to this document and increase the value of this counter by one.

8 Development Keys In order to develop something in SAP. TABL) Key used in CTS Length of CTS key Special editor required Request/Task Creator of object Key used in CTS If we create a new ABAP program called ZTEST.1. The object key is only required for SAP objects. and a developer key. two keys are required: the object key.24 UPGRADING SAP duplicate objects.” The second most important lock in the SAP system is the “Repair Flag. This means that customer objects are excluded from this mechanism. which is bound to a certain SAP-shipped object. As soon as a developer creates an object. during its creation. an entry is added to the TADIR table. 4.” This flag resides in table TADIR in field SRCDEP. When another developer tries to change an object. The repair flag can be removed using transaction SE03. When. The object keys are bound to each object. SAP uses this mechanism to protect “Consolidation” (quality assurance) and “Integration” (production) systems against modifications. the developer will get an error message. listed in table TADIR. the object is also added to a transport request. For the transport locks it checks table TLOCK and for repair flags it checks table TADIR. another entry is added to the TLOCK table.’ when an object is changed in an SAP system that has not been marked as a “development” system. All tables that are in maintenance status are listed in table TLOCK. and stored in table ADIRACCESS: . Table TLOCK has the following structure: Field OBJECT HIKEY LEN EDTFLAG TRKORR AUTHOR LOKEY Type (dimension) CHAR (4) CHAR (120) INT (10) CHAR (1) CHAR (20) CHAR (12) CHAR (120) Description Object type (PROG. which resides in an unreleased transport request so it has its own entry in table TLOCK. There is a phase in the upgrade process that checks whether there are objects locked in transport requests and whether the system contains repair flags. Developer keys are required for any developer working on the system. The repair flag is set to ‘X. the OBJECT field will contain value “PROG” and HIKEY will contain a text similar to “ZTEST yyyyyyyyyyyyyyyy. When the repair flag is set to an object in the SAP production system. Only when an object is released in TMS will the TLOCK entry will be removed. The TLOCK table contains all locks that are used for objects that reside in Transport Requests. it will protect this object against overwrites from outside like transports and Support Packages.

APO. Table DEVACCESS has the following layout: Field UNAME ACCESSKEY Type (dimension) CHAR (12) CHAR (20) Description User name (as in USR02) Developer key from SAP TIP If you want to prevent any development in your system. Deleting all entries from table ADIRACCESS.3: Data table with its attributes. All SAP data is stored in database tables. Whether it’s R/3. or CRM. These tables are organized at development-view level and from a technical-view level. these components are following the same structure. The developer keys are stored in another table called DEVACCESS. after the upgrade. you have to be sure no new keys can be obtained from the SAP Service Marketplace. will prevent developers from modifying standard SAP again. 4. . However. you just delete all entries from table DEV ACCESS.2 DATA TABLES Data is organized at different levels within the SAP software. This table might be of help to check what objects have been changed in the SAP system.SAP SOFTWARE LOGISTICS 25 Field PGMID OBJECT OBJ_NAME ACCESSKEY Type (dimension) CHAR (4) CHAR (4) CHAR (40) CHAR (20) Description Object ID (as in TADIR) Object type (as in TADIR) Object name (as in TADIR) Modification key from SAP This mechanism is put in place as an extra hurdle to manage all changes to standard SAP objects. BW. Figure 4.

If you look at the table using any database tool. but cannot be accessed directly using SQLPLUS or any other database tool. Pooled tables – These “logical” tables can be viewed by transaction SE11 or SE16. for example.000 tables in the database. An average SAP R/3 instance has more than 10. but have an extra logical structure on top.2. you will see exact the same layout compared with what you see with. A fourth table type would be INDX tables that were introduced with the HR module in SAP R/3. SAP also supports: Structures Views Appends Let us first concentrate on the “physical” table types. Most of them are transparent tables. SQLPLUS in Oracle. Transparent tables – are tables that have a 1:1 relationship between the SAP Dictionary and the underlying database. These table types are: Transparent tables Pooled tables Clustered tables And besides these three table types.1 UPGRADING SAP Table Types There are several types of tables that SAP supports. This structure is unique to SAP HR and can only be interpreted as such. These are tables containing rows (or records) that are stored in the database. you will only see the “table pool” that .4: SAP transparent table mechanism. Figure 4. If you look at the table definition in transaction SE11. INDX tables are actually transparent tables.26 4.

Figure 4. not all RDBMS vendors were able to support a large number of tables.” or a “clustered table. RAW data fields normally can not be accessed using a database tool like SQLPLUS. such as AT01 and DDSYN. The mechanism of “pooled tables” was introduced by SAP to support a large number of tables. Data that belongs to that particular table is stored in field VARDATA.” The difference is only noticed when the table is accessed using database tools like SQLPLUS or ODBC. This means that an ABAP program does not experience the difference between a “transparent table. This was because all customizing of SAP R/3 lies in tables and the number of rows per table can be very small.SAP SOFTWARE LOGISTICS 27 contains “pooled tables. SAP designed a mechanism to combine these small tables into bigger tables.5: SAP Pooled table mechanism.” The DBSL is responsible for accessing these tables from within ABAP programs. The structure of a table pool is as follows: Field TABNAME VARKEY DATALN VARDATA Type (dimension) CHAR (10) CHAR (n) INT2 (5) RAW (n) Description Pooled table name Maximum key length Length of VARDATA row Pooled table data itself All the pooled tables are listed in field TABNAME. Therefore. .” “pooled table. An example of this is the ATAB table. which you can access using SQLPLUS. In the early days of SAP R/3. This ATAB table contains hundreds of small customizing and control tables. which is a RAW data field.

An example of a table cluster is the RFBLG table. Last key field Number of next page Time stamp field Length of VARDATA row Other fields data Figure 4. The SAP DBSL layer takes care of the proper access by ABAP programs.28 UPGRADING SAP Clustered tables – are similar to pooled tables in the sense that they are also not accessible using database tools like SQLPLUS at the RDBMS level.6: SAP Clustered table mechanism. CLKEYN PAGENO TIMESTMP PAGELN VARDATA Type (dimension) CHAR (*) CHAR (*) ……………. Field CLKEY1 CLKEY2 ……………. which is used by the FI module in SAP R/3. It contains the table BSEG that contains all financial posting documents.. .” Tables that are clustered do have a common set of keys and therefore “clustered tables” and “table clusters” share a set of data fields.” Clustering of tables is supported by most of the RDBMS vendors and it’s therefore not a SAP-specific mechanism like “pooled tables. Clustered tables are “logical” tables that are grouped together in a “table cluster” or just “cluster. CHAR (*) INT2 (5) CHAR (14) INT2 (5) RAW (*) Description First key field Second key field …………….

Besides “real” tables. It requires a significantly lower number of disk I/Os to access data and therefore it’s purely a performance gain. Performance of accessing data is the main reason to put tables in a cluster. SAP has reduced the number of pooled and clustered tables significantly. During upgrades it can happen that pooled and clustered tables are converted into transparent tables. such as views. Since the first release of SAP R/3 back in 1992. However. Modern SAP tools like BW. NAME FROM T000. SAP allows you to convert certain pooled and clustered tables to transparent tables in order to make them more open. you have to use ABAP instead or you have to start considering converting the data. However. first read the appropriate OSS notes before you start using transaction SE14 to do this job.7: Relationship between BSEG and RFBLG.SAP SOFTWARE LOGISTICS 29 Figure 4. which offer a certain view to one or more tables. APO. there are also drawbacks to pooled and clustered tables. This means that the table structure is created at the initialization step of an ABAP program and is destroyed at the end. V_T100. CRM. structures. Views – are data access objects. and appends. You cannot access them directly from the RDBMS level. SAP also supports “virtual” tables. and SRM do not contain pooled or clustered tables at the application level. This means that if you want to use “external” (third-party or custom written) programs to access this data. Structures are used to organize and map data in . Views are constructed using SQL statements like: CREATE VIEW V_T000 AS SELECT MANDT. will only show the fields MANDT and NAME of table T000. Structures – are memory-only structures that are runtime bound. This view.

Structures are often used in combination with “internal” tables.CONTFLAG. T001. import. 4. Appends – are additional fields added to existing tables. These are the table delivery types to consider: Table Delivery Types ‘A’ – Application Table ‘S’ – System Table ‘W’ – System Table ‘E’ – Control table ‘C’ – Customizing table Description Example Table Protected against SAP MARA. Appends can be added to tables by using include constructions.” we mean SAP Support Packages or SAP Release upgrades.3 Table Data Classes The “data class” determines the link between the SAP database table and its “physical” or “technical” location. a new concept of Shared Memory Object was introduced. which does not have to be stored permanently. As of SAP AS 6. The following data classes (or TABARTs) exist in an SAP R/3 system: . EKKO. This shared object is basically a Structure that can be shared between work processes and therefore is not destroyed at the termination of the ABAP program. and deletions that occur during upgrades and Support Packages. only insertions With “by SAP.2. only insertions KNA1 Maintenance by SAP only Maintenance by SAP only CCPROF DD02L SAP and customer do have ATR1 different name ranges Maintenance by customer. which assigns the table to a data class. Each table has a so-called TABART attribute. TVKO SAP will not change entries in this table ‘G’ – Customizing table Protected against SAP RFCDES import.30 UPGRADING SAP programs. 4. Internal tables are tables that only exist in memory and can be compared with an ARRAY in Pascal of BASIC or a STRUCT in C. Each table has a Delivery Type. USR02.2 Table Delivery Types Table Delivery Types is a mechanism to protect tables against changes.2. overwrites.40 ABAP. The Delivery Type attribute is stored in table field DD02L. which is an attribute that tells the Software Logistics tool how to treat this table.

Indexes might decrease performance when bulk inserts or updates are done on the database. or BRTOOLS in Oracle. The TABART (data class) itself is stored in table DDART and the relationship between a table and the storage container in the database is stored in TA<DB> for tables and IA<DB> for indexes. However.2. The TABART will determine in which tablespace the table is created. An index is a separate information container. When an additional tablespace is created with a tool like SAPDBA.4 Indexes In order to improve access times to the data in the database. it’s therefore important to set a project standard that guides developers to use the correct data classes and thus tablespaces or devspaces. . Indexes are maintained per individual tables by transaction SE11 → Indexes. an index can only be defined for one table only. TIP When a developer creates its own table in SE11. 4. A table might have one or more indexes defined. which is part of the OS/DB Migration kit and used during upgrade phase EU_IMPORT. it’s possible to create and use indexes. An SAP R/3 system running on Oracle uses tables TAORA and IAORA to store the link between TABARTs and Oracle tablespaces.SAP SOFTWARE LOGISTICS 31 TABART name APPL0 APPL1 APPL2 SLDEF SPROT TEMP USER2 Description Master data Transaction data Customizing data Repository switch Temporary tables User-defined tables TABART name SAUS SDIC SDOCU SLOAD USER1 USER3 Description Exchange tables ABAP DDIC tables Documentation tables Report load tables Source tables User-defined tables User-defined tables Spool and log tables SSRC Field DD02L. where “nn” is a sequential number between 0 and 99. TIP SAP software is shipped with a large number of indexes defined. There are two types of indexes: primary and secondary indexes. it will also create a new TABART for you. The name convention for this is USERnn.CONTFLAG contains the value. it’s possible to specify the TABART of this new table. The “main” purpose of secondary indexes is to increase the performance on “transparent” tables during DML operations. which assigns each table to a certain data class. SAP BW offers the ability to drop all indexes for an InfoCube before the data loads and rebuilds them afterward. which has its own name and table spaces and contains certain key fields that are sorted. Only add additional indexes when it’s absolutely required. TABARTs are also used by the R3load tool.

ppp ALL Description Table logging switched OFF for entire system Table logging switched ON for this client nnn Table logging switched ON for these clients Table logging switched ON for entire system . Table buffering settings of tables can be changed using transaction SE11 Technical Settings.5 UPGRADING SAP Table Technical Settings Besides TABART assignments.PROTOKOLL). Tables that will grow fast need to be stored in large table spaces like PSAPBTABD or PSAPSTABD.32 4.” which is used for table size growth and “Table Logging. This option allows you to track all changes performed on a certain table. The PBUFFERUNG and BUFALLOW fields are used to control the table buffering mechanism of SAP. which is set per table in the SAP system. To increase the query performance of the SAP application. it can be practical to use table logging. the instance parameter “client/ rec” needs to be set. Technical table settings are stored in DDIC table DD09L. 4. mmm.” This “table logging” can be used to capture all row changes per table. you can switch on memory buffering for certain tables. Support values are: client/rec value OFF Nnn nnn. Important settings are “Table Category. is the “table logging” option. It is not recommended to use it for application (master and transactional) tables because of the large number of rows. Especially for customizing tables. tables also have other technical settings as well.6 Table Logging An import flag (DD09L. This table contains the following structure (only the important fields are shown here): Field TABNAME TABKAT TABART PUFFERUNG PROTOKOLL TRANSPFLAG ACTFLAG BUFALLOW Type (dimension) CHAR (30) CHAR (2) CHAR (5) CHAR (1) CHAR (1) CHAR (1) CHAR (1) CHAR (1) Description Table name (like in DD02L) Table size category Table data class (like in DDART) Table buffering indicator Is table logging on? Converted to transparent table? Activation flag Table buffering allowed? The “Size category” field is used to indicate the growth rate of the table.2.2. Before this option can be used.

index …etc.00).SAP SOFTWARE LOGISTICS 33 After the activation of the table logging option. but not known to the SAP dictionary and therefore DIFFKIND has value “01”.7 Enterprise.6C) and MLICHECK (table with the license key information for SAP releases up to 7.2. such as table MSSQL_LOGIN_INFO on Microsoft . Table DBDIFF has the following layout: Field OBJNAME DBSYS OBJTYPE DIFFKIND SOURCE Type (dimension) CHAR (30) CHAR (10) CHAR (4) NUMC (2) CHAR (40) Description Name of DB object (table. view. It is important to control the growth of these tables.5A and higher). D010L.g. the ABAP program RADBDIF is executed. Examples of such tables are D010S (ABAP Source up to 4. not in database 04 – Field type(s) difference between database and dictionary 08 – Other definition (fields. Informix) Table. D010Q. 4. and MLICHECK are known to the database. Because the data can grow significantly. After a “fresh” install of SAP. Only for tables where the technical setting “table logging” is switched are taken into account. therefore. this program checks whether the table DBDIFF is consistent. view…) Name of RDBMS (e. These tables are listed in table DBDIFF. a conversion is required. DIFFKIND value “99” is applicable for tables that reside in the database for RDBMS management reasons. especially before an upgrade to SAP R/3 4. not in dictionary 02 – Mandatory in dictionary. sequence) in dictionary compared in database 60 – Secondary index needs to be created before the primary index 61 – Table without indexes 99 – Optional object. You can also use SCU3 to delete obsolete data from these tables.7 DBDIFF There are tables in the database that are not known to the SAP Data Dictionary and therefore cannot be accessed by SAP through ABAP OpenSQL. Type of inconsistency ABAP to create DB object The DIFFKIND field indicates the reason for the difference between the DD (Data Dictionary) and the DB (Database): 01 – Mandatory in database.0B) or DBTABLOG (SAP R/3 releases 4.. The contents of these tables can be viewed using report RSVTPROT or transaction SCU3. SAP starts to store all data changes in table DBTABPRT (SAP R/3 releases up to 4. you should only use this option on customizing tables and user-master tables for security audit purposes. The structure of DBTABLOG will change. should not be checked by RADDBDIF Tables like D010S.

and tables.” Customizing objects are implemented through several mechanisms.” which means that when you want to configure the controlling areas in your SAP R/3 system. . screens. through views or logical transport objects (individual table rows or keys). All customizing objects can be viewed by using transaction SOBJ. 4.34 UPGRADING SAP SQLServer or table PLAN_TABLE on Oracle and DB/2. for example. The information that SOBJ uses is stored in several tables: OBJH (Object Header). OBJT (Object Text elements). For maintenance of the DBDIFF table. SAP created the DBDIFFVIEW object. which offers you the ability to see what tables are attached to the object. SAP also contains logical objects like “Customizing Objects. Table OBJH contains all relevant information for customizing objects (only the most important fields are shown here): Field OBJECTNAME OBJECTTYPE CLIDEP LANGDEP ALEDEP OBJCATEG TRCOMPLETE TRDISJUNCT Type (dimension) CHAR (30) CHAR (1) CHAR (1) CHAR (1) CHAR (1) CHAR (4) CHAR (1) CHAR (1) Description Name of customizing object Type of object Is object client specific? Is object language specific? Is object ALE specific? Object category Object transport must be complete Object is disjunct to other objects The following Customizing object types are known to the SAP system: OBJECTTYPE C L S T V D Description View cluster (transaction oriented) Logical transport object Table with text Individual transaction object View Dummy object (SAP internal usage) The most common customizing object is that of the type “view.3 CUSTOMIZING OBJECTS Besides physical objects like ABAP programs. and OBJM (Object Method functions). which can be edited through transaction SM30.

LANGDEP. a SAP system also has several other objects. This customizing object links to the following customizing tables T001. CUSY (client independent or cross-client customizing). These other objects are: Search Helps and MatchCode Object – which is a special dictionary object for helping end users find certain documents in the system. TKA00. 4. The new search facilities are based on “Search Helps” and the introduction of an external search and index tool called . Objects are managed through the Development Workbench and in particular the Object Browser under transaction SE80. SAP only adds or changes values within client 000.SAP SOFTWARE LOGISTICS 35 using transaction SPRO (Customizing IMG). See SAP Note 129260 for more details. APPL (application object). you’re basically maintaining view V_TKA01_GD. TKVS. however.4 OTHER OBJECTS Next to tables. The table TKA01 is marked as being the primary table.” Figure 4. The fields CLIDEP. Tables that are created by the customers themselves using transaction SE11 are also listed in here as type “S. TKA02. and SYST (system or workbench object). and ALEDEP indicate how these customizing objects need to be treated by client copies. and TKVST. TKA01. ABAP programs and screens. language imports and ALE distributions. SAP.8: Customizing object embedded in IMG. has stopped using match codes in their applications. INFO The content of the SAP delivery clients 000 and 001 are affected by upgrades. The field OBJCATEG classifies all objects in categories: CUST (client-dependent customizing).

The ABAP coding is connected to screen numbers using PAI (Process After Input) and PBI (Process Before Input) modules. ©Copyright SAP AG.9: Search Helps are implemented as F4 in input fields.36 UPGRADING SAP T-Rex should eliminate the need for embedded search objects. Each screen consists of one or more screen numbers. which are connected to each other using the screen flow. These modules are event-handlers written in ABAP and are triggered after a user response. A screen is created or maintained through transaction SE51 (SAP Screen Painter).10: SAP graphics view of ERD data modeler. Screen – All dialog screens in SAP are identified as objects. Figure 4. Figure 4. This shows a small dialog box that offers the ability to enter the search criteria. . Data Model – Under transaction SD11 a case tool resides that offers the ability to create and edit data models according to the ERD-schema technique. The objects can be accessed through transaction SE11. Search Helps are objects that are connected to screen input fields and direct the end user to press F4.

except for restart option Start delayed: This is a so-called V2 update Collective Run: This is a so-called V3 update Menu – SAP offers a large number of menus. ©Copyright SAP AG. The transaction SE63 is used for translations. Message – are the text messages. Text elements can be created and maintained using transaction SE32.” Function modules are created and maintained through transaction SE37 and contain various attributes. which can be created and maintained through transaction SE41 (SAP Menu Painter). This option has four suboptions: Start Immediately: Function module is directly executed Start Immediately. Text Element – is an object that can be assigned to a location on a screen. There are four types of messages: . SAP offers the ability to make screen language independent.SAP SOFTWARE LOGISTICS 37 Figure 4. which are shown at the bottom of the SAPGUI screen in case of an information notification. The possible attributes are: Normal Function module: Can be called with “CALL FUNCTION” statement Remote Function module: This function can be called from within another system using “CALL FUNCTION … USING DESTINATION. No restore: Same as above. The created menu items can be used to start certain ABAP programs and transactions.11: SAP Screen Painter.” Update Function module: This function code is executed by a UPD or UP2 process asynchronously. warning or error message. By creating different translations for one text element. Function Module – Is a piece of ABAP code that can be called from other programs by using the statement “CALL FUNCTION. All messages are grouped into “Message Classes” and can be maintained using transaction SE91.

” Warning: Just to inform the user of a “small” issue. 354825 has been created. The following example displays five times the text “hello world” on the Web browser: <%@page language=”abap”%> <html> <body> <center> <% do 5 times. %> <font size=<%=sy-index%>> Hello World! <br> </font> <% enddo. a situation around an application or database server that is down. ©Copyright SAP AG. Information: Just to inform the user. Abort: A serious error from which SAP cannot recover from. For example.12: SAP Menu Painter.O. a wrong data entry. %> </center> </body> </html> The page is shown at http://<hostname>:8080/sap/bc/mypage. The BSP is a “dynamic” HTML extension that is using the “ABAP Personality” of the SAP Web Application Server 6. BSP – Business Server Pages are SAP solution for server-side scripting. Error: To inform the user about a recoverable error.38 UPGRADING SAP Figure 4.10 or higher. For example. such as “P. which is exported from the SAP system using transaction SICF to the ICMan (Internet Connection .

Figure 4.0. The Web Dynpro technology is based on the screen painter with additional options and adopted from the Java community. ©Copyright SAP AG. where in ABAP the code is developed through the ABAP Workbench instead. The screens (type R3TR WDYN) are built using transaction SE80 → Object “Web dynpro” and interpreted by the Dynpro processor.13: SAP Web Dynpro builder. . the ABAP language has been extended with Web Dynpro for ABAP. This extension fulfills the requirement to create screen-based. The page is written in HTML and all ABAP code is added using “<% %>” tags. a user screen is painted and ABAP coding can be generated or is added to the various screen elements. event-driven applications that ease the development cycle of user interfaces. The Web Dynpro for ABAP is based on the MVC (ModelView-Controller) development paradigm. SAP also supports Java and Web DynPro for the server-side scripting and supports JavaScript for client-side scripting.As of SAP NetWeaver 7.SAP SOFTWARE LOGISTICS 39 Manager). which is the IDE (Integrated Development Editor) for Java in SAP. The BSP pages are objects that are created and maintained through transaction SE80 – Object Browser. Web Dynpro . Once in Web Dynpro. The “Web Dynpro for Java” code is built using the SAP Development Studio.

The CTS toolkit can be divided into two components. SE03 – Configuration of the CTO. each with its own transactioncode. SE03. . and messages. The first component is called CTO (Change and Transport Organizer) and is located in R/3 and accessible through transactions. Since SAP R/3 4. which are located at the operating-system level. such as SE01. such as ABAP programs. SE06 – Creation of a unique SAP instance. The CTO contains three different organizers. called TMS (Transport Management System) and can be accessed through transaction STMS.0A. SE06. SAP has added new functionality to the CTS toolkit. ©Copyright SAP AG. SE10 – Customizing organizer: This utility can be used to manage transport requests. Besides these three.5 UPGRADING SAP CORRECTION AND TRANSPORT SYSTEM The Correction and Transport System (CTS) is a toolkit that is available in all SAP Components that are based on the ABAP engine.40 4. The second component is called Transport Tools that consists of several executables like tp and R3trans. text. The CTS is used to manage all development object changes and corrections in the SAP system. SE09 – Workbench organizer: This utility can be used to manage transport requests. and TMS. which do contain development objects.” It keeps track of all development objects and configuration changes by putting them into change or development requests. It is used to promote these changes in a controlled fashion through a so-called SAP system “landscape. CTO. which do contain customizing settings.14: SAP CTS. Figure 4. screens. other transaction-codes are available to manage CTO activities: SE01 – Transport organizer. and SE09.

which are stored in the “transport directory. A transport request is a container of objects that contain objects (ABAP programs. This setup should guarantee the consistency of all development activities.” which can be any machine within the landscape. The functional meaning of such a landscape is the division of a development. transports can still be executed. Besides a “transport domain controller. In case transports from different landscapes are managed through one single system. In order to fulfill this task a certain deployment setup is developed by SAP. a test. we do have “transport routes. Each new development object or configuration change is captured in a so-called transport request. is a set of tools and procedures that take care of promoting changes and new developments through a SAP system landscape. The transport domain is managed through a “domain controller.” a second instance can be set up as being a “backup domain controller. A system landscape consists of multiple SAP component systems like R/3 or BW. All transport activities are closely related to both ABAP development and business configuration.” All SAP systems that share the same transport directory belong to the same “transport group. These tools offer the ability to setup a change management and control process and should prevent objects being promoted from development to other systems without the correct approvals. texts. menus. and a production environment or system. A TMS setup is based on a so-called “transport domain” concept. The most common place to put this functionality would be the SAP development instance. The transport requests itself are transported through files. acceptance. at the logical level.SAP SOFTWARE LOGISTICS 41 4.” “domain controller.5.2 Transport Management System The Transport Management System.5.” In the case of a system or hardware failure on the domain controller.” For UNIX-based SAP systems. the transport directory resides in “/usr/sap/trans. In order to keep the production system reliable. and production) within one single transport domain. which are logically linked.” which can be NFS exported/imported to other systems in the transport group. or TMS for short. However.” Transport routes define the route transport requests follow through a SAP . or structures) or configuration data. messages. a transport domain can consists of multiple system landscapes. 4. This goes from setting up a system landscape to the promotion of changes through such a system landscape. a variety of tools are available to promote changes from development to the test system and to the production system. The most common setup is to cluster all three SAP instances (development. A transport domain is a group of SAP instances that can be managed centrally.1 Transport Activities A variety of tasks are related to CTS. screens. The “transport domain.” and “transport group” all refer to the physical environment. table definitions.

Figure 4.16: Standard transport route for three system landscapes. The transport layers are part of the TMS setup that can be accessed through transaction code STMS. Figure 4.” for acceptance systems it’s called “Consolidation System. INFO The “official” SAP terminology for a development system is “Integration System.15: One transport domain with two transport groups.” .” and a production system is called a “Delivery System. The simplest transport route runs from development to acceptance and further on to production.42 UPGRADING SAP landscape.

where <SID> is the SAP System Identifier of the system where the request is created. from which field TRKORR contains the last released number. and objects. By modifying the value specified in field E070L. it possible to manipulate the Transport Request numbers. Each request has at least one task.” A task is a container with “objects. has the following structure: Field TRKORR TRFUNCTION TRSTATUS TARSYSTEM AS4USER AS4TEXT Type (dimension) CHAR (20) CHAR (1) CHAR (1) CHAR (10) CHAR (12) CHAR (120) Description Request/Task number Request or Task? Status of request in CTS Target system Owner of request Description of request A request or task number has the following naming convention: <SID>K9nnnnn. but it can have more. All Transport Requests and Tasks are stored in a single table. Bear in mind that both projects should run in sequential order and therefore cannot run in parallel.SAP SOFTWARE LOGISTICS 43 4.3 Transport Requests A Transport Request (also known as a Correction) is a container with “tasks.5.TRKORR. task. a screen definition.” An object can be a table definition. it can also have more. a text translation. Each task has at least one object. or a customizing setting. This table. This is usually the development system.: all transports D01K900001 until D01K901000 belong to Project #1 and all transports D01K901001 until D01K902000 belong to Project #2.17: Relationships between request. E070. however. TIP In some cases it’s nice to make a distinction between Transport Requests belonging to Project #1 and Project #2. For example. an ABAP program. The “nnnnn” is a sequential number that is stored in table E070L. . Table E070L contains only two fields. Figure 4.

both tasks and the Transport Request first need to be released. a co. certain attributes of Transport Requests can be modified. .18: The initial screen of transaction SE01.44 UPGRADING SAP The objects that reside in a task are stored in table E071. under transaction SE01. Before objects can be transported through the SAP system landscape.and datafile are created. Table E071 has the following structure (only important fields are shown here): Field TRKORR A4POS PGMID OBJECT OBJ_NAME Type (dimension) CHAR (20) NUMC 6 CHAR (4) CHAR (4) CHAR (20) Description Task number Position of object in list Object ID (as in TADIR) Object type (as in TADIR) Name of object Transport Requests can be created upfront by transaction SE01 or on-the-fly when a “new” development object is created or an existing one is changed. Figure 4. During the “release” function. ©Copyright SAP AG. With transaction SE03.

which calls R3trans to extract the data from the database and writes it to the locations “/usr/sap/trans/data” and “/usr/sap/trans/cofiles. as a last option. language imports.19: Files are created once a Transport Request is released. every object that is changed. In other words.5. 4. Or. Two major programs form the Transport tools: “tp” and “R3trans. imports. The transport tools are responsible for all export and import activities during the transport process.” which stands for “Transports and Programs. such as dboraslib for Oracle and dbadb2slib for DB2. and upgrades.” TIP It’s important for the Transport Tools tp and R3trans to work with the correct RDBMS shared library.” “TP. add-ons. which is vendor specific. Either it connects to the database itself or it uses R3trans for this. loading support packages. This is the primary program doing all uploads.” Figure 4. it uses ABAP programs in the SAP system to perform its job. or added to any of the SAP instances in your landscape is performed by “tp. and exports of objects like programs.SAP SOFTWARE LOGISTICS 45 The creation of both files is done by tp.” is an executable on the operating system level. These tools also play an important role during the upgrade of your SAP system. deleted. .4 Transport Tools The STMS transaction is just a user-friendly shell on top of all kinds of transport tools. The Transport Tools can find this library by using a LIBPATH environment variable: OS AIX HP-UX Solaris (SunOS) Linux Variable Name LIBPATH SHLIB_PATH LD_LIBRARY_PATH LD_LIBRARY_PATH Variable Value /usr/sap/SID/SYS/exe/run /usr/sap/SID/SYS/exe/run /usr/sap/SID/SYS/exe/run /usr/sap/SID/SYS/exe/run The “tp” program uses different methods for this.

The “tp” program calls R3trans directly via a fork() system call. this step is skipped. This phase will also import the ABAP source (which resides in table REPOSRC) into the target system. and DD04L.46 UPGRADING SAP Figure 4. rows or records are loaded from the transport request data file into the relevant tables in the target SAP system by using R3trans.20: Three methods of “tp” accessing the database. DD03L. Command File Import – During this step. or table structure changes is loaded in the SAP system and stored in tables like DD01L.5 Transport Steps When an import is done for a particular transport request. Main Import – During this phase. Match Code Activation – This “special” phase is only performed if match code objects are included in the transport request. Step 3. the information about the transport request itself is loaded into the target system. all new tables or table changes are activated. Step 5. regardless of its contents the following steps are performed on the target (or receiving) system: Step 1. ABAP programs are started indirectly by using “sapevt. This phase is skipped in cases where there are no data rows to load. Step 2. this step is skipped. Activation – During this step.5. If the transport request does not have table information included. which should be scheduled in the SAP system waiting for an event. 4.” The “sapevt” program triggers the RDDIMPDP (Import Dispatcher) ABAP program. Updates are done on tables E070 and E071. If the transport request does not have table information. . The RDDIMPDP program is scheduled in the SAP system using the RDDNEWDP program. DD02L. information about the layout or structure of the new tables. Step 4. DDIC Import – During this step.

all version data is updated in the system. It’s very easy to determine up front what steps will be executed for a transport request. This step is only executed when ABAP source code is included in the transport request. Generate – During this phase all ABAP programs or function modules are generated or compiled from ABAP source code into ABAP byte code. Two control tables within the SAP system. and table row data.SAP SOFTWARE LOGISTICS 47 Step 6. such as ABAP source. Besides these nine main steps executed by “tp. named TRBAT and TRJOB. screen definitions. . The cofile contains metadata about the transport request and the data file contains all data. Figure 4. By using “tp showbuffer” you can list all required steps per transport request. the import is performed during this phase.21: “tp” calls “sapevt” to start ABAP programs. Each transport request consists of two files: the cofile (control file) and the datafile. are used as a communication channel between “tp” and the ABAP programs.” various other ABAP programs are executed during the import. Step 7. additional programs run in batches that modify data tables. ADO Import – When application-defined objects. which represent the steps that are performed in the SAP system during an import. The “tp” tool uses the cofile to prepare the import of the transport request into the SAP system. Step 9. The control tables contain certain values. such as SAPScipt Forms. These ABAP programs are executed by “tp” though the “sapevt” program. XPRA – Execute Programs After Put / Import – In this phase. This provides the ability to back out to older versions of programs and definitions. are included in the transport request. Version Management – During this phase. Step 8. The information in the cofile is used to determine the sequence of the ABAP programs.

which does all the data conversions. Table Name DD02L Description Table header information. clidep – Whether table is client dependant or not buffered – Whether table is buffered in memory DD02T Table texts. 4. if the transport request contains a new table. fields are: tabname – Name of table as4local – is table activated? tabclass – Data class table belongs to (TRANSP. which does the table activation. For example. VIEW. Several tables in the SAP system contain information about each table. POOL. responsible for both table imports as ABAP compilations. fields are: tabname – Name of table ddlanguage – Language key ddtext – Text itself . RDDMASGL.5. the so-called metadata.48 UPGRADING SAP Function Code X J B S N M Y O D V R G Job Name RDDDIC0L RDDTACOL RDDDIS0L RDDGEN0L RDDGEN0L RDDGEN0L RDDDIC1L RDDVERSL RDDEXECL RDDDIC3L ABAP Program RDDDIC0L RDDTACOL RDDGENBB RDDGENBB RDDGENBB RDDGENBB RDDDIC1L RDDVERSL RDDEXECL RDDDIC3L Description ADO export Mass activation TACOB activation Distributor Import conversion Mass activation for enqueue Matchcode conversion Batch conversion ADO import Create version information XPRA execution ABAP generation (compilation) RDDMASGL RDDMASGL RDDMASGL RDDMASGL The following ABAP programs can be distinguished: RDDDICnL. and RDDGENBB. APPEND) CLUSTER.6 DDIC Import The DDIC (Data Dictionary) Import phase is used to import information over information. the information about the layout of this table is imported into the SAP system. INTTAB.

fields are: tabname – Name of table tabkat – Category of the table tabart – Data class table protocol – Whether table logging is switched on The SAP table relationship model on tables and it fields.22: Relationship model for SAP tables. can be illustrated as follows: Figure 4. . fields are: domname – Name of the domain datatype – Type of domain length – Length of domain in bytes DD04L Data elements. fields are: tabname – Name of table fieldname – Name of field keyflag – Whether field has a key checktable – Pointer to check table position – Relative position of field in table DD01L Domain information.SAP SOFTWARE LOGISTICS 49 DD03L Field information. fields are: rollname – Name of data element domname – Which domain the data element belongs DD09L Table technical settings.

The nametab object is information about the table that is used by the DBSL (Data Base Software Layer) to generate SQL code during ABAP program execution. or in cases where existing tables have been updated.5. This six-step example will show the activation of a table that is revised with an additional field. In step [4] the distributor will determine what conversion method to use: (1) conversion through shadow table QCM<tablename> and a conversion ABAP program or (2) just a drop/re-create or other SQL statement. Figure 4. In step [2] the table TAB01 is adjusted through transaction SE11 and an additional field is added. and runtime object) is shown. and conversion can be illustrated by the following example. and (3) a runtime object. The entire process of table activation. distribution. In step [1] the original table TAB01 (DDIC. namely DDNTT (Table header) and DDNTF (Table fields).23: Table activation phase. The definition in the Data Dictionary was already described previously. with and without data. This object can be accessed with SQL statements. nametab. The nametab itself consist of two tables.7 UPGRADING SAP Activation and Distribution After the information about new tables is imported. Each table has three different objects in the SAP system: (1) the definition in the Data Dictionary. The runtime object is the “transparent” table in the SAP database. the new table definition needs to be activated. . In step [3] the table is activated.50 4. which means an entry in the inactive nametab (table DDXTT and DDXTF) is created. (2) a nametab object.

such as in step [5]: Figure 4. all data is read from table QCMTAB01 and after conversion inserted into table TAB01.SAP SOFTWARE LOGISTICS 51 Figure 4. After the process is finished. The result of the “distribution” phase is stored in either table TATAF or TBATG (Table for Batch Conversions).24: Table distribution phase.25: Table conversion phase. a conversion will be performed. In case TAB01 contains data that needs to be kept. . Through an ABAP program. The conversion phase first renames the table TAB01 to QCMTAB01 and creates a new table TAB01 according to the new layout. table QCMTAB01 is dropped and new indexes are created.

you’re able to exclude the XPRA from the upgrade or Support Package.52 UPGRADING SAP In case TAB01 is empty. This “move nametab”-phase is executed by program “tp. In order to do this you have to run ABAP report RSXPRAUP and enter the transport request.” Figure 4.5. This conversion is different from the table conversion related to table layout adjustments. In cases where a severe error occurs and a descriptive SAP note tells you to ignore the message. The XPRA reports always run in a batch or background work process. The “tp” tool uses the RFC mechanism to see whether the job has completed successfully or not. The execution of XPRA reports is an essential part of the elapse time of upgrades and the implementation of Support Packages.” 4.8 Running the XPRA Job The XPRA (Execute Report After Put) is a general set of ABAP programs that take care of master data or customizing data conversions. This looks like step [6]. which are affected by the change of certain ABAP programs. the distributor will adjust the table in the database by using conventional SQL statements DROP TABLE/CREATE TABLE or ALTER TABLE. Examples of XPRA reports are: Report RSA1XP04 ensures that the status information for connections to SAP BW systems is set to “inactive” in the RSASIDOC table. Report AGR_XPRA_REGENERATE_SAP_NEW is taking care of the SAP menu items after the upgrade to a higher version. which contains this .26: Table Move nametab phase. “Move nametab.

6 CLIENT COPIES After a “new” SAP R/3 installation. 001. controlling areas. Client 000 – SAP Reference Client The “SAP Reference Client” is shipped by default in any SAP system and contains a copy of all default SAP customizing settings. this client was also used to apply Support Packages and to correct Data Dictionary changes through SPDD and SPAU. new default settings are written to this client. and 066. and certain validation and substitution rules.ELG. sales areas. business area. 4. In the past. It contains sample entries for organizational structures and other module-specific customizing. The client “000” is empty.) During SAP release upgrades. The SAP Reference Client contains settings like: Tables with default settings. It is primarily used to manage Data Dictionary objects. which means that there is no master or transaction data stored in this client.” which means that table entries (rows) are similar. The only major difference between client 000 and client 001 is the existence of additional example customizing in client 001: tax rules.SAP SOFTWARE LOGISTICS 53 XPRA. purchase organizations. . Client 001 remains untouched during the implementation of Support Packages or a SAP release upgrade. etc. which may overwrite or replace existing ones. INFO For more information on the subject of excluding XPRA programs. the SAP system is only delivered with the socalled delivery clients: 000.) No master or transaction data (application data) Default settings for all customizing objects Examples of organizational units (company codes. The name of the transport request can normally obtained from the error log . see SAP note 122597. TIP You should not make changes to client 000 as it may be overwritten by applying Support Packages or during SAP release upgrades. (The content of these tables are independent of the organizational units. Client 001 – Production Preparation Client The “Production Preparation Client” is identical to the client 000 “SAP Reference Client. sample charts of accounts.

When a client copy is done. SAP offers the ability to do this even between different SAP systems. A typical client layout would look like this: Figure 4. To prevent customers from using client 000 and 001 for productive usage.28: SAP client landscape example.54 UPGRADING SAP Client 066 – EarlyWatch Client The “SAP EarlyWatch Client” is exclusively used by the “SAP Global Active Support” organization to run “GoLive” and “EarlyWatch” reports. The recommendation would be to leave all client numbers between 000 and 099 exclusively to SAP. SAP provides the ability to create new clients and copy client-specific content from one client to the other. or through an entire client copy. This client only contains user-master records and authorization profiles. and start numbering clients used by the customer at 100 and above. per group of tables.27: “Local” client copy versus “Remote” client copy. SAP supports different methods to copy content between clients: per table basis. . Figure 4.

SEM. it’s important to keep the client numbers the same in case you would like to use “entire database copies” for system refreshes. and testing. In some cases it is recommended to have a separate SAP instance for training purposes.29: SAP client landscape for InfoCube-based applications. TIP When designing new InfoCubes. such as BW. Also. unit testing (both integration testing and data conversion testing). In this case it’s possible to use one development and test client in BW for multiple development clients. therefore. it is easier to refresh instances by making use of complete database copies. for these systems. and a separate training client. There is a separation of clients for business configuration customizing. named Development. TIP In cases where the client numbers are kept the same throughout the landscape. followed by the configuration and scheduling of .SAP SOFTWARE LOGISTICS 55 This example with three SAP instances. add the source-system info-object as field. such as 100-100-100. it’s recommended to use: Figure 4. Quality Assurance. For SAP applications that make use of InfoCubes. The QAS instance contains three clients for the acceptance process of development and customizing (test against production data). Otherwise you have to run multiple BW systems in order to support multiple clients in R/3. And lastly we have the production instance with one single “production” client. The client copy process itself consists of four major steps: (1) Manual preparation This step is executed by the system engineer and consists of the addition of the new client to the client table. The “Gold Config” client contains the initial content before a new development life cycle is started. development of reports and transactions. if required. or APO. it’s not possible to have multiple clients in one single SAP instance. and Production contains nine clients. development of interfaces.

Besides using the “internal” client copy method. The client copy process is executed through transaction code SCC1. If table field DD02L. it’s not recommended to use R3trans for “internal” client copies. only the client number (TABNAME. . The steps executed by a client copy are stored in table CCCFLOW. The output logs of the client copy can be viewed using transaction code SCC3. TABNAME. The engineer also has to take care of the database in terms of space requirements.FIELD-B = TABNAME. However.MANDT = TARGETNUMBER .6C or RSCLCCOP for higher releases.CLIDEP = “X”. The SQL statement look likes this: LOOP FOR ALL TABLES in DD02L do IF DD02L. (4) Postprocessing During the “postprocessing” phase certain XPRA programs are executed. contains several fields to control the process. This table. (3) Actual copy process During this step. it first creates a list of all tables that need to be copied. each row of the table belonging to the source client is copied over to the target client. (2) Initialization When the client copy is actually started. a list of XPRAs is created that are executed after the copy process.FIELD-B . So the copy is within the same table.CLIDEP=’X’ and TABNAME not in ClientCopyExceptionTable do LOOP FOR ALL ROWS in TABNAME where MANDT=SOURCENUMBER do INSERT VALUE (TABNAME. …………………….FIELD-A . TABNAME.FIELD-C . which will eventually execute reports RSCLICOP for SAP R/3 releases below 4.FIELD-A = TABNAME. which is based on SCC3 and SCCL. Also.FIELD-C = TABNAME. the table will be copied unless the table is added to the client copy exception table by the system engineer. CCCFLOW.56 UPGRADING SAP the client copy. which can take hours.MANDT) is changed. ) ENDLOOP ENDIF ENDLOOP So the copy process is a copy loop for rows into a copy loop for tables. TABNAME. it’s also possible to use R3trans.

The second method works with R3trans.dat’ use commandfile=’/usr/sap/trans/cofiles/<COMMANDFILE>’ . The first method is based on transaction SCC9 – Remote Client Copy.SAP SOFTWARE LOGISTICS 57 Tables can be excluded from the client copy process using report RSCCEXPT. First of all.30: Remote client copy using SCC9 RFC. INFO For more information on client copies. The second option is to use R3trans instead of transaction SCC9. There are tables you might consider excluding from the client copy like CDCLS. The R3trans method works slightly different. which offers the ability to add tables to a list of tables that are skipped during the client copy process. This process uses an RFC connection between the source and target system. Figure 4. These tables are used by the ALE engine. one for export and one for import. CDPOS. Later versions are able to copy tables in parallel.6. and CDHDR. certain RFC groups need to be put in place. The initial release of the SCC9 functionality was only able to copy tables remotely in sequence. have a look at SAP Note 552711—Client Copy FAQs 4. there are multiple ways of doing a “remote” client copy.r3t export client = 100 file = ‘/usr/sap/trans/data/clientexport100. In order to run the SCC9 client copy over parallel RFC links. The SCC9 Remote Client Copy function has significantly improved over time.1 Remote Client Copies The process of a “Remote Client Copy” is similar to the “Local Client Copy” except for a few differences. This method uses two command files. # R3trans export – called: exportclient100.

dat’ select * from EKPO TIP For more information on the various aspects of using R3trans to export clients or individual tables.dat’ First export on source system: source-host> cd /usr/sap/trans/bin source-host> R3trans exportclient100. all logs are written to r3trans.r3t The tool R3trans can also be used to copy individual tables over from one system or client to another.log target-host> cd /usr/sap/trans/bin target-host> R3trans importclient200. please have a look at SAP Note 1942.58 UPGRADING SAP Figure 4.r3t import buffersync=yes client = 200 file = ‘/usr/sap/trans/data/clientexport100.r3t copy over all files to target system. .31: Remote client copy using R3trans manually. # R3trans import – called: importclient200. # R3trans export – Called: EKPO (client 100 only) table copy export client = 100 file ‘/usr/sap/trans/data/tableEKPOcl100.

In order to support ABAP programming in an MPC environment. Transaction MCLIMAN is one of them. where different business applications from different companies are transparently hosted on a limited set of SAP instances.6C Support Package level 20 system to R/3 4. each belonging to a specific SAP R/3 release. SAP started to support the MPC facility. also known as OCS (Online Correction Support). Fixes in Support Packages.0A as an addition to release upgrades. you might partially downgrade the system. 4. Individual bug fixes are also described in OSS notes.40.32 illustrates the location of a certain bug fix in several different Support Package bundles. are a set of bug fixes that eliminate errors in the SAP system. The reason behind this strategy change is the so-called “ASP” (Application Service Provider) market. and training. However. These ABAP source code corrections can be applied manually using the SE38 ABAP editor. Today. In the early days of Support Packages. it’s more efficient to use “SNOTE – Note Assistant” or wait until SAP releases a new bundle of Support Packages. when they were still called Hot Packages. SAP introduced Support Packages as of SAP R/3 release 3. The ASP term is now also known as SaaS (Software as a Service). it can happen that a certain bug resides in several R/3 releases and therefore needs to be fixed in all those releases. however. . SAP offers a set of tools and programs to prevent conflicts. Support Packages are bound to the SAP release and add-ons used in the system. However.40.6.SAP SOFTWARE LOGISTICS 59 4. offers you the ability to run multiple clients on one SAP system. the delta upgrade has been replaced by the so-called “repository switch” method. this option was not supported for production systems and was only used in non-production systems such as development. acceptance. The entire Euro Conversion kit was shipped through Support Packages. or Multiple Production Clients. This means that if you upgrade an R/3 4. Since SAP R/3 3. additional functionality may be added to a Support Package. applying Support Packages can be compared with a delta upgrade. although you don’t change the SAP release. SAP never added new functionality into it. MPC. Figure 4. which are known as Source Code Corrections.7 SUPPORT PACKAGES Support Packages. Until SAP release 6. are not necessarily bound to SAP R/3 release.2 Multiclient Manager As of SAP Web Application Server 6.72 Support Package level 5.0A.

. and SAP_ABAP. 4. with the introduction of SAP R/3 4.32: Bug fixes can reside in several Support Packages. Legal Change Packages (LCP) and Conflict Resolution Transports (CRT). the Support Package structure has changed again. these add-ons may modify certain core R/3 objects. (4) SAP_APPL – This Support Package type contain fixes for all SAP R/3 modules except HR (Human Resource). SAP_ABAP. It was introduced in SAP R/3 3. And last but not least. such as fixes for the Batch Engine. (2) Legal Change Packages – This type of Support Package is only applicable for an R/3 system running the HR module.0A and covers all functional and Basis modules.60 UPGRADING SAP Figure 4. When a customer uses a certain R/3 add-on. Has been replaced by SAP_APPL. programs. and SAP_HRP.7.6A even more Support Packages have been introduced: SAP_BASIS. (5) SAP_BASIS – This Support Package type contains only fixes that belong to the Basis layer. CCMS. SAP_BASIS. (3) Conflict Resolution Transports – This Support Package is basically a fix for modifications of standard SAP. or table fields. and User Management. CRTs are additional transports that need to be added to the Support Packages in order to prevent such overwrite.1 Support Package Types SAP has released several different kinds of Support Packages: Hot Packages (HP). Normal Support Packages are not aware of these modifications and will overwrite them.1H and has been replaced by SAP_HRP packages. (1) Hot Packages – This type of Support Package was introduced in SAP R/3 3. Since SAP R/3 4. such as adding additional screens. such as IS-Oil or IS-Hospital (IS-Heath). SAP_ APPL.7 Enterprise.

whether it’s R/3. (7) SAP_HRP – This Support Package type contains only fixes for the HR module and is therefore the successor of the LCP Support Package type. the Internet. There are restrictions around certain combinations of Support Packages. provides the ability to load all kinds of Support Packages from various sources.2 SAP Patch Manager The SAP Patch Manager. (4) SPAM Update Manager – This tool is used to patch the SAP Patch Manager itself. CRTs contain corrections on top of Support Packages that apply to add-on modifications made to standard SAP.7.” (2) SPAM Queue – This queue needs to be prepared before the actual load of the Support Package occurs. can be used to download Support Packages from OSS or the SAP Support Marketplace. such as CD-ROMs. such as SAP_BASIS. SAP_HRP. SAP_APPL. and CRTs. . The EPS stores all downloaded SAR (SAP archive format) files in “/usr/sap/trans/EPS/in. (3) Import Tool – The actual tool that does the load of the Support Packages into the SAP system. or APO.3 Conflict Resolution Transports If your SAP system also contains add-on components. TIP Always check the appropriate OSS notes on the exact SPAM Queue layout. file systems. also known as SPAM. CRM. as of now called SPAM. so all SE-related transactions. 4. can be invoked by using transaction code SPAM. such as Industry Solutions. SPAM has a variety of tools to accommodate the load of Support Packages: (1) EPS – Electronic Parcel Service. 4.7.SAP SOFTWARE LOGISTICS 61 (6) SAP_ABAP – This type of Support Package type contains only fixes that are related to the ABAP Development Workbench and other development tools. In other words: not all Support Packages can be combined in one queue. This tool is used to implement Support Packages in all ABAP-related SAP applications. and desktop into the SAP system. This toolset. you need to take care of Conflict Resolution Transports. or CRTs for short. The queue can contain a mix of different Support Package types. BW. TIP Always update your SAP Patch Manager with the latest SPAM update before you apply new Support Packages into your SAP system.

and data-files) and stored in “/usr/sap/trans/cofiles” and “/usr/sap/trans/data. SPAM executes the following phases during the import of Support Packages: (1) PROLOGUE – During this phase. located in “/usr/sap/trans/ EPS/in. SAP has introduced many more add-ons besides Industry Solutions.” (2) CHECK_REQUIREMENTS – During this phase.33 CRT prevents overwriting of add-on modifications. Therefore. This “regular” Support Package. Also. To prevent that from happening.4 Support Package Import Phases After downloading Support Packages from either a CD-ROM or the Internet (using the SAP Download Manager) into the EPS directory. the transport tool “tp” checks whether it is able to connect to the database. check all OSS notes related to any add-on described in this table.” are extracted into individual transport files (both co. CRTs are no longer required. and then check the table “AVERS” (add-on version table). such as ISOil.0. the import queue can be defined. such as authorization checks. The import phases will use this import queue as the source for all Support Package imports. (3) DISASSEMBLE – In this phase all EPS packages. will overwrite this modification. 4.62 UPGRADING SAP Figure 4. all industry solutions are embedded in the core release of SAP. Table Browser. As of SAP ERP2005 or ERP 6.” . Figure 4.7.33 illustrates the modification of Core R/3 by an add-on. however. certain checks are done. the CRT will correct this. and a check if previous Support Packages are “confirmed. TIP Always check whether a system contains any add-ons by using transaction SE16.

SAP SOFTWARE LOGISTICS

63

TIP Be sure that your “/usr/sap/trans” filesystem is large enough to hold both EPS and extracted co- and datafiles. Certain Support Package bundles can become very big. (4) DISASSEMBLE_PATCH – During this phase, “tp” will create co-files of every datafile shipped with the Support Package. The exact statement is: “ tp createcofile –s <datafile> ” (5) ADD_TO_BUFFER – In this phase, all transports shipped with the Support Packages are added to the transport buffer. The exact statement is: “ tp addtobuffer <change request>” (6) TEST_IMPORT – During this phase, all open repairs and change requests are checked for objects that will be replaced during the import. (7) IMPORT_OBJECT_LIST – During this phase, a list of all objects that are shipped with the Support Packages are imported in the system. The list is used to check whether there are conflicts between modifications, add-ons, and these shipped objects. (8) OBJECT_LOCKED_? – This phase checks if objects that will be replaced are locked in a transport request. (9) SCHEDULE_RDDIMPDP – This phase will check whether RDDIMPDP is scheduled as a periodic job. If not, it will schedule this job. (10) ADDON_CONFLICTS_? – In this phase, the list, created in “IMPORT_ OBJECT_LIST,” is used to check for conflicts between import objects and any of the installed add-ons. (11) SPDD_SPAU_CHECK – During this phase, a list of modification adjustments is made and stored in a table that is later presented in transactions SPDD (for Data Dictionary modifications) and SPAU (for ABAP modifications). (12) DDIC_IMPORT – In this phase, “tp” will import all Data Dictionary objects into the system. (13) DELETE_FROM_BUFFER – This phase will clean up import buffers. (14) AUTO_MOD_SPDD – During this phase, SPAM will check whether certain Data Dictionary object modifications can be adjusted automatically. (15) RUN_SPDD? – This phase will prompt you in case adjustments need to be made in transaction SPDD. (16) IMPORT_PROPER – This phase, with the longest elapse time, will do the import of all Support Packages. This phase is primarily executed by “tp” and follows the same steps as an “ordinary” import request: (a) Command File import (b) DDIC import (c) Activation (d) ADO imports (e) Conversions

64

UPGRADING SAP (f ) Version updates (g) Execution of XPRAs (h) Generation of ABAP programs and screens (17) AUTO_MOD_SPAU – Same phase as AUTO_MOD_SPDD, except this time it’s for ABAP programs and screens. (18) RUN_SPAU? – This phase will prompt you when modifications to ABAP programs and screens need to be adjusted. However, due to the fact that ABAP objects can be handled with versions, you may ignore this phase and sort this out at a later stage. (19) EPILOGUE – In this phase, some administration and control tables are updated with the correct version information. After applying the Support Packages using SPAM, the administrator needs to “confirm” the patch queue. The only remaining task is to sort out the SPAU list.

Figure 4.34: Transaction SPAM (Support Package Manager).

©Copyright SAP AG.

4.7.5

Support Packages in R/3 Enterprise
SAP has changed the way modules are organized in R/3 Enterprise. Certain functionality has been moved from core R/3 into the so-called “Extensions.” These extensions are grouped into “Extension Sets.” Therefore, by disconnecting certain functionality from Core R/3, a new group of Support Packages is introduced as well.

SAP SOFTWARE LOGISTICS

65

Figure 4.35: Different Support Packages in SAP R/3 Enterprise.

Figure 4.35 shows the different component layers of an SAP R/3 4.7 Enterprise system. The second box illustrates the different Support Packages and their interrelationship with SAP R/3 4.7. Besides these new extensions, the number of plug-ins has also been increased. Because applying Support Packages to an SAP R/3 Enterprise system has become more complex, SAP has developed the SPAM Queue Calculator. This tool will calculate the ideal combination of Support Packages in order to prevent conflicts. The second new feature of SPAM in R/3 Enterprise is the “Support Package Shadow Import.” This feature will reduce the SAP application downtime caused by the import of Support Packages. The idea behind this feature is to import, activate, and convert all objects belonging to the Support Package into a shadow repository and, at the end of all phases, switch to the new coding.

Figure 4.36: SAP Support Package Shadow Import.

©Copyright SAP AG.

This new feature provides the ability to reduce SAP application downtime during import of Support Packages by about 60% when compared to the old

SAP has decided to downgrade the functionality to SAP R/3 4. The method is relatively easy and based on a set of tables that form the socalled “shadow repository” and are created in parallel to the existing “repository.6C as well. Due to this significant savings. This switch is the only phase that requires application downtime. SP stacks are released synchronously. SAP recommends implementing these SP Stacks regularly.” 4. the system will switch from the “existing repository” to the new “shadow repository”. ©Copyright SAP AG. Downtime savings are achieved. Therefore.” After the entire Support Packages are imported into the “shadow repository”. especially when the Import Queue contains all kinds of CRTs for plug-ins and other add-ons.7. The intention of SP Stacks is to offer better mechanisms to apply support packages to complex systems that contain a lot of different components. . The method described here is similar to what we know from SAP release upgrades as the “Repository Switch. and apply the Support Packages and patches specified in the SP Stack together. This is shipped as part of a SPAM update.6 Support Package Stacks The SP (Support Package) Stacks are sets of Support Packages and patches for the respective SAP release and must be used in the given combination. The technology for applying Support Packages and patches will not change.66 UPGRADING SAP method. Figure 4.37: SAP Support Package Stacks. SP Stacks should be seen as an entity unto themselves – customers must obtain the minimum requirements and dependencies between individual components.

either by Internet Explorer or by the SAP Download Manager. Now that all the industry solutions are embedded in our SAP ECC 6.7 Support Packages as of NetWeaver 7. Figure 4. The SAP ECC 6.0. which is the central core component of the SAP ERP 2005 Business Suite. The only requirement was to have access to the download section. SAP has decided to help administrators in this task by supplying tools.00.SAP SOFTWARE LOGISTICS 67 4. ©Copyright SAP AG. consists of a core system (formerly known as R/3) and various add-ons and industry solutions.38: SAP ERP 2005 components. Once these components are activated or added to the SAP system they become subject to patch and change management. the number of components has grown significantly. due to the complexity and number of different Support Packages. In the past. SAP introduced a new concept for deploying Support Packages.7. This is done through a tool called the Maintenance Optimizer. The implementation of Support Packages to an SAP ECC 6.0 component. However.0 system can be quiet complex. SAP has decided to control the download through the SAP Solution Manager. Therefore.0 system. With the options of embedded installations (also known as MCOS – Multiple Components in One System) you can expand the installation functionality even more. Both the SAP Maintenance . Support Packages were directly downloaded through the SAP Support Marketplace.0 With the introduction of SAP NetWeaver 7. which is based on SAP Application Server 7.

So each step is only executed once.9 SPAM Queue Conflicts Not all Support Packages can be combined in one single queue for import. This means that for all included Support Packages. all objects are activated and at last all data for these objects is imported. All import steps are performed in sequential order for all objects in the queue. The tables are in the PAT*name range: Table Name PAT00 PAT01 PAT02 PAT03 PAT07 PAT09 TEPSIN Patch steps Patch status Conflicts between patches and add-ons Patch directory Patch prerequisites Patch history EPS bundle inbox Table Description TIP These tables contain some nice information you can use in case of problems. however. 4.8 Tables Used with SPAM The SAP Patch Manager uses various tables to keep track of progress. 4. status of each step. The reason for this is caused by the way SPAM works.68 UPGRADING SAP Optimizer and the SAP SLM (Software Lifecycle Manager) are examples of such tools. .39: mySAP ERP 2005 Business Suite Support Package Stacks. all objects are first imported into the SAP system. Figure 4. and history of all applied patch bundles.7. Secondly. ©Copyright SAP AG. it is strongly recommended not to change the contents of these tables yourself. regardless of the number of Support Packages.7.

the table will lack the “new” field. and table fields. Information about possible conflicts between Support Packages can be found in the relevant OSS notes. 4. which do not have conflicts. Search for the term OCS or OSS to find all these relevant notes.7. In this example the error occurs in the TABIM phase. This extra field.SAP SOFTWARE LOGISTICS 69 However. Because SP2 is applied after SP1.10 SAP Download Manager There are several ways to obtain the Support Packages: (1) using transaction SPAM. The SP1-specific TABIM phase. expects this “new” field to be there. or (3) by requesting for the so-called OCS Bundle CD-ROMs. however. it will first import all SP1-specific data and then import SP2-specific data. Assume we have a table TABX that is modified in SP1 by adding a new field to it. This can all be prevented upfront by importing all Support Packages in batches. (2) by connecting to the OSS SAP system in Walldorf.40: Error in TABIM phase due to missing fields. is removed again in SP2. data elements. As soon as the TABIM (table import) phase starts. although in most cases the error occurs in the ACT phases when there is an incompatibility between domain definitions. You first need to add the requested OCS packages to the “download basket. In order to save costs on CD-ROM media. So the “INSERT” statement will fail due to a missing table field. however. it is possible that changes or modifications to certain objects are included more than once.” The SAP Download Manager is a J2SE (Java 2 Standard Edition) based tool that runs on your PC and connects to SAP through the Internet using HTTPS.” . Figure 4. SAP has introduced a third source for your OCS bundles: “The Internet.

0. SAP has released a tool that helps to determine the right patch sets.70 UPGRADING SAP This basket is part of the OCS Patch area on the SAP Service Marketplace. By using the SAP Maintenance Optimizer (MOP) the support team can locate the required patch files much easier. 4. and use the separate SAP Download Manager to really download them to your PC. As explained in the previous section. this process has changed (see Section 4. With the introduction of NetWeaver 7.8 SAP MAINTENANCE OPTIMIZER In order to keep the Total Cost of Ownership (TCO) low for implementing Support Packages and patches on the SAP NetWeaver and Business Suite.41: Screen-shot of SAP Download Manager. The MOP is implemented as a component inside the SAP Solution Manager and deployed through a Support Package. Figure 4. the number of components has dramatically increased and therefore the number of different patches has also increased. entire installation and upgrade kits can be obtained using the SAP Download Manager. Besides Support Packages and kernel patches. So first use the “ordinary” Microsoft Internet Explorer Web interface for selecting the packages and add them to the download basket.8). The MOP tool is accessed through Transaction SOLUTION_MANAGER → Select Solution → Change Management .

This will bring up the guided procedure for obtaining the right Support Package.42: SAP Maintenance Optimizer in Solution Manager.43: SAP Maintenance Optimizer download wizard. . Figure 4. ©Copyright SAP AG. This will show a screen with all the components in your landscape.SAP SOFTWARE LOGISTICS 71 → Support Package Stacks. A properly installed and configured SLD is thus a requirement for using the MOP. Figure 4. the MOP tool is invoked by pressing the “Maintenance Optimizer” button. ©Copyright SAP AG. The MOP is using the SAP Landscape Directory (SLD) to obtain this information. After the selection of the system.

for example. . the package needs to be confirmed and is checked by SAP against the license agreement. However. As of this writing. which are additions to the standard “core” R/3. Once done. and tables are modified and/ or overwritten by IS-Oil–specific coding. screens.72 UPGRADING SAP After the required patch files have been selected. the files are downloaded to the PC. This means that standard SAP programs.9 INDUSTRY SOLUTIONS AND ADD-ONS SAP covers both the horizontal and the vertical marketplace. Known IS-Solutions are IS-Oil for the oil and gas industry. which means it delivers functional software products for general businesses and for industryspecific businesses. the files can be downloaded using the regular process with the SAP Download Manager. IS-Oil. which was one of the first IS-Solutions released by SAP. and IS-Healthcare for hospitals. When loading Support Packages into the system. The result of this is that every time an upgrade is performed or Support Packages are loaded into the system. From this moment onward the process of applying Support Packages is exactly the same as in the past. the files appear in the Download Basket residing in the SAP Support Marketplace. This means that the files are not downloaded using the MOP tool. CRTs (Conflict Resolution Transports) are loaded with the Support Packages. the system needs to take care of this exceptional situation. During upgrades. List of IS-Solutions: SAP for Aerospace and Defense SAP for Automotive SAP for Banking SAP for Chemicals SAP for Consumer Products SAP for Professional Services SAP for Public Sector SAP for Retail SAP for Service Providers SAP for Telecommunications SAP for Media SAP for Mill Products SAP for Mining SAP for Oil and Gas SAP for Pharmaceuticals SAP for Healthcare SAP for High Tech SAP for Higher Education and Research SAP for Industrial Machinery and Components SAP for Insurance SAP for Engineering and Construction SAP for Utilities There are two types of IS-Solutions: Solutions that modify the standard “core” SAP and solutions that do not modify standard SAP. This industry-specific functionality is implemented through IS-Solutions. IS-Media for the media and publishing industry. does modify standard SAP. Once checked. 4. The tool is just used to prepare the download activity. the IS_SELECT phase will take care of this.

An example of the second type IS-Solution is IS-Utilities.0 it is possible to use multiple IS-Solutions in a single SAP system. such as IS-Oil and IS-Utilities. However. APO.9. Next to IS-Solutions. The second type is basically an add-on and is installed on top of the standard “core” R/3. as of SAP ERP 6. that are used for BW. use R3up (same tool as the R/3 Upgrade tool) to install.44: Two types of SAP IS-Solutions.1 Installation Using R3up The installation process of IS-Solutions differs from product to product.SAP SOFTWARE LOGISTICS 73 you still need a special upgrade-software kit. Other add-ons are. Figure 4. or SAP Enterprise Portals. which can be installed into an R/3 system that has been already used for several years. or Plug-Ins. These add-ons are. The installation process is similar to IS-Solutions and may also modify standard SAP coding. you need to know what add-ons are installed in your SAP system. The following phases are executed to install an IS-Solution using R3up: Phase INITPUT DBCHK Description Enter all parameters Determine RDBMS release DBINFO. With SAP ERP 6.0 all Industry Solutions are embedded in the system by default. SAP has released all kinds of add-ons to R/3 and other components. which does contain the new ISSolution. certain (recently released) solutions are installed using transaction code SAINT and other products.LOG Log file . it just becomes active after the Industry Solution is switched on. PI. 4. Therefore. . TIP Use transaction code BAOV or look at table AVERS to see what IS-Solutions or add-ons are loaded on your system. for example. As mentioned in previous sections. SAP EH&S (Environment Heath and Safety) for management of dangerous goods and SAP FS-CD (Financial Services Collections and Disbursements) for the insurance companies. for example.

ELG TABIM.LOG BATCHCHK.LOG DDIC.LOG TBATGCHK.74 UPGRADING SAP RFCCHK BATCHCHK VERSCHK ADDSPAREQ EXECIS IS_CHK READDATA KEY_CHK PATCH_CHK CLNT_CHK CNV_CHK TRBATCHK INTCHK IS_READ SPACECHK FREECHK ISC_IMP IS_MERGE JOB_RDDIT021 REPACHK ADJUSTCHK MODPROF STARTR3 DDIC_yy JOB_UMOD20 ACT_yy CON_yy TABIM_yy ADOIM_yy XPRA_yy JOB_RDDIT023 JOB_RSSPAM02 JOB_RDDIT020 END RFC connection test Check Batch engine Check SAP release Prepare DB space check Check for installed IS-Solutions Display installed IS-Solutions Read software from CD-ROM Enter key from OSS note Check status of Support Packages Client locked or updated? Check TBATG conversations Check if TRBAT is empty Check if inactive nametab is empty Copy IS-Solution to /usr/sap/put Check DB freespace Check OS filesystem freespace Import IS command files Check imported command files Merge add-on in table TODIR Check for open repairs Determine DDIC object adjusted Stop system and adjust profiles Start R/3 system Import of DDIC objects Adjust BSEG table Activate new DDIC objects Conversion of DDIC objects Import entries in tables ADO import.ELG ADOIM.ELG PSUMOD20.ELG CONV.LOG ADJUSTCHK.LOG ACT.LOG PDDIT020.LOG DDXTnCHK.matchcodes Run XPRA reports Update AVERS table Load missing CRTs Update AVERS table again Load end RFCCHK.LOG ALPUPDP.LOG CLNTOUT.ELG XPRAS.LOG TRBATCHK. conv.LOG RDDIT021.LOG ISOUT.LOG ENDCOMS.LOG EXECIS.LOG .LOG DBINFO.LOG RSSPAM02.ELG PDDIT023.LOG ISC_IMP.LOG PATCHOUT.LOG REPACHK.

it’s called a “SPAM/SAINT” patch. you also patch the SAINT tool. It offers an “installation” wizard that guides the engineer through the entire installation process. The steps the SAINT tool uses to import software into your SAP system are quite similar to the way Support Packages are imported. When you patch the SPAM tool. The SAINT tool is relatively easy to use.LOG Most of the phases and their sequence are exactly the same as with a release upgrade. 4.SAP SOFTWARE LOGISTICS 75 ENDCHK MODPROFP CHK_POSTUP SPAUINFO EXITINFO Test target system Modify profiles and start system Display P errors Display SPAU list Display exit information ALPUPDP. SAP also uses another tool to deploy add-ons.9.45: SAINT SAP Add-On Installation Tool. therefore. Figure 4. The transaction code SAINT will start the SAP Add-On Installation Tool.2 Installation Using SAINT Besides using R3up as an add-on installation tool. ©Copyright SAP AG. which is part of SPAM (SAP Patch Manager). .

not overwritten during an upgrade. . The evolution of enhancements in SAP started with the ability to use “User Exit. As of SAP NetWeaver 7. by default. Customizing is the process whereby the standard SAP software is parameterized. is the Business Add-In. a “Customer Exit” is based on “Function Modules” and therefore has a better parameter interface defined. introduced in SAP 4. the modification needs to be reviewed and changed (back) again. which is used by SAP order processing. Another advantage is the ability to put all code in its own customer namespace. the location of code might change over time.” These are spots in the SAP code where a customer can add or adjust code by themselves.76 4. A modification really changes a bit of standard SAP code and has a big drawback—every time SAP changes their code.6. however. This framework includes the following technologies: Source Code Enhancement Function Group Enhancement Class Enhancement Kernel-BADI Enhancement Figure 4. An enhancement adjusts an existing piece of SAP code so it is serving a business process better. enhancements.10 UPGRADING SAP ENHANCEMENT FRAMEWORK SAP supports various methods for adjusting the software: customizing. The code itself is embedded in the standard SAP workflow and does not touch SAP code. and modifications.46: Evolution of enhancement technologies. which is.0. ©Copyright SAP AG. Another option. These BADIs are based on ABAP objects and provide the ability to have multiple versions. a new paradigm has been introduced under the name “Enhancement Framework” that brings all enhancement techniques under one roof. A very well-known “User Exit” is MV45AZFF. Where an “User Exit” is based on the PERFORM statement.

4.” The ABAP objects language has been extended with two keywords to support the addition of enhancements in ABAP programs: ENHANCEMENT-POINT and ENHANCEMENT-SECTION. SPAU_ENH.47: Additional ABAP language statements for enhancements. existing BADI code can be kept and unchanged after the upgrade to NetWeaver 7. SAP is also introducing business function sets and business functions.0. This new switch framework is used to implement Enterprise Extensions and Industry Extensions. Each . SAP ERP 6. during the upgrade process. Figure 4.SAP SOFTWARE LOGISTICS 77 The Enhancement Framework tools have been embedded in the ABAP Workbench under transaction SE80 called “Enhancement Information System. provides the ability to keep.11 SWITCH FRAMEWORK SAP also introduced the “Switch Framework” in NetWeaver 7. To make Switch Framework handling easier. A new transaction. and to better group the individual switch settings.0. The switch framework expands the capabilities of the Enhancement Framework by providing the ability to switch on sets of enhancements.0. Therefore. A business function set corresponds to an industry solution. or Business Suite 2005. old “classic” BADI implementations and move them into the new “Enhancement Framework” concept. ©Copyright SAP AG.

all kinds of programs. and each business function group consists of a set of switch settings. However. ©Copyright SAP AG. SI-. . During the switch phase. such as IS-Oil or IS-Media. you will be able to activate an entire Industry Solution. and tables are generated. In some cases. it cannot be switched off. Two transactions are important here: SFW3 for the creation of a Business Function Set (BFS) and SFW5 to activate a Business Function Set. data. it is also possible to activate multiple IS-Solutions in your system. The following objects are subject to the Switch Framework: By package assignment Appends. Once an IS-Solution is activated. Figure 4.78 UPGRADING SAP business function set is a group of business functions. CI-includes for structures in DDIC Fixed-value appends to domains Secondary indexes Append search helps Enhancement implementations Switch Business Configuration Sets (Switch BC Sets) By direct assignment Screen elements and flow logic Menu entries and functions IMG nodes Customizing By using the Switch Framework. there are some restrictions depending on the combination of the IS-Solutions.48: Switch Framework architecture.

transactions SPDD (Dictionary Objects) and SPAU (ABAP Objects) need to be performed in order to determine what to do with the modifications. It’s recommended to use the “Modification” buttons in the SE38 ABAP Editor. ©Copyright SAP AG. Figure 4.com/notes. The most efficient way of implementing SAP notes is by using the SAP NoteAssistant. . you have to obtain an object key first through the SAP Service Marketplace.sap. As an example. Because you have to make these modifications to standard SAP code. which can be used to mark modifications in the ABAP source code. This means that certain release-specific objects are switched on in one system. which can be accessed through transaction SNOTE. The implementation of individual SAP notes can be quite labor intensive.12 SAP NOTES Bug fixes are collected in Support Packages. These corrections are described in SAP notes that can be found at http://service. but switched off in the other.49 Apply SAP notes using NoteAssistant.SAP SOFTWARE LOGISTICS 79 The combination of both Enhancement-Points and the Switch Framework enables customers to deploy different internal releases at the same time. There is also an option to apply individual source code corrections. It’s much more efficient when the modification browser can be used to support decisions in SPAU and SPDD. 4. During upgrades and the implementation of Support Packages. a single development system can be used to hold various releases that are switched on or off. The source code needs to be changed manually using the SE38 ABAP Editor.

however. which resides in the “/sapmnt/SID/exe” directory. the SAP Kernel is downward compatible according to this scheme: SAP Kernel Bundle SAP 3.5B.0B in extended maintenance SAP R/3 4.6B 4.5B SAP Basis release SAP R/3 3.0B_EXT SAP 4. and accessing the data in the tables.6D 6.13 RELEASE UPGRADES An SAP release upgrade is the most complex topic of the software logistics in SAP. The techniques used during an upgrade are similar to the import of individual transports and the implementation of Support Packages.14 SAP KERNEL PATCHES The SAP Kernel is responsible for running all transactions in the system. it’s only shipped as part of certain Basis Support Packages.5B SAP R/3 4. In general. 4. 4. The SAP NoteAssistant is supported as of SAP R/3 4.1H and 3.6C 4. the entire repository of objects is replaced with a newer version.10 6. and apply this code automatically (including updates to the modification database).0B_COM SAP 4.1I .5B 4.1I_COM SAP 4.20 Minimum Precondition SAPKH45B45 SAPKB46B33 SAPKB46C25 SAPKB46D14 SAPKB61027 SAPKB62013 INFO Additional information about the SAP NoteAssistant can be found in SAP Note 560756. During a SAP release upgrade. download the source code correction specified in the SAP Note.80 UPGRADING SAP The SAP NoteAssistant provides the ability to connect to SAP. interpreting the ABAP code.0B SAP R/3 4. The SAP kernel consists of various executables. The following table shows which SAP releases require what Basis Support Package: SAP Basis Release 4.

00 Unicode SAP R/3 4.00 non-Unicode SAP 7.00 Unicode Each SAP Kernel bundle consists of several binaries.10 until 6. All new SAP installations are based upon the Unicode database. So if a customer would like to leverage new functionality.10 until 6.” In case the SAP JCo (Java Connector) is used on the SAP system. It depends on the character set used in the SAP database which of the two should be used./disp+work –v . An Enhancement Package extends SAP ERP 2005 with new functionality that is normally released through SAP upgrades./tp –v .40 Unicode SAP AS 7. SAP has decided to keep the 2005 release as a core release up to at least 2010 and only add new functionality to the system through Enhancement Packs. dboraslib for Oracle. The exact patch level of a binary can be obtained through the “-V” option at the command prompt of the operating system: $ cd /sapmnt/SID/exe $ . called an Enhancement Package. it’s . such as “lib_dbsl” (Database-specific interface libraries).15 ENHANCEMENT PACKS As of SAP ERP 2005. Transport driver program $ . Another important part of the SAP Kernel is the dynamic link libraries (DLLs for Microsoft Windows and . and the rfclib32 for all RFC communication.40 non-Unicode SAP 6. however. dbmsslib for Microsoft SQLServer. com/patches.6C SAP Web AS 6. read SAP Note 19466.o files for UNIX). In most cases when disp+work executable is upgraded.00 non-Unicode SAP AS 7.6B and 4.6D SAP 6.sap.SAP SOFTWARE LOGISTICS 81 SAP 4./R3trans –v .40 non-Unicode SAP Web AS 6.40 Unicode SAP 7. which all have their own patch level codes. a lot of older SAP systems are still based on non-Unicode. Internet connection manager There are two types of SAP Kernels: Unicode and non-Unicode. a new type of software deployment package is available.SAR (SAP Archive format) from http://service. The SAP Kernels can be downloaded in . be sure that the latest copy of rfclib32 is used as well./icman –v . you also have to upgrade the “lib_dbsl. To reduce the number of ERP releases. 4. SAP kernel (dispatcher + workprocesses) $ . NOTE For the latest information on SAP Kernel patches. Transport tool $ .

. The language in which a dialog user works is specified during logon by making a selection on the logon screen. which means that multiple languages can be used by end users. Figure 4. 4. Implementing Enhancement Package is optional to the customer and need to be considered on a case-by-case basis. Depending on the release status. Enhancement Packages do not replace Support Packages. SAP has released tools like SLM (SAP Life-Cycle Manager) and the MOP (SAP Maintenance Optimizer). Support Packages are released to fix bugs and contain performance improvements. and DDIC objects. Due to the fact that Enhancement Packages are new functionality. SRM. Enhancement Packages are incremental. Enhancement Packages contain new functionality that is added to the ERP applications and can be licensed seperately. This results in a much more complex Support Package strategy. PLM and SCM. screens.16 LANGUAGES SAP applications based on the ABAP engine are multilanguage. but rather implement one or more Enhancement Packs instead. it can be specified by a system parameter or by a default setting in the user master record. ©Copyright SAP AG. The functionality that has been added to the system through Enhancement Packages will become part of the next major SAP release. which means that if you do not have any installed in your system and you would like to install Number 2.82 UPGRADING SAP no longer required to go through an entire upgrade process. To support customers with this. SAP will also release Enhancement Packages for other Business Suite components like CRM. which means new programs. you have to implement Support Packages for these Enhancement Packages as well. Alternatively. Tools like these should help to reduce the complexity and effort of applying Support Packages. it automatically installs Number 1.50: mySAP ERP 2005 Enhancement Package strategy. the SAP system supports up to 30 different languages.

SAP SOFTWARE LOGISTICS 83 After a “fresh” install of an SAP system only German (DE) and English (EN) are available as languages. this line will provide the ability to start loading the language. During the import phase in SMLT. If the language has not been imported into the SAP system.6C). The different languages are implemented as text elements. For every language in the system. . Figure 4. there is a line item in the overview screen of SMLT.51: Initial screen of SMLT Language Management (SAP R/3 4. By selecting this line. you will be able to select the appropriate language and add it to the list. you can see all import details of this particular language.6C.and datafiles) on a CD-ROM. you can specify the location of these installation files. Through transaction SMLT. Languages are imported by using R3load. which are identified by a language key. whether it’s imported or not. All SAP support languages have their own unique language key that is specified in table T002: Field SPRAS LASPEZ LAHQ LAISO Type (dimension) LANG (1) CHAR (1) CHAR (1) CHAR (2) Description Language key Language specification Degree of translation ISO 639 Language code When an additional language needs to be installed in the system the language key needs to be available in this table. Additional languages need to be imported into the system using the Language management tool accessible through transaction SMLT.6C or by using R3trans as of SAP R/3 4. up to SAP R/3 release 4. The language import files are delivered as R3load or Transport files (co. ©Copyright SAP AG.

to cope with legal requirements. The master language is the language where the objects are created and maintained in. SAP switched from R3load to R3trans for language imports. System. As mentioned before. for example. So when a text is put on the screen it points to a row in a table. Table DD02L points to DD02T. lists all relevant language fields.TABNAME = ‘USR02. languages are implemented as text elements. The tool can be used to translate additional texts in incompletely translated languages. All text elements are stored in tables. The translation workbench is a tool for translating language-dependent texts. In SAP releases older than 4. and therefore languages and translations. assume that languages are client independent. Although a table or ABAP program can have multiple text elements. and Customizing tables. Transaction. with at least two fields: language key and text. which contains (most important fields are shown here): Field TABNAME DDLANGUAGE DDTEXT Type (dimension) CHAR (40) CHAR (2) CHAR (120) Description Name of table (as in DD02L) Language key (as in T002) Text it self For example. table DD02L contains all table definitions in SAP. and contains all texts in different languages for all table names. The master language. of each object is specified in table TADIR field MASTERLANG. if you want to use the Danish language. This provides the ability to translate certain text elements into Danish yourself. the customizing table TVKO that contains all Sales Organizations is accompanied with table TVKOT for the text elements. there is only one Master Language. This could be done for “Dangerous Goods Movement” documents. are stored in tables with (TVKOT) and without (DD02T) the client-specification field MANDT.’ Text elements are available for all kinds of SAP tables: Master.84 UPGRADING SAP As already stated. Therefore. which on most occasions is English or German.DDTEXT=’Anmeldedaten. DD02T.6C. but without importing the language. but the language is not (yet) available from SAP.DDLANGUAGE=’D’ and DD02T. . The customer can decide whether it translates certain text elements using the Translation Workbench. identified by a language key. TIP Text elements. For example. The reason for this is related to Support Packages.6C. the option is to install the Danish language in SMLT. The dialog user. The table DD02T points back to DD02L. For example. The Danish language is completely supplemented with either English or German. As of release 4.’ DD02T. who logs-on in Danish will only see English or German texts. one for each installed language. which can be accessed using transaction SE63.

SAP will only import those languages that are installed in the system. SMLT is able to disassemble all required files from the EPS package. During the normal implementation of Support Packages. the SMLT tool will import missing text elements belonging to that “new” language and from the already applied Support Packages. Just store all required EPS packages in “/usr/sap/transEPS/in. TIP You do not have to keep all co. A negative consequence of this “new” method is the increased size of each Support Package. the text element of all supported languages.SAP SOFTWARE LOGISTICS 85 you could not install “new” additional foreign languages to your system if there were already Support Packages applied.” . Figure 4. the co. If you did so.52: Language import problem of SAP R/3 up to release 4.6C. the “new” language is only added in the “core” of the SAP system. Figure 4. In order to do this.6B.and datafiles online in order to add additional languages to your system. When an additional language is added to the system at a later stage. all objects that were modified due to Support Packages will not have a proper translation.and datafiles of these Support Packages need to be available for accessing.53: Language import option as of SAP R/3 4. in all Support Packages. The solution to this problem is to include.

Sign up to vote on this title
UsefulNot useful