Custom Code Migration Guide For SAP S/4HANA 1909: Feature Package Stack 02
Custom Code Migration Guide For SAP S/4HANA 1909: Feature Package Stack 02
2020-05-06
1.2 Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Using SAP NetWeaver Application Server for ABAP 7.52 as Central Check System. . . . . . . . . . . . . . 22
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Using SAP Cloud Platform ABAP Environment as Central Check System. . . . . . . . . . . . . . . . . . . . . 35
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 What's Next?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5 Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
This guide focuses on the custom code related process from checking custom code remotely, analyzing the
findings, and finally adapting the custom code to SAP S/4HANA 1909.
Read this guide to get instructions on how to adapt your custom code to SAP S/4HANA 1909.
Custom Code Migration is part of the system conversion process from the classic SAP Business Suite running
on any database to the SAP S/4HANA system. In the context of this system conversion, custom ABAP source
code needs to be adapted, since a lot of SAP code within SAP S/4HANA was simplified and in some cases
changed in a non-compatible way.
Some of your custom code objects are not valid anymore and either do not perform as expected or produce
syntax errors or dumps (red objects in the picture). You almost certainly have other objects that do perform as
expected and do not need to be changed (green objects in the picture).
SAP provides tools, based on the Simplification Database, that detect any custom code that needs to be
adapted to SAP S/4HANA. The Simplification Database is a database table in the SAP S/4HANA system that
contains all Simplification Items that refer to SAP objects simplified in SAP S/4HANA. Each simplification item
describes changed or removed SAP objects and refers to a dedicated SAP Note that describes the impact of
the change and how the related custom code can be adapted.
The custom code migration process for the system conversion to SAP S/4HANA describes the tools and
necessary procedures to migrate your custom code. The process consists of preparatory analysis (custom
code scoping and custom code analysis) and the adaptation of the custom code (custom code adaptation)
after the technical system conversion.
The following figure provides you an overview of the phases, the activities, and the tools involved in this
process.
Overview of the conversion process that is divided into the preparation phase and the realization phase
For more information, see SAP S/4HANA System Conversion – Custom code adaptation process
Note
Recommendation
SAP recommends to scope your custom code in order to delete unused custom code and to minimize your
efforts.
If you want to benefit from scoping, you need to monitor your productive system landscape in advance. To
do this, SAP recommends
Custom code analysis enables you to identify the custom code which must be adapted in the context of the
system conversion to SAP S/4HANA.
You have the following possibilities to run the custom code analysis:
Both options provide the relevant checks in a central check system. The central check system can remotely
execute these checks on any ABAP system ((SAP_BASIS ≥ 7.00 where the custom code to be analyzed is
stored.
After the system conversion, you need to perform the functional adaptations in your custom code.
In the system conversion, you need to adapt any modifications related to ABAP Dictionary objects using
transaction SPDD.
After you performed the system conversion to SAP S/4HANA with Software Update Manager (SUM), you need
to adapt any modifications related to repository objects using transactions SPAU and SPAU_ENH.
After this, we recommend that you run ABAP Test Cockpit (ATC) with SAP S/4HANA checks in ABAP
Development Tools (ADT). The result is a list of ATC findings that relate to SAP S/4HANA simplifications and
refer to SAP Notes which describe how to solve the issues. Based on these ATC findings, you can start adapting
your custom code using quick fixes in a semi-automated way.
Recommendation
SAP recommends you to run ABAP Test Cockpit (ATC) with SAP S/4HANA checks in ABAP Development
Tools (ADT). Here, the check result is provided as a list containing the ATC findings that relate to SAP S/
4HANA simplifications and refer to the SAP Notes which describe how to solve the issues. Based on these
ATC findings and specific quick fixes, you can start adapting your custom code on a semi-automated way.
Note
You also need to adapt some of your custom code if you upgrade from a lower release to SAP S/4HANA
1909.
Performance Tuning
Finally, you need to check which business processes, for example performance of critical database queries,
need to be optimized in SAP HANA. To do this, you need to check which SQL statements can be optimized.
Overview
Some options of the custom code analysis depend on whether your central check system is an on-premise
system or based on SAP Cloud Platform ABAP Environment.
Options
Follow one of the subsequent options to run the custom code analysis:
1. If your central check system is based on SAP S/4HANA 1909, you can use the Custom Code Migration
app to define the scope of your custom code that needs be migrated to SAP S/4HANA and to analyze
custom code for SAP S/4HANA custom code checks. This SAP Fiori app acts as a central check system on
the latest version of SAP S/4HANA. This ensures that you run the latest version of the SAP S/4HANA
custom code checks.
Tip
If you choose this option, see Using SAP S/4HANA 1909 as Central Check System [page 8] for more
information on how to run custom code scoping and custom code analysis.
Tip
If you choose this option, see chapter Using SAP NetWeaver Application Server for ABAP 7.52 as
Central Check System [page 22] for more information how to run the custom code analysis.
3. If your central check system is based on SAP Cloud Platform ABAP Environment, you can use the Custom
Code Migration app to define the scope of your custom code that needs to be migrated to SAP S/
4HANA and to analyze custom code for SAP S/4HANA custom code checks. The SAP Cloud Platform
ABAP Environment will analyze your custom code in your on-premise system remotely through Cloud
Connector. The SAP Cloud Platform ABAP Environment is updated four times a year and contains the
latest features of the Custom Code Migration app.
Tip
If you choose this option, see Using SAP Cloud Platform ABAP Environment as Central Check System
[page 35] for more information how to run the custom code scoping and custom code analysis.
If your central check system is based on SAP S/4HANA 1909, you use the Custom Code Migration app to
scope and analyze custom code in your on-premise SAP system for SAP S/4HANA custom code checks. This
ensures that you run the analysis on base of the latest ATC check versions in the context of ABAP platform.
The Custom Code Migration app enables you to scope and analyze custom code that needs to be migrated
from an SAP Business Suite system to SAP S/4HANA 1909.
To evaluate the development objects to be adopted, this SAP Fiori app performs the SAP S/4HANA custom
code checks.
Note
If you have already setup an SAP S/4HANA 1909 sandbox system, this system can also be used for the
custom code analysis.
To perform the custom code analysis with the Custom Code Migration app, you must set up an SAP S/
4HANA 1909 system.
In the checked system, the RFC user needs the following authorizations:
Name of Authoriza
tion Object Activity Type of RFC Object Name of RFC Object Description
S_DEVELOP 03 (Display) * *
In the Central Check System, you need the following user to use transaction ATC to perform custom code
checks:
In addition, you need the following authorization object for importing the Simplification Database into the
Central Check System:
● 2436688 - Recommended SAP Notes for using SAP S/4HANA custom code checks in ATC
● 2364916 - Recommended SAP Notes for using ATC to perform remote analysis
To perform the custom code analysis, you need to configure the connection between the Central Check System
and the checked system.
The Custom Code Migration app performs the SAP S/4HANA custom code checks in the checked system
in which the custom code to be analyzed is stored.
Prerequisites
The RFC user in the checked system requires the authorizations that are specified in SAP Note 2672703 .
Context
You want to configure the required connection from the back-end system of this SAP Fiori app to the checked
system.
Procedure
Use transaction SM59 to create RFC connections for each checked system.
Procedure
2. In the navigation pane, expand the node ATC Administration Setup and double-click Object
Providers.
3. Double-click the item System Groups for selection.
Procedure
1. In the RFC Object Providers view, double-click the item RFC Object Providers for selection.
Fields Description
Note
This ID is used when configuring an ATC run series.
<System Group> The system group to which the Object Provider belongs
<SAP System> ID of the remote system, to which you want to connect us
ing the Object Provider
<RFC Destination> Valid RFC destination for RFC connection to the checked
system
Note
This RFC connection must be usable without a logon
dialog.
Perform the following tasks to implement the Custom Code Migration app.
Prerequisites
Before implementing the Custom Code Migration app, ensure that you have followed the steps for
Implementing General Functions for the Key User.
1. In transaction PFCG, add the business catalog SAP_BASIS_TCR_T (SAP: Application Services) to the user
roles that will use the Custom Code Migration app.
2. Assign the user role to all users that will use the Custom Code Migration app.
The app is now available in SAP Fiori launchpad for all users that have assigned the changed user role.
Tip
Each user can add the app to its SAP Fiori launchpad by using the app finder in their user settings.
For more information about activating OData services, see http://help.sap.com/s4hana <Your on-premise
edition> Product Documentation UI Technology Guide Implementation Task on the Front-End Server
Activate OData Services http://help.sap.com/fiori_implementation Implementation SAP Fiori: App
Implementation .
1. Assign the user role SAP_BC_YCM_APS to the users who will work with the Custom Code Migration app.
The following steps are relevant for the custom code analysis:
To check your custom code against the SAP S/4HANA simplifications, you need to import the Simplification
Database into the Central Check System.
SAP provides content for the Simplification Database of an SAP product in the SAP Support Portal. The
content of the Simplification Database can be downloaded as a ZIP file. This ZIP file then has to be uploaded to
the Central Check System.
Procedure
Note
To find the most recent content of the Simplification Database provided for SAP S/4HANA, see also
SAP Note 2241080 .
Results
The ZIP file is downloaded and saved on your selected drive. It contains the content of the Simplification
Database.
To add the content of the Simplification Database to your system for further analysis, you need to upload the
downloaded ZIP file to the Central Check System.
Procedure
3. Choose Simplification Database Import from ZIP File from the menu bar.
4. Choose the ZIP file with the downloaded Simplification Database from your drive and confirm with Open.
Results
The Simplification Database is uploaded to the Central Check System and is now available for analysis in
transaction SYCM.
You can display the content of the Simplification Database to get an overview of all changes or specific changes
and the corresponding SAP objects that are simplified in SAP S/4HANA.
Procedure
To get a list of all Simplification Items, choose Ctrl + F8 or the Overview button.
To limit the number of Simplification Items displayed, enter the relevant filter criteria in transaction SYCM
and choose Execute.
Results
The Simplification Database Content view is opened. From here you can order the displayed list, for example by
their SAP Object Type, the assigned Simplification Category, or the relevant SAP Note Number.
From the overview, you can display the list of objects contained in a Simplification Item.
Example
To find out whether a certain object is related to a Simplification Item, enter the name of the object (for
example MATNR) in the Object Name field and execute ( F8 ). Then you can navigate to the corresponding SAP
Note to get more information.
The Custom Code Migration app enables you to scope and analyze custom code that needs to be migrated
from an SAP Business Suite system to SAP S/4HANA 1909.
A custom code migration project defines the scope of custom code which you want to analyze and migrate to
SAP S/4HANA.
Procedure
1. Start the tile Custom Code Migration from the SAP Fiori launchpad.
2. Choose to create a new custom code migration project.
3. Enter a Project Description for your new project and the RFC Destination to the SAP system which contains
your custom code.
Note
Make sure that the checkboxes for Extended Amount Length, Extended Stock/Requirement Segment
and Extended Season/Theme/Collection are enabled, if you use them.
The Custom Code Migration app supports you with identifying your unused custom code based on your
collected usage data. With the scope of a custom code migration project, you can specify which of your custom
code needs to be converted to SAP S/4HANA.
To define the scope of your custom code migration project, you can either use your usage data collected with
transaction SUSG or your usage data collected in your Solution Manager (this requires Solution Manager 7.2
support package 8 or higher).
Note
If you have not aggregated your usage data so far, you should activate the aggregation of your usage data in
transaction SUSG in your production system now. To do so, start transaction SUSG in your production
system and choose Activate to activate the aggregation of your usage data.
Ideally, the usage data you add to your custom code migration project should cover at least one year of
usage information, so that also usage data of quarter and year ending functionality is considered.
To define the scope of your custom code migration project, you can use your usage data collected with
transaction SUSG.
Procedure
4. Add the snapshot of your usage data to your custom code migration project in the Custom Code
Migration app.
a. Choose Edit.
b. In the Usage Data frame, choose .
c. Choose beneath the Usage Description field.
d. Search for your usage data you created as a snapshot.
Note
If you transferred your usage data to your checked system, your usage data is displayed
automatically in the Items overview.
e. Select your usage data to add it to your custom code migration project.
Note
When you add usage data to your custom code migration project, a default scope is calculated. The
default scope includes all used objects, all objects which are statically referenced by the used objects,
and objects for which no usage data is available, such as database tables or data elements.
Here you can see how many objects are in and out of scope.
Tip
Choose View By to display detailed scope information or your scope sorted by object name or object
type.
In the Custom Code Migration app, you can change the scope on the following levels:
Example
When do you need to change the scope of your custom code migration project?
● Scenario 1
A transaction which is used in your Business Suite system shall not be used any longer, because you want
to change your business processes in SAP S/4HANA.
Choose the filter Scope by Request Entry Points for your transaction and remove the request entry point
from your scope.
● Scenario 2
A new functionality is in development but has not been used in your production system yet. Therefore, no
usage data has been collected for this application and it has not been added to your scope automatically.
Choose the filter Scope by Package for all packages containing your developments for the new functionality
and add them to your scope.
When you have specified your scope in your custom code migration project, you can create a transport request
in the checked system. This transport request contains all objects which will not be migrated during the system
conversion.
Procedure
The transport request is also shown in the field Request/Task in your custom code migration project.
Next Steps
For more information, see chapter "Integration of Customer Transports" in the corresponding upgrade guide
for SAP HANA DB Software Update Manager 2.0.
When you create a custom code migration project, the SAP S/4HANA custom code checks are performed
automatically. The Custom Code Migration app then gives you an analytical representation of SAP S/4HANA
custom code check findings.
Procedure
1. Choose Analysis to get an overview of the results, as soon as the first analysis has been finished.
2. Choose Analyze Findings to get a detailed analysis.
3. In the Custom Code Migration - Analysis - Findings view, you can specify various filters, for example:
○ Simplification Item Category: The simplification item category specifies whether findings are related to
functionality which is not available any more or has been changed in an incompatible way.
○ SAP Note Number: Lets you analyze findings of a specific Simplification Item (for example field length
extension of material number)
○ Scope Information: Lets you filter the findings to show only findings for objects that are in scope.
○ Quick Fix Availability: Lets you analyze which findings can be solved by a Quick Fix and which findings
have to be solved manually.
4. Choose to change the settings for the chart.
To show the Quick Fix availability per SAP Note title, you must specify the following settings for the chart:
Results
You can now continue with chapter Custom Code Adaptation After System Conversion [page 54].
If the central check system is based on SAP NetWeaver Application Server for ABAP 7.52, your custom code
needs to be checked remotely against the SAP S/4HANA simplification items in the Simplification Database
using ABAP Test Cockpit (ATC) in the classic SAP GUI. The result is a list of findings where your custom code
does not comply with the scope and data structure of SAP S/4HANA. At this point, you can estimate the effort
required to adapt custom code to be migrated to SAP S/4HANA.
Note
The Central Check System can be used to check one or more SAP Business Suite systems.
To perform the custom code analysis, you need to set up a centralized SAP NetWeaver AS for ABAP 7.52
system as the Central Check System within your SAP system landscape.
For remote access, the Central Check System needs RFC destinations for each relevant system that you want
to check using ATC. When executed, the Central Check System accesses the checked system using Remote
Stubs and the RFC connection. These Remote Stubs are an interface between the Central Check System and
the checked system and return a model from custom code that needs to be checked.
To analyze your custom code in SAP GUI, you need to meet the following system requirements:
In the checked system, the RFC user needs the following authorizations:
Name of Authoriza
tion Object Activity Type of RFC Object Name of RFC Object Description
S_DEVELOP 03 (Display) * *
In the Central Check System, you need the following user to use transaction ATC to perform custom code
checks:
In addition, you need the following authorization object for importing the Simplification Database into the
Central Check System:
● 2436688 - Recommended SAP Notes for using SAP S/4HANA custom code checks in ATC
● 2364916 - Recommended SAP Notes for using ATC to perform remote analysis
To perform the custom code analysis, you need to configure the connection between the Central Check System
and the checked system.
The Custom Code Migration app performs the SAP S/4HANA custom code checks in the checked system
in which the custom code to be analyzed is stored.
Prerequisites
The RFC user in the checked system requires the authorizations that are specified in SAP Note 2672703 .
Context
You want to configure the required connection from the back-end system of this SAP Fiori app to the checked
system.
Procedure
Use transaction SM59 to create RFC connections for each checked system.
Procedure
2. In the navigation pane, expand the node ATC Administration Setup and double-click Object
Providers.
3. Double-click the item System Groups for selection.
Procedure
1. In the RFC Object Providers view, double-click the item RFC Object Providers for selection.
Fields Description
Note
This ID is used when configuring an ATC run series.
<System Group> The system group to which the Object Provider belongs
<SAP System> ID of the remote system, to which you want to connect us
ing the Object Provider
<RFC Destination> Valid RFC destination for RFC connection to the checked
system
Note
This RFC connection must be usable without a logon
dialog.
The following steps are relevant for the custom code analysis:
To check your custom code against the SAP S/4HANA simplifications, you need to import the Simplification
Database into the Central Check System.
Procedure
Note
To find the most recent content of the Simplification Database provided for SAP S/4HANA, see also
SAP Note 2241080 .
Results
The ZIP file is downloaded and saved on your selected drive. It contains the content of the Simplification
Database.
Procedure
3. Choose Simplification Database Import from ZIP File from the menu bar.
Results
The Simplification Database is uploaded to the Central Check System and is now available for analysis in
transaction SYCM.
You can display the content of the Simplification Database to get an overview of all changes or specific changes
and the corresponding SAP objects that are simplified in SAP S/4HANA.
Procedure
To get a list of all Simplification Items, choose Ctrl + F8 or the Overview button.
Note
To limit the number of Simplification Items displayed, enter the relevant filter criteria in transaction SYCM
and choose Execute.
Results
The Simplification Database Content view is opened. From here you can order the displayed list, for example by
their SAP Object Type, the assigned Simplification Category, or the relevant SAP Note Number.
From the overview, you can display the list of objects contained in a Simplification Item.
Example
To find out whether a certain object is related to a Simplification Item, enter the name of the object (for
example MATNR) in the Object Name field and execute ( F8 ). Then you can navigate to the corresponding SAP
Note to get more information.
If the central check system is based on SAP NetWeaver Application Server for ABAP 7.52, your custom code
needs to be checked remotely against the SAP S/4HANA simplification items in the Simplification Database
using ABAP Test Cockpit (ATC) in the classic SAP GUI
The system role needs to be specified as Central Check System for remote SAP S/4HANA checks.
Procedure
2. In the navigation pane, expand the node ATC Administration Setup and double-click System Role.
3. Switch to change mode ( F6 ).
4. In the Change System Role view, choose ATC Checks Using Object Providers.
5. Save the new settings and return to the ABAP Test Cockpit Overview screen.
In the Central Check System, you can perform SAP S/4HANA checks to analyze development objects in a
checked system remotely. In this step, you can estimate the effort required to adapt your ABAP source code to
SAP S/4HANA-related changes.
Procedure
2. In the navigation pane, expand the nodes ATC Administration Runs and double-click Schedule Runs.
The screen that appears displays a list of existing run series.
3. Choose the Create button in the toolbar.
4. Enter the name for the series you want to create and confirm.
5. Specify the following entries for the run series you want to create:
Field Description
<Description> Enter a short description for the ATC run series you want
to configure.
Tip
You can use the template provided by the Description
field. When you execute the run series, the built-in var
iables are filled with data for the system, the day of
the week, the calendar week, and for the year. How
ever, you can also add further texts to these variables,
rearrange them, or replace the built-in variables with
your own text.
Note
This product-specific global check variant checks only
the simplifications relating to SAP S/4HANA 1909.
Tip
If you want to use a material number with less than 40
characters in SAP S/4HANA, you can copy the check
variant S4HANA_READINESS and specify your desired
length of the material number for the check in trans
action SCI for the S/4HANA Field Length Extension.
Here, also make sure that the Extended Amount
Length, Extended Stock/Requirement Segment or
Extended Season/Theme/Collection are enabled, if
you use them.
<Object Provider> Enter the ID of the relevant object provider that represents
the remote system you want to check.
<Objects to Check> Specify the set of development objects you want to check
in the checked system.
Tip
You can use the value help to choose the packages or
the object set in the remote system.
Procedure
1. In the list of run series, select the run series in question and click the Schedule button in the toolbar.
2. In the dialog that appears, adapt the settings for the Life Span of the series and for Execution to your
needs. Otherwise, leave these settings unchanged.
Note
The Life Span defines how long (in days) the ATC result is kept in the system. After this, the ATC result
is automatically deleted in the system.
3. Choose Execute ( F8 ).
Note
You can use the option Execute in Background ( F9 ) to schedule a run series at regular intervals.
In this step, you can monitor the status of the remote ATC run series.
Procedure
2. In the navigation pane, expand the nodes ATC Administration Runs and double-click Monitor and
Control Runs.
3. Leave the run series field empty and execute ( F8 ).
The ATC Run Monitor view is displayed. The view shows the status of check runs as running, finished, or
failed.
Procedure
2. In the navigation pane, expand the nodes ATC Administration Runs and double-click Manage
Results.
Note
By default, the ATC run results of the last 10 days are displayed. If you want to see the ATC run results
from a different period of time, change the settings in Schedule Data.
The ATC Manage Results view is displayed. The view shows a list of ATC run results from your requested
period of time.
4. In the ATC Manage Results view, select a run series and choose Display to inspect the results.
9. Click the object name to navigate to the source code to see where the incompatible code occurs.
Results
You can now continue with chapter Custom Code Adaptation After System Conversion [page 54].
If you use SAP Cloud Platform ABAP Environment as central check system, you will use the Custom Code
Migration app to scope and analyze custom code in an on-premise SAP system for SAP S/4HANA.
You want to bring your custom code from an SAP Business Suite system to SAP S/4HANA. The central check
system, where the analysis for possible adaptations takes place, is based on SAP Cloud Platform ABAP
Environment. Note that in this case always the latest ATC checks are provided.
To bring your custom code from an SAP Business Suite system to SAP S/4HANA, the Custom Code
Migration app enables you to find the relevant parts in your source code to estimate the effort for converting
your customer code SAP S/4HANA, on-premise edition.
To use this SAP Fiori app, your SAP administrator must enable the app provide access for the relevant users. In
addition, you also need to establish an RFC connection for the Cloud Connector. This enables you to access the
on-premise system from the ABAP environment remotely.
The connection between the ABAP environment as Central Check System to the on-premise system as
Checked System is established through an RFC connection that is configured as destination and a
communication arrangement in the Cloud Connector.
Remote infrastructure using an RFC connection between an on-premise SAP system and SAP Cloud Platform ABAP
Environment across the Cloud Connector
Before you start enabling the Custom Code Migration app for SAP Cloud Platform ABAP Environment,
check whether the prerequisites listed here are fulfilled:
Before you begin with the setup of the ABAP environment in SAP Cloud Platform, you have fulfilled the
following prerequisites:
● You have purchased a customer account for SAP Cloud Platform, and you have purchased an entitlement
for the ABAP environment.
● After you have received your logon data by email, you have created subaccounts in your global account for
the Neo and Cloud Foundry environments and for the Identity Authentication service tenant.
● You are using subaccounts with administration authorizations to perform the steps to set up the ABAP
environment.
● In the Cloud Foundry organization, you are a member with the organization manager role.
For more information about getting started with the ABAP environment, see the SAP Cloud Platform
documentation on SAP Help Portal: Getting Started with a Customer Account: Workflow in the ABAP
Environment.
Before you can use the Custom Code Migration app in the context of SAP Cloud Platform ABAP
Environment, set up the ABAP Environment for your company.
Recommendation
SAP recommends you using the recipe Prepare an Account for ABAP Development. Using this recipe, you
have to perform the step Creating a Service Key for the Destination Service Instance (Optional) for the
Custom Code Migration app in addition.
For more information about the general ABAP environment setup, see Setup of the ABAP Environment:
Introduction
A subaccount enables you to run applications and services in the global account of your ABAP environment.
Prerequisites
Context
You want to establish RFC connection to your on-premise system to be checked. To do this, you need to create
a subaccount for the Neo environment and the Cloud Foundry environment.
Note
If you use the Prepare an Account for ABAP Development recipe, you can skip this step. The recipe
will perform this task.
Procedure
1. As an SAP administrator, select the Global Accounts navigation pane and open the relevant global account
in the SAP Cloud Platform Cockpit.
2. Select the Subaccounts navigation pane and create a new subaccount in the Cloud Foundry environment
and the Neo environment. To do this, choose the New Subaccount button from the header toolbar each
time.
3. In the dialog, enter the following data:
a. Enter the Display Name.
b. [Optional:] Provide a Description.
c. To create a subaccount for the Neo environment, select the Neo checkbox.
To create a subaccount for Cloud Foundry environment, deselect the latter checkbox.
For each environment, a new subaccount appears in the global account page and displays the details.
● Neo environment enables you to connect your cloud connector which contains the RFC connection(s) to
your on-premise system(s).
● Cloud Foundry environment enables you to create a space and a service instance.
The Cloud Connector enables the connection between the SAP Cloud Platform ABAP Environment and on-
premise systems in a secured network.
Prerequisites
Context
You want to add and connect your subaccount for the Neo environment to the Cloud Connector.
● Managing Subaccounts
● Add Members to Your Neo Subaccount
Procedure
Note
Check if the ID of the Subaccount that you have created for the Neo environment in the SAP Cloud
Platform Cockpit is entered in the title header.
Results
A new entry for the Neo subaccount is added in the Subaccount Dashboard table.
The resource accessible represents the on-premise system that can be accessed through the Cloud Connector.
Context
You want to enable the connection for SAP Cloud Platform ABAP Environment to an on-premise system.
Procedure
1. In the Cloud Connector, select the [Display Name of the Neo Subaccount] Cloud to On-Premise
navigation pane.
2. To add a new system mapping, choose from the section toolbar of the Mapping Virtual To Internal
System table.
3. In the Add System Mapping wizard, provide the following data:
a. Choose ABAP System from the Back-end Type drop-down list box.
b. Choose Next.
c. Choose RFC as Protocol from the drop-down listbox.
Now, you want to define the permitted function modules as resources for a specific back-end system.
Note
To get the relevant import file for the Custom Code Migration scenario, see SAP Note 2861842 -
Custom Code Migration in SAP Cloud Platform ABAP Environment: Set up SAP Cloud Connector.
Results
You have defined the on-premise system(s) that are accessible from the ABAP environment.
Now, you can call the defined function modules in the on-premise system.
Set up the RFC connection from the ABAP environment to your on-premise systems to be checked.
A space is a working area for a single application in the Cloud Foundry. The resources defined in the global
account will be allocated to a space.
Prerequisites
Context
You want to define a working area for the Custom Code Migration app.
Note
If you use the Prepare an Account for ABAP Development recipe, you can skip this step. The recipe
will perform this task.
Procedure
1. In the SAP Cloud Platform Cockpit, select the Global Accounts navigation pane and navigate to the
subaccount that contains the relevant Cloud Foundry organization.
Results
You can use the new space as your working environment for the Custom Code Migration app in the Cloud
Foundry. Herein, you will create a (destination) service instance to access the on-premise system.
Prerequisites
You have access as a Cloud Foundry administrator to the SAP Cloud Platform Cockpit.
Context
You want to define the applications in the ABAP environment that are needed for outbound connectivity. To do
this, you need to create a destination service instance and a service key in the created space for the destination
service.
Note
If you use Prepare an Account for ABAP Development recipe, you can skip this step. The recipe will
perform this task.
Procedure
1. In the SAP Cloud Platform Cockpit, navigate to the global account of the SAP Cloud Platform Cloud
Foundry environment.
2. Choose the tile for the Cloud Foundry subaccount.
3. On the Cloud Foundry tile, choose the link in the Spaces field.
4. Choose the tile for the space of the ABAP environment.
A service key is used to generate credentials to communicate directly with a service instance.
Prerequisites
You have access as a Cloud Foundry administration user to the SAP Cloud Platform.
Context
You want to define the applications in the ABAP environment that are needed for outbound connectivity. To do
this, you need to create a destination service instance and a service key in the created space for the destination
service
Procedure
1. In the SAP Cloud Platform Cockpit, go to the global account of the SAP Cloud Platform Cloud Foundry
environment.
2. Open the Cloud Foundry subaccount.
3. Select the Spaces navigation pane.
4. Choose the tile for the space of the ABAP environment.
Note
Keep the Configuration Parameters (JSON) text box empty. The service key will be generated by the
system.
b. Choose Save.
Results
This service key is needed for the SAP CP CF Destination Service Integration communication
scenario
An RFC destination enables RFC connection between the ABAP environment and the on-premise system
across the Cloud Connector.
Context
You want to enable communication from your ABAP environment to the on-premise system for the Custom
Code Migration app.
Procedure
1. In the SAP Cloud Platform Cockpit, navigate to the global account of the SAP Cloud Platform Cloud
Foundry environment.
2. Open the Cloud Foundry subaccount.
3. Select the Spaces navigation pane and choose the tile for the space of the ABAP environment.
Assign the Custom Code Migration app to the users as well as to configure the connectivity between the
ABAP environment and the Cloud Connector.
The user assignment describes the relevant roles that a user requires to access SAP Cloud Platform ABAP
Environment using the Custom Code Migration app.
Context
You want to enable business users to access the Custom Code Migration app.
For more information see, How to Create a Business Role from a Template.
Note
If you use Prepare an Account for ABAP Development recipe, you can skip this step. The recipe will
perform this task.
Procedure
1. In the SAP Fiori launchpad, navigate to the Identity and Access Management section and open the
Maintain Business Roles app.
2. On the initial screen, select Create from Template from the bottom of the page.
The new business role is created and opened in the Maintain Business Role page.
7. Select Maintain Restrictions from the title toolbar.
Results
The business role is created and added. The assigned users now have access to the Custom Code
Migration app.
Prerequisites
To create these communication arrangements, you need the Administrator and the Project Manager –
IT role.
The SAP_COM_0464 communication arrangement can only be created when the SAP_COM_0200 and
SAP_COM_0276 communication arrangements have already been created.
Context
You want to enable communication from your ABAP environment to your on-premise systems using Remote
Function Calls (RFC).
Procedure
1. In the SAP Cloud Platform Cockpit, create a destination to your on-premise system in the service instance.
2. Log on to the SAP Fiori launchpad of your ABAP environment.
3. In the Communication Management section, select the Communication Arrangement tile.
4. Create a new communication arrangement using the SAP_COM_0464 scenario. To do this, choose New.
If not yet available or defined, create a new communication system for the communication arrangement to
define an endpoint for your checked system.
a. In the New Communication System dialog, enter the System ID and System Name of the checked
system.
b. Choose Create.
c. In the General tab, turn on the slider for the Destination Service.
d. Select the service instance that is defined in communication arrangement SAP_COM_0276 as Instance.
e. Enter the corresponding destination to your on-premise system that you have defined in the service
instance in your SAP Cloud Platform Cockpit as Name.
Note
You must enter the same Name of the destination as you have created it. Otherwise, the
connection cannot be established.
Results
Now, you can use the communication arrangement as Destination in the Custom Code Migration app to
establish the connection to your on-premise system.
During ATC execution, the central check system accesses the systems in your landscape remotely through so-
called remote stubs using RFC connection. So, remote stubs serve as an interface between the central check
system and on-premise systems. They return a model from custom code which needs to be checked.
Prerequisites
In the on-premise system, implement SAP Note 2599695 (Custom Code Migration Fiori App: Remote Stubs
for the Checked System) in advance.
Context
You want to analyze your custom code in your on-premise system using the Custom Code Migration app.
Procedure
Results
The Custom Code Migration app now has access to the on-premise system. You can now start the custom
code analysis.
The Custom Code Migration app enables you to scope and analyze custom code that needs to be migrated
from an SAP Business Suite system to SAP S/4HANA 1909.
A custom code migration project defines the scope of custom code which you want to analyze and migrate to
SAP S/4HANA.
Procedure
1. Start the tile Custom Code Migration from the SAP Fiori launchpad.
2. Choose to create a new custom code migration project.
3. Enter a Project Description for your new project and the RFC Destination to the SAP system which contains
your custom code.
4. Define the Target Release of the back-end and the Material Number Length.
Note
Make sure that the checkboxes for Extended Amount Length, Extended Stock/Requirement Segment
and Extended Season/Theme/Collection are enabled, if you use them.
The Custom Code Migration app supports you with identifying your unused custom code based on your
collected usage data. With the scope of a custom code migration project, you can specify which of your custom
code needs to be converted to SAP S/4HANA.
To define the scope of your custom code migration project, you can either use your usage data collected with
transaction SUSG or your usage data collected in your Solution Manager (this requires Solution Manager 7.2
support package 8 or higher).
Note
If you have not aggregated your usage data so far, you should activate the aggregation of your usage data in
transaction SUSG in your production system now. To do so, start transaction SUSG in your production
system and choose Activate to activate the aggregation of your usage data.
To define the scope of your custom code migration project, you can use your usage data collected with
transaction SUSG.
Procedure
4. Add the snapshot of your usage data to your custom code migration project in the Custom Code
Migration app.
a. Choose Edit.
b. In the Usage Data frame, choose .
c. Choose beneath the Usage Description field.
d. Search for your usage data you created as a snapshot.
Note
If you transferred your usage data to your checked system, your usage data is displayed
automatically in the Items overview.
e. Select your usage data to add it to your custom code migration project.
Note
When you add usage data to your custom code migration project, a default scope is calculated. The
default scope includes all used objects, all objects which are statically referenced by the used objects,
and objects for which no usage data is available, such as database tables or data elements.
Here you can see how many objects are in and out of scope.
Choose View By to display detailed scope information or your scope sorted by object name or object
type.
In the Custom Code Migration app, you can change the scope on the following levels:
When do you need to change the scope of your custom code migration project?
● Scenario 1
A transaction which is used in your Business Suite system shall not be used any longer, because you want
to change your business processes in SAP S/4HANA.
Choose the filter Scope by Request Entry Points for your transaction and remove the request entry point
from your scope.
● Scenario 2
A new functionality is in development but has not been used in your production system yet. Therefore, no
usage data has been collected for this application and it has not been added to your scope automatically.
Choose the filter Scope by Package for all packages containing your developments for the new functionality
and add them to your scope.
When you have specified your scope in your custom code migration project, you can create a transport request
in the checked system. This transport request contains all objects which will not be migrated during the system
conversion.
Procedure
The transport request is also shown in the field Request/Task in your custom code migration project.
Next Steps
For more information, see chapter "Integration of Customer Transports" in the corresponding upgrade guide
for SAP HANA DB Software Update Manager 2.0.
When you create a custom code migration project, the SAP S/4HANA custom code checks are performed
automatically. The Custom Code Migration app then gives you an analytical representation of SAP S/4HANA
custom code check findings.
Procedure
1. Choose Analysis to get an overview of the results, as soon as the first analysis has been finished.
2. Choose Analyze Findings to get a detailed analysis.
3. In the Custom Code Migration - Analysis - Findings view, you can specify various filters, for example:
○ Simplification Item Category: The simplification item category specifies whether findings are related to
functionality which is not available any more or has been changed in an incompatible way.
○ SAP Note Number: Lets you analyze findings of a specific Simplification Item (for example field length
extension of material number)
○ Scope Information: Lets you filter the findings to show only findings for objects that are in scope.
○ Quick Fix Availability: Lets you analyze which findings can be solved by a Quick Fix and which findings
have to be solved manually.
4. Choose to change the settings for the chart.
To show the Quick Fix availability per SAP Note title, you must specify the following settings for the chart:
○ SAP Note title (as Category)
○ Findings (as Axis 1)
○ Quick Fix Availability (as Series)
Results
You can now continue with chapter Custom Code Adaptation After System Conversion [page 54].
After Software Update Manager (SUM) has performed the technical conversion, you can start adapting your
custom code.
SAP provides the adjustment tools SPDD, SPAU, and SPAU_ENH, which enable you to reimplement any
modifications related to ABAP Dictionary objects and development objects (such as programs, function
modules, screens, interfaces, and documentation) in system upgrades.
Note
Transaction SPDD is performed during the system conversion whereas all other adaptations take place after
the conversion.
To check for ATC findings in the converted system, you need to configure a local ATC run series that checks the
requested development objects.
To detect custom code which needs to be adapted to SAP S/4HANA, SAP provides tools based on the
Simplification Database.
Procedure
Import the Simplification Database. For more information, see Importing the Simplification Database [page 15].
Procedure
3. In the navigation pane, expand the nodes ATC Administration Runs and double-click the Schedule
Runs entry.
<Description> Enter a short description for the ATC run series you want
to configure.
Tip
You can use the template provided by the Description
field. When you execute the run series, the built-in var
iables are filled with data for the system, the day of
the week, the calendar week, and the year. However,
you can also add further texts to these variables, rear
range them, or replace the built-in variables with your
own text.
Note
This check variant provides checks for SAP S/4HANA
readiness (for example, searches for DB operations or
field length extensions).
Tip
If you want to use a material number with less than 40
characters in SAP S/4HANA, you can copy the check
variant S4HANA_READINESS and specify your desired
length of the material number for the check in trans
action SCI for the S/4HANA Field Length Extension.
Here, also make sure that the Extended Amount
Length, Extended Stock/Requirement Segment or
Extended Season/Theme/Collection are enabled, if
you use them.
<Objects to Check> Specify the set of development objects you want to check.
Tip
You can use the value help to choose the packages or
the object set in the remote system.
Procedure
1. In the list of run series, select the run series in question and click the Schedule button in the toolbar.
2. In the dialog that appears, choose Set to Active Result.
3. Adapt the settings for the Life Span of the series and for Execution to your needs. Otherwise, leave these
settings unchanged.
Note
The Life Span defines how long (in days) the ATC result is kept in the system. After this, the ATC result
is automatically deleted in the system.
4. Choose Execute in Background ( F9 ) to schedule the run series in regular time intervals.
SAP recommends to schedule the local ATC run series in regular time intervals since new ATC findings
could emerge during custom code adaptation.
After a local ATC run series has checked the requested development objects, you can start adapting the
custom code by fixing the ATC findings of the ATC run result with ABAP Development Tools (ADT).
Prerequisites
You installed the latest version of ABAP Development Tools (ADT) in Eclipse. In Eclipse, you created an ABAP
Project which is connected to your converted SAP S/4HANA system. For more information, see the Help
Contents in ADT.
Procedure
Note
By default, all ATC findings are filtered by your user name and only ATC findings belonging to your user
are displayed. To display the ATC findings of all users, open the context menu of the ABAP Project in the
ATC Result Browser view, choose Change User Filter, and enter * as the user name.
4. Choose Group By Check to display the ATC findings sorted by the different checks of the check
variant S4HANA_READINESS.
Choose Configure Columns to add or remove the columns you want to display or hide in the details of
the result. Subsequently, you can filter the active result according to all values in the visible columns.
5. Select the check group S/4HANA: Search for S/4 related syntax errors and choose Recheck in the context
menu.
If you want to assign ATC findings of an ATC run result to a certain developer, you can do that by changing the
contact person of the ATC findings.
Prerequisites
You need the authorization object S_Q_GOVERN (ACTVT = 03 and ATC_OTYPGO = 02) to change the contact
person.
Note
You can change the contact person only for local check runs.
1. In the ATC Result Browser view, select the Active Result to display the list of ATC findings.
2. Select all ATC findings in question and choose Change Contact Person in the context menu.
3. In the Change Contact Person view in the field New Contact Person, enter the user name of the developer to
whom you want to assign the ATC findings.
Procedure
The view shows a Worklist of ATC findings resulting from the recheck on the check group S/4HANA: Search
for S/4 related syntax errors.
2. Select an ATC finding to display further information about what and where the statements with problems
are and what you can do to fix the ATC finding.
3. Double-click an ATC finding to jump to the source code at the position where the ATC found a statement
with a problem.
4. Fix each ATC finding in the Worklist as described in the Details view and the assigned SAP Note.
Note
You can also fix ATC findings by using Quick Fixes. See Applying Quick Fixes [page 61] for more
information.
You can fix certain ATC findings with Quick Fixes. These Quick Fixes provide functions that enable you to
resolve errors and warnings without adapting your source code manually.
Context
In the context of the custom code migration, Quick Fixes are available for the following checks and its
corresponding simplification items:
S/4HANA: Field length extensions 2215852 - Material Number Field for example MATNR
Length Extension: Code Adaptions
S/4HANA: Search for database opera 2198647 - S/4 HANA: Data Model VBFA, VBUK, VBUP
tions Changes in SD
S/4HANA: Search for usages of simpli 2198647 - S/4 HANA: Data Model VBTYP
fied objects Changes in SD
S/4HANA: Search for S/4 related syn 2198647 - S/4 HANA: Data Model VBTYP
tax errors Changes in SD
Note
Please note, that not all ATC findings resulting from these checks can be fixed with Quick Fixes.
Procedure
Note
ATC findings that can be fixed with a Quick Fix are displayed with a lightbulb icon .
1. Select an ATC finding with a lightbulb icon in the ATC Problems view.
Recommendation
If there is more than one Quick Fix available for an ATC finding, we recommend that you select the first
Quick Fix displayed.
You can also fix multiple ATC findings at once with the Recommended Quick Fixes wizard.
Procedure
Tip
If you want to display all affected objects and their respective ATC findings, choose Group by Object.
4. In the Quick Fix column in the Quick Fix Selection frame, the recommended Quick Fixes for the ATC findings
are displayed by default. Select a Quick Fix to open a dropdown list with alternative Quick Fixes.
Recommendation
5. In the Post Processing frame, you can specify that the changed objects are activated after you apply the
Quick Fixes. If this option is selected, you can specify that the selected ATC findings are rechecked after
you finish the wizard.
Note
If you do not select any post processing options, the initial ATC result is displayed after you finish the
wizard. In this case, you have to activate and recheck the ATC findings manually.
6. Choose Next.
7. Select a transport request if required.
8. Choose Next.
In this example, an order by primary key statement was added to the source code to fix the ATC
finding.
10. Choose Finish.
Results
Pseudo comments are one way of suppressing ATC findings. Sometimes it is the case that certain ATC findings
cannot be fixed (so-called false positives). In this case and especially in the context of the Custom Code
Procedure
Note
If SAP S/4HANA-related pseudo comments are available for an ATC finding, they can easily be applied as a
Quick Fix.
Apply the Quick Fix. For more information, see Applying Quick Fixes [page 61].
The pseudo comment is appended at the end of the code line in question.
Remember
The pseudo comment appended does not fix the ATC finding. It only suppresses the ATC finding, so it does
not appear anymore after a recheck.
Once you have fixed the ATC findings of the check group S/4HANA: Search for S/4 related syntax errors, you
need to recheck the active result and fix all other ATC findings.
Procedure
The view shows a Worklist of ATC findings resulting from the recheck on the active result.
Note
Repeat the steps 4 and 5 if there are still ATC findings in the Worklist after the recheck.
Rerun the local ATC run series once all the ATC findings are fixed, since new ATC findings could have emerged
during the adaptation of your custom code.
There are a few more things you can do after the custom code migration:
Testing Applications
Test your applications to check whether your programs run on SAP S/4HANA.
Note
ATC is not able to find all potential issues (for example, dynamic coding is not covered by static code
checks).
Add the SAP S/4HANA checks with check variant S4HANA_READINESS to your regular ATC checks.
Runtime Checks
Run the Runtime Check Monitor in transaction SRTCM in the new productive system and activate the checks
Empty table in FOR ALL ENTRIES clause and Missing ORDER BY or SORT after SELECT. Schedule the check
runs on a regular basis and correct the additional findings found by the runtime check.
Performance Optimizations
Switch on SQL Monitor in the productive system. Sort the SQL Monitor results by execution time and optimize
the top 10-20 SQLs in your custom code which affect relevant business processes. After performance
optimizations reach the productive system, this process needs to be repeated 2-3 times to achieve the best
results.
For more information, see ABAP SQL Monitor Implementation Guide and Best Practices
After the successful migration, you can now start to think about optimizing your business processes by using
code push down techniques of SAP S/4HANA, like the Core Data Services (CDS) and ABAP-managed database
procedures (AMDP) implemented by the native HANA language SQL script.
Enabling In-App Help Content Using SAP Enable Now Web Assistant
You can access in-app help from the UIs of an app that provides you context-sensitive help information for UI
elements and guided tours.
To get access to the in-app help, the SAP Enable Now Web Assistant is web-based and needs to be configured
in the context of ABAP platform. In addition, an embedded help system (for example, the SAP Help Portal) is
required.
Note
In your on-premise system, you need to configure the Web Assistant, before you can benefit from it.
If you want to customize the help content, you need to implement your own help system.
The following terms are used within the context of this Custom Code Migration guide:
Term Definition
(ABAP) Custom Code Describes the development objects and ABAP source code
that has been developed by customers or SAP partners.
ABAP Test Cockpit (ATC) Tool for performing static and dynamic quality checking of
ABAP source code and associated repository objects both
remotely and locally.
Central Check System Backend system that provides and performs the SAP S/
4HANA custom code checks for one or multiple SAP sys
tems remotely.
Checked System System with custom code that gets checked remotely by the
central check system.
Conversion / migration Describes the process for bringing custom code from an ex
isting Enterprise Resource Planning (ERP) system to an SAP
S/4HANA system.
Simplification Database Database table in the SAP S/4HANA system that contains all
the simplification items referring to SAP objects simplified in
SAP S/4HANA.
Simplification Item Describes the adaptation of an SAP product that has a tech
nical impact on custom code.
Transformation Describes the process for bringing custom code from an ex
isting on-premise Enterprise Resource Planning (ERP) sys
tem to SAP Cloud Platform ABAP Environment.
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your
agreements with SAP) to this:
● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such
links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this
information.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax
and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of
example code unless damages have been caused by SAP's gross negligence or willful misconduct.
Gender-Related Language
We try not to use gender-specific word forms and formulations. As appropriate for context and readability, SAP may use masculine word forms to refer to all genders.
SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.