跳转至

Configure SLT (SAP Landscape Transformation Replication Server)(配置 SLT(SAP Landscape Transformation Replication Server))

The SAP Landscape Transformation Replication Server (SLT) is a data replication tool that uses database triggers to perform change data capture (CDC), thus enabling efficient data replication from source SAP systems to a target system.

The SLT and the Palantir Foundry Connector 2.0 for SAP Applications ("Connector") can be configured to work together to enable CDC replication from SAP to Foundry.

In this setup, an SLT configuration will be created with a dedicated context (queue alias).

To replicate an SAP table to Foundry, a Foundry dataset sync will be configured per object. Once a dataset sync is configured, SLT will configure triggers on the relevant SAP object and changes to the object in SAP will then be captured and stored in the queue in the SLT server for an ODP (Operational Data Provisioning) scenario. Foundry will poll this queue on a preconfigured schedule to synchronize these changes to the Foundry dataset.

:::callout{theme="neutral"} Starting with version 2.34 (SP34) and above, the Connector uses ODP-based data extraction via OData ↗ to interact with ODP. :::

When a Foundry dataset sync is first configured for an SAP object, SLT will perform a full load. Consecutive triggers will fetch only the changes for the object. The purging of SLT queues is managed by SLT.

You can also configure a Foundry dataset sync to have SLT perform a full load (snapshot) of specific SAP objects rather than operate in CDC mode (incremental).

:::callout{theme="neutral"} This guide assumes the Connector has already been installed on the instance. You can review installation instructions for the Connector. :::

Prerequisites

Use ODP directly (Connector version 2.33 (SP33) and below)

  • SAP_BASIS (the technical component version, applicable to both SAP NetWeaver and SAP S/4HANA systems) 7.4 SP14+ for Connector installation
  • DMIS 2011_1_730 Component SP15+ for SAP SLT and source system
  • SAP SLT configuration that allows 1\:N replication for all Mass Transfer IDs (MTIDs)

Ensure that the following SAP notes are implemented on the SLT system:

  • SAP OSS Note 1660374Fetch does not wait long enough; timeout
  • SAP OSS Note 2215583Error due to moved data content during extraction from ODQ

Ensure that the following SAP notes have been read and the relevant steps followed where applicable:

  • SAP OSS Note 2697016Unable to replicate table in CNV_IUUC_DB_CONN131 - Other configuration have different trigger settings - SAP Landscape Transformation Replication Server.
  • SAP OSS Note 2787584 - Authorization issues in LTRC despite user having SAP_ALL - SLT
  • SAP OSS Note 3032108 - Is 1\:N replication supported? - SLT

:::callout{theme="neutral"} In SAP SLT scenarios, there can be 1:4 registrations (max 4 consumers) for a table in older DMIS versions. Starting with DMIS 2018 SP4, SAP's new CDC functionality was enabled and there is no longer a limit on the number of consumers allowed. :::

Use ODP via OData (Connector version 2.34 (SP34) and above)

Connector version 2.34 introduces a PALODATA component, allowing you to configure syncs using the OData API as recommended by SAP ↗.

This component has elevated prerequisites for SAP_BASIS version 7.50 SP09+ given the recent nature of OData. Also ensure that the following SAP notes have been read and where applicable implemented:

  • SAP OSS Note 2854759 - Handling of date fields during extraction via OData V2
  • SAP OSS Note 2878969 - ODP extraction ODATA Function import names are getting truncated
  • SAP OSS Note 3062232 - ODP ODATA V2 - Last skiptoken for a pointer provides no deltatoken
  • SAP OSS Note 3023446 - ODP with oData version2: odata.maxpagesize is ignored for delta request
  • SAP OSS Note 2888122 - ODATA ODP Delta not possible if latest delta request in source system deleted

Resource sizing

Using the Connector with SLT can be resource-intensive for the SAP system. Therefore, official SAP sizing documents should be reviewed for SLT before starting replication. Prior to beginning data extraction from the SAP environment, ensure there are free background and dialog processes on the SLT server (and also the SAP Application Server where the Connector is installed if SLT and the Connector are in different servers).

  • Go to transaction SM50 to see if there are free background and dialog processes. If there are no free processes, transferring data to Foundry will fail.
  • Refer to the official SAP SLT Sizing Guide ↗ for more guidance on sizing the system.

