sexta-feira, 20 de novembro de 2020

New Client Copy Tool

 

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?

The client copy tool was originally developed in the 1990s. Since then, it has been further developed and maintained, but more and more fundamental problems came to light, especially with regard to new cloud processes, which required a new solution.

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. It is no longer necessary to start the client copy in the target client. Instead, this can now be started in a neutral third client (usually client 000). This increases efficiency and ensures that no users romp around in the target client during the client copy. The use of the user SAP * and restart of the application server to enable the user is no longer necessary.

Execution%20from%20Third%20Client

Execution from Third Client

HANA Optimization. The new tool is optimized for use with HANA. Our tests showed that the new Local Client Copy is about 10x faster than the old tool. The new Remote Copy was up to 5 times faster than the old tool in our tests. Instead of first loading the data onto the application server for a local copy, the data remains on the database during a local client copy by using an INSERT FROM SELECT statement.

INSERT%20%28Target%20Client%29%20FROM%20SELECT%20%28Source%20Client%29

INSERT (Target Client) FROM SELECT (Source Client)

Client Copy Optimizer. The new Client Copy Tool has implemented an optimizer for empty and unchanged tables. At the beginning of each client copy, the tool reads the HANA database statistics. It then checks whether a table in the database is completely empty in all clients. If this is the case, this table can be skipped in the delete and copy phase. The optimizer also checks whether a table has been changed since the last client copy on the database. If a table has not changed since the last client copy and the last client copy had the same source and target clients, this table can also be excluded from the delete and copy phase. This optimization is particularly useful for regular copies of test clients or in the event of an aborted client copy.

Handling of very large tables. In order to be able to deal with very large database tables, the Client Copy was enhanced to include a splitter algorithm. This splits very large database tables by generating WHERE conditions, which can then be copied by different processes in parallel. This ensures that the allocation limit in HANA and ABAP is not exceeded during the copy process. Furthermore, this algorithm increases the performance, since very large tables can be copied by several processes at the same time.

New%20Feature%3A%20Table%20Splitting%20Algorithm

Table Splitting Algorithm generates WHERE-Conditions for Parallel Processing

Class-based Exit Framework. Exits are now based on class interfaces and now run in an isolated environment. By using interfaces, there is now a clear interface between the Client Copy Tool and the exits. Running in an isolated environment ensures that a broken exit cannot crash the entire Client Copy Tool. Old exits are still supported and executed via a wrapper exit. If you have an old exit, please contact SAP to receive support in implementing the new exit framework. You can find more information about exits in the client copy section.

Renovated Log. Finally, the client copy log (transaction SCC3) was completely revised and replaced by a clearer solution. The logs are shown in tabs. In addition to the well-known “Client View”, there is now a “Timeline View” and a view for each copy mode (local copy, remote copy, etc.). Different columns show the exit status, the table copy status and a general message status. This makes it possible to assess the success of a client copy at a glance.

New%20Client%20Copy%20Protocol%20Transaction

New Client Copy Log Transaction (SCC3)

Tasklist Support. All of the new copy processes presented here now offer execution via task lists. The task lists can either be started from the corresponding transaction or directly using transaction STC01.

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)

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

For more details please check section “Processing Options” in this blog.

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.

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:
    1. Data that only exist in comparison object 1,
    2. Data that only exist in comparison object 2,
    3. Data with an identical key but different non-key field values ​​and
    4. Data records that are completely identical.
  • Store as Template Container. Like the Detailed Comparison. However, the comparison result is saved in a template container.

Note: Please note that the Comparison Tool is not designed to compare very large database tables and drill down into these tables. We only recommend a checksum comparison for these tables.

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%20Run%20Result

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%20Size%20Estimation%20Tool

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%20Tab%20showing%20Active%20Process%20while%20Client%20Copy%20is%20running

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%20Overview%20Screen

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%20Tables%20of%20a%20Client%20Copy

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/TasksOld TransactionNew TransactionTasklistReleased with
Local Client CopySCCLSCCLNSAP_CLIENT_COPY_LOCALSAP_BASIS 754 SP00
Remote Client CopySCC9SCC9NSAP_CLIENT_COPY_REMOTESAP_BASIS 754 SP01
Client DeletionSCC5SCC5NSAP_CLIENT_DELETIONSAP_BASIS 754 SP00
Client ExportSCC8SCC8NSAP_CLIENT_EXPORTSAP_BASIS 754 SP02
Client ImportSCC7SCC7NSAP_CLIENT_IMPORT_POSTPROCESSINGSAP_BASIS 754 SP02
Client Copy LogSCC3SCC3n/aSAP_BASIS 754 SP01
Client Copy – Special SelectionSCC1SCC1NSAP_CLIENT_COPY_BY_TRANSPORTSAP_BASIS 755 SP01
Comparison ToolN/ASCC_COMPARESAP_CLIENT_COMPARISONSAP_BASIS 754 SP03
Client Size DeterminationN/ASCC_CLIENT_SIZESAP_BASIS 754 SP00

New Authorization Checks

Please note that with the new Client Copy Tool, new authorization objects have also been introduced. See the main note 2962811 for more information.

Related Information

Client Copy Main Note: 2962811

SAP Help Portal: Client Copy and Transport

Nenhum comentário:

Postar um comentário