从 SAP ECC / S/4HANA 临时提取数据
从已知信息出发,自行从 SAP ECC 或 S/4HANA 中提取数据:表名、事务代码或已保存的 SAP 查询。通过搜索选择对象,查看其字段或选择屏幕,预览真实行,检查计划,然后保存一个将结果落入表中的工作流步骤。
- 一个可通过网络访问 SAP 系统的 PlaidLink 代理。 参见安装 PlaidLink。
- 一个 SAP ECC / S/4HANA 实例连接。 参见 SAP ECC 和 S/4HANA 连接器。该连接上的 SAP 用户就是每次提取所使用的 RFC 用户。
- 在 SAP 中安装 PlaidCloud SAP 包。 您的 SAP Basis 团队为每个 SAP 系统安装一次。
- RFC 用户对所提取对象的 SAP 授权。 参见 SAP 授权。
这三个步骤都位于工作流步骤菜单的 SAP 下。
| 步骤 | 用途 |
|---|---|
| SAP:临时提取 | 完整或增量读取一个 SAP 表。 |
| SAP:运行事务/报表 | 运行事务代码或 ABAP 报表程序并落入其结果。 |
| SAP:运行查询 (SQ01) | 运行已保存的 SAP 查询并落入其结果。 |
每个步骤都以相同的三个字段开头:代理、SAP 连接,以及用于存放结果的目标表。
查找 SAP 对象
Section titled “查找 SAP 对象”选择代理和连接后,步骤的搜索会列出匹配的 SAP 对象,即表、事务或查询,具体取决于步骤。输入名称、事务代码或描述中的词语。支持 SAP 的 * 通配符。SAP 不提供服务的对象仍会显示,但呈灰色,并附有原因。
选择表会列出其字段及说明,并自动填入其关键字段。选择事务、报表或查询会在筛选器选项卡上显示其选择屏幕,该屏幕由 SAP 自己为该对象定义的字段构建,无需了解表或程序的内部细节。
使用 SAP:临时提取。
-
在 SAP 提取选项卡上,搜索并选择该表。
-
输入 RFC 读取函数,即 PlaidCloud SAP 包中的表读取函数,与您的 Basis 团队所安装的一致。
-
检查关键列。PlaidCloud 会根据 SAP 数据字典,用表的主键填入这些列,不含客户端字段。勾选复选框,确认它们恰好就是主键。SAP 会拒绝任何其他列集合。
-
在限定筛选器选项卡上添加筛选器。点击一个已知列以添加一行,选择包含或排除,选择运算符(等于、不等于、大于、大于或等于、小于、小于或等于、介于、不介于、包含模式或不包含模式),并使用值帮助直接从 SAP 中选取有效值。为同一列添加多行,可匹配一组值中的任意一个;对于介于或不介于,则添加一个范围。大型 SAP 表至少需要一个筛选器,例如日期范围或公司代码。
-
若要在每次运行时只读取新增和已更改的行,请设置增量选项卡。参见增量表提取。
-
在可见性与定义选项卡上,设置受管控列。参见受管控列。
货币键位于同一张表中的 CURR 金额列,会按其真实值落入。PlaidCloud 会按货币的小数位数对每个金额进行偏移,因此日元金额会以整日元落入。没有货币键的金额列则按 SAP 的存储方式落入,并且运行会报告一条指明该列的警告。
SAP 客户端(mandt)和分片大小是可选的。将客户端留空即使用连接的默认客户端。
运行事务或报表
Section titled “运行事务或报表”使用 SAP:运行事务/报表。
-
在 SAP 运行选项卡上,搜索并选择一个事务,或在 Report/Program 中输入报表程序名称并点击查找选择屏幕。二者选其一。
-
在筛选器选项卡上,填写选择屏幕。表单根据事务或报表自身的 SAP 选择屏幕构建。空白字段表示对该字段不做筛选。
若要改为从已保存的 SAP 变式开始,请从从 SAP 变式开始中选择它。PlaidCloud 会用变式的已存储值填写筛选表单,并在表单旁列出变式自身无法带入的值,对于这些值,SAP 会改用报表自己的默认值。选择另一个变式会替换表单中的值;之后编辑某个字段不会改变所显示的已选变式。
-
设置最大行数,默认为 10,000,最高为 50,000。无论如何,SAP 都会运行完整的事务或报表,该上限只限制 PlaidCloud 读回的行数。
-
对于长时间运行的报表,请勾选 Run as a background job,并可选择填写作业名称(仅异步)。
-
在可见性与定义选项卡上,设置受管控列。
需要交互式输入、弹出窗口或屏幕的报表无法无人值守地运行。SAP 会拒绝它,不会有任何数据落入,并且步骤会报告 SAP 给出的原因。请改在 SAP GUI 中运行该报表。
运行 SAP 查询
Section titled “运行 SAP 查询”使用 SAP:运行查询 (SQ01)。
-
在 SAP 运行选项卡上,搜索并选择该查询。选择查询会自动填入工作区、用户组和查询名称。您也可以选择工作区,并直接输入用户组和查询名称。
-
在筛选器选项卡上,填写该查询自身的选择屏幕,即其作者在 SQ01 中设置的相同参数和选择选项。空白字段表示对该字段不做筛选。
-
设置最大行数,默认为 10,000,最高为 50,000。
-
在可见性与定义选项卡上,设置受管控列。
更改工作区、用户组或查询名称会清除为其他查询构建的筛选表单,因此切换之后请重新查找选择屏幕。
每个 SAP 提取步骤都需要一个受管控列:该步骤所落入的列之一,例如表示公司代码的 BUKRS。没有它,步骤无法保存;如果该列不在所落入的列之中,运行将不会落入任何行。
预览、计划和授权
Section titled “预览、计划和授权”每个步骤的预检分组包含三个按钮,它们都不会阻止保存步骤。
| 按钮 | 显示内容 |
|---|---|
| 预览 | 示例行。表预览直接读取前几行。对于事务、报表或查询,预览会在 SAP 中作为单独的示例运行,上限为 100 行,因此表单会先要求您确认。不会有任何数据落入。 |
| 计划 | 提取的运行方式,包括其关键列、行数估计和发送给 SAP 的选择条件,以及任何会使其停止的因素。计划被拒绝会禁用创建并运行和保存并运行,直到您更改配置或新的计划检查通过。您仍然可以保存该步骤。 |
| 需要的 SAP 授权 | 该对象所需的 SAP 授权,可与您的 Basis 团队共享。此列表仅供参考。 |
SAP 授权
Section titled “SAP 授权”SAP 的标准授权检查适用于 RFC 用户,与在 SAP 内部完全一样。
| 提取 | 授权 |
|---|---|
| 表 | S_TABU_NAM 或 S_TABU_DIS 显示,活动 03 |
| 事务 | S_TCODE |
| 报表 | 报表授权组的 S_PROGRAM SUBMIT |
缺少授权会导致运行失败,并显示 SAP 的未授权错误以及列出上述授权的补救办法。PlaidCloud 自身不添加任何权限检查,也绝不会根据需要的 SAP 授权列表阻止某个步骤。
在 SAP:临时提取的增量选项卡上,勾选 Run incrementally 并输入水位线列。它必须是以下之一:
- 日期列,SAP 类型为
DATS - UTC 时间戳列,SAP 类型为
TZNTSTMPS或TZNTSTMPL
不支持 SAP 类型为 UTCL 的时间戳列,并且水位线列不能同时是限定筛选器列。
首次运行会读取整个表。之后的每次运行仅读取等于或晚于上一个水位线(减去回溯期)的行,并按关键列合并。只有整个运行全部落入之后,水位线才会前移。SAP 的开放式日期 99991231 永远不会成为水位线。晚于运行日期一天以上的日期会使水位线保持在运行日期,而时间戳永远不会使其越过运行的开始时间。
SAP:临时提取会按 SAP 数据字典中的真实类型落入每一列。
| SAP 类型 | 落入为 |
|---|---|
日期(DATS) |
日期。空白、初始和无效的日期落入为空(NULL)。无效日期会使步骤以警告结束。 |
金额、数量、小数(CURR / QUAN / DEC) |
精确小数。当金额的货币键列位于同一张表中且包含在提取内时,PlaidCloud 会将金额偏移到其货币的真实小数位数;否则按 SAP 的存储方式落入。小数位数超过 10 位、整数位数超过 28 位或未声明小数位数的小数,会改为以文本落入,并且步骤会以指明该列的警告结束。 |
| 整数 | 整数。 |
浮点数(FLTP) |
双精度。 |
十进制浮点数(DF16_* / DF34_*) |
精确文本。 |
短 UTC 时间戳(TZNTSTMPS) |
时间戳,精确到秒。 |
长 UTC 时间戳(TZNTSTMPL、UTCL) |
UTC ISO 文本,例如 2026-01-03T10:15:00.123456Z,这样可保留时间戳列会丢弃的小数部分。 |
时间(TIMS)、代码(NUMC)、文本(CHAR) |
与 SAP 存储完全一致的文本,保留前导零。 |
如果某一列的 SAP 类型发生变化,提取会用该列的新类型替换整个表,并且步骤会以指明该列的警告结束。增量提取会在同一次运行中完成此操作。如果该读取未能完成,之后的运行会继续读取整个表并给出相同的警告,直到某次成功,增量运行才会恢复。
SAP:运行事务/报表将金额列落入为数字,其他所有列落入为文本。SAP:运行查询 (SQ01) 将金额、整数和日期列按这些类型落入,其他所有列落入为文本。需要时,请在下游步骤中转换类型。
SAP:临时提取的单次运行在读取了 5,000,000 行或运行了 240 分钟后会暂停,并在完成当前分片之后停止。步骤以警告而不是失败结束,下一次运行会从中断处继续,不会丢失任何行。
- SAP ECC 和 S/4HANA 连接器:连接字段。
- SAP 步骤:所有 SAP 工作流步骤。
- PlaidLink:安装和升级代理。