SLT configuration

:::callout{theme="neutral"} Only one of steps 2a and 2b is required. We recommend following step 2a and using the Post-Installation Wizard. Steps 3 and 4 are only required for a remote SLT scenario. :::

1. Create an RFC destination connection to the source system

To create a Remote Function Call (RFC) connection that SLT will use to replicate data from the SAP source system, refer to Create an RFC connection.

2a. Create an SLT configuration for the source system using the Post-Installation Wizard

To create an SLT configuration using the Connector Post-Installation Wizard, use the /n/PALANTIR/POST_INST transaction code and only enable step 7 Create SLT configuration. The parameters of an SLT configuration are as follows:

Parameter Description
Context Name Unique configuration name
Context Description Context description that will be shown to the user in SAP transaction LTRC and in Foundry
Data Transfer Jobs Number of data transfer jobs
Initial Load Jobs Number of jobs for initial loads
Calculation Jobs Number of calculation jobs for initial load range calculations
Authorization Group No Authorization Group by default
Source RFC Destination Logical Destination - RFC Destination name of source system
Read from Single Client Check this option if data will be read from a single client
Allow Multiple Usage Check this option if multiple usage is allowed

2b. Create an SLT configuration for the source system using the SLT tools

:::callout{theme="neutral"} Only one of steps 2a and 2b is required. We recommend using the Post-Installation Wizard detailed in step 2a. :::

  1. To create an SLT configuration, use the LTRC transaction code.
  2. Create a new configuration.
  3. In the General Data section, fill in the Configuration Name and Description.
  4. In the Source System section:

  5. Select RFC Connection.

  6. Select the RFC Destination connection we created previously (eg, SAP_SOURCE in our example).

:::callout{theme="neutral"} Do not be confused by the name “RFC Destination” when you are configuring a source – you should select the connection for the source system in this setting. :::

  • Enable Allow Multiple Usage.

:::callout{theme="warning"} This setting enables multiple subscribers to retrieve replicated data from the source system and cannot be changed after configuration creation. As Allow Multiple Usage does not have an impact if a single subscriber is used, we recommend enabling it during the first configuration. To enable multiple usage at a later time requires you to delete the configuration and create a new one. :::

  • In the production environment, enable Read from Single Client. The client number used will be the one defined in the RFC Connection. This setting will ensure only production data is replicated to Foundry. In existing SLT environments, all configurations should have the same settings. Therefore, check SAP OSS Note 2372636 - Cannot replicate data when different trigger options exist - SLT.
  • In the Target System section:
  • Select RFC Connection.
  • Select Operational Data Provisioning (ODP) for Scenario. For higher support package levels of SAP_BASIS, this scenario is listed under Other instead of RFC Connection.
  • Set RFC Destination as NONE.
  • Set any alias name as the Queue Alias. It is good practice to name the queue that shows the source system SAP System ID (SID). This queue alias name is used as the context later on, when defining Foundry dataset syncs.
  • In the Data Transfer Settings section, set the number of data transfer jobs, initial load jobs and data calculation jobs to be run on the SAP SLT server. Refer to the SLT Sizing Guide ↗ for the number of jobs needed for complex scenarios.
  • Review and create the connection.
  • Back on the main SLT screen, for transaction code LTRC, ensure that BAdI implementation is active on the SLT system for ODP scenarios. To check the setting, open the configuration by selecting the configuration name, and then click the Expert Functions tab. Ensure BAdI implementation is active or ODP will not function correctly.
  • Go to SA38 transaction from the main menu. As described on the SAP OSS note 1660374 - Fetch does not wait long enough; timeout, run the program SAP_RSADMIN_MAINTAIN to set the parameter RODPS_FETCH_TIMEOUT. Specify the value in seconds.

3. Create an RFC destination connection to the Connector (remote SLT scenario)

