1. 概述编辑
1.1 版本
FineDataLink 版本 |
---|
4.0.10 |
1.2 应用场景
用户数据存储在 SAP 中,因此需要对接SAP取数,但是由于数据安全问题或对SAP底层表并不了解,无法直接连接 SAP 的底层数据库取数。
因此希望通过RFC接口调用的方式,调用SAP系统内已经开发好的函数,获取SAP系统内的数据,并进行后续的数据开发处理。
1.3 功能说明
FineDataLink 支持通过 RFC 接口调用 SAP 系统内已经开发好的函数,并将数据取出。
SAP RFC -不使用参数 给出了不使用参数直接取数的方式。
本文为用户介绍如何从 SAP 函数中取出带有指定参数值的数据。
2. 前提条件编辑
在使用 SAP RFC 进行取数和数据开发前,需要先建立 FineDataLink 与 SAP 系统的连接,详情参见:配置 SAP 数据连接
3. 操作步骤编辑
存放在 SAP 系统中的 country 全量数据如下图所示,希望取出 country 数据表中的满足指定条件的部分数据:
3.1 参数赋值
由于想要取出带有满足指定参数值的数据,因此需要首先添加一个参数赋值节点,设置满足条件的参数,如下图所示:
点击数据预览即可看到数据,如下图所示:
点击「输出参数」,设置参数为「country」并指定参数列为第一列的所有行数据,并设置默认值,如下图所示:
注:默认值仅在数据预览是生效,实际执行任务时是按照任务设置执行的。
3.2 SAP 取数
由于参数赋值默认生成的是一条数据,也就是「安道尔,阿富汗,阿尔巴尼亚,澳大利亚」作为一条参数,而我们希望的是将参数值一条条传入取出的,取出满足参数的数据,因此需要使用循环容器功能。
新增循环容器功能,将参数赋值节点和循环容器相连,设置循环配置,如下图所示:
新增数据转换节点,拖入「循环容器」中,如下图所示:
进入数据转换编辑界面,添加「SAP RFC 输入」节点,选择数据连接名称和函数,并将 3.1 节设置的参数填入指定的位置,如下图所示:
设置项 | 说明 |
---|---|
函数 | 可手动编辑或者在设置选择已有的函数 不支持引用参数。 |
输入 | 参数名称:所选SAP函数的输入参数名。 SAP数据类型:所选SAP函数的输入参数数据类型。 数据类型:该参数在 FDL 中对应的参数数据类型。 参数值:可手动填写固定值,支持引用参数。 |
输出数据选择 | 下拉框列出所有可选的输出结果集。 目前对于一个SAP RFC输入,仅支持输出一组结果集中的数据。 |
输出 | SAP列名:SAP-ABAP函数输出结果集中的数据列名称,不可编辑。 SAP数据类型:SAP-ABAP函数输出结果及中数据列对应的SAP数据类型,不可编辑。 数据类型:FDL对应输出的数据类型,不可编辑。 |
此时点击「数据预览」即可看到在参数赋值中设置的默认值「安道尔」对应的数据,如下图所示:
3.3 进行数据开发
与SAP RFC -不使用参数中 3.2 节相同,使用 DB表输入将 GDP 数据引入,并新增数据关联算子,设置关联方式,如下图所示:
使用 DB 表输出制作好的数据表,如下图所示: