Administrator's Guide - SAP S4HANA PDF
Administrator's Guide - SAP S4HANA PDF
Administrator's Guide - SAP S4HANA PDF
1 Document History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
2 PUBLIC Content
1 Document History
Caution
Before you start the implementation, make sure you have the latest version of this document. You can find
the latest version at the following location: http://help.sap.com/ibp_s4hana_addon.
Document History
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Document History PUBLIC 3
Version Date Description
Note
The approach described in the
version 7.1 of this guide is still
valid, but we recommend that
you use a new approach.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
4 PUBLIC Document History
Version Date Description
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Document History PUBLIC 5
Version Date Description
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
6 PUBLIC Document History
2 Getting Started
This document is a single source of information for the implementation of the SAP S/4HANA, supply chain
integration add-on for SAP Integrated Business Planning, version 1.0 SP06. It contains implementation and
security information, and is divided into the following main sections:
Overview
The SAP S/4HANA, supply chain integration add-on for SAP Integrated Business Planning prepares data for
the transfer from your SAP S/4HANA system to SAP Integrated Business Planning (IBP). The integrated data is
used as input for order-based planning.
In SAP S/4HANA, data is transformed into a simplified format and stored in tables. The simplified tables can be
transferred to IBP by using the OpenAPI interface via SAP HANA Smart Data Integration (SDI). Only certain
attributes are transferred. To define which attributes are transferred, you use an integration model.
The yellow circle in the following diagram shows an overview of the integration process.
Integration Overview
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Getting Started PUBLIC 7
Prerequisites
● You are using SAP S/4HANA, version 1610 or higher of on-premise edition.
● You have installed the SAP S/4HANA, supply chain integration add-on for SAP Integrated Business
Planning.
Related Information
For more information about implementation topics not covered in this guide, see the following content on SAP
Service Marketplace:
Performance https://www.sap.com/about/benchmark/sizing/perform
ance.html
The following table lists further useful links on SAP Service Marketplace:
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
8 PUBLIC Getting Started
SAP Notes search https://support.sap.com/notes
You must read the following SAP Notes before you start the installation of the SAP S/4HANA, supply chain
integration add-on for SAP Integrated Business Planning. These SAP Notes contain the most recent
information on the installation, as well as corrections to the installation documentation. Make sure that you
have the up-to-date version of each SAP Note, which you can find on SAP Service Marketplace at https://
support.sap.com/notes .
2217860 IBP extension of the ERP Interface Prerequisite notes for using the SAP
(Production Planning) S/4HANA, supply chain integration
add-on for SAP Integrated Business
2266642 IBP extension of the ERP Interface Planning.
(Sales and Distribution)
2706711 Improvement of process integration Prerequisite note for using the SAP S/
between S/4HANA and SAP IBP for 4HANA, supply chain integration add-
Purchase and Stock Transfer Requisi on for SAP Integrated Business
tions Planning.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Getting Started PUBLIC 9
2542968 Supply Chain Integration Add-on for Information about using the SAP S/
SAP Integrated Business Planning Ex 4HANA, supply chain integration add-
tension on for SAP Integrated Business
Planning.
2558971 Release strategy and maintenance in Information about planning the instal
formation for SAP IBP Integration add- lation and upgrades of SAP S/4HANA,
on for SAP S/4HANA 1.0 supply chain integration add-on for
SAP Integrated Business Planning
2755682 Slow performance when loading trans Fix for slow performance when loading
transportation lanes with ABAP
portation lanes with ABAP Adapter
Adapter
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
10 PUBLIC Getting Started
3 Technical System Landscape
The following diagram provides an overview of the system landscape for the SAP S/4HANA, supply chain
integration add-on for SAP Integrated Business Planning.
System Landscape
Software Components
The following software components are either mandatory or optional, as indicated below, for the technical
implementation of the SAP S/4HANA, supply chain integration add-on for SAP Integrated Business Planning:
IBPIECC X
IBPIFND X
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Technical System Landscape PUBLIC 11
Required Hardware
SAP S/4HANA hardware requirement for IBPIECC/IBPIFND depends on the transferred data volume as
follows:
● For the storage of persistant data for small data volume, 1 GB is required
● For the storage of persistant data for large data volume, up to 5 GB (i.e. 10 million sales order line items) is
required
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
12 PUBLIC Technical System Landscape
4 Security Information
The figure System Landscape in the chapter Technical System Landscape shows how the data is transferred
from the SAP S/4HANA to SAP Integrated Business Planning. The following security aspects are relevant
during this process:
Connecting, setting up the integration Install SAP S/4HANA, supply chain Secure the technical setup by imple
integration add-on for SAP Integrated menting a strict authorization policy
Business Planning, install SDI agent, (see chapter Authorization Concept).
and connect to IBP system Ensure data storage security on both
systems (at-rest) and while in transfer
(encryption of the data communication
channel). See chapters Data Storage
Security and Network and
Communication Security.
Manage integration models Setup of integration models Secure the technical setup by imple
menting a strict authorization policy
(see chapter Authorization Concept).
Authorization Concept
● Initiate an initial load of data from SAP S/4HANA to SAP Integrated Business Planning (IBP)
● Start delta loads of changed data using business transaction events (BTEs)
● Maintain certain aspects of master data in order-based planning (for example, transportation lanes)
Roles
Role Description
The following role for the technical user is required if you need to initiate an initial load through SDI ABAP
adapter: SAP_IBPINT_SDI_4.0. Note that you have to implement SAP Note 2727275 to use this role.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Security Information PUBLIC 13
The SAP_IBPINT_SDI_4.0 role is a composite role that includes the following roles:
Role Description
In addition, the following role must be assigned to the technical user to integrate data using SDI ABAP adapter:
Role Description
Note
Please use this role as a template and specify the organizational
level values in your copy of the role.
Authority Objects
The authority objects in the following table control access to location material and transportation lane
maintenance:
The authority object in the following table controls authorization required to to run the initial load reports to
integrate the data to and from IBP:
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
14 PUBLIC Security Information
If you use SDI ABAP adapter for integration, you have to assign the following authority objects to a technical
user:
Whitelisting
If you use SDI ABAP adapter for integration, please limit the number of SAP S/4HANA objects to which SDI
agent gives remote access. To decrease the security risks, we recommend that you whitelist only the following
function modules, and no other objects:
● RFCPING
● RFC_PING
● /IBP/ECC_IBP_VERSION
● All function modules whose names start with /IBP/ECC_ABAP
● All function modules whose names start with /IBP/ECC_INTEGRATION_AREA_
● SBFC_FACTORY_CALENDAR_TRANSFER
● SBIC_MESSURE_TRANSFER
● SBIC_CURRENCIES_TRANSFER
● SBIC_EXRATE_TRANSFER
● /IBP/ECC_SUBMIT_ORDER_INBOUND
● /IBP/ECC_ORDER_INBOUND_STATUS
● PARTNER_LOGICAL_SYSTEM_GET
You can do this in the SDI agent configuration tool by navigating Configure Preferences
ABAPAdapter and entering the following string in the Context Whitelist field:
● For systems used as a source for integration of all types of IBP-relevant data:
BAPI.RFCPING,BAPI.RFC_PING,BAPI.SBFC_FACTORY_CALENDAR_TRANSFER,BAPI.SBIC_MESSURE
_TRANSFER,BAPI.SBIC_CURRENCIES_TRANSFER,BAPI.SBIC_EXRATE_TRANSFER,BAPI./IBP/
ECC_IBP_VERSION,BAPI./IBP/ECC_ABAP*,BAPI./IBP/ECC_INTEGRATION_AREA_*,BAPI./IBP/
ECC_SUBMIT_ORDER_INBOUND,BAPI./IBP/
ECC_ORDER_INBOUND_STATUS,BAPI.PARTNER_LOGICAL_SYSTEM_GET
● For systems used as a source for integration of configuration (calendar, unit of measure, currency) data
only, but not master and transactional data:
BAPI.RFCPING,BAPI.RFC_PING,BAPI.SBFC_FACTORY_CALENDAR_TRANSFER,BAPI.SBIC_MESSURE
_TRANSFER,BAPI.SBIC_CURRENCIES_TRANSFER,BAPI.SBIC_EXRATE_TRANSFER
● For systems used as a source for integration of master and transactional data only, but not configuration
(calendar, unit of measure, currency) data:
BAPI.RFCPING,BAPI.RFC_PING,BAPI./IBP/ECC_IBP_VERSION,BAPI./IBP/
ECC_ABAP*,BAPI./IBP/ECC_INTEGRATION_AREA_*,BAPI./IBP/
ECC_SUBMIT_ORDER_INBOUND,BAPI./IBP/
ECC_ORDER_INBOUND_STATUS,BAPI.PARTNER_LOGICAL_SYSTEM_GET
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Security Information PUBLIC 15
Network and Communication Security
Your network infrastructure is extremely important for protecting your system. Your network needs to support
the communication necessary for your business needs without allowing unauthorized access. A well-defined
network topology can eliminate many security threats based on software flaws (at both the operating system
level and application level) or network attacks such as eavesdropping. If users cannot log on to your application
or database servers at the operating system or database layer, then there is no way for intruders to
compromise the machines and gain access to the backend system’s database or files. Additionally, if users are
not able to connect to the server LAN (local area network), they cannot exploit well-known bugs and security
holes in network services on the server machines.
The network topology for SAP S/4HANA, supply chain integration add-on for SAP Integrated Business
Planning is based on the topology used by the SAP NetWeaver platform. Therefore, the security guidelines and
recommendations described in the SAP NetWeaver Security Guide also apply to SAP S/4HANA, supply chain
integration add-on for SAP Integrated Business Planning. Details that specifically apply to this add-on are
described in the following topics:
● See the Communication Channels section in this guide for more information about the communication
paths and protocols used by SAP S/4HANA, supply chain integration add-on for SAP Integrated Business
Planning.
● See the Network Security section in this guide for more information about the recommended network
topology for SAP S/4HANA, supply chain integration add-on for SAP Integrated Business Planning. It
shows the appropriate network segments for the various client and server components and where to use
firewalls for access protection. It also includes a list of the ports needed to operate SAP S/4HANA, supply
chain integration add-on for SAP Integrated Business Planning.
For more information, see the following sections in the SAP NetWeaver Security Guide:
● Network and Communication Security: For more information, see documentation at http://help.sap.com/
nw_platform under SAP NetWeaver 7.4 Security Information SAP NetWeaver Security Guide
Network and Communication Security .
● Security Guides for Connectivity and Interoperability Technologies: For more information, see
documentation at http://help.sap.com/nw_platform under SAP NetWeaver 7.4 Security Information
SAP NetWeaver Security Guide Security Guides for Connectivity and Interoperability Technologies .
The table below shows the communication channels used by SAP S/4HANA, supply chain integration add-on
for SAP Integrated Business Planning, the protocol used for the connection, and the type of data transferred:
Communication Path Protocol Used Type of Data Transferred Data Requiring Special Pro
tection
Frontend client using SAP DIAG Customizing data, integra Authentication data, system
GUI for Windows to applica tion models, etc. configuration, integration
tion server models
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
16 PUBLIC Security Information
Network Security
We recommend the use of firewalls to control the network traffic in your system landscape. A firewall
comprises hardware and software components that specify which connections are permitted between
communication partners. The firewall only allows the specified connections to be used. All other connections
are blocked by the firewall.
For more information, see documentation at http://help.sap.com/nw_platform under SAP NetWeaver 7.4
Security Information SAP NetWeaver Security Guide Network and Communication Security Using Firewall
Systems for Access Control .
Ports
SAP S/4HANA, supply chain integration add-on for SAP Integrated Business Planning runs on SAP NetWeaver
and uses the ports from the AS ABAP. For more information, see the topics for AS ABAP Ports and AS Java
Ports in the corresponding SAP NetWeaver Security Guides. For other components, for example, SAPinst,
SAProuter, or the SAP Web Dispatcher, see also the document TCP/IP Ports Used by SAP Applications, which is
located on SAP Developer Network at http://scn.sap.com/community/security under Infrastructure
Security Network and Communications Security .
Communication Channels
The table below shows an overview of the communication destinations used in the integration scenario for SAP
S/4HANA, supply chain integration add-on for SAP Integrated Business Planning:
IBP system No, needs to be setup; HTTPS Administrator Handled by the SDI
see Configuration agent through HTTPS
SAP S/4HANA, supply chain integration add-on for SAP Integrated Business Planning uses the logging and
tracing mechanisms of SAP NetWeaver. For more information about logging and tracing, see see
documentation at http://help.sap.com/nw_platform under SAP NetWeaver 7.4 Security Information
Security Guide SAP NetWeaver Security Guide Aspects of Lifecycle Management Auditing and Logging .
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Security Information PUBLIC 17
User Consent
SAP Integrated Business Planning does not use collected data for any additional business purposes other than
the ones you have previously consented to in SAP S/4HANA license agreement, and therefore no additional
consent is required.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
18 PUBLIC Security Information
5 Configuration for Order-Based Planning
Integration
The SAP S/4HANA, supply chain integration add-on for SAP Integrated Business Planning uses SAP HANA
Smart Data Integration (SDI) to transfer data from SAP S/4HANA to SAP Integrated Business Planning (IBP).
SDI transfers the relevant tables from the database of your SAP S/4HANA system to IBP.
Note
The patches 40 and 41 of SP03 for SAP HANA DP Agent version 2.0 SP03 are not supported.
To connect SAP S/4HANA and IBP, you must first install and configure the SDI agent (DP Agent). For SDI ABAP
adapter, please use the patch 4 of SP02 for SAP HANA DP Agent version 2.0 or higher.
Note that to be able to configure and connect the SDI agent, you need to have the following two users provided
to you by IBP administration:
● SDI_CONFIG
● SDI_INTEG
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Order-Based Planning Integration PUBLIC 19
For more information, see Integrating with External Systems in the SAP Library for SAP Integrated Business
Planning on SAP Help Portal at http://help.sap.com/ibp , under Business Applications Order-Based
Planning Basic Settings Setting Up Order-Based Planning Integrating with External Systems .
In IBP, you administer the data transfer from SAP S/4HANA using the application job Data Integration using
SAP HANA SDI (Inbound). You administer the data transfer to SAP S/4HANA using the application job Data
Integration using SAP HANA SDI (Outbound).
For more information, see the application help for SAP Integrated Business Planning on SAP Help Portal at
http://help.sap.com/ibp , under Application Help for SAP Integrated Business Planning Business
Applications Order-Based Planning Basic Settings Setting Up Order-Based Planning Integrating with
External Systems .
You must set up the system infrastructure so that you can transfer data to SAP Integrated Business Planning
(IBP) from SAP S/4HANA . You need to do the following:
Note
If you do a client copy, you can use transaction BDLS to convert IBP staging tables to correct logical
system. In the Tables to be Converted field, you have to specify /IBP/* and select the Determine
Relevant Tables Again checkbox.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
20 PUBLIC Configuration for Order-Based Planning Integration
Use transaction SE19 to create the BAdIs you want to use in your system.
Use transaction BD54 to define the logical SAP S/4HANA system from which you're going to replicate data to
IBP.
Use transaction SCC4 to assign the logical system to your client system.
If SAP S/4HANA transactional data (such as sales orders or purchase orders) changes, the changes are
immediately available on the interface of the add-on. Changes to certain master data types (customer, vendor,
material) can also be prepared in this way. To do this, you first need to activate BTEs in the SAP S/4HANA
system.
Procedure
1. In the SAP S/4HANA system in SAP Easy Access menu, enter transaction code BF11 to open the
Application Indicator.
The overview screen opens in edit mode.
2. In the application indicator, activate the following by selecting them: IBP, ND-APO, and NDI.
3. Select Execute.
Use transaction NDV2 to maintain the SAP S/4HANA logical system that you're using to replicate data to IBP.
Make the following entries:
Note
You can choose any other ID if the logical system ID is already in use for integration with SAP APO.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Order-Based Planning Integration PUBLIC 21
Activating Change Transfer of Info Records
● BD61 to activate change pointers by selecting the Change pointers activated – generally checkbox
● BD50 to set the message type /IBP/ECC_SRC to active
● BD52 to activate change pointers per change document. Select the /IBP/ECC_SRC message type. On a
new screen, you can display and maintain fields relevant to trigger change pointers for info records.
SAP provides a standard integration model to prepare data to be transferred from SAP S/4HANA to IBP. You
can use BAdIs to overrule this model, enabling you to limit or specify the data you want to transfer. This doesn't
change the data in the SAP S/4HANA system as the data is only changed in interface tables.
Note
You mustn't modify or enhance any object in the add-on (especially the tables in IBPIFND) as this may
endanger integration into the IBP cloud.
You can't adjust the tables' key fields, or the material or location number using a BAdI.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
22 PUBLIC Configuration for Order-Based Planning Integration
BAdI Method Description
SAVE_TLANE_MASS
/IBP/ECC_SAVE_TLANE Adjusts the transportation lane before
it's saved to the database of the add-on
SAVE_PDS
/IBP/ECC_SAVE_PDS Adjusts the production data structure
(PDS) before it's saved to the database
of the add-on
MODIFY_PREQ_BEFORE_SAVE
Updates purchase requisition data be
fore before it's saved to the database of
the SAP S/4HANA system
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Order-Based Planning Integration PUBLIC 23
5.4 Customizing in SAP S/4HANA
You use Customizing in SAP S/4HANA under SAP Customizing Implementation Guide Integration with
Other SAP Components Integrated Business Planning to set up the system infrastructure and to configure
the transfer of data from SAP S/4HANA to SAP Integrated Business Planning (IBP). You also use SAP S/
4HANA Customizing to configure settings for the system landscape and for enhancements such as Business
Add-In Implementations (BAdIs).
Prerequisites
Features
More Information
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
24 PUBLIC Configuration for Order-Based Planning Integration
6 Configuration for Time-Series-Based
Integration
The following graphics provides an overview of the integration scenario from SAP S/4HANA using SAP S/
4HANA, supply chain integration add-on for SAP Integrated Business Planning and SAP Cloud Platform
Integration for data services to the time-series-based planning areas in the SAP Integrated Business Planning
system:
Prerequisites:
● You have set up your time-series-based integration project (see the SAP Cloud Platform Integration Guide
on SAP Help Portal at http://help.sap.com/ibp under Integration SAP Cloud Platform Integration
Guide Getting Started with Your Integration Project .
● By default, an RFC user is used to connect from the Data Services Agent to the SAP S/4HANA system. The
needed authorizations of this user depend on the use cases and the technical setup. For a list of potential
authorization objects, see the SAP Data Services Agent Guide at https://help.sap.com/cpi_ds under
Installation and Upgrade SAP Data Services Agent Guide Configuring SAP Business Suite
Connectivity Descriptions for SAP User Authorizations .
You need to do the following in SAP S/4HANA to enable and configure SAP S/4HANA, supply chain integration
add-on for SAP Integrated Business Planning:
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 25
Use transaction SCC4 to assign the logical system to your client system.
Note
If you do a client copy, you can use transaction BDLS to convert IBP staging tables to correct logical
system. In the Tables to be Converted field, you have to specify /IBP/* and select the Determine
Relevant Tables Again checkbox.
● In the integration model, define the plants and material requirements planning (MRP) types you want to
transfer from SAP S/4HANA to IBP.
The integration model determines which SAP S/4HANA master data is stored in the replication tables and
can be read by extractors in order to transfer them to IBP. It provides standard integration logic delivered
by SAP. However, you can limit or specify the data you want to transfer using a Business Add-in
Implementation (BAdI).
● Activate business transaction events (BTEs)
BTEs enable the immediate, automatic copy to the IBP replication tables of all changes to SAP S/4HANA
transactional data and to the following master data:
○ Vendor
○ Customer
○ Material
● Create Business Add-In Implementations (BAdIs) for use with SAP S/4HANA master data (optional).
If SAP S/4HANA transactional data (such as sales orders or purchase orders) changes, the changes are
immediately available on the interface of the add-on. Changes to certain master data types (customer, vendor,
material) can also be prepared in this way. To do this, you first need to activate BTEs in the SAP S/4HANA
system.
Procedure
1. In the SAP S/4HANA system in SAP Easy Access menu, enter transaction code BF11 to open the
Application Indicator.
The overview screen opens in edit mode.
2. In the application indicator, activate the following by selecting them: IBP, ND-APO, and NDI.
3. Select Execute.
● BD61 to activate change pointers by selecting the Change pointers activated – generally checkbox
● BD50 to set the message type /IBP/ECC_SRC to active
● BD52 to activate change pointers per change document. Select the /IBP/ECC_SRC message type. On a
new screen, you can display and maintain fields relevant to trigger change pointers for info records.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
26 PUBLIC Configuration for Time-Series-Based Integration
Using Business Add-In Implementations
SAP provides a standard integration model to prepare data to be transferred from SAP S/4HANA to IBP. You
can use BAdIs to overrule this model, enabling you to limit or specify the data you want to transfer. This doesn't
change the data in the SAP S/4HANA system as the data is only changed in interface tables.
Note
You mustn't modify or enhance any object in the add-on (especially the tables in IBPIFND) as this may
endanger integration into the IBP cloud.
You can't adjust the tables' key fields, or the material or location number using a BAdI.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 27
BAdI Method Description
SAVE_PDS
/IBP/ECC_SAVE_PDS Adjusts the production data structure
(PDS) before it's saved to the database
of the add-on
SAVE_ORDER
/IBP/ECC_SAVE_ORDER_STOCK Converts and saves order
SAVE_STOCK
Converts and saves stock
/IBP/ECC_SAVE_FIELD_CATALOG SAVE_FIELD_CATALOG
Converts and saves field catalog
/IBP/ECC_SAVE_TLANE SAVE_TLANE_MASS
Converts and saves transportation lane
/IBP/ECC_TLANES_FOR_MOTS_INT GENERATE_MOT_TLANES
Generates transportation lanes with
mode of transport
You can send additional fields to IBP time-series-based planning using the following extractors:
● /IBP/LOCATION_ATTR
● /IBP/PRODUCT_ATTR
● /IBP/PRODUCT_TEXT
● /IBP/PRODUCT_UOM_ATTR
● /IBP/RESOURCE_ATTR
● /IBP/RESOURCE_TEXT
● /IBP/LOCATIONPRODUCT_ATTR
● /IBP/RESOURCELOCATION_ATTR
● /IBP/SOURCEPRODUCTION_ATTR
● /IBP/PRODUCTIONSOURCEITEM_ATTR
● /IBP/UNIT_OF_MEASURE_ATTR
● /IBP/UNIT_OF_MEASURE_TEXT
● /IBP/SOURCELOCATION_ATTR
● /IBP/CAPASUPPLY_KF
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
28 PUBLIC Configuration for Time-Series-Based Integration
● /IBP/ORDER_KF
● /IBP/STOCK_KF
Note
Result: Now the extractor has additional customer fields, which are visible and could be selectable for the
calling application. Reload the extractor in the corresponding datastore to make these fields visible also in CPI-
DS.
Additionally, you can define private fields in the selection structure, which are only visible during selection and
can be used to influence visible fields in BAdI implementations. Please proceed as follows:
1. Enter /IBP/S_*_ALL into the Data Type field and start the search help by choosing F4 or the
corresponding icon.
2. On the Selection of Input Help pop-up, choose the Search for Structures button. The following list of
available IBP data source structures will be displayed:
○ /IBP/S_ETS_CAPASUPPLY_KF_ALL
○ /IBP/S_ETS_LOCATION_ATTR_ALL
○ /IBP/S_ETS_LOCPROD_ATTR_ALL
○ /IBP/S_ETS_ORDER_KF_ALL
○ /IBP/S_ETS_PRODSRCITM_ATTR_ALL
○ /IBP/S_ETS_PRODUCT_ATTR_ALL
○ /IBP/S_ETS_PRODUCT_TEXT_ALL
○ /IBP/S_ETS_PRODUCTUOM_ATTR_ALL
○ /IBP/S_ETS_RESLOC_ATTR_ALL
○ /IBP/S_ETS_RESOURCE_ATTR_ALL
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 29
○ /IBP/S_ETS_RESOURCE_TEXT_ALL
○ /IBP/S_ETS_SOURCELOC_ATTR_ALL
○ /IBP/S_ETS_SRCPROD_ATTR_ALL
○ /IBP/S_ETS_STOCK_KF_ALL
○ /IBP/S_ETS_TIMEPRF_ATTR_ALL
○ /IBP/S_ETS_UOM_ATTR_ALL
○ /IBP/S_ETS_UOM_TEXT_ALL
3. Double-click the structure you want to enhance and choose the Display button.
On the Dictionary: Display Structure screen, you can see the list of components of the structure. There is
one component with the following content:
Component .INCLU-_PR and component type CI_IBP_ETS_..._PRI: you can use it to define private
fields, which are only visible in the source system and can be used to select additional fields from the
replication tables in order to calculate public fields via BAdI /IBP/BADI_ES_ETS_SELECTION.
Double-click CI_IBP_ETS_..._PRI to add additional private fields.
Note
Component .INCLU-_PU and component type CI_IBP_ETS_..._PUB: Please do not use them any
longer. Please use appends as described above.
4. If the structure does not yet exist, confirm that you want to create the structure when asked.
5. Fill the Short Description field and add one or several field names and the corresponding component types.
You do not need to follow the naming convention for customer fields (starting with ZZ) here, because all
fields that are created in this customizing include will get an additional suffix _PR in the overall structure.
This ensures that no clashes occur with standard fields added in future support packages.
6. Choose the development package you want to assign the customizing include to and navigate to Extras
Enhancement Category… to make the append extensible if needed. Usually extensibility is not required
and you can select Cannot Be Enhanced.
7. Choose the Copy button or press Enter .
8. Check the customizing include and fix errors and warnings. Activate your customizing include. Warnings of
type Field <field name> does not lie within customer namespace can be ignored due to the reason
described above.
You can fill the additional fields of the extractors using two options.
Note
The move-corresponding from staging table fields to the corresponding append fields of the data sources is
only fully working after applying SAP Note 2787980 .
Fields defined in customizing includes of the extractor structures are filled from corresponding fields of the
source replication tables. First the framework searches for fields in the source tables with the same name as
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
30 PUBLIC Configuration for Time-Series-Based Integration
defined in the customizing include (ignoring the suffixes). If this fails, the framework tries to find corresponding
standard fields by taking out ZZ, YY or the namespace /…/ from the field name and searching with the
remaining part of the field name. If either of the searches is successful, the mapping from the replication table
to the extractor structure is done automatically.
It is also possible to add customer fields to the replication tables using the corresponding customizing
includes. These fields are not considered for order-based integration via SDI, but only when integrating to time-
series-based planning using extractors and CPI-DS. You can create the customizing includes for the replication
tables as follows:
The fields added to the replication tables via customizing includes need to be filled by BAdI implementation,
see below table to find the BAdIs corresponding to the replication tables.
Example
There are ten predefined customer fields called CUST_ATTR1 to CUST_ATTR10 in the replication
tables /IBP/MARA_EXT, /IBP/MARC_EXT, and /IBP/LOC_EXT.
Example
You create the field MYFIELD of the CHAR10 type in the following customizing includes:
● CI_IBP_ETS_MARA_EXT
● CI_IBP_ETS_MARC_EXT
● CI_IBP_ETS_LOCPROD_ATTR_PRI
Also, you create an append to the structure /IBP/S_ETS_LOCATION_ATTR_PUB with a field ZZMYFIELD,
for example, using the RSA6 transaction.
This leads to the creation of fields MYFIELD_TC in tables /IBP/MARA_EXT and /IBP/MARC_EXT and of
fields ZZMYFIELD and MYFIELD_PR in the /IBP/S_ETS_LOCPROD_ATTR_ALL extraction structure.
The framework automatically copies the content of field /IBP/MARC_EXT-MYFIELD_TC to fields /IBP/
S_ETS_LOCPROD_ATTR_ALL-ZZMYFIELD and /IBP/S_ETS_LOCPROD_ATTR_ALL-MYFIELD_PR. The
field /IBP/MARA_EXT-MYFIELD_TC is not copied because /IBP/MARC_EXT is the main selection table.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 31
The following are the source tables of the different extractors and the corresponding BAdIs called when
writing the table entries:
/IBP/MARA_EXT
/IBP/RESHEAD_EXT
/IBP/MARA_EXT
/IBP/LOC_EXT
/IBP/MARC_EXT /IBP/ECC_SAVE_MATERIAL
/IBP/MARC_EXT
/IBP/MARA_EXT
RST006A (structure)
RST006 (structure)
/IBP/RESHEAD_EXT
/IBP/LOC_EXT
/IBP/ETS_TIMEPRF
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
32 PUBLIC Configuration for Time-Series-Based Integration
Extractor Replication Tables Replication Table BAdIs
/IBP/MARC_EXT
/IBP/ETS_TIMEPRF
/IBP/MARC_EXT
/IBP/MARA_EXT
/IBP/MARC_EXT
To fill the fields of the customizing includes or hard-coded customer fields of the replication tables or
change the content of the standard table fields, implement the corresponding BAdI using the transaction
SE19. See the table above to find the relevant BAdI name.
1. MODIFY_SELECTION
This method is called once when initializing the extraction. IV_SELECTION_OBJECT_ID is the extractor
name. IT_RESULT_TABLE is the table for the data extraction. It is not writable. The only purpose of it is to
be able to do an analysis of the table structure. IT_REQUESTED_FIELDS is the list of fields requested by
the caller of the extractor.
○ CT_SELECTIONS: You can modify the selection conditions by this parameter. You also can store the
selection conditions in a member variable of the implementing class in order to use it in the method
MODIFY_DATA_PACKAGE.
○ CT_FIELDS: You can modify the list of fields to be selected using this parameter. This is necessary if
you need to select private or additional public fields in order to fill a public field in
theMODIFY_DATA_PACKAGE method described below. You also can store the fields to be selected in a
member variable of the implementing class in order to use it in theMODIFY_DATA_PACKAGE method.
○ CV_SKIP_STANDARD_SELECTION: If you select this flag, the standard selection logic of the extractor
is skipped and the method MODIFY_DATA_PACKAGE is called with an empty table CT_ITAB. You have
to fill that table in MODIFY_DATA_PACKAGE on your own and to make sure that after the last data
package has been sent, the flag CV_FINISHED is set.
2. MODIFY_DATA_PACKAGE
This method is called one or several times till the CV_FINISHED flag is set. IV_SELECTION_OBJECT_ID is
the extractor name.
IV_PACKAGESIZE is the expected package size in number of entries. This is a recommendation. If you do
not follow it, the superclass will take care about buffering entries and about calling several times to fulfill
the requested package size.
CT_ITAB is the table of selected data that can be extended and modified in this BAdI method. You are also
able to delete and add whole table entries here.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 33
Please note that CT_ITAB does not have the extractor structure itself as a table structure, but an extended
structure, for example:
/IBP/S_ETS_LOCATION_ATTR_ALL
.INCLUDE /IBP/S_ETS_LOCATION_ATTR_PUB (extractor structure)
.INCLUDE /IBP/S_ETS_LOCATION_ATTR_PRI (internal fields)
The include /IBP/S_ETS_LOCATION_ATTR_PRI can be used to define internal fields that are not visible
in the external extractor structure. You can create a customer append to this include using transaction
SE11 (see the List of Extractors, Including Involved Structures table for a complete list of available
structures).
The CV_FINISHED flag indicates that the data selection is finished. By default, CV_FINISHED stays initial
as long as data are still selected in packages by the framework and is set to X with or after the last data
package. If you set CV_FINISHED to X, the method will not be called any more and after the currently
processed data the selection will stop. If the incoming CV_FINSIHED flag is X, the database selection by
the framework is finished. If you deselect the flag, the BAdI method is called again and you can send data in
several packages. Please make sure that you always reach a state where the CV_FINSIHED flag is set to X
to prevent endless loops.
Note
If you set the CV_FINISHED flag and CT_ITAB still contains data, they still will be sent to the IBP
system, but the method will not be called again.
If you do not define a filter for the BAdI implementation, it is called for all extractors of SAP S/4HANA,
supply chain integration add-on for SAP Integrated Business Planning. This also means that the
MODIFY_DATA_PACKAGE method is called with different table structures. We recommend that you
define a filter specifying the extractor name. Then the method is only called for this extractor and thus
you can see from the table below what is the corresponding table structure:
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
34 PUBLIC Configuration for Time-Series-Based Integration
Structure of BAdI Table
You can also combine the two options described above. You can fill or overwrite fields of the replication tables
using BAdIs. Then you define customizing include for public and private fields. This way the added fields are
copied automatically from the replication table to the table parameter CT_ITAB of the method
MODIFY_DATA_PACKAGE of the BAdI /IBP/BADI_ES_ETS_SELECTION. This BAdI can then be used to map
the content of the private field to the public one, including needed conversions.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 35
Defining Customer Extractors
The framework also supports defining customer-defined extractors. Some extractors are already delivered with
example implementations. If you want to use these extractors with the example implementation, compared to
the use of standard extractors, you also need to activate the example BAdI implementation as follows:
Delivered Customer Extractors and Example Implementations of BAdI /IBP/BADI_ES_ETS_SELECTION, Including Involved
Structures and Implementing Classes
Extractor and BAdI Struc Enhancement Implementa
Extractor ture tion Implementing Class
The structures of the extractors above do not have custom includes for field extensions because the extension
concept is different. If you need more fields or a different mapping, you can create your own extractor, including
its structure and BAdI implementation. In addition, you can create a subclass of one of the delivered classes,
but you can create your own stand-alone class to implement the BAdI /IBP/BADI_ES_ETS_SELECTION as
well.
Follow the steps below to define your own extractors from scratch.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
36 PUBLIC Configuration for Time-Series-Based Integration
1. Create extractor structure using the SE11 transaction as follows:
1. Call the SE11 transaction, and select Data Type.
2. Enter the name of the extractor structure in the corresponding field. The recommended naming
convention is /<customer namespace>/S_<extractor name> or ZS<extractor name>, for
example, ZSMYTYPE_ATTR, and choose Create.
3. Select Structure and choose Continue (Enter).
4. Fill the field Short Description.
5. Add one or several fields and their component types to the field list.
○ Use meaningful names as the fields are visible to others. In the case of standard extractors, names
are often similar to the ones in the IBP target tables.
○ Try to create field names which are less than 17 characters long, as there might be technical issues
with longer names.
○ Do not use fields with references to currencies or units of measure, as they cannot be interpreted
in a remote system.
6. Navigate to Extras Enhancement Category… in the menu, and choose Continue ( Enter ).
7. Set the enhancement category according to your needs, but do not set it to Can be enhanced (Deep).
For example, Can be enhanced (character-type or numeric).
8. Choose Copy ( Enter ) then Activate ( Ctrl + F3 ).
9. Select a development package.
10. Choose Continue ( Enter ) to activate the structure.
11. If the structure is not activated, fix the error and activate the structure again.
12. Leave the transaction.
2. Create an extractor using the RSO2 transaction as follows:
1. Call the RSO2 transaction.
2. Decide if you want to create an extractor for master data attributes, texts, or transactional data, and
select the corresponding option, for example, Master Data Attributes.
3. Enter the name of the extractor in the corresponding field. The naming convention is to use your own
customer namespace with slashes or a name starting with a letter. In addition, master data extractors
have the suffix _ATTR, texts have the suffix _TEXT, and in the IBP add-on, the suffix _KF is used for key
figure extractors, for example, MYTYPE_ATTR.
4. Choose Create.
5. Select an application component. You can use SCM-IBP-INT-ECC-TS for transactional data and SCM-
IBP-INT-ECC-TS-IO for master data attributes and texts. This way, your own extractors occur at the
same place in the hierarchy as the standard ones.
6. Fill the Short Description, Medium Description and Long Description fields. Long descriptions are
visible in SAP Cloud Platform Integration for data services.
7. Choose Extraction by FM.
8. In the Function Module field, enter the value /IBP/ETS_RSAX_BIW_GET_DATA_SMP.
9. In the Extract.Struct. field, enter the name of the structure defined above, for example,
ZSMYTYPE_ATTR.
10. Choose Save ( Ctrl + S ).
11. Select a development package, which is often the same as for the structure defined before.
12. A screen is displayed showing the fields of the extractor structure. Select which fields to be hidden and
which fields can be used for selection filters.
13. Choose Save ( Ctrl + S ) again.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 37
14. After the Data Source has been saved successfully, you can leave the transaction.
3. Expose extractor using the RODPS_OS_EXPOSE report as follows:
1. Start the SA38 transaction.
2. Enter RODPS_OS_EXPOSE in the Program field, and choose Execute ( F8 ).
3. In the DataSource field (Pattern with *), enter the name of your newly created extractor, for example,
MYTYPE_ATTR.
4. Choose Release DataSource(s) then Copy (Enter).
5. Answer the question Release selected 1 Datasources? with Yes.
6. Create or select a transport request.
7. Choose Display Releases to check whether the release took place.
8. Leave the transaction.
4. Test the extractor locally using the /IBP/ETS_REPL_TEST as follows:
1. Enter /N/IBP/ETS_REPL_TEST in the OK-code field and choose Enter .
2. In the Data Source / Extractor Name field, enter the name of the newly created extractor.
3. Under Selections, you can define one or more selection conditions for the fields of the extractor. This
corresponds to the filter conditions pushed down from SAP Cloud Platform Integration for data
services (CPI-DS) to the extractor.
Note that not all filter conditions are pushed down, as some might only be evaluated in CPI-DS
afterwards.
4. Use Projections to define which fields are to be requested from the extractor. In CPI-DS, this
corresponds to fields that are mapped to target fields or used to define filters that are not pushed
down to the extractor.
5. Choose between Serial Extraction Using ODQ and Direct Extraction Without ODQ. While the former is
similar to the call from CPI-DS and calls the extraction in the background, the latter directly calls the
extractors and is better for debugging.
6. You can switch from ALV Grid Display to a list output by selecting the checkbox No ALV Grid Display.
7. You can influence the maximum number of displayed rows and the package size in kilobytes by
changing the corresponding fields. The default package size of 51.200 KB corresponds to the package
size used by CPI-DS.
You can also use the RODPS_REPL_TEST report for testing extractors, but in this case, note the
following:
○ In the earliest NetWeaver releases supported by the add-on, the RODPS_REPL_TEST report has a
simpler interface with slightly different fields, and you are only able to define one selection
condition for each field.
○ As the report can be used to test other extractors as well, it is more complicated to use.
○
You can also use the RSA3 transaction for testing extractors with the following remarks:
○ You cannot test whether the extractor is exposed because it is not required for RSA3.
○ Since you cannot define any projections, you cannot test how the extractor behaves if not all fields
are requested.
This heavily impacts the test of key figure extractors, as the aggregation depends on the requested
fields.
5. Use the ODQMON transaction for error analysis:
○ If the local test was successful, you can load the extractor definition to the CPI-DS datastore and use it
in a dataflow definition.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
38 PUBLIC Configuration for Time-Series-Based Integration
○ If you want to know whether and how the dataflow has called the extractor, use the ODQMON transaction
as follows:
1. Enter /NODQMON into the OK-code field and choose Enter .
2. Change the Request Select. field to All.
3. Optionally, you can specify a queue name, for example, /IBP/* or ZZIBP*.
4. You can navigate to the details of an extractor by double-clicking the corresponding row.
5. As of ODP 2.0, the list contains the column Selection, which contains the filters pushed down from
CPI-DS.
6. You can take a look at the data sent to CPI-DS by the extractor given that the corresponding details
have not been deleted yet.
You can either reuse the file used for uploading the time profile to the IBP, or you can download the IBP time
profile as follows:
1. In SAP Integrated Business Plannining in the Data Integration Jobs app, choose Download Template and
select the following:
○ Time Periods in the Data Type field
○ Your time profile ID in the Time Profile field
○ With Existing Time Periods in the Prefill Template field
2. Choose Download.
To upload the IBP time profile file to the SAP S/4HANA, do the following:
1. Enter /n/IBP/ETSTP into the Command field and press enter. Alternatively, you can also open the main
menu entry under SAP Menu Logistics Central Functions Supply Chain Planning Interface
Integrated Business Planning Integration Model Data Transfer Configuration Maintain Time Profiles
for Aggregation (Time-Series-Based Integration) . This opens a selection screen.
2. Optionally, you can define selection criteria.
3. Choose Execute ( F8 ).
4. Choose Upload from CSV File.
5. In the Name of the CSV File field, enter the path and name of the source CSV file. You can use the search
help of the field for that. Only files with the suffix CSV can be selected. You can leave the IBP System ID field
empty.
6. In the IBP Time Profile ID field, enter the time profile ID. If the file contains a filled TPID column, then the
time profile ID is taken over from that column.
7. Optionally, you can fill the IBP Time Profile Level field to restrict the levels of the time profile uploaded to the
system.
By default, a time profile consists of the levels 1 to 6. In the Best Practices content, level 1 is daily, 2 is
technical weeks, 3 is calendar weeks, 4 is months, 5 is quarters and 6 is years. Since only level 2 is needed
to run the upload of key figures to the unified planning area SAPIBP1, you can restrict the upload to level 2.
You may also restrict it to levels 2 through 6, as an aggregation per date is possible without using a time
profile and thus level 1 is not needed. It also contains the most entries and thus the table stays much
smaller when excluding level 1 from the upload.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Configuration for Time-Series-Based Integration PUBLIC 39
8. Choose Execute ( F8 ).
9. Check the uploaded data. Entries with errors are displayed on top and contain a column with an error
message.
10. If the data is OK, choose Save to Database Table. Only then data are persisted in the system.
Please note the following about the data format and behavior of the transaction:
● The standard separator is comma. It can be overwritten by placing a first row in the file with the syntax
sep=<separator>, for example, sep=; would set the separator to semicolon.
● The next (or the first) row is expected to contain the names of the columns separated by the specified
separator.
● The other rows are expected to contain the values of the column fields separated by the specified
separator.
● The long time stamp fields PERIODSTART and PERIODEND are expected to contain either a date in format
yyyymmdd or a date and time in format yyyymmddhhmmss.mmmnnn. In both cases, intermediate
slashes, backslashes, minus signs, colons, and spaces can be used and are ignored. Both fields only
support full days, thus the times are always set to 00:00:00.0000000 for PERIODSTART and
23:59:59:9999999 for PERIODEND, independently of the input time information.
● The corresponding short time stamp fields PERIODSTARTSHORT and PERIODENDSHORT and date fields
PERIODSTARTDATE and PERIODENDDATE are taken over from PERIODSTART and PERIODEND accordingly.
● The only other mandatory fields are the following:
○ TPID (IBP Time Profile ID)
○ TPLEVEL (IBP Time Profile Level)
○ PERIODID (Period ID in IBP Time Profile)
● Uploaded data only lead to inserts and updates. If you need to delete entries, you can mark them for
deletion manually by selecting them and choosing Mark for Deletion. The deletions are only persisted when
choosing Save to Database Table afterwards.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
40 PUBLIC Configuration for Time-Series-Based Integration
Important Disclaimers and Legal Information
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.
Administrator's Guide - SAP S/4HANA, Supply Chain Integration Add-On for SAP Integrated
Business Planning
Important Disclaimers and Legal Information PUBLIC 41
www.sap.com/contactsap
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.