The Connector can be deployed on a separate SAP instance which fulfills the requirements. In this case, the Connector communicates with the SLT server via an RFC connection. Therefore, an RFC connection is required to enable the communication channel.

Refer to RFC connection guide for setup instruction.

4. Configure the Connector to use SAP SLT (remote SLT scenario)

If SLT and the Connector are on separate instances, follow these additional configuration steps:

  • Open transaction /n/PALANTIR/PARAM
  • Enter the following parameter values:
  • Param ID: SLT
  • Param Name: RFC_CONFIGURATION
  • Param Value: RFC configuration name created in the beginning of this section (eg, SLT_SERVER_RFC)

If these parameters are not set in the configuration table, they will default to the following values:

  • timestamp: OFF
  • fetchOption: XML
  • pageSize: 50000

Performance considerations for large table syncs

The Connector uses SAP's ODP Framework to replicate data to Foundry. ODP replicates the data from the source system to the ODP Queue (table name ODQDATA_F). The data is staged in ODQ, and once the data is transferred to the ODP queue, the Connector starts to page the requested data to the /PALANTIR/PAG_01 and /PALANTIR/PAG_02 tables. After a successful transfer of all pages to Foundry, Foundry sends a close request to housekeep the tables, and this close request deletes entries in /PALANTIR/PAG* tables.

When running initial (for instance, historical or bulk) syncs, review database sizing and consider space requirements carefully. Insufficient space may lead to failed SLT replication jobs and transfers to Foundry so first carry out database sizing preparations based on the tables to be replicated.

Parameters used to address known SAP issues

There are two other parameters which are used as a solution to known issues in SAP.

Issue: The SAP SLT server does not provide the exact field length of date/time fields

Problem: The SAP SLT server does not provide the exact field length of date/time fields. This has been fixed with an SAP note. However, if you do encounter any issues regarding data type lengths, the following parameter can be set until the note is implemented:

  • Param ID = SLT
  • Param Name = SLT_DATA_XXX (XXX refers to technical name of the field)
  • Param Value = Length of the data type

In an earlier support package of SAP_BASIS (SP 14), DATS fields were set as 16 characters by SAP. However, DATS fields should have 8 characters (YYYYMMDD). TIMS fields were also set as 16 characters by SAP; TIMS data has 6 characters (HHMMSS).

To address this problem, set the following parameters:

Param Id Param Name Param Value
SLT SLT_DATA_DATS 8
SLT SLT_DATA_TIMS 6

Issue: SAP QUAN data types that do not have 3 decimal places

Problem: SAP has specific data types to be used for quantity and amount. Quantity data type QUAN contains 3 decimal places by default. When the Connector tries to fetch data which contain QUAN data types, it automatically creates 3 decimal places for these QUAN data types. However, some of the SAP tables which contain QUAN data types have a different number of decimal places but are sent to Foundry as if they have 3 decimal places.

To address this problem, use the following parameter:

  • Param ID = SLT
  • Param Name = SLT_DTYPE_XXX (XXX refers to data type of the field)
  • Param Value = Data Type Name which will be taken Into account

Set the parameter as follows to change QUAN data types to decimal data types:

Param Id Param Name Param Value
SLT SLT_DTYPE_QUAN DEC

中文翻译


配置 SLT(SAP Landscape Transformation Replication Server)

SAP Landscape Transformation Replication Server (SLT) 是一种数据复制工具,它利用数据库触发器执行变更数据捕获 (CDC),从而将数据从源 SAP 系统高效复制到目标系统。

SLT 和 Palantir Foundry Connector 2.0 for SAP Applications(简称"连接器")可以协同配置,实现从 SAP 到 Foundry 的 CDC 复制。

在此设置中,将创建一个带有专用上下文(队列别名)的 SLT 配置。

要将 SAP 表复制到 Foundry,需要为每个对象配置一个 Foundry 数据集同步。数据集同步配置完成后,SLT 将在相关 SAP 对象上配置触发器,SAP 中对该对象的更改将被捕获并存储在 SLT 服务器的队列中,用于 ODP(操作数据预置)场景。Foundry 将按照预配置的计划轮询此队列,以将这些更改同步到 Foundry 数据集。

