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)

      如需了解如何启用服务,请参阅启用服务

    如果之前没有为您的项目启用这些服务或权限,则在您配置连接器时,系统会提示您启用。

配置连接器

配置连接器时,您需要创建与数据源(即后端系统)的连接。一个连接需专用于一个数据源。这意味着,如果您有许多数据源,则必须为每个数据源创建单独的连接。如需创建连接,请执行以下步骤:

  1. Cloud 控制台 中,进入 Integration Connectors > 连接页面,然后选择或创建一个 Google Cloud 项目。

    转到“连接”页面

  2. 点击 + 新建以打开创建连接页面。
  3. 位置部分中,选择连接的位置。
    1. 区域:从下拉列表中选择一个位置。

      如需查看所有受支持区域的列表,请参阅位置

    2. 点击下一步
  4. 连接详情部分中,完成以下操作:
    1. 连接器:从可用连接器下拉列表中选择 SAP ERP
    2. 连接器版本:从可用版本的下拉列表中选择一个连接器版本。
    3. 连接名称字段中,输入连接实例的名称。

      连接名称必须符合以下条件:

      • 连接名称可以使用字母、数字或连字符。
      • 字母必须小写。
      • 连接名称必须以字母开头,以字母或数字结尾。
      • 连接名称不能超过 63 个字符。
    4. (可选)输入连接实例的说明
    5. 服务账号:选择具有所需角色的服务账号。
    6. 客户端:向 SAP 系统进行身份验证的客户端。
    7. System Id:SAP 系统的系统 ID 或 R3Name 是一个最多包含 3 个字符的字符串。它通常用于负载均衡连接。
    8. 系统编号:定义目标系统所使用的编号。在设置主机连接属性时使用。
    9. 项目 ID:包含 SAP JCo jar 的 GCS 存储桶所在的 Google Cloud 项目的 ID。
    10. 存储桶:包含 sapjco3.jar 和 libsapjco3.so 文件的存储桶的名称。
    11. Jaco jar 对象 ID:JCo jar 的对象 ID。
    12. libsapjco3 对象 ID:libsapjco3 jar 的对象 ID。
    13. 表模式:选择要显示为视图的 SAP 表。
    14. SNC_LIB 对象 ID:SNC 库的对象 ID。
    15. PSE 名称:适用于存储桶的个人安全环境 (PSE) 文件的名称。PSE 文件将公钥和私钥对以及 X.509 证书存储在 ASN.1 结构中。
    16. 群组:用于登录的群组名称。通常在 SAP 系统使用负载平衡器时指定。
    17. 消息服务器:在连接到使用负载平衡器的 SAP 系统时使用的消息服务器的名称。
    18. 读取表函数:用于读取表的函数的名称。如需了解详情,请参阅使用自定义读取表函数
    19. 连接方案:选择用于连接到 SAP 系统的连接方案。
    20. 系统 ID:SAP 系统的系统 ID 或 R3Name。您最多可以输入 3 个字符。
    21. SNC 密码:选择 SNC 库密码的 Secret Manager 密钥。
    22. 密钥版本:选择密钥版本。
    23. SNC 模式:选择此选项可为 Integration Connectors 和 SAP 系统之间的身份验证启用 SNC。
    24. SNC 名称:输入 SNC 连接的名称。
    25. SNC qop:选择保护等级。以下是支持的级别:
      • 1 - 仅应用身份验证。
      • 2 - 应用完整性保护。这还包括身份验证保护。
      • 3 - 采用隐私保护措施。这也包括完整性和身份验证保护。
      • 8 - 应用默认保护。
      • 9 - 应用最高保护。
    26. SNC 合作伙伴名称:输入应用服务器的 SNC 名称。
    27. 查询模式:选择哪些 SAP 表应显示为视图。
    28. 可浏览视图:输入要显示的视图列表(以英文逗号分隔)。 例如 ViewA,ViewB,ViewC
    29. 详细程度:输入日志记录的详细程度。支持的值介于 1 到 5 之间。值越高,意味着日志中会显示更多详细信息。
    30. (可选)配置连接节点设置

      • 节点数下限:输入连接节点数下限。
      • 节点数上限:输入连接节点数上限。

      节点是处理事务的连接单元(或副本)。 连接处理越多事务就需要越多节点,相反,处理越少事务需要越少节点。 如需了解节点如何影响连接器价格,请参阅连接节点的价格。如果未输入任何值,则默认情况下,节点数下限设置为 2(以便提高可用性),节点数上限设置为 50。

    31. (可选)点击 + 添加标签,以键值对的形式向连接添加标签。
    32. 点击下一步
  5. 目标部分中,输入要连接到的远程主机(后端系统)的详细信息。
    1. Destination Type:选择 Destination Type
      1. 主机地址字段中,指定目标的主机名或 IP 地址。
        1. 如果要与后端系统建立专用连接,请按以下步骤操作:
          1. 创建 PSC 服务连接
          2. 创建端点连接然后在主机地址字段中输入端点连接的详细信息。
        2. 如果要与后端系统建立公共连接以提高安全性,您可以考虑为连接配置静态出站 IP 地址,然后将防火墙规则配置为仅将特定静态 IP 地址列入许可名单。

      要输入其他目的地,请点击 + 添加目的地

    2. 点击下一步
  6. 身份验证部分中,输入身份验证详细信息。
    1. 选择身份验证类型,然后输入相关详细信息。

      SAP ERP 连接支持以下身份验证类型:

      • 用户名和密码
    2. 如需了解如何配置这些身份验证类型,请参阅配置身份验证

    3. 点击下一步
  7. 查看:查看您的连接和身份验证详细信息。
  8. 点击创建

配置身份验证

