Overview
With SAP_BASIS 7.54 (SAP S/4HANA 1909), SAP delivers new client management tools based on new common architecture. They are a complete redesign of the previous client copy (transactions SCCL, SCC9, SCC5, …). The new tools replace the old client copy and also offer new functions. They are optimized for increased performance, process automation and stability. The log of the client copy has also been completely revised and is now much more meaningful and easier to read, so that troubleshooting is much easier.There are also new tools to compare clients and to determine the size of clients. With SAP_BASIS 7.55, the client export and client import have been expanded to include the option of exporting / importing so-called “snapshots”.
In this blog I’ll will introduce you to the following tools:
- New Local Client Copy
- New Remote Client Copy
- New Client Export and Import using Transports or Snapshots
- New Client Size Estimation Tool
- New Client Comparison
Why a New Client Copy Tool?
Therefore, at the end of 2017, the development of a new client copy tool began. With SAP_BASIS 7.54 (S/4HANA 1909), the new tool was delivered to customers for the first time in 2019. With SAP_BASIS 7.55 (S/4HANA 2020) the client export and the client import were also converted to the new architecture. With SAP_BASIS 7.55 Service Pack 1, transaction SCC1 is finally moved to the new architecture.
Compared to the old Client Copy Tool, the number of code statements went from over 25,000 to less than half with a significantly expanded range of functions such as the comparison tool. The new Client Copy Tool today has a unit test code coverage of over 93% over the entire coding.
Improvements
The new tool solves conceptual problems of the old client copy and is characterized by increased stability compared to its predecessor.
Execution from a third Client:
Execution from Third Client
HANA Optimization:
INSERT (Target Client) FROM SELECT (Source Client)
Client Copy Optimizer.
Handling of very large tables.
Table Splitting Algorithm generates WHERE-Conditions for Parallel Processing
Class-based Exit Framework.
Renovated Log.
New Client Copy Log Transaction (SCC3)
Tasklist Support.
Client Tools
SAP delivers various client tools:
- Local Client Copy for a copy within the same system
- Remote Client Copy for a copy from another system to the local system
- Client Deletion for the deletion of a client
- Client Export and Client Import for the export and import of clients in transport requests or client snapshots (new feature)
- Copy from Transports (SCC1N) for copying Customizing Objects within the same system.
Client Copy
There are two types of client copies:- Local Client Copy : The local client copy takes place within a system. The local client copy is started via transaction SCCLN.
- Remote Client Copy: The remote client copy copies data from an external system to another client in the target system using RFC. The process is always started from the target system. The remote client copy is started via transaction SCC9N.
Differences between Local and Remote Client Copy
The process flow of the local and remote client copy is basically the same. However, there are some special features to consider with the remote copy that do not occur with a local copy:- Often the DDIC table definitions differ between the source and target systems due to different releases. Before each remote copy, the Client Copy Tool compares the DDIC table definitions and rules out incompatible tables. A table is e.g. incompatible if a field in the target system that is available in the source system is missing or has a shorter data type.
- While exits run in the analysis phase of a local copy in the target system and target client, the same phase is executed in the source client for a remote copy in the source system.
Client Copy Phases
The new client copy runs in four phases:
- Initialization phase: In the first phase the tool initializes the list of all relevant tables, the client lock objects, the exit handler and many other smaller objects.
- Analysis phase: In the second phase, all client copy exits are executed. Exits can exclude certain tables from the copy, request emptying or even explicitly include tables into the list of tables to be copied. After all exits finished, the finalized list of tables to be deleted and copied is saved in the database. If the option to split tables is activated, very large database tables are analyzed for processing in parallel processes and broken down into smaller work packages.
- Delete and copy phase: The actual deletion and copying process takes place in this phase. First, all tables in the target client are deleted. The data is then copied from the source client to the target client. After all tables have been finished the source client gets unlocked.
- Post processing phase: Finally, the postprocessing exits run. Typically, these convert data or generate objects that are dependent on the data.
New Features
The New Client Copy has the following new features:- Split large tables
- Copy individual tables
- Options to tolerate failed Exits and Tables
Client Deletion
The new client deletion is started via transaction SCC5N. It has the same phases as the client copy. The client can be deleted directly from the client list (accessible via transaction SCC4) using the “Delete from System Table T000” setting. In contrast to the old client deletion, the transaction must be started from another client and no longer from the client to be deleted.Client Export and Import
The client export and client import process have also been completely revised. The basic idea of this process is to freeze a client on an “external” data carrier so that it can then be imported into another or several target systems. Exports enable a client to be frozen at a specific point in time.The old Client Copy Tool previously only allowed exports using transport requests. With SAP_BASIS 755 there is now a further option for exporting to “Client Table Snapshots”. These are saved in the database of the exporting system and can be imported into the import system via an RFC connection. Compared to transport requests, the snapshots offer increased performance and greater flexibility in usability. The list of all snapshots can be viewed in transaction SCC3.
Please note: Exports that were carried out with the old tool are not compatible with the new tool and vice versa.
Copy Data from Transports
The transaction SCC1 was revised as the last client tool. The new transaction is released for customers from 2020 SP01.Please note that the transaction was already delivered with SP00 but is not yet functional.
With the help of SCC1N it is possible to copy customizing objects recorded in transport requests to several target clients. This can be a local transport request or an imported transport request from another system.
In contrast to transaction SCC1, SCC1N can be executed in any client. The log has been completely revised analogous to the client copy log. Based on the feedback from internal customers, additional selection parameters were added.
Transaction SCC1N is a further development and amalgamation of the old transaction SCC1 and the old report RSCC_SCC1_BATCH. As a result, compared to the old SCC1, a large number of new parameters are available. If you want to copy transport requests that have not been released with SCC1N as in SCC1, proceed as follows:
- In the “Export / Import Time of the Transport Request” group, select the “Local Import / Update Date” radio button.
- If it is a mandatory field, enter a date that is far in the past in the “Export / Import Date” field.
Comparison Tool
A new product is delivered with the comparison tool. It allows the comparison of clients, client table snapshots or client templates in any combination. The Comparison Tool can be used to compare customizing or entire clients. The comparison tool is started using transaction SCC_COMPARE.Comparison Modes
The Comparison Tool offers three comparison modes:- Checksum Comparison. In this mode, the comparison tool selects the data of both comparison objects, creates a checksum and finally compares the checksums. In the case of different checksums, differences were found between the two objects. The checksum comparison is the fastest method for comparing two objects, but it does not offer any possibility to compare the data.
- Detailed Comparison. In this mode the comparison tool selects the data of both comparison objects and compares them line by line. The data records are divided into the following categories:
- Data that only exist in comparison object 1,
- Data that only exist in comparison object 2,
- Data with an identical key but different non-key field values and
- Data records that are completely identical.
- Store as Template Container. Like the Detailed Comparison. However, the comparison result is saved in a template container.
Data sources
The Comparison Tool offers the selection of several data sources for selecting the tables to be compared:- Profile. Please note that SAP does not deliver a comparison tool.
- Individual table list. You can compare any tables with one another. With a remote comparison, even client-independent tables can be compared with one another.
- Run Id. Tables from a previously executed client copy.
Comparison Results
After a successful comparison run, you can view the result on the next screen or on tab “Comparison” of transaction SCC3. You can see the result of the comparison on the “Compared Tables” tab. By double-clicking on the table name, you can drill down to the compared data and check the differences in detail.Comparison Run Result
Client Size Estimation
The Client Size Estimation Tool allows you to estimate the size of individual tables or an entire client. The tool calculates the client’s disk size using the following formula:Table Size = Table Disk Size on the database / Total Number of table rows * Number of rows in the examined client
The actual data in the client is not considered here. HANA internal compression is not considered here as well. In the case of tables with fields of dynamic length, the algorithm can therefore only offer an orientation value.The Client Size Estimation Tool is started using transaction SCC_CLIENT_SIZE.
Client Size Estimation Tool
Client Copy Log
The protocol transaction SCC3 was completely renovated. The transaction is now completely tab-based. Logs are now stored in the database instead of the file system.Overview Screen
While a client copy is running you will always find a summary of the current status of the client copy on the first tab. This shows you information about the current running process, the source and target clients and the progress of deletion and copying.First Tab showing Active Process while Client Copy is running
Otherwise you will find an overview of all clients in the system on the first tab. With a double click you can select a client in order to have a closer look at all processes carried out in this client. With this click you will automatically be directed to the second tab.
SCC3 Overview Screen
The so-called “Timeline View” is new. On this tab you can see all the processes carried out by the tool in descending chronological order.
This is followed by several tabs with detailed views for the local client copy, the remote client copy, client deletions, client export, client import, transport request copies, client comparison and finally the client table snapshots and client template containers.
Detailed Log
A double click takes you from the overview list to the detailed view of a log. On the first tab “Log Header” you can see a general overview of the current mode, the selected profile, the clients concerned, the exit status and the process status.Processed Tables of a Client Copy
Here is an overview of the most important tabs:
- Log header. Overview of the current mode, the selected profile, the clients concerned, the exit status and the process status.
- Options. List of the settings made on the selection screen.
- Table statistics. Overview of the number of emptied and copied tables and the number of deleted and copied data records. In addition, you can see the number of skipped tables on the tab because they were either empty on the database or were already copied from a previous client copy.
- General Messages. General messages returned by the Client Copy Tool.
- Exit messages. Messages issued by exits.
- Processed tables. Overview of all tables processed by the Client Copy Tool. The current progress of the copying process during a client copy can also be tracked on this tab.
- Included/Excluded Tables. List of all tables integrated or excluded by the Client Copy Tool or by exits. If a table was copied or not copied, you can find out the reason here. In the case of remote copies, you will also see all tables on this tab that cannot be copied due to incompatible DDIC structures.
- Disk Space. Estimation of the deleted and copied data volume (see also under Client Size Estimation Tool).
- Runtime. Exact listing of the runtime of the individual client copy phases. This tab is particularly useful for performance analysis.
- Exit execution. List of all executed exit methods. Each exit returns a status of its successful execution. The runtime of each exit is logged on this tab.
- Exit definition. List of exit definitions as they were valid at the time the process was executed.
Deletion of old Logs
Since several data records are written to the database for each table copied by the Client Copy Tool, we recommend deleting old logs that are no longer required at regular intervals. With SAP_BASIS 755, transaction SCC3 has been expanded to include a delete function for client copy logs. For this purpose, a delete button has been integrated into the table on the “Timeline View” tab.With release SAP_BASIS 755 Service Pack 1, this function will be moved to the new transaction SCC3_ADMIN. This ensures that transaction SCC3 remains a read-only transaction.
Client Table Snapshots
With SAP_BASIS 755, SAP delivers client table snapshots and client template containers for the first time. Client table snapshots are local objects that are stored in tables of delivery class “L” (temporary data).What are snapshots?
Snapshots are based on the Remote Client Copy table copying algorithm and allow any database table to be backed up. A snapshot can have any name and store any number of tables. The data of each individual table is stored as a serialized RAWSTRING in several database tables.With the help of a checksum on the serialized data, the data of each table is stored centrally once across all snapshots. With a regular backup of an entire client, only the delta between two backups would take up additional storage space, since an identical checksum would only save the same data once under the same key (checksum) with two or more snapshots.
Usage
Snapshots are especially relevant for client export and client import. You can export an entire client or individual database tables to a snapshot using the Client Export Tool (SCC8N). Until now, the Client Export Tool could only export into Transport Requests.In contrast to the transport request, snapshots have several advantages. This makes them easier to use because they are stored in the system’s database and not in the application server’s file system. Containers can be imported into other systems via an RFC connection (similar to Remote Client Copy). Containers are saved with optimized storage space. In addition, creating and importing a snapshot takes less than half the time than using transport requests.
This makes containers particularly suitable as an alternative to client export and import with transport requests and for freezing test clients that can be restored over and over again.
With the help of the comparison tool it is possible to compare the data of a snapshot with the current data in the client.
Processing Options
The Client Copy Tools come with multiple processing options:- Test Mode. The program logic of the client copy is completely performed, without writing or deleting in the database, so the behavior of a client copy is simulated. A complete log is created (display with transaction SCC3).
- Lock Source Client. Locks the Source Client while performing a Client Copy.
- In case this option is enabled the client copy tool locks the source client for users. Users still logged on will not be thrown out of the client but logon to the client is no longer possible. To ensure data consistency we strongly recommend to keep this option always enabled.
- Tolerate Failed Exits. Ignore failed Client Copy Application Exits while performing a client copy.
- In case this option is enabled failed exits will not cancel the client copy process.
- Tolerate Failed Tables. Ignores Table Deletion-/Copy Errors.
- In case this option is enabled failed table deletion-/copy-operations will not cancel the client copy process. All other tables will be processed.
- Use Exclusive Locks. Use of exclusive database table locks.
- In case this option is enabled the client copy tool sets an exclusive lock on each table being copied. This reduces the memory footprint in the database and speeds up the database operation. As long as the table is locked exclusively any other tool cannot update the database table. Therefore, we recommend disabling this option in case the system is still used by other users while performing the client copy.
- Split Large Tables. Split Large Tables while performing a client copy.
- In case this option is enabled the client copy splits up large tables into smaller units for performing the copy-operation in parallel processes. This avoids that the database runs out of memory and enables the client copy tool to perform copy-operations in parallel processes.
- It is recommended to enable this option by default.
- Copy Incompatible Tables (RFC). Copies tables from remote systems, even if their structure is not identical.
- Tables having different structures will be copied even in case of data loss. This applies for example for tables in case at least one column is only available in the source system but not in the target system. All incompatible Tables which will be copied anyhow are documented in the client copy protocol.
If this option is disabled: Below is the rule list for a table to be marked “INCOMPATIBLE” by the client copy tool.
- The table must be present in both source and target system.
- If the table exists in both systems, then the key fields should be the same.
- The field list in both systems should be the same, however the position of the fields can be different.
- The data type of all the fields must be the same.
- The length of the fields must not be shorter in the target system. It can be greater or same length.
If this option is enabled: The tables not falling in the below rule list will be marked “INCOMPATIBLE” and will be skipped/excluded from copy.
- The table must be present in both source and target system.
- If the table exists in both systems, then the key fields should be the same.
- The field list can differ. That is, missing fields are ignored, and matching field data will be copied
- The data type of the matching fields must be the same
- The length of the fields must not be shorter in the target system. It can be greater or same length.
- Automated Import Postprocessing. Executes the import post-processing (transaction SCC7N) automatically immediately after an exported client got imported. If activated, you no longer need to manually call transaction SCC7N after importing an exported client. This option is only available for Client Export to a Transport Request.
- Release Transport Requests on Client Export. Releases the transport requests at the end of the export process. The exported Transport Requests will be released immediately as part of the client export process.This option is only available for Client Export to a Transport Request.
- Use Mode Vector/All Languages. Use Export Option LSM-Mode = Vector and export all languages on transport release.This option is only available for Client Export to a Transport Request.
Overview of Transaction Codes and Tasklists
Process/Tasks |
Old Transaction |
New Transaction |
Tasklist |
Released with |
Local Client Copy |
SCCL |
SCCLN |
SAP_CLIENT_COPY_LOCAL |
SAP_BASIS 754 SP00 |
Remote Client Copy |
SCC9 |
SCC9N |
SAP_CLIENT_COPY_REMOTE |
SAP_BASIS 754 SP01 |
Client Deletion |
SCC5 |
SCC5N |
|
SAP_BASIS 754 SP00 |
Client Export |
SCC8 |
SCC8N |
|
SAP_BASIS 754 SP02 |
Client Import |
SCC7 |
SCC7N |
SAP_CLIENT_IMPORT_POSTPROCESSING |
SAP_BASIS 754 SP02 |
Client Copy Log |
SCC3 |
SCC3 |
|
SAP_BASIS 754 SP01 |
Client Copy – Special
Selection |
SCC1 |
SCC1N |
|
SAP_BASIS 755 SP01 |
Comparison Tool |
N/A |
SCC_COMPARE |
|
SAP_BASIS 754 SP03 |
Client Size Determination |
N/A |
SCC_CLIENT_SIZE |
_ |
SAP_BASIS 754 SP00 |
Please note that with the new Client Copy Tool, new authorization objects have also been introduced. See the main note 2962811 for more information.