:::callout{theme="neutral"} 从 2.34 (SP34) 版本开始,连接器使用基于 OData 的 ODP 数据提取 ↗ 与 ODP 进行交互。 :::

首次为 SAP 对象配置 Foundry 数据集同步时,SLT 将执行一次全量加载。后续的触发器将仅获取该对象的更改。SLT 队列的清理由 SLT 管理。

您也可以配置 Foundry 数据集同步,让 SLT 对特定 SAP 对象执行全量加载(快照),而不是以 CDC 模式(增量)运行。

:::callout{theme="neutral"} 本指南假设连接器已安装在实例上。您可以查看连接器的安装说明。 :::

前提条件

直接使用 ODP(连接器版本 2.33 (SP33) 及以下)

  • 连接器安装需要 SAP_BASIS(技术组件版本,适用于 SAP NetWeaver 和 SAP S/4HANA 系统)7.4 SP14+
  • SAP SLT 和源系统需要 DMIS 2011_1_730 组件 SP15+
  • SAP SLT 配置允许所有 Mass Transfer ID (MTID) 进行 1:N 复制

确保 SLT 系统已实施以下 SAP 注释:

  • SAP OSS 注释 1660374Fetch does not wait long enough; timeout
  • SAP OSS 注释 2215583Error due to moved data content during extraction from ODQ

确保已阅读以下 SAP 注释,并在适用的情况下遵循相关步骤:

  • SAP OSS 注释 2697016Unable to replicate table in CNV_IUUC_DB_CONN131 - Other configuration have different trigger settings - SAP Landscape Transformation Replication Server.
  • SAP OSS 注释 2787584 - Authorization issues in LTRC despite user having SAP_ALL - SLT
  • SAP OSS 注释 3032108 - Is 1:N replication supported? - SLT

:::callout{theme="neutral"} 在 SAP SLT 场景中,对于较旧版本的 DMIS,一个表最多可以有 1:4 个注册(最多 4 个消费者)。从 DMIS 2018 SP4 开始,SAP 的新 CDC 功能已启用,不再限制允许的消费者数量。 :::

通过 OData 使用 ODP(连接器版本 2.34 (SP34) 及以上)

连接器版本 2.34 引入了 PALODATA 组件,允许您使用 SAP 推荐的 OData API ↗ 配置同步。

鉴于 OData 的近期特性,此组件对 SAP_BASIS 版本有更高的前提要求,需要 7.50 SP09+。 同时,请确保已阅读并在适用的情况下实施了以下 SAP 注释:

  • SAP OSS 注释 2854759 - Handling of date fields during extraction via OData V2
  • SAP OSS 注释 2878969 - ODP extraction ODATA Function import names are getting truncated
  • SAP OSS 注释 3062232 - ODP ODATA V2 - Last skiptoken for a pointer provides no deltatoken
  • SAP OSS 注释 3023446 - ODP with oData version2: odata.maxpagesize is ignored for delta request
  • SAP OSS 注释 2888122 - ODATA ODP Delta not possible if latest delta request in source system deleted

资源规模规划

将连接器与 SLT 结合使用可能会消耗大量 SAP 系统资源。因此,在开始复制之前,应查阅官方的 SAP SLT 规模规划文档。在开始从 SAP 环境提取数据之前,请确保 SLT 服务器(以及如果 SLT 和连接器位于不同服务器,则连接器所在的 SAP 应用服务器)上有空闲的后台和对话进程。

  • 进入事务代码 SM50 查看是否有空闲的后台和对话进程。如果没有空闲进程,则向 Foundry 传输数据将失败。
  • 有关系统规模规划的更多指导,请参阅官方 SLT 规模规划指南 ↗

SLT 配置

:::callout{theme="neutral"} 步骤 2a 和 2b 只需执行其中一个。我们建议遵循步骤 2a,使用安装后向导。步骤 3 和 4 仅在远程 SLT 场景下需要。 :::

1. 创建到源系统的 RFC 目标连接

要创建 SLT 将用于从 SAP 源系统复制数据的远程函数调用 (RFC) 连接,请参阅创建 RFC 连接

2a. 使用安装后向导为源系统创建 SLT 配置

要使用连接器安装后向导创建 SLT 配置,请使用事务代码 /n/PALANTIR/POST_INST,并仅启用步骤 7 创建 SLT 配置。SLT 配置的参数如下:

参数 描述
Context Name (上下文名称) 唯一的配置名称
Context Description (上下文描述) 将在 SAP 事务 LTRC 和 Foundry 中向用户显示的上下文描述
Data Transfer Jobs (数据传输作业) 数据传输作业数量
Initial Load Jobs (初始加载作业) 初始加载作业数量
Calculation Jobs (计算作业) 初始加载范围计算的计算作业数量
Authorization Group (授权组) 默认为无授权组
Source RFC Destination (源 RFC 目标) 逻辑目标 - 源系统的 RFC 目标名称
Read from Single Client (从单一客户端读取) 如果数据将从单一客户端读取,请勾选此选项
Allow Multiple Usage (允许多重使用) 如果允许多重使用,请勾选此选项

2b. 使用 SLT 工具为源系统创建 SLT 配置

:::callout{theme="neutral"} 步骤 2a 和 2b 只需执行其中一个。我们建议使用步骤 2a 中详述的安装后向导。 :::

  1. 要创建 SLT 配置,请使用事务代码 LTRC
  2. 创建一个新配置。
  3. General Data(常规数据)部分,填写 Configuration Name(配置名称)和 Description(描述)。
  4. 在 Source System(源系统)部分:
  5. 选择 RFC Connection(RFC 连接)。
  6. 选择我们之前创建的 RFC Destination(RFC 目标)连接(例如,示例中的 SAP_SOURCE)。 :::callout{theme="neutral"} 在配置源时,不要被名称“RFC Destination”所迷惑——您应该在此设置中选择源系统的连接。 :::
  7. 启用 Allow Multiple Usage(允许多重使用)。 :::callout{theme="warning"} 此设置允许多个订阅者从源系统检索复制数据,并且在创建配置后无法更改。由于如果只使用单个订阅者,Allow Multiple Usage 不会产生影响,我们建议在首次配置时启用它。要在以后启用多重使用,需要删除配置并创建一个新的。 :::
  8. 在生产环境中,启用 Read from Single Client(从单一客户端读取)。使用的客户端编号将是 RFC 连接中定义的客户端编号。此设置将确保只有生产数据被复制到 Foundry。在现有的 SLT 环境中,所有配置应具有相同的设置。因此,请检查 SAP OSS 注释 2372636 - Cannot replicate data when different trigger options exist - SLT
  9. 在 Target System(目标系统)部分:
  10. 选择 RFC Connection(RFC 连接)。
  11. Scenario(场景)选择 Operational Data Provisioning (ODP)(操作数据预置)。对于较高支持包级别的 SAP_BASIS,此场景列在 Other(其他)下,而不是 RFC Connection 下。
  12. RFC Destination(RFC 目标)设置为 NONE
  13. 设置任意别名作为 Queue Alias(队列别名)。最佳实践是使用显示源系统 SAP 系统 ID (SID) 的名称来命名队列。此队列别名稍后将在定义 Foundry 数据集同步时用作上下文。
  14. Data Transfer Settings(数据传输设置)部分,设置在 SAP SLT 服务器上运行的数据传输作业、初始加载作业和数据计算作业的数量。有关复杂场景所需作业数量,请参阅 SLT 规模规划指南 ↗
  15. 检查并创建连接。
  16. 返回 SLT 主屏幕(事务代码 LTRC),确保 SLT 系统上的 BAdI 实现对于 ODP 场景是激活的。要检查此设置,请通过选择配置名称打开配置,然后单击 Expert Functions(专家功能)选项卡。确保 BAdI 实现已激活,否则 ODP 将无法正常运行。
  17. 从主菜单进入事务 SA38。如 SAP OSS 注释 1660374 - Fetch does not wait long enough; timeout 所述,运行程序 SAP_RSADMIN_MAINTAIN 以设置参数 RODPS_FETCH_TIMEOUT。以秒为单位指定值。

