Additional SAP ECC and S/4HANA configuration options
When configuring your SAP ECC and S/4HANA components, you also have the following additional options:
Note
This feature is available only for selected teams. Reach out to the support team if you need it to be activated for your team.
In older versions of the RFC Module you can apply anonymisation only to the whole column. This usually works fine, because the anonymisation is applied to the "username", which is always a separate column in the table.
However, in some specific scenarios, the username is a part of a composite column, and is basically concatenated with other values. If you anonymise the whole column, then you cannot carve the username out of it.
To support this use case, we have added the concept of calculated columns (supported in RFC Version 1.8.4 and Extractor 2020-07-15) . This allows you to apply the function SUBSTRING to a column, and then anonymise the returned value. So if in the db you have a value like this - "XXXXX_username_YYYYY", applying the function substring to it will isolate the value username, and then anonymise it before extracting to the cloud.
Below are the steps how to set this up:
In Data Integration, navigate to the Data Job=>table where the column is stored. Click on the button "Configure calculated column".
In the pop up add a new calculated column and define its name and the formula. Currently only the formula ANON_SUBSTRING is supported.
It accepts three parameters:
Column name - this is the source column name that you want the function to be applied to
Starting character - the index of the starting character. Index of the first character is 1
Length - how many characters should be included
For example, ANON_SUBSTRING(ABCD,2,2) will be applied to 'BC'.
In the screenshot below, the 1st character of the field USR02.ANAME is anonymised.
Make sure that the source column is also included in the extraction and marked to be anonymised. This is a technical pre-requisite, so please include the column even if you don't need it.
Run the extraction as usually. The calculated column will be available in the table as the other standard columns, i.e. USR02.COL_SUBST
Note
The feature is available only in the on-prem client. The uplink-based on-premise extractor does not support this.
SAP S/4 HANA offers functionality to archive old data and free up working memory. The table is partitioned based on the age of the data. The aged data is moved to the persistent memory and is not available unless it is explicitly invoked.
The RFC module has been enhanced to allow the extracting of this aged data. Go to Data Connection > Advanced Settings and enable the "Enable cold data extraction" option to make the aged data available for extraction along with the current data.
You can use the _DATAAGING
column to filter the aged records based on their date. The filter for the current data is _DATAAGING = '00000000'
, so be sure to include this in the filter and avoid excluding it from the extraction. For example, the filter in the screenshot below will extract all the current data (_DATAAGING = '00000000'
) AND any aged data newer than 01-01-2023 (_DATAAGING = '20230101'
).
Note
The feature is available only in the on-prem client. The uplink-based on-premise extractor does not support this.
CDS views can require parameters that are passed during the execution and typically applied as filters. The Celonis SAP Extractor supports the extraction of parameterized CDS views. If the user selects this type of CDS view, the parameters will be rendered in a dedicated section of the Table Extraction configurations. Make sure to define values for all required parameters or else the extraction will fail in the SAP layer.
Tip
Only static values are supported, so dynamic parameters cannot be used as inputs.
SAP HANA allows you to pass hints to SELECT queries to instruct where the query is routed. This is a recommended best practice for customers running S/4 HANA since it allows them to balance the system in terms of query response time, query load, resource utilization and freshness of data.
For example, if your SAP HANA architecture is “high availability” and is “Active/Active read enabled”, you may choose to use this feature to route all of Celonis’s SAP extraction queries to the secondary HANA instance, to reduce the load on the primary one.
Prerequisites
Make sure you're using RFC Module v3.5.0 or later.
Install the Celonis_RFC_S4_Extensions package, which contains the necessary extension to use this new functionality.
You can download all necessary files directly from Celonis Platform. In your Celonis Platform instance, go to Admin and Settings > Download Portal. You must be an Admin or an Analyst with the MANAGE DOWNLOAD PORTAL permission to access these files.
Procedure
To pass the hint RESULT_LAG() should be used. It takes two parameter values to determine:
Which data source to use (snapshot or live data).
What is the acceptable lag behind the live data.
Here's the syntax for the RESULT_LAG()
hint:
WITH HINT (RESULT_LAG(“<short_class_name>”, [seconds])).
The hint is appended to the SELECT statement.
Example:
SELECT * FROM MY_TABLE WITH HINT( RESULT_LAG ( 'hana_long', 30) );
In this example, if the cache is fresher than 30 seconds then data will be read from there. If it is stale, then the freshness of the data replication on the secondary system is evaluated, and is either queried from there if fresh enough or from the primary system if not. For more details on the available classes and their parameters check the official SAP documentation.
To pass the hint to the extraction queries you should:
Modify the application-local.yml configuration file on the Extractor server as described below.
uplink: enabled: true .... celonis: sap: # Any other customisations you may have hdbRouting: true hdbClass: hana_long # can be a custom class or another built in one like hana_sr # hdbMaxLag: optional, retention time value in seconds
Restart the Extractor for the change to take effect.
When managing the RFC module, the following function modules should be mapped:
/CELONIS/FM_NEW_EXTRACT: Read data from table, result is saved in a file.
/CELONIS/FM_CL_NEW_EXTRACT: Read data from change log table, result is saved in a file.
/CELONIS/FM_STAD_EXTRACT: Extract workload information.
/CELONIS/FM_CL_RM_EXTRACT: Clean up change log table (after successful extraction).
/CELONIS/FM_GET_TABLE_LIST: Retrieve DB table list using search criteria.
/CELONIS/FM_GET_CHECKED_TABLES: Verify table names.
/CELONIS/FM_CL_GET_TABLE_NAME: Retrieve change log table info.
/CELONIS/FM_CL_GET_TABLE_NAMES: Retrieve change log table info (multiple).
/CELONIS/FM_GET_TABLE_METADATA: Retrieve table column metadata.
/CELONIS/FM_GET_DPNDT_METADATA: Retrieve table column metadata, expanding appended structures.
/CELONIS/FM_GET_STAD_METADATA: Retrieve workload metadata.
/CELONIS/FM_GET_JOB_LOG: Get log messages from table /CELONIS/LOG2 from specific extraction.
/CELONIS/FM_DELETE_JOB_LOG: Clean up log table /CELONIS/LOG2 (old records).
/CELONIS/FM_GET_JOB_STATUS: Get extraction job status.
/CELONIS/FM_CANCEL_EXTRACT: Cancel running extraction job.
/CELONIS/FM_GET_EXTRACT_FILE: Get extraction file content
/CELONIS/FM_GET_EXTR_FILE_LIST: Get list of files in directory Z_CELONIS_TARGET.
/CELONIS/FM_CLEANUP_FILES: Delete extraction files from specific extraction.
/CELONIS/FM_CLEANUP_OLD_FILES: Delete remaining extraction files, after retention period is over.
/CELONIS/FM_CONFIG_TEST: Execute configuration check up.
/CELONIS/FM_GET_SYS_INFO: Retrieve Application Server info: System ID, Operating System, DB info, Celonis' RFC component version, SAP Application version, SAP Basis version, Time zone.
/CELONIS/FM_GET_RUNTIME_INFO: Retrieve memory & CPU information & status from Application Server.
The following describes in detail what the role contains and why the authorizations are necessary along with customization options
Cross-application Authorization Objects
Authorization Check for RFC Access - So the Extractor can remotely access the functions in the RFC module
Object | Field | Activities/Values |
---|---|---|
S_RFC | ACTVT | 16 |
S_RFC | RFC_NAME | /CELONIS/46C_EXTRACTION, /CELONIS/CL_EXTRACTION, /CELONIS/EXTRACTION, RFC1, SDIFRUNTIME, SDTX, SRFC, SYST, SYSU |
S_RFC | RFC_TYPE | FUGR |
Basis: Administration
Background Processing: Operations on Background Jobs - So the RFC module can immediately run the extractions as background jobs
Object | Field | Activities/Values |
---|---|---|
S_BTCH_JOB | JOBACTION | RELE |
S_BTCH_JOB | JOBGROUP | * |
Administration Functions in Change and Transport System - So the RFC module can list directory contents
No longer necessary in RFC Module versions >= 1.8.0
Object | Field | Activities/Values |
---|---|---|
S_CTS_ADMI | CTS_ADMFCT | EPS1 |
Authorization for file access - So the RFC module can write, read, and delete files in the physical path defined for the logical path 'Z_CELONIS_TARGET'
Object | Field | Activities/Values |
---|---|---|
S_DATASET | ACTVT | 06, 33, 34 |
S_DATASET | FILENAME | * |
S_DATASET | PROGRAM | /CELONIS/* |
Note
You can replace the '*' in 'FILENAME' with the physical path you have chosen for Z_CELONIS_TARGET, e.g. /<YOUR_PATH>/*
Table Maintenance (via standard tools such as SM30) - So the RFC module can extract data from tables
Object | Field | Activities/Values |
---|---|---|
S_TABU_DIS | ACTVT | 03 |
S_TABU_DIS | DICBERCLS | * |
Note
You can replace the '*' in 'DICBERCLS' with the authorisation group of tables you will be extracting.
Alternatively, If you need to control access to individual tables instead to groups of tables, you can use authorisation object S_TABU_NAM.
Important: When using the Real-Time Extractor, the Changelog tables (ZCL...) should also be whitelisted.