为 SAP 数据提供程序安装自定义 RFC

如果要使用适用于 mySAP Business Suite 的 .NET Framework 数据提供程序来访问 SAP 系统,请安装自定义 RFC。

适用于 SAP 的数据提供程序要求自定义 RFC 在 SAP 系统上执行某些操作,以便:

  • 运行 SELECT 操作,适用于 SAP 的数据提供程序需要Z_EXTRACT_DATA_OO RFC。

  • 运行 EXECQUERY 操作,适用于 SAP 的数据提供程序需要Z_EXECUTE_SAP_QUERY RFC。

若要在 SAP 系统上执行这些操作,必须在 SAP 系统上安装这些自定义 RFC。 如果选择将适用于 SAP 的数据提供程序与 SAP 适配器一起安装,安装程序会将 SAP 数据提供程序的 RFC 传输作为压缩文件 (customRFC.zip) 复制到安装适配器的系统上。 zip 文件通常安装在<安装驱动器>:\Program Files\Microsoft BizTalk Adapter Pack\Microsoft .NET Framework Data Provider for mySAP Business Suite 中。

提取 zip 文件后,你将找到四个数据文件,其中两个遵循命名模式 K9*。例如,BI1 (类似于 K900534。BI1) ,另外两个遵循 R9* 模式。例如,BI1 (类似于 R900534。BI1) 。

  1. 将提取的文件从运行适配器的计算机复制到 SAP 应用程序服务器。

    1. 以 SAP R/3 系统管理员身份登录到开发系统的 SAP 应用程序服务器。

    2. 复制命名模式 K9* 的两个传输文件。BI1 从运行适配器的计算机上的安装目录到 SAP 应用程序服务器上的以下目录:

      <drive>:\usr\sap\trans\cofiles

    3. 复制命名模式为 R9* 的两个传输文件。BI1 从运行适配器的计算机上的安装目录到 SAP 应用程序服务器上的以下目录:

      <drive>:\usr\sap\trans\data

  2. 将传输加载到 SAP 应用程序服务器上的传输缓冲区中。

    1. 在命令提示符下,导航到 SAP 应用程序服务器上的传输程序目录:

      <drive>:\usr\sap\trans\bin

    2. 若要将传输加载到传输缓冲区,请在 目录中执行以下命令, \usr\sap\trans\bin 并将 sysid 替换为开发系统的系统 ID:

      tp addtobuffer <TransportNumber> <sysid> pf=TP_DOMAIN_<sysid>.PFL  
      

      其中, TransportNumber 是实际传输编号 (例如BI1K900534) 。

    3. 命令 tp 完成后,你将看到类似于以下内容的报告:

      This is tp version 320.56.66 (release 620)  
      Addtobuffer successful for TransportNumber  
      tp finished with return code: 0  
      

      返回代码“0”表示操作成功。

      返回代码为 0 或 4 是可接受的。 如果收到 8 或更高退货代码,请联系 Microsoft 客户服务和支持部门。

      重要

      对第二组传输文件重复步骤 (b) 和 (c) 。

      注意

      可以轻松地从共同文件文件名派生实际传输编号。 例如,名为 的共同文件K900534。BI1 提供传输数量的BI1K900534。

  3. 将传输导入 SAP。

    1. 在命令提示符下执行以下命令:

      tp import <TransportNumber> <sysid> client=<clientnumber> pf=TP_DOMAIN_<sysid>.PFL  
      

      sysid 替换为开发系统的系统 ID。 将 clientnumber 替换为开发系统的客户端编号。

      可以使用 U2 参数覆盖以前安装的对象,如下所示:

      tp import <TransportNumber> <sysid> client=<clientnumber> U2  
      

      tp import <TransportNumber> <sysid> client=<clientnumber> pf=TP_DOMAIN_<sysid>.PFL U2  
      

      注意

      可以轻松地从共同文件文件名派生实际传输编号。 例如,名为 的共同文件K900534。BI1 提供传输数量的BI1K900534。

    2. 命令 tp 完成后,你将看到类似于以下内容的报告:

      This is tp version 320.56.66 (release 620)  
      This is R3trans.exe version 6.08 (release 620 - 04.02.03 - 14:54:00).  
      R3trans.exe finished (0000).  
      This is R3trans.exe version 6.08 (release 620 - 04.02.03 - 14:54:00).  
      R3trans.exe finished (0000).  
      tp finished with return code: 0  
      

      返回代码“0”表示操作成功。

      返回代码为 0 或 4 是可接受的。 如果收到返回代码 8 或更高,请联系 Microsoft 客户服务和支持部门。

      重要

      重复步骤 () ,并为第二组传输文件 (b) 。

  4. 检查传输日志。

  5. 使用事务 SE09 在 SAP GUI 传输管理器中检查传输日志,以验证没有错误。

    设置用户授权
    Z_EXTRACT_DATA_OO RFC 需要具有特定授权对象的用户 ID。 使用 SAP GUI 授权管理工具设置 RFC 执行的最低限制:

