SAP ERP
借助 SAP ERP 连接器,您可以对 SAP ERP 数据执行插入、删除、更新和读取操作。
准备工作
在使用 SAP ERP 连接器之前,请执行以下任务:
- 在您的 Google Cloud 项目中:
- 将 roles/connectors.admin IAM 角色授予配置连接器的用户。
- 将以下 IAM 角色授予您要用其来使用连接器的服务账号:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
roles/storage.objectViewer
服务账号是一种特殊类型的 Google 账号,用于表示需要验证身份并获得授权以访问 Google API 数据的非人类用户。如果您没有服务账号,则必须创建一个服务账号。如需了解详情,请参阅创建服务账号。
- 启用以下服务:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
如需了解如何启用服务,请参阅启用服务。
如果之前没有为您的项目启用这些服务或权限,则在您配置连接器时,系统会提示您启用。
配置连接器
配置连接器时,您需要创建与数据源(即后端系统)的连接。一个连接需专用于一个数据源。这意味着,如果您有许多数据源,则必须为每个数据源创建单独的连接。如需创建连接,请执行以下步骤:
- 在 Cloud 控制台 中,进入 Integration Connectors > 连接页面,然后选择或创建一个 Google Cloud 项目。
- 点击 + 新建以打开创建连接页面。
- 在位置部分中,选择连接的位置。
- 区域:从下拉列表中选择一个位置。
如需查看所有受支持区域的列表,请参阅位置。
- 点击下一步。
- 区域:从下拉列表中选择一个位置。
- 在连接详情部分中,完成以下操作:
- 连接器:从可用连接器下拉列表中选择 SAP ERP。
- 连接器版本:从可用版本的下拉列表中选择一个连接器版本。
- 在连接名称字段中,输入连接实例的名称。
连接名称必须符合以下条件:
- 连接名称可以使用字母、数字或连字符。
- 字母必须小写。
- 连接名称必须以字母开头,以字母或数字结尾。
- 连接名称不能超过 63 个字符。
- (可选)输入连接实例的说明。
- 服务账号:选择具有所需角色的服务账号。
- 客户端:向 SAP 系统进行身份验证的客户端。
- System Id:SAP 系统的系统 ID 或 R3Name 是一个最多包含 3 个字符的字符串。它通常用于负载均衡连接。
- 系统编号:定义目标系统所使用的编号。在设置主机连接属性时使用。
- 项目 ID:包含 SAP JCo jar 的 GCS 存储桶所在的 Google Cloud 项目的 ID。
- 存储桶:包含 sapjco3.jar 和 libsapjco3.so 文件的存储桶的名称。
- Jaco jar 对象 ID:JCo jar 的对象 ID。
- libsapjco3 对象 ID:libsapjco3 jar 的对象 ID。
- 表模式:选择要显示为视图的 SAP 表。
- SNC_LIB 对象 ID:SNC 库的对象 ID。
- PSE 名称:适用于存储桶的个人安全环境 (PSE) 文件的名称。PSE 文件将公钥和私钥对以及 X.509 证书存储在 ASN.1 结构中。
- 群组:用于登录的群组名称。通常在 SAP 系统使用负载平衡器时指定。
- 消息服务器:在连接到使用负载平衡器的 SAP 系统时使用的消息服务器的名称。
- 读取表函数:用于读取表的函数的名称。如需了解详情,请参阅使用自定义读取表函数。
- 连接方案:选择用于连接到 SAP 系统的连接方案。
- 系统 ID:SAP 系统的系统 ID 或 R3Name。您最多可以输入 3 个字符。
- SNC 密码:选择 SNC 库密码的 Secret Manager 密钥。
- 密钥版本:选择密钥版本。
- SNC 模式:选择此选项可为 Integration Connectors 和 SAP 系统之间的身份验证启用 SNC。
- SNC 名称:输入 SNC 连接的名称。
-
SNC qop:选择保护等级。以下是支持的级别:
- 1 - 仅应用身份验证。
- 2 - 应用完整性保护。这还包括身份验证保护。
- 3 - 采用隐私保护措施。这也包括完整性和身份验证保护。
- 8 - 应用默认保护。
- 9 - 应用最高保护。
- SNC 合作伙伴名称:输入应用服务器的 SNC 名称。
- 查询模式:选择哪些 SAP 表应显示为视图。
-
可浏览视图:输入要显示的视图列表(以英文逗号分隔)。
例如
ViewA,ViewB,ViewC
。 - 详细程度:输入日志记录的详细程度。支持的值介于 1 到 5 之间。值越高,意味着日志中会显示更多详细信息。
- (可选)配置连接节点设置:
- 节点数下限:输入连接节点数下限。
- 节点数上限:输入连接节点数上限。
节点是处理事务的连接单元(或副本)。 连接处理越多事务就需要越多节点,相反,处理越少事务需要越少节点。 如需了解节点如何影响连接器价格,请参阅连接节点的价格。如果未输入任何值,则默认情况下,节点数下限设置为 2(以便提高可用性),节点数上限设置为 50。
- (可选)点击 + 添加标签,以键值对的形式向连接添加标签。
- 点击下一步。
- 在目标部分中,输入要连接到的远程主机(后端系统)的详细信息。
- Destination Type:选择 Destination Type。
- 在主机地址字段中,指定目标的主机名或 IP 地址。
- 如果要与后端系统建立专用连接,请按以下步骤操作:
- 如果要与后端系统建立公共连接以提高安全性,您可以考虑为连接配置静态出站 IP 地址,然后将防火墙规则配置为仅将特定静态 IP 地址列入许可名单。
要输入其他目的地,请点击 + 添加目的地。
- 在主机地址字段中,指定目标的主机名或 IP 地址。
- 点击下一步。
- Destination Type:选择 Destination Type。
-
在身份验证部分中,输入身份验证详细信息。
- 选择身份验证类型,然后输入相关详细信息。
SAP ERP 连接支持以下身份验证类型:
- 用户名和密码
- 点击下一步。
如需了解如何配置这些身份验证类型,请参阅配置身份验证。
- 选择身份验证类型,然后输入相关详细信息。
- 查看:查看您的连接和身份验证详细信息。
- 点击创建。
配置身份验证
根据您要使用的身份验证输入详细信息。
-
用户名和密码
- 用户名:连接器的用户名
- 密码:包含与连接器关联的密码的 Secret Manager Secret。
使用自定义读取表函数
RFC_READ_TABLE
该连接器使用 SAP RFC_READ_TABLE 函数从 SAP 表获取数据。
但是,它有一定的限制。例如,请考虑 DATA_BUFFER_EXCEEDED 异常。SAP RFC_READ_TABLE 的固定大小为 512 字节。它可以为每行数据进行缓冲,因此您选择的列数不能超过此缓冲区可容纳的数量。如果您选择超过 512 字节,则会发生异常,指示您超出了每行允许的缓冲区空间上限,并且需要减少选择的列数。
RFC_READ_TABLE2
连接器还支持 RFC_READ_TABLE2 表读取函数。您可以将 ReadTableFunction 设置为 /SAPDS/RFC_READ_TABLE2
,将活跃表读取函数切换为 RFC_READ_TABLE2。
自定义读取表函数
安装自定义读取表 RFC
连接器包含 Z_CUSTOM_READ_TABLE 的代码,Z_CUSTOM_READ_TABLE 是一种自定义可读取表 RFC,与 SAP RFC_READ_TABLE 类似,但具有更大的缓冲区,以解决 DATA_BUFFER_EXCEEDED 问题并绕过其他 RFC_READ_TABLE 限制。
以下步骤展示了如何使用随附的自定义可读取表 RFC 绕过使用默认 RFC_READ_TABLE 的限制。
- 使用 RFC_READ_TABLE 函数作为新函数的模板:选择事务代码 SE37 和 SDTX 函数组,然后将 RFC_READ_TABLE 复制到新函数组或工作函数组。在本例中,RFC_READ_TABLE 被复制到 Z_CUSTOM_READ_TABLE。
- 在 SAP 屏幕的 Attributes 标签页上,选择
Remote Enabled Module
。 - 在“表格”标签页上,将 DATA 参数设置为
CHAR8000
(您可能需要右键点击,然后依次点击显示 -> 更改) - 在“源代码”标签页中,粘贴用于替换 RFC_READ_TABLE 函数模块的示例源代码(位于安装目录的
db
子文件夹中)。该代码位于 Z_CUSTOM_READ_TABLE.txt 中,但如果您的 SAP ERP 实例运行的是 ABAP 7.52 版或更高版本(请参阅下一部分),则首选 Z_CUSTOM_READ_TABLE_752.txt。点击保存。 - 按照提供的自定义读取表中的说明定义导入、表和异常。
- 激活函数模块,并在连接字符串中将 ReadTableFunction 设置为 Z_CUSTOM_READ_TABLE 或函数模块的名称。
ABAP 7.52 自定义读取表
除了 Z_CUSTOM_READ_TABLE.txt 之外,还有专为 ABAP 7.52 版及更高版本设计的 Z_CUSTOM_READ_TABLE_752.txt 文件。它与 Z_CUSTOM_READ_TABLE 大体相同,但利用 ABAP 7.52 中新提供的关键字在数据库内(而不是在 ABAP 脚本本身中)执行分页。这样可以提高处理大型表时的分页效率。
建议尽可能使用 Z_CUSTOM_READ_TABLE_752 RFC。
实体、操作和动作
所有集成连接器都会为所连接应用的对象提供抽象层。您只能通过此抽象访问应用的对象。抽象作为实体、操作和动作向您展示。
- 实体:实体可以被视为连接的应用或服务中的对象或属性集合。不同连接器的实体定义也会有所不同。例如,在数据库连接器中,表是实体;在文件服务器连接器中,文件夹是实体;在消息传递系统连接器中,队列是实体。
不过,可能连接器不支持或不支持任何实体,在这种情况下,
Entities
列表将为空。 - 操作:操作是指您可以对实体执行的操作。您可以对实体执行以下任一操作:
从可用列表中选择一个实体,系统会生成该实体可用的操作列表。如需了解操作的详细说明,请参阅连接器任务的实体操作。但是,如果连接器不支持任何实体操作,则此类不受支持的操作不会列在
Operations
列表中。 - 动作:动作是可通过连接器接口提供给集成的头等函数。动作可让您对一个或多个实体进行更改,并且动作因连接器而异。但可能的情况是,连接器不支持任何动作,在这种情况下,
Actions
列表将为空。
系统限制
SAP ERP 连接器每秒可以为每个节点处理 7 项事务,并限制任何超出此限制的事务。默认情况下,Integration Connectors 会为连接分配 2 个节点(以提高可用性)。
如需了解适用于 Integration Connectors 的限制,请参阅限制。
连接配置示例
本部分列出了您在创建连接时配置的各种字段的示例值。
ApplicationServer 连接类型
下表列出了 ApplicationServer
连接类型的示例配置值。请参阅控制台中的连接创建界面,了解必填字段和可选字段。
字段名称 | 示例值 |
---|---|
区域 | us-central1 |
连接器 | SAP ERP |
连接器版本 | 1 |
连接器名称 | saperp-applicationserver-conn |
说明 | 不适用 |
服务账号 | xxxxxxxxx-compute@developer.gserviceaccount.com |
客户端 | 800 |
系统编号 | 00 |
项目 ID | xxxx-gcp-project |
存储桶 | sap-erp-bucket |
Jco Jar 对象 ID | sapjco3.jar |
libsapjco3 对象 ID | libsapjco3.so |
表格模式 | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
读取表函数 | Z_CUSTOM_READ_TABLE |
连接方案 | ApplicationServer |
系统 ID | SA1 |
查询模式 | 不适用 |
可浏览的视图 | 不适用 |
详细程度 | 5 |
节点数下限 | 2 |
节点数上限 | 50 |
主机地址 | 10.30.X.XX 或外部 SAP 系统的路由器字符串。 |
Authentication | 用户密码 |
用户名 | 12345 |
密码 | 12345 |
versions | 1 |
GroupServer 连接类型
下表列出了 GroupServer
连接类型的示例配置值。请参阅控制台中的连接创建界面,了解必填字段和选填字段。
字段名称 | 示例值 |
---|---|
区域 | us-central1 |
连接器 | SAP ERP |
连接器版本 | 1 |
连接器名称 | saperp-组服务器-conn |
说明 | 不适用 |
服务账号 | xxxxxxxxx-compute@developer.gserviceaccount.com |
客户端 | 800 |
系统编号 | 00 |
项目 ID | xxxx-gcp-project |
存储桶 | sap-erp-bucket |
Jco Jar 对象 ID | sapjco3.jar |
libsapjco3 对象 ID | libsapjco3.so |
表格模式 | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
实体组 | 公开 |
消息服务器 | 10.30.X.XX |
读取表函数 | Z_CUSTOM_READ_TABLE |
连接方案 | GroupServer |
系统 ID | SA1 |
查询模式 | 不适用 |
可浏览的视图 | 不适用 |
详细程度 | 数字 5 |
节点数下限 | 2 |
节点数上限 | 50 |
主机地址 | 10.30.X.XX 或外部 SAP 系统的路由器字符串。 |
Authentication | 用户密码 |
用户名 | 12345 |
密码 | 12345 |
versions | 1 |
X509 证书连接类型
下表列出了 X509 certificate
连接类型的示例配置值。请参阅控制台中的连接创建界面,了解必填字段和选填字段。
字段名称 | 示例值 |
---|---|
区域 | us-central1 |
连接器 | SAP ERP |
连接器版本 | 1 |
连接器名称 | saperp-X509 证书-conn |
说明 | 不适用 |
服务账号 | xxxxxxxxx-compute@developer.gserviceaccount.com |
客户端 | 800 |
系统编号 | 00 |
项目 ID | xxxx-gcp-project |
存储桶 | sap-erp-bucket |
Jco Jar 对象 ID | sapjco3.jar |
libsapjco3 对象 ID | libsapjco3.so |
表格模式 | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
SNC_LIB 对象 ID | libsapcrypto.so |
用于创建 cred_v2 文件的 PSE 名称 | EHP8_GCP_SA1.pse |
读取表函数 | Z_CUSTOM_READ_TABLE |
连接方案 | ApplicationServer |
系统 ID | SA1 |
SNC 密码 | xyz@gcp |
SNC 模式 | 确定是否使用 SNC 的布尔值。将此项设为 true 可使用 SNC。 |
SNC 名称 | p:CN=EHP8_GCP_SA1、OU=IT、O=CSW、C=DE |
SNC Qop | 3 |
SNC 合作伙伴名称 | p:CN=SA1, OU=I0020070395, OU=SAP Web AS, O=SAP Trust Community, C=DE |
查询模式 | 不适用 |
可浏览的视图 | 不适用 |
详细程度 | 数字 5 |
节点数下限 | 2 |
节点数上限 | 50 |
主机地址 | 10.30.X.XX 或外部 SAP 系统的路由器字符串。 |
Authentication | 基于 X509Certificate 的身份验证 |
X509Certificate | X509 证书可以使用以下文件路径指定:指向包含 PEM 格式的 X509 证书的文件、以“-----BEGIN ...”标头开头的 PEM blob 或不含“-----BEGIN ...”标头的 PEM blob。 |
versions | 1 |
操作
本部分列出了该连接器支持的操作。如需了解如何配置操作,请参阅操作示例。
BAPI_MATERIAL_SaveDATA 操作
此操作可让您执行特定任务。例如,您可以使用它在 SAP ERP 中创建或更改物料主数据。
BAPI_MATERIAL_saveDATA 操作的输入参数
参数名称 | 数据类型 | 需要 | 说明 |
---|---|---|---|
头数据 | 字符串 | 是 | 输入参数 HEADDATA。 |
客户数据 | 字符串 | 是 | 输入参数 CLIENTDATA。 |
客户数据 X | 字符串 | 是 | 输入参数 CLIENTDATAX。 |
材质说明 | 字符串 | 是 | MATERIALDESCRIPTION 表。 |
BAPI_MATERIAL_saveDATA 操作的输出参数
如果操作成功,此操作会返回状态 200 (OK)。
如需查看有关如何配置 BAPI_MATERIAL_SAVEDATA
操作的示例,请参阅操作示例。
ZFM_GCP_MULTIDATA_TAB 操作
这样,用户就可以执行特定任务。例如,您可以在 SAP ERP 中创建多数据类型数据。
ZFM_GCP_MULTIDATA_TAB 操作的输入参数
参数名称 | 数据类型 | 需要 | 说明 |
---|---|---|---|
ReturnTables | 字符串 | 是 | 以英文逗号分隔的列表,用于指定应输出函数模块中的哪些表。如果未指定,系统将输出所有返回的表。 |
T_TABLE | 字符串 | 是 | T_TABLE 表。 |
IM_INPUT_1 | 字符串 | 是 | 输入参数 IM_INPUT_1。 |
IM_INPUT_2 | 字符串 | 是 | 输入参数 IM_INPUT_2。 |
ZFM_GCP_MULTIDATA_TAB 操作的输出参数
如果操作成功,此操作会返回状态 200 (OK)。
如需查看有关如何配置 ZFM_GCP_MULTIDATA_TAB
操作的示例,请参阅操作示例。
PushIDoc 操作
此操作可让您执行特定任务。例如,您可以将数据从 SAP 转移到外部系统。
PushIDoc 操作的输入参数
参数名称 | 数据类型 | 需要 | 说明 |
---|---|---|---|
FileType | 字符串 | 是 | 文件类型。允许的值为 XML、IDoc。 |
模式 | 字符串 | 是 | 传输模式。允许的值包括 Sync、ASync。 |
内容 | 字符串 | 是 | 文件的内容。 |
PushIDoc 操作的输出参数
如果操作成功,此操作会返回状态 200 (OK)。
如需查看有关如何配置 PushIDoc
操作的示例,请参阅操作示例。
执行 CustomQuery 操作
通过此操作,您可以执行自定义查询。
要创建自定义查询,请按以下步骤操作:
- 按照详细说明 添加连接器任务。
- 在配置连接器任务时,在要执行的操作类型中选择操作。
- 在操作列表中,选择执行自定义查询,然后点击完成。
- 展开任务输入部分,然后执行以下操作:
- 在超时后字段中,输入查询执行之前等待的秒数。
默认值:
180
秒。 - 在最大行数字段中,输入要从数据库返回的最大行数。
默认值为
25
。 - 要更新自定义查询,请点击修改自定义查询。系统会打开脚本编辑器对话框。
- 在脚本编辑器对话框中,输入 SQL 查询,然后点击保存。
您可以在 SQL 语句中使用问号 (?) 来表示必须在查询参数列表中指定的单个参数。例如,以下 SQL 查询会选择
Employees
表中与LastName
列指定的值匹配的所有行:SELECT * FROM Employees where LastName=?
- 如果您在 SQL 查询中使用了问号,则必须针对每个问号点击 + 添加参数名称,以添加参数。在执行集成时,这些参数会按顺序替换 SQL 查询中的问号 (?)。例如,如果您添加了三个问号 (?),则必须按顺序添加三个参数。如需添加查询参数,请执行以下操作:
- 从类型列表中,选择参数的数据类型。
- 在值字段中,输入参数的值。
- 如需添加多个参数,请点击 + 添加查询参数。
- 在超时后字段中,输入查询执行之前等待的秒数。
成功执行后,此操作会返回状态 200 (OK),并附带包含查询结果的响应正文。
操作示例
示例 - 创建记录
本示例使用 BAPI_MATERIAL_saveDATA 操作创建了一条测定记录。
- 在
Configure connector task
对话框中,点击Actions
。 - 选择
BAPI_MATERIAL_SAVEDATA
操作,然后点击完成。 - 在连接器任务的任务输入部分中,点击
connectorInputPayload
,然后在Default Value
字段中输入类似于以下内容的值:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009001\",\"IND_SECTOR\":\"M\",\"MATL_TYPE\":\"HALB\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA" : "{\"MATL_GROUP\":\"00107\",\"BASE_UOM\":\"KG\"}", "CLIENTDATAX" : "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}", "MATERIALDESCRIPTION" : "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Google\"}" }
如果操作成功,BAPI_MATERIAL_SAVEDATA
任务的 connectorOutputPayload
响应参数的值将如下所示:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_MESSAGE": "The material 9001 has been created or extended", "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9001", "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
示例 - 更新记录
本示例使用 BAPI_MATERIAL_saveDATA 操作更新测量值记录。
- 在
Configure connector task
对话框中,点击Actions
。 - 选择
BAPI_MATERIAL_SAVEDATA
操作,然后点击完成。 - 在连接器任务的任务输入部分中,点击
connectorInputPayload
,然后在Default Value
字段中输入类似于以下内容的值:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"IND_SECTOR\":\"A\",\"MATL_TYPE\":\"FHMI\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA": "{\"MATL_GROUP\":\"013\",\"BASE_UOM\":\"ST\"}", "CLIENTDATAX": "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}", "MATERIALDESCRIPTION": "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Googlecloud\"}" }
如果操作成功,BAPI_MATERIAL_SAVEDATA
任务的 connectorOutputPayload
响应参数的值将如下所示:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_MESSAGE": "The material 9000 has been created or extended", "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9000", "RETURN_PARAMETER": "", "RETURN_ROW": 0, "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
示例 - 删除记录
本示例使用 BAPI_MATERIAL_SaveDATA 操作删除评估记录。
- 在
Configure connector task
对话框中,点击Actions
。 - 选择
BAPI_MATERIAL_SAVEDATA
操作,然后点击完成。 - 在连接器任务的任务输入部分中,点击
connectorInputPayload
,然后在Default Value
字段中输入类似于以下内容的值:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA": "{\"DEL_FLAG\":\"X\"}", "CLIENTDATAX": "{\"DEL_FLAG\":\"X\"}" }
如果操作成功,BAPI_MATERIAL_SAVEDATA
任务的 connectorOutputPayload
响应参数的值将如下所示:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9000", "RETURN_PARAMETER": "", "RETURN_ROW": 0, "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
示例 - 创建多数据类型数据
本示例使用 ZFM_GCP_MULTIDATA_TAB 操作创建了多数据类型数据。
- 在
Configure connector task
对话框中,点击Actions
。 - 选择
ZFM_GCP_MULTIDATA_TAB
操作,然后点击完成。 - 在连接器任务的任务输入部分中,点击
connectorInputPayload
,然后在Default Value
字段中输入类似于以下内容的值:{ "T_TABLE": "{\"ZACCP\":\"111\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}", "IM_INPUT_1": "{\"ZACCP\":\"222\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}", "IM_INPUT_2": "{\"ZSTRING\": \"HI Google\",\"ZSSTRING\": \"HI Google How are you\"}" }
如果操作成功,ZFM_GCP_MULTIDATA_TAB
任务的 connectorOutputPayload
响应参数的值将如下所示:
[{ "EX_OUTPUT_1_ZACCP": 222, "EX_OUTPUT_1_ZCHAR": "CHARACTER1", "EX_OUTPUT_1_ZCLNT": "100", "EX_OUTPUT_1_ZCUKY": "INR", "EX_OUTPUT_1_ZCURR": 200, "EX_OUTPUT_1_ZDATS": "2023-12-13", "EX_OUTPUT_1_ZRAW": "01010008010101050401", "EX_OUTPUT_1_ZTIMS": "10:30:56", "EX_OUTPUT_1_ZUNIT": "11", "EX_OUTPUT_1_ZINT4P": 45, "EX_OUTPUT_1_ZINT4": 54, "EX_OUTPUT_1_ZLRAW": "0101000801010105040100030101010300040000\u0000", "EX_OUTPUT_2_ZSTRING": null, "EX_OUTPUT_2_ZSSTRING": null, "RESULT_TABLE": null, "T_TABLE_ZACCP": null, "T_TABLE_ZCHAR": null, "T_TABLE_ZCLNT": null, "T_TABLE_ZQUAN": null, "T_TABLE_ZRAW": null, "T_TABLE_ZTIMS": null, "T_TABLE_ZUNIT": null },{ "EX_OUTPUT_1_ZACCP": null, "EX_OUTPUT_1_ZCHAR": null, "EX_OUTPUT_1_ZCLNT": null, "EX_OUTPUT_1_ZCUKY": null, "EX_OUTPUT_1_ZRAW": null, "T_TABLE_ZLANG": null, "T_TABLE_ZNUMC": null, "T_TABLE_ZPREC": null, "T_TABLE_ZQUAN": null, "T_TABLE_ZRAW": null, "T_TABLE_ZTIMS": null, "T_TABLE_ZUNIT": null },{ "EX_OUTPUT_1_ZACCP": null, "EX_OUTPUT_1_ZCHAR": null, "EX_OUTPUT_1_ZCLNT": null, "EX_OUTPUT_1_ZCUKY": null, "EX_OUTPUT_1_ZCURR": null, "EX_OUTPUT_1_ZDATS": null, "EX_OUTPUT_1_ZDEC": null, "EX_OUTPUT_1_ZQUAN": null, "T_TABLE_ZNUMC": 110, "T_TABLE_ZPREC": 3, "T_TABLE_ZQUAN": 188, "T_TABLE_ZRAW": "01010008010101050401", "T_TABLE_ZTIMS": "10:30:56", "T_TABLE_ZUNIT": "11" }]
示例 - 推送 IDoc
此示例将 IDoc 推送到 SAP ERP。
- 在
Configure connector task
对话框中,点击Actions
。 - 选择
PushIDoc
操作,然后点击完成。 - 在连接器任务的任务输入部分中,点击
connectorInputPayload
,然后在Default Value
字段中输入类似于以下内容的值:{ "Content": "\n\n\n EDI_DC40\n 800\n 0000000008604824\n 740\n 53\n 2\n \n MATMAS05\n MATMAS\n ZLS_QA23\n LS\n ZLS_QA23\n SAPSA1\n LS\n SA1CLNT800\n 20230218\n 232556\n\n\n 005\n 000000000000000012\n 20170328\n 42039\n 20170727\n 42039\n KLVC\n FERT\n M\n 02\n BG\n 000\n 002\n 0.000\n 0.000\n KGM\n 0.000\n 0001\n 0.000\n 0.000\n 0.000\n 0.000\n 0.000\n", "FileType": "XML", "Mode": "ASync" }
。如果操作成功,PushIDoc
任务的 connectorOutputPayload
响应参数的值将如下所示:
[{ "Result": "Success", "Message": "Push IDoc success" }]
实体操作示例
本部分介绍如何执行此连接器中的一些实体操作。
示例 - 列出所有记录
以下示例列出了 T001
实体中的所有记录。
- 在
Configure connector task
对话框中,点击Entities
。 - 从
Entity
列表中选择T001
。 - 选择
List
操作,然后点击完成。 - (可选)在连接器任务的任务输入部分,您可以通过指定 filter 子句来过滤结果集。请始终使用单引号 (') 指定过滤条件子句值。
示例 - 从实体获取记录
此示例从 T001
实体获取具有指定 ID 的记录。
- 在
Configure connector task
对话框中,点击Entities
。 - 从
Entity
列表中选择T001
。 - 选择
Get
操作,然后点击完成。 - 在连接器任务的任务输入部分中,点击 EntityId,然后在默认值字段中输入
0001
。其中,
0001
是T001
实体中的唯一记录 ID。
使用 Terraform 创建连接
您可以使用 Terraform 资源创建新连接。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需查看用于创建连接的示例 Terraform 模板,请参阅示例模板。
使用 Terraform 创建此连接时,您必须在 Terraform 配置文件中设置以下变量:
参数名称 | 数据类型 | 需要 | 说明 |
---|---|---|---|
客户端 | STRING | True | 客户端向 SAP 系统进行身份验证。 |
群组 | STRING | False | 所使用的登录组。通常,只有在连接到使用负载均衡的 SAP 系统时,才需要指定此属性。 |
message_server | STRING | False | 在连接到使用负载均衡的 SAP 系统时,必须指定消息服务器。 |
read_table_function | STRING | False | 用于读取表数据的函数。 |
connection_scheme | ENUM | False | 指定连接到 SAP 系统时使用的是消息服务器 (GroupServer) 还是没有消息服务器 (ApplicationServer)。支持的值包括:ApplicationServer、GroupServer |
system_id | STRING | False | SAP 系统的系统 ID 或 R3Name 是一个最多包含 3 个字符的字符串。它通常用于负载均衡连接。 |
system_number | STRING | True | 定义目标系统所使用的数字。在设置主机连接属性时使用。 |
project_id | STRING | True | 包含 SAP JCo jar 的 Cloud Storage 存储桶所在的 Google Cloud 项目的 ID。 |
存储桶 | STRING | True | 包含 sapjco3.jar 和 libsapjco3.so 文件的存储桶的名称 |
sapjco3_jar | STRING | True | sapjco3.jar 的对象 ID |
libsapjco3_so | STRING | True | libsapjco3.so 的对象 ID |
snc_lib | STRING | False | SNC 库的对象 ID |
snc_mode | BOOLEAN | False | 确定是否使用 SNC 的布尔值。将此项设为 true 可使用 SNC。 |
snc_name | STRING | False | 可选输入,包含 SNC 连接的名称。 |
snc_qop | ENUM | False | SNC 连接的保护质量。有效值为 1、2、3、8 或 9,对应于以下保护级别:1 仅应用身份验证。2 应用完整性保护(身份验证)。3 应用隐私保护(完整性和身份验证)。8 应用默认保护。9 启用最高保护功能。支持的值包括:1、2、3、8、9 |
snc_partner_name | STRING | False | 应用服务器的 SNC 名称。使用 SNC 时,这是必需输入。 |
query_mode | ENUM | False | 确定哪些 SAP 表将会显示为视图(如果有)。支持的值包括:Global、Local、All、None |
table_mode | ENUM | False | 确定哪些 SAP 表将会显示为视图(如果有)。支持的值包括:TransparentApplication、TransparentCustomer、TransparentSystem、Pooled、Cluster、All、None |
详细程度 | STRING | False | 连接的详细程度,从 1 到 5 不等。详细程度越高,系统会记录所有通信详细信息(请求、响应和 SSL 证书)。 |
在集成中使用 SAP ERP 连接
创建连接后,它在 Apigee Integration 和 Application Integration 中均可使用。您可以通过连接器任务在集成中使用该连接。
- 如需了解如何在 Apigee Integration 中创建和使用连接器任务,请参阅连接器任务。
- 如需了解如何在 Application Integration 中创建和使用连接器任务,请参阅连接器任务。
向 Google Cloud 社区寻求帮助
您可以在 Cloud 论坛的 Google Cloud 社区发布您的问题并讨论此连接器。后续步骤
- 了解如何暂停和恢复连接。
- 了解如何监控连接器的使用情况。
- 了解如何查看连接器日志。