SAP ERP

借助 SAP ERP 连接器,您可以对 SAP ERP 数据执行插入、删除、更新和读取操作。

准备工作

在使用 SAP ERP 连接器之前,请完成以下任务:

  • 在您的 Google Cloud 项目中:
    • 将 IAM 角色 roles/connectors.admin 授予配置连接器的用户。
    • 将以下 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 系统的 System 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 文件以 ASN.1 结构存储公钥和私钥对以及 X.509 证书。
    16. 群组:用于登录的群组名称。当您的 SAP 系统使用负载平衡器时,通常会指定此属性。
    17. 消息服务器:连接到使用负载平衡器的 SAP 系统时使用的消息服务器的名称。
    18. 读取表格函数:要用于读取表格的函数名称。如需了解详情,请参阅使用自定义读取表函数
    19. 连接方案:选择用于连接到 SAP 系统的连接方案。
    20. 系统 ID:SAP 系统的系统 ID 或 R3Name。您最多可以输入 3 个字符。
    21. SNC 密码:选择 SNC 库密码的 Secret Manager 密钥。
    22. Secret 版本:选择 Secret 版本。
    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. 目的地类型:选择目的地类型
      1. 主机地址字段中,指定目标的主机名或 IP 地址。
        1. 如果要与后端系统建立专用连接,请按以下步骤操作:
          1. 创建 PSC 服务连接
          2. 创建端点连接然后在主机地址字段中输入端点连接的详细信息。
        2. 如果要与后端系统建立公共连接以提高安全性,您可以考虑为连接配置静态出站 IP 地址,然后将防火墙规则配置为仅将特定静态 IP 地址列入许可名单。

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

    2. 点击下一步
  6. Authentication(身份验证)部分中,输入身份验证详细信息。
    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 的代码,该自定义读取表 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. 在“Tables”标签页上,将 DATA 参数设置为 CHAR8000(您可能需要右键点击,然后点击显示 -> 更改
  4. 在“源代码”标签页上,粘贴位于安装目录的 db 子文件夹中的替换 RFC_READ_TABLE 函数模块的示例源代码。该代码位于 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
主机地址 外部 SAP 系统的 10.30.X.XX 或路由器字符串。
身份验证 用户密码
用户名 12345
密码 xyz@12345
versions 1

GroupServer 连接类型

下表列出了 GroupServer 连接类型的示例配置值。请参阅控制台中的连接创建界面,了解必填字段和可选字段。

字段名称 示例值
区域 us-central1
连接器 SAP ERP
连接器版本 1
连接器名称 saperp-GroupServer-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
主机地址 外部 SAP 系统的 10.30.X.XX 或路由器字符串。
身份验证 用户密码
用户名 12345
密码 xyz@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 的布尔值。若要使用 SNC,请将此值设置为 true。
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
主机地址 外部 SAP 系统的 10.30.X.XX 或路由器字符串。
身份验证 X509 基于证书的身份验证
X509Certificate 指定的 X509 证书可以使用以下路径指定:文件路径指向的文件路径包含 PEM 格式的 X509 证书、以“-----BEGIN ...”标头开头的 PEM blob 或不包含“-----BEGIN ...”标头的 PEM blob。
versions 1

操作

本部分列出了该连接器支持的操作。如需了解如何配置操作,请参阅操作示例

BAPI_MATERIAL_SAVEDATA 操作

通过此操作,您可以执行特定任务。例如,您可以使用它在 SAP ERP 中创建或更改物料主数据。

BAPI_MATERIAL_SAVEDATA 操作的输入参数

参数名称 数据类型 需要 说明
头数据 字符串 输入参数 HEADDATA。
客户端数据 字符串 输入参数 CLIENTDATA。
CLIENTDATAX 字符串 输入参数 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 操作的示例,请参阅操作示例

ExecuteCustomQuery 操作

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

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

  1. 按照详细说明 添加连接器任务
  2. 配置连接器任务时,请在要执行的操作类型中选择操作
  3. 操作列表中,选择执行自定义查询,然后点击完成

    显示 execute-custom-query-action 的图片 显示 execute-custom-query-action 的图片

  4. 展开任务输入部分,然后执行以下操作:
    1. 超时时间字段中,输入查询执行之前需等待的秒数。

      默认值:180 秒。

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

      默认值为 25

    3. 要更新自定义查询,请点击修改自定义脚本。此时将打开脚本编辑器对话框。

      显示 custom-sql-query 的图片 显示 custom-sql-query 的图片

    4. 脚本编辑器对话框中,输入 SQL 查询,然后点击保存

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

      SELECT * FROM Employees where LastName=?

    5. 如果您在 SQL 查询中使用了问号,则必须为每个问号点击 + 添加参数名称以添加参数。执行集成时,这些参数会依序替换 SQL 查询中的问号 (?)。例如,如果您添加了三个问号 (?),则必须按顺序添加三个参数。

      显示 add-query-param 的图片 显示 add-query-param 的图片

      如需添加查询参数,请执行以下操作:

      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. (可选)在连接器任务的任务输入部分,您可以通过指定过滤条件子句来过滤结果集。始终用英文单引号 (') 指定过滤条件子句值。

示例 - 从实体获取记录

此示例从 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 指定是使用消息服务器 (GroupServer) 还是没有消息服务器 (ApplicationServer) 连接到 SAP 系统。支持的值包括:ApplicationServer、GroupServer
system_id STRING False SAP 系统的 System 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 的布尔值。若要使用 SNC,请将此值设置为 true。
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 社区中发布问题和讨论此连接器。

后续步骤