浏览、搜索和获取 SAP 中 RFC 操作的元数据

本部分介绍如何使用“添加适配器服务引用插件”、“添加适配器元数据向导”或使用适配器服务加载项浏览、搜索和检索 SAP 中的 RFC 操作元数据。 对于所有三个用户界面,大多数说明都是相同的。 在适用的情况下,为相关用户界面提供单独的过程。

在执行以下部分中提供的步骤之前,必须具备:

  • 已创建 Visual Studio 项目。

  • 使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用插件”连接到 SAP 系统。 有关说明,请参阅 在 Visual Studio 中连接到 SAP 系统

浏览 SAP 系统中的 RFC

使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用插件”浏览元数据时,SAP 适配器浮出水面:

  • RFC 作为可在 SAP 系统上调用的操作。

  • RfcGetAttributes 操作,使适配器客户端能够获取有关 RFC 连接参数的信息。

    有关浏览 SAP 元数据的详细信息,请参阅 使用 WCF LOB 适配器 SDK 将适配器设置公开为绑定属性

    执行以下步骤,使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件浏览 SAP 系统中的 RFC。

浏览 SAP 系统中的 RFC

  1. 使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件连接到 SAP 服务器。 有关说明 ,请参阅在 Visual Studio 中连接到 SAP 系统

  2. “选择协定类型” 下拉列表中,根据是要使用适配器执行入站还是出站操作来选择协定的类型。

  3. “选择类别 ”框中,单击“RFC”节点,在“ 可用类别和操作 ”框中查看 RFC 功能组。 或者,还可以通过展开 RFC 节点来查看 RFC 功能组。

    提示

    当焦点位于“选择类别”框中的树视图中时,可以通过在 中键入项目的名称,直接转到树中的“直接 ”类别 节点或子类别节点。 例如,若要跳转到 “基础 RFC”功能组,请将焦点放在 RFC 节点上,然后键入 Basis

    下图显示了列出 RFC 功能组的“使用适配器服务加载项”。

    浏览 RFC 功能组

  4. 单击 RFC 功能组以查看相关的 RFC。 下图显示了具有特定 RFC 功能组下的 RFC 的“使用适配器服务”加载项。

    浏览功能组 中的 RFC

在 SAP 系统中搜索 RFC

使用使用适配器服务加载项、添加适配器元数据向导或添加适配器服务引用插件在 SAP 适配器中搜索 SAP 系统中的 RFC 时:

  • 支持搜索表达式中的通配符。

  • 立即在执行搜索操作的节点下启用搜索。

    下表列出了 SAP 适配器可用于搜索及其解释的特殊字符。

特殊字符 解释
+(加号) 正好匹配一个字符。

例如,A+ 匹配 AB、AC、AD
*(星号) 与零个或多个字符匹配。

例如,A* 与 A、AB、ABC 匹配。

有关适配器支持的特殊字符的详细信息,请参阅 使用 WCF LOB 适配器 SDK 将适配器设置公开为绑定属性

执行以下步骤,使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件在 SAP 系统中搜索 RFC。

在 SAP 系统中搜索 RFC

  1. 使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件连接到 SAP 服务器。 有关说明 ,请参阅在 Visual Studio 中连接到 SAP 系统

  2. “选择协定类型” 下拉列表中,根据是要使用适配器搜索入站操作还是出站操作来选择合同类型。

  3. “选择类别 ”框中,单击包含要搜索的 RFC 的 RFC 功能组。 如果不确定要搜索哪个功能组,请单击根 RFC 节点。

  4. “在类别中搜索 ”文本框中,输入搜索表达式以搜索特定的 RFC。 例如,若要搜索名称中包含“RFC_CUST”的 RFC,请在文本框中键入*RFC_CUST* 。

  5. 单击带有右箭头图标的按钮以开始搜索。 搜索完成后, “可用类别和操作 ”框将列出满足搜索条件的 RFC。

    下图显示了列出 RFC 搜索结果的“使用适配器服务加载项”。

    在 SAP 系统中搜索 RFC

为 BizTalk 项目生成架构

可以使用“使用适配器服务加载项”或“添加适配器元数据向导”为所选 SAP 项目生成架构。 浏览并搜索要调用的项目后,可以为这些项目生成架构,并将符合架构的消息发送到 SAP 系统。

注意

可以选择类别节点以返回该类别的子树中的所有操作,例如,可以选择整个 RFC 功能组 (为该组中的所有 RFC 生成架构) ,或选择特定的 RFC 来仅为这些 RFC 生成架构。 有关节点的详细信息,请参阅 元数据节点 ID