根据您要使用的身份验证输入详细信息。

  • 用户名和密码
    • 用户名:连接器的用户名
    • 密码:包含与连接器关联的密码的 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 的限制。

  1. 使用 RFC_READ_TABLE 函数作为新函数的模板:选择事务代码 SE37 和 SDTX 函数组,然后将 RFC_READ_TABLE 复制到新函数组或工作函数组。在本例中,RFC_READ_TABLE 被复制到 Z_CUSTOM_READ_TABLE。
  2. 在 SAP 屏幕的 Attributes 标签页上,选择 Remote Enabled Module
  3. 在“表格”标签页上,将 DATA 参数设置为 CHAR8000(您可能需要右键点击,然后依次点击显示 -> 更改
  4. 在“源代码”标签页中,粘贴用于替换 RFC_READ_TABLE 函数模块的示例源代码(位于安装目录的 db 子文件夹中)。该代码位于 Z_CUSTOM_READ_TABLE.txt 中,但如果您的 SAP ERP 实例运行的是 ABAP 7.52 版或更高版本(请参阅下一部分),则首选 Z_CUSTOM_READ_TABLE_752.txt。点击保存
  5. 按照提供的自定义读取表中的说明定义导入、表和异常。
  6. 激活函数模块,并在连接字符串中将 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 操作

通过此操作,您可以执行自定义查询。

要创建自定义查询,请按以下步骤操作:

  1. 按照详细说明 添加连接器任务
  2. 配置连接器任务时,在要执行的操作类型中选择操作
  3. 操作列表中,选择执行自定义查询,然后点击完成
  4. 展开任务输入部分,然后执行以下操作:
    1. 超时后字段中,输入查询执行之前等待的秒数。

      默认值:180 秒。

    2. 最大行数字段中,输入要从数据库返回的最大行数。

      默认值为 25

    3. 要更新自定义查询,请点击修改自定义查询。系统会打开脚本编辑器对话框。
    4. 脚本编辑器对话框中,输入 SQL 查询,然后点击保存

      您可以在 SQL 语句中使用问号 (?) 来表示必须在查询参数列表中指定的单个参数。例如,以下 SQL 查询会选择 Employees 表中与 LastName 列指定的值匹配的所有行:

      SELECT * FROM Employees where LastName=?

    5. 如果您在 SQL 查询中使用了问号,则必须针对每个问号点击 + 添加参数名称,以添加参数。在执行集成时,这些参数会按顺序替换 SQL 查询中的问号 (?)。例如,如果您添加了三个问号 (?),则必须按顺序添加三个参数。如需添加查询参数,请执行以下操作:
      1. 类型列表中,选择参数的数据类型。
      2. 字段中,输入参数的值。
      3. 如需添加多个参数,请点击 + 添加查询参数

成功执行后,此操作会返回状态 200 (OK),并附带包含查询结果的响应正文。

操作示例

示例 - 创建记录

本示例使用 BAPI_MATERIAL_saveDATA 操作创建了一条测定记录。

  1. Configure connector task 对话框中,点击 Actions
  2. 选择 BAPI_MATERIAL_SAVEDATA 操作,然后点击完成
  3. 连接器任务的任务输入部分中,点击 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\"}"
    }
  4. 如果操作成功,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 操作更新测量值记录。

  1. Configure connector task 对话框中,点击 Actions
  2. 选择 BAPI_MATERIAL_SAVEDATA 操作,然后点击完成
  3. 连接器任务的任务输入部分中,点击 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\"}"
    }
  4. 如果操作成功,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 操作删除评估记录。

  1. Configure connector task 对话框中,点击 Actions
  2. 选择 BAPI_MATERIAL_SAVEDATA 操作,然后点击完成
  3. 连接器任务的任务输入部分中,点击 connectorInputPayload,然后在 Default Value 字段中输入类似于以下内容的值:
    {
    "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"BASIC_VIEW\":\"X\"}",
    "CLIENTDATA": "{\"DEL_FLAG\":\"X\"}",
    "CLIENTDATAX": "{\"DEL_FLAG\":\"X\"}"
    }
  4. 如果操作成功,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 操作创建了多数据类型数据。

  1. Configure connector task 对话框中,点击 Actions
  2. 选择 ZFM_GCP_MULTIDATA_TAB 操作,然后点击完成
  3. 连接器任务的任务输入部分中,点击 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\"}"
    }
  4. 如果操作成功,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。

  1. Configure connector task 对话框中,点击 Actions
  2. 选择 PushIDoc 操作,然后点击完成
  3. 连接器任务的任务输入部分中,点击 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"
    }
  4. 。如果操作成功,PushIDoc 任务的 connectorOutputPayload 响应参数的值将如下所示:

    [{
    "Result": "Success",
    "Message": "Push IDoc success"
    }]

实体操作示例

本部分介绍如何执行此连接器中的一些实体操作。

示例 - 列出所有记录

以下示例列出了 T001 实体中的所有记录。

  1. Configure connector task 对话框中,点击 Entities
  2. Entity 列表中选择 T001
  3. 选择 List 操作,然后点击完成
  4. (可选)在连接器任务的任务输入部分,您可以通过指定 filter 子句来过滤结果集。请始终使用单引号 (') 指定过滤条件子句值。

示例 - 从实体获取记录

此示例从 T001 实体获取具有指定 ID 的记录。

  1. Configure connector task 对话框中,点击 Entities
  2. Entity 列表中选择 T001
  3. 选择 Get 操作,然后点击完成
  4. 连接器任务的任务输入部分中,点击 EntityId,然后在默认值字段中输入 0001

    其中,0001T001 实体中的唯一记录 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 社区发布您的问题并讨论此连接器。

后续步骤