为 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* 的两个传输文件。从运行适配器的计算机的安装目录到 SAP 应用程序服务器上以下目录的 BI1:

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

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

      <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 或 8 以上,请联系 Microsoft 客户服务和支持部门。

      重要

      重复 (b) , (c) 传输文件集。

      注意

      可以轻松地从 cofile 文件名派生实际传输编号。 例如,名为 K900534 的 cofile。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  
      

      注意

      可以轻松地从 cofile 文件名派生实际传输编号。 例如,名为 K900534 的 cofile。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 或 8 以上,请联系 Microsoft 客户服务和支持部门。

      重要

      重复 () (第二) 传输文件集的步骤。

  4. 检查传输日志。

  5. 使用事务 SE09 检查 SAP GUI 传输组织程序中的传输日志,以验证没有错误。

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

注意

无需为 RFC 设置Z_EXECUTE_SAP_QUERY授权。

  • 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: *

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

设置用户授权
  1. 启动 SAP GUI。 转到"T-code",键入 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,然后按 在测试模式下运行 F8RFC。 按如下所示填充参数。

    参数
    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 上标准版16的源数据确认此结果>
    OUT_RETURN_TAB S 001 成功

删除适用于 SAP 的数据提供程序的 RFC

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

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

    • 结构

    • 函数组

    • 授权对象

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

    若要获得进一步的帮助,请与 SAP Basis 管理员联系。

下一步

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