检索 RFC 的元数据

  1. 使用“使用适配器服务加载项”或“添加适配器元数据向导”连接到 SAP 服务器。 有关说明 ,请参阅在 Visual Studio 中连接到 SAP 系统

  2. “选择协定类型” 下拉列表中,根据是要使用适配器执行入站还是出站操作来选择协定的类型。

  3. “选择类别 ”框中,单击包含要为其生成元数据的 RFC 的 RFC 功能组。

    还可以搜索特定的 RFC。 例如,若要搜索名称中包含“RFC_CUST”的 RFC,请单击 RFC 节点,然后在“ 在类别中搜索 ”文本框中键入 *RFC_CUST*。 单击带有右箭头图标的按钮以开始搜索。 “ 可用类别和操作 ”框列出了名称中具有“RFC_CUST”的所有 RFC。

  4. “可用类别和操作 ”框中,选择要为其生成元数据的 RFC,然后单击“ 添加”。 所选 RFC 列在 “添加的类别和操作 ”框中。

    下图显示了列出所选 RFC 的“使用适配器服务加载项”。

    检索 RFC元数据

    如果要为多个操作生成架构,则这些架构中可能存在一些重复的元素定义,这可能会导致编译 BizTalk 项目失败。 例如,假设为操作“Op1”生成架构。 “Op1”的架构包含复杂数据类型“CT1”的参数。 生成“Op1”的架构后,关闭“使用适配器服务外接程序”,然后重新打开它,为另一个操作“Op2”生成架构。 假设“Op2”还包含复杂数据类型“CT1”的参数。 退出“使用适配器服务加载项”并编译项目后,将收到编译错误,因为复杂的数据类型“CT1”在不同的 XSD 文件中定义两次。 在这种情况下,我们建议执行以下操作:

    • 为单次运行“使用适配器服务加载项”中的所有操作生成架构。 这可确保使用适配器服务外接程序仅为复杂数据类型“CT1”生成一个定义。

    • 如果要为使用适配器服务外接程序的不同运行中的多个操作生成架构,请确保选中“检查生成唯一架构类型”框,以便生成的 XSD 文件包含复杂数据类型“CT1”的唯一命名空间。

  5. 单击 “确定” 。 架构文件以 .xsd 扩展名保存在 BizTalk 项目所在的同一位置。

    注意

    如果使用使用适配器服务外接程序,则默认情况下使用命名约定“SAPBinding<n.xsd>”创建文件,其中“n”可以是 1、2 等,具体取决于创建的架构文件的数量。 或者,可以通过在 “文件名前缀” 文本框中输入名称来为架构文件提供自定义名称。 现在,使用适配器服务外接程序创建具有命名约定 <文件名前缀><n.xsd> 的架构文件。

    注意

    使用适配器服务外接程序还会创建一个绑定文件 (XML 文件) 包含你在为操作生成架构时指定的绑定属性,以及用于调用操作的 SOAP 操作。 可以在 BizTalk Server 管理控制台中导入此绑定文件,以使用连接 URI、绑定属性和 SOAP 操作集创建 WCF-Custom 端口。 有关详细信息,请参阅 使用到 SAP 的端口绑定文件配置物理端口绑定

  6. 在“文件”菜单上,单击“全部保存” 。

使用添加适配器服务引用插件生成用于 RFC 操作的 WCF 客户端

可以使用“添加适配器服务引用插件”生成 WCF 客户端代码以将 RFC 发送到 SAP 系统,或使用 WCF 服务协定和代码从 SAP 系统 (RFC 服务器) 接收 RFC。

为 RFC 生成 WCF 客户端或 WCF 服务协定

  1. 在“添加适配器服务引用插件”中,从 “选择协定类型” 下拉列表中,根据是执行入站 (RFC 服务器) 还是出站操作,选择协定类型。

  2. “选择类别 ”框中,展开 RFC 节点,然后单击包含要为其生成 WCF 客户端或 WCF 服务协定的 RFC 功能组。

    还可以搜索 RFC。 例如,若要搜索名称中包含“RFC_CUST”的 RFC,请单击 RFC 节点,然后在“ 在类别中搜索 ”文本框中键入*RFC_CUST*。 单击带有向右箭头图标的按钮,开始搜索。 “ 可用类别和操作 ”框列出了名称中具有“RFC_CUST”的所有 RFC。

  3. “可用类别和操作 ”框中,选择要为其生成 WCF 客户端 (或 WCF 服务协定) (RFC 功能组) 的操作或类别,然后单击“ 添加”。 所选操作在 “已添加的类别和操作 ”框中列出。 可以选择“ 可用类别和操作 ”框中列出的任何节点。 如果选择类别节点,则将添加该节点及其子节点下可用的所有操作。

  4. 在大多数情况下,默认序列化选项就足够了;但是,如果需要,可以控制有关生成的代码和使用的序列化程序类型的几个方面。 若要设置这些选项,请执行以下操作:

    1. 单击“ 高级选项” 以打开“ 高级选项” 框。

    2. 在“选择生成的代理的选项”下的“高级选项”框中,选择所需的选项。 例如,可以选择是为 WCF 客户端生成异步方法,还是禁用配置文件的生成。

    3. 在“ 序列化程序 ”下,选择应使用的序列化程序。

      下图显示了“ 高级选项” 框,其中默认选择 (序列化程序选择了 “自动 ”,) 未选择其他选项。

      “高级选项”框默认设置

      可以在“ 高级选项” 框中配置的选项等效于使用 ServiceModel 元数据实用工具 (svcutil.exe) 时可用的某些选项。 有关这些选项的详细信息,请参阅 ServiceModel 元数据实用工具 (Svcutil.exe)

  5. 单击 “确定” 。 添加适配器服务引用插件保存 WCF 客户端类 (或 WCF 服务接口) 和帮助程序代码,用于在项目目录中选择的操作和类别。 默认情况下,还会保存配置文件。 为入站和出站操作生成略有不同的文件;有关详细信息,请参阅 为 SAP 解决方案项目生成 WCF 客户端或 WCF 服务协定

另请参阅

在 Visual Studio 中获取 SAP 操作的元数据