3. 创建到连接器的 RFC 目标连接(远程 SLT 场景)

连接器可以部署在满足要求的独立 SAP 实例上。在这种情况下,连接器通过 RFC 连接与 SLT 服务器通信。因此,需要建立一个 RFC 连接来启用通信通道。

有关设置说明,请参阅 RFC 连接指南

4. 配置连接器以使用 SAP SLT(远程 SLT 场景)

如果 SLT 和连接器位于不同的实例上,请遵循以下额外配置步骤:

  • 打开事务 /n/PALANTIR/PARAM
  • 输入以下参数值:
  • Param ID (参数 ID):SLT
  • Param Name (参数名称):RFC_CONFIGURATION
  • Param Value (参数值):在本节开头创建的 RFC 配置名称(例如,SLT_SERVER_RFC)

如果这些参数未在配置表中设置,它们将默认为以下值:

  • timestamp (时间戳):OFF
  • fetchOption (获取选项):XML
  • pageSize (页面大小):50000

大型表同步的性能考虑

连接器使用 SAP 的 ODP 框架将数据复制到 Foundry。ODP 将数据从源系统复制到 ODP 队列(表名 ODQDATA_F)。数据暂存在 ODQ 中,一旦数据传输到 ODP 队列,连接器就开始将请求的数据分页到 /PALANTIR/PAG_01/PALANTIR/PAG_02 表中。所有页面成功传输到 Foundry 后,Foundry 会发送一个关闭请求来清理这些表,此关闭请求会删除 /PALANTIR/PAG* 表中的条目。

当运行初始(例如,历史或批量)同步时,请检查数据库规模并仔细考虑空间需求。空间不足可能导致 SLT 复制作业和向 Foundry 的传输失败,因此请首先根据要复制的表进行数据库规模规划准备。

用于解决已知 SAP 问题的参数

还有另外两个参数用作已知 SAP 问题的解决方案。

问题:SAP SLT 服务器不提供日期/时间字段的精确字段长度

问题:SAP SLT 服务器不提供日期/时间字段的精确字段长度。此问题已通过 SAP 注释修复。但是,如果您确实遇到有关数据类型长度的问题,可以在实施该注释之前设置以下参数:

  • Param ID (参数 ID) = SLT
  • Param Name (参数名称) = SLT_DATA_XXXXXX 指字段的技术名称)
  • Param Value (参数值) = 数据类型的长度

在较早的 SAP_BASIS 支持包(SP 14)中,DATS 字段被 SAP 设置为 16 个字符。然而,DATS 字段应有 8 个字符(YYYYMMDD)。TIMS 字段也被 SAP 设置为 16 个字符;TIMS 数据有 6 个字符(HHMMSS)。

要解决此问题,请设置以下参数:

Param Id (参数 ID) Param Name (参数名称) Param Value (参数值)
SLT SLT_DATA_DATS 8
SLT SLT_DATA_TIMS 6

问题:没有 3 位小数的 SAP QUAN 数据类型

问题:SAP 有特定的数据类型用于数量和金额。数量数据类型 QUAN 默认包含 3 位小数。当连接器尝试获取包含 QUAN 数据类型的数据时,它会自动为这些 QUAN 数据类型创建 3 位小数。然而,某些包含 QUAN 数据类型的 SAP 表具有不同的小数位数,但被发送到 Foundry 时却好像有 3 位小数。

要解决此问题,请使用以下参数:

  • Param ID (参数 ID) = SLT
  • Param Name (参数名称) = SLT_DTYPE_XXXXXX 指字段的数据类型)
  • Param Value (参数值) = 将被考虑的数据类型名称

按如下方式设置参数,将 QUAN 数据类型更改为十进制数据类型:

Param Id (参数 ID) Param Name (参数名称) Param Value (参数值)
SLT SLT_DTYPE_QUAN DEC