注意

无需设置Z_EXECUTE_SAP_QUERY RFC 的授权。

  • Z_EXTRACT_DATA_OO需要S_TABU_DIS和Z_EIP_TABL。 以下值提供了S_TABU_DIS的最低限制,允许用户查看系统中任何表的元数据。

    • ACTVT: 03

    • DICBERCLS: *

      可以使用 DICBERCLS 按授权类限制对表的授权。

      可以使用 TDDAT 表查看表的授权类。

    注意

    若要防止表维护事务更改表,应仅在生产环境中授予显示权限, (ACTVT: 03 将允许的活动设置为显示) 。

    Z_EIP_TABL的最小值为:

    • ACTVT: 03

    • 表:*

      可以使用 TABLE 显式定义授权表。 另请注意,S_TABU_DIS也用于其他事务。

设置用户授权
  1. 启动 SAP GUI。 转到 T 代码,键入 pfcg,然后按 Enter。

  2. “角色 ”文本框中,输入要创建的角色名称,例如 ZTEST,然后单击“ 角色”。

  3. “创建角色” 页中,单击“ 授权 ”选项卡。

    如果系统提示保存角色,请单击“ ”。

  4. “更改角色” 页中,单击“ 更改授权数据 ”按钮。

  5. 如果系统提示你从“选择模板”对话框中 选择模板 ,请单击“ 不选择模板”。

  6. “更改角色:授权 ”页中,单击“ 手动 ”按钮。

  7. “手动选择授权 ”框中,输入授权对象 Z_EIP_TABL 的名称,然后按 Enter。

  8. “更改角色:授权 ”页中,展开节点,直到看到 “活动 ”和“ 表名称”文本框。 对于 “活动 ”文本框,输入值 03。 对于“ 表名称” 文本框,输入值 *

  9. 单击“ 保存” 按钮以生成配置文件。

  10. 返回“更改角色”页并单击“用户”选项卡。

  11. 在“ 用户 ”选项卡中,通过在“用户 ID”列中输入用户名,为角色分配 用户 ID ,然后单击“ 用户比较 ”按钮。

  12. “比较角色用户主记录”中,单击“ 完成比较 ”以更新主记录。 当系统提示保存角色时,单击“ ”。

  13. 保存并退出。

验证自定义 RFC 安装
安装自定义 RFC 后,可以验证 RFC 是否正确安装。

  • 对于 Z_EXECUTE_SAP_QUERY RFC,可以通过使用适用于 SAP 的数据提供程序在 SAP 系统中执行预定义的查询来执行此操作。

  • 对于Z_EXTRACT_DATA_OO RFC,可以通过执行以下测试来确认 RFC 正常运行并准备好在系统中使用。

测试安装Z_EXTRACT_DATA_OO
  1. 在 SAP GUI 授权管理工具中,执行 SE37、函数模块Z_EXTRACT_DATA_OO,然后通过按 在 F8测试模式下运行 RFC。 按如下所示填充参数。

    参数
    IN_METADATA_ONLY
    IN_METADATA_LANGUAGE CN
    IN_FROM_TABLE T000
    IN_OUTPUT_MODE S
    IN_OUTPUT_FILENAME
    IN_USE_FIELD_EXITS X
    IN_SET_ROWCOUNT 0
    IN_DELIMITER
    IN_PACKET_SIZE 50,000
    IN_MAX_WRITE_ATTEMPTS 4
    IN_RETRY_DELAY 30
    IN_SQL_DATES_ON
  2. 单击“ 执行 ”或按 F8

  3. 在结果窗格中,检查以下内容。

    参数
    OUT_TABLEHEADER <T000 常规元数据>
    OUT_TECHNICALSETTINGS <T000 技术数据库级元数据>
    OUT_RECORDLENGTH <取决于 SAP 版本>
    OUT_RECORDCOUNT <在 T000 上使用 SE16 确认系统中的客户端数>
    OUT_ZDATATABLE <使用 T000 上的 SE 16 使用源数据确认此结果>
    OUT_RETURN_TAB S 001 成功

删除 SAP 数据提供程序的 RFC

  1. 在 SAP GUI 对象导航器 (SE80) 中,查找具有 ZMSBI 开发类的所有对象。

  2. 从以下 Dictionary Objects 文件夹中删除具有 ZMSBI 开发类的所有对象:

    • 结构

    • 函数组

    • 授权对象

  3. 引发传输,并将其迁移至安装了 RFC (开发、测试和生产系统(例如) )的每个系统。

    如需进一步的帮助,请联系 SAP 基础管理员。

下一步

了解用于 mySAP Business Suite 的 BizTalk 适配器
SAP 适配器教程