步骤 1:将 SAP 构件发布为 WCF 服务

第 1 步(共 4 步)

完成时间: 10 分钟

目的: 可以使用 WCF 适配器服务开发向导生成可在托管环境中托管的 WCF 服务,例如 Internet 信息服务(IIS)或 Windows 进程激活服务(WAS)。 本主题演示如何使用向导生成 WCF 服务文件。

先决条件

在运行向导之前,请安装以下内容:

  • Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK,其中包含 “完整 ”选项或 “自定义 ”选项(并选择此选项中的 工具 )。 这将安装 WCF 适配器服务开发向导的 Visual Studio 模板。

  • BizTalk 适配器包中的 Microsoft BizTalk 适配器,用于 mySAP Business Suite。

  • 所需的 SAP 客户端库。

    有关这些先决条件的详细信息,请参阅 BizTalk 适配器包安装指南。 安装指南通常安装在 <安装驱动器>:\Program Files\Microsoft BizTalk Adapter Pack\Documents。

将 SAP 工件发布为 WCF 服务

  1. 启动 Visual Studio,然后创建项目。

  2. 在“ 新建项目 ”对话框中的“ 项目类型 ”窗格中,选择 “Visual C#”。 在 “模板 ”窗格中,选择 WCF 适配器服务

    或者,在 “项目类型 ”窗格中展开 Visual C#,然后选择 “Web”。 在 “模板 ”窗格中,选择 WCF 适配器服务

    注释

    如果使用 Web 开发组件安装了 Visual Studio 2013,则 WCF 适配器服务 模板也可从 “新建网站 ”选项获取。

  3. 指定解决方案的名称和位置,然后单击“ 确定”。 WCF 适配器服务开发向导将启动。

  4. 在“欢迎”页面上,单击“下一步”。

  5. 在“选择操作”页面中,指定用于连接到 SAP 系统的连接字符串。 为此,做以下事情:

    1. “选择绑定 ”列表中,单击 sapBinding,然后单击“ 配置”。

    2. 在“ 配置适配器 ”对话框中,单击“ 安全 ”选项卡。

    3. “客户端凭据类型 ”列表中,选择“ 用户名”,然后指定有效的 SAP 用户名和密码以连接到 SAP 系统。

    4. 单击 “URI 属性 ”选项卡,然后指定连接参数的值。 有关 SAP 适配器的连接 URI 的详细信息,请参阅 创建 SAP 系统连接 URI

      注释

      如果连接参数包含任何保留字符(如 XML 特殊字符),则必须在 “URI 属性 ”选项卡中指定它们 as-is,即不使用任何转义字符。 但是,如果在 “配置 URI ”框中直接指定 URI,并且连接参数包含保留字符,则必须使用正确的转义字符指定连接参数。

    5. 单击“ 绑定属性 ”选项卡,然后指定要针对的作所需的绑定属性(如果有)的值。 在本教程中,将调用 BAPI_SALESORDER_GETLIST RFC 以获取特定客户的销售订单列表。 销售订单信息还可能包含日期列。 检索日期列的值时,建议在生成元数据时将 EnableSafeTyping 绑定属性设置为 True 。 如果设置了此属性,SAP DATS 数据类型将显示为字符串。

      有关如何将 SAP 数据类型映射到等效的 .NET 类型的详细信息,请参阅 基本 SAP 数据类型

      有关绑定属性的详细信息,请参阅 有关 mySAP Business Suite 绑定属性的 BizTalk 适配器的信息

    6. 单击“ 确定”,然后单击“ 连接”。 建立连接后,连接状态显示为 “已连接”。

  6. 在“选择操作”页上的“选择合同类型”列表中,单击“客户(出站操作)”

  7. “选择类别 ”框中,展开 SAP 项目类型。 例如,展开 RFC 节点以查看包含要为其生成 WCF 服务的 RFC 的功能组。

  8. “可用类别和操作”框中,选择要为其生成 WCF 服务的操作,然后单击“添加”。 所选操作列在 添加的类别和操作 框中。

    注释

    可以为每个工件添加多个操作。 还可以为不同的 SAP 工件添加操作。 例如,可以为 RFC 添加一个操作,为 IDOC 添加另一个操作。 此外,还可以通过在搜索表达式中指定通配符来搜索特定操作。 有关支持的特殊字符以及可以搜索操作的节点级别的详细信息,请参阅在 Visual Studio 中使用添加适配器元数据向导连接到 SAP

    对于此示例,将添加SD_RFC_CUSTOMER_GET和BAPI_SALESORDER_GETLIST RFC。

    注释

    某些版本的 SAP 系统公开RFC_CUSTOMER_GET RFC,而不是SD_RFC_CUSTOMER_GET。

    选择 SAP 项目

  9. 在“选择操作”页上,单击下一步

  10. 在“配置服务和终结点行为”页上,指定要配置服务和终结点行为的值。

    1. “服务行为配置 ”框中,指定以下各项的值:

      对于属性 指定值
      启用元数据交换 将此设置为 True 以创建元数据交换终结点。 通过将此项设置为 True,可以使用标准化协议(如 WS-Metadata Exchange(MEX)和 HTTP/GET 请求来提供服务元数据。

      默认值为 False
      在故障中包含异常详细信息 将此项设置为 True ,以便在返回给客户端用于调试的 SOAP 错误中包含详细的托管异常信息。 默认值为 False
      名称 服务行为配置的名称。
      使用服务证书 指定是否要使用 WCF 的消息级别安全模式。 默认值为 True。

      在本教程中,必须将此设置为 False
      FindValue 一个字符串,指定要在 X.509 证书存储中搜索的值。

      注意: 仅当 UseServiceCertificate 设置为 True 时,才为此属性指定值。
      店铺位置 一个值,该值指定服务可用于验证客户端证书的证书存储的位置。

      注意: 仅当 UseServiceCertificate 设置为 True 时,才为此属性指定值。
      商店名称 要打开的 X.509 证书存储的名称。

      注意: 仅当 UseServiceCertificate 设置为 True 时,才为此属性指定值。
      X509FindType 要执行的 X.509 搜索的类型。

      注意: 仅当 UseServiceCertificate 设置为 True 时,才为此属性指定值。

      注释

      有关证书和关联属性的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=103771 中的“X509ClientCertificateCredentialsElement 属性”。

    2. “终结点行为配置 ”框中,指定以下各项的值:

      对于属性 指定值
      身份验证类型 - 将此设置为 ClientCredentialUserNamePassword ,使客户端能够在使用 WCF 服务时指定用户名和密码。

      - 将此设置为 HTTPUserNamePassword ,使客户端能够将用户名和密码指定为 HTTP 标头的一部分。

      - 将此设置为 “自动 ”,以首先允许客户端通过 ClientCredential 接口指定凭据。 如果此作失败,客户端可以将凭据作为 HTTP 标头的一部分传递。

      默认值为 “自动”。若要Microsoft Office SharePoint Server 使用 WCF 服务,应将其设置为 HTTPUserNamePassword
      名称 指定终结点行为配置的名称。
      用户名标题 用户名标头的名称。 对于此示例,请指定 MyUserHeader。 有关 HTTP 标头的详细信息,请参阅https://go.microsoft.com/fwlink/?LinkId=106692《支持自定义 HTTP 和 SOAP 标头》。

      注意: 如果将 身份验证类型 设置为 HTTPUserNamePassword,则必须为此属性指定值。 如果 身份验证类型 设置为 “自动”,则此属性是可选的。
      密码标题 密码标头的名称。 对于此示例,请指定 MyPassHeader。 有关 HTTP 标头的详细信息,请参阅https://go.microsoft.com/fwlink/?LinkId=106692“自定义 HTTP 和 SOAP 标头的支持”。

      注意: 如果将 身份验证类型 设置为 HTTPUserNamePassword,则必须为此属性指定值。 如果 身份验证类型 设置为 “自动”,则此属性是可选的。

      重要

      Microsoft建议使用最安全的可用身份验证选项。 此过程中所述的身份验证方法需要高度信任,并具有其他身份验证方法中不存在的风险。 仅当其他方法不可行时,才使用此身份验证方法。

      下图显示了“配置服务和终结点行为”页,其中包含指定的值。

      配置服务和终结点行为页面

  11. 在“配置服务和终结点行为”页上,单击“ 下一步”。

  12. 在“配置服务终结点绑定和地址”页上,“选择要配置的合同”的复选框列出了你在“选择操作”页上选择要执行的操作的 SAP 工件。

    例如,如果在 RFC 和 IDOC 下选择了项目,选择用于配置的协定将列出 RFC 和 IDOC。 如果仅选择了 RFC,该框将仅列出 RFC。

  13. 所选合同的操作框将显示您在“选择操作”页面上为每个项目选择的操作。

  14. 在“配置协定的地址和绑定”框中,指定以下内容的值:

    对于属性 指定值
    绑定配置 向导仅支持基本 HTTP 绑定。 因此,绑定配置字段会自动填充到 System.ServiceModel.Configuration.BasicHttpBindingElement

    单击省略号按钮 (...) 可更改 HTTP 绑定的属性。 若要使用安全信道,必须始终将 Mode 属性设置为 传输。 向导将 Mode 属性的默认值设置为 传输

    有关其他已公开绑定的详细信息,请参阅“BasicHttpBindingElement 成员”,网址为 https://go.microsoft.com/fwlink/?LinkId=103773
    端点名称 指定协定的终结点名称。

    此页上的其他字段会根据前面页中指定的值自动填充。

    点击“应用”。 对“ 选择要配置的合同 ”下显示的所有合同执行此步骤。

    注释

    如果未在此页上指定任何值,则接受所有协定的默认值。

    下图显示了具有指定值的“配置服务终结点绑定和地址”页面。

    配置服务终结点绑定和地址

  15. 在“配置服务终结点绑定和地址”页上,单击“ 下一步”。 “摘要”页列出了 SAP 工件的树结构,在该结构下列示了为每个工件选择的操作。

  16. 查看摘要,然后单击“ 完成”。

  17. 该向导创建 WCF 服务,并将以下文件添加到 Visual Studio 项目:

    1. .svc 文件。 这是 WCF 服务文件。 向导为每个协定生成一个文件。

    2. Web.config 文件。

    3. 服务代码(.cs文件)

  18. 发布 WCF 服务。

    1. 确保为 Internet Information Services (IIS)启用 SSL。 有关如何为 IIS 启用 SSL 的说明,请参阅 https://go.microsoft.com/fwlink/?LinkId=197170

    2. 右键单击解决方案资源管理器中的项目,然后单击“ 发布”。

    3. “发布 Web ”对话框中,指定 WCF 服务的 URL。 例如:

      https://<computer_name>/Customer_Order/
      
    4. “复制 ”框中,单击“ 所有项目文件”。

    5. 单击“发布”。

  19. 验证 WCF 服务是否已成功发布。

    1. 启动 IIS Microsoft管理控制台。 单击“ 开始”,指向 “管理工具”,然后单击“ Internet Information Services”(IIS)管理器

    2. 导航到已发布服务的节点。 对于Customer_Order服务,请导航到 Internet Information Services><计算机名称>>网站默认>网站>Customer_Order

    3. 在右窗格中,右键单击 Rfc.svc 文件,然后单击“ 浏览”。

    4. 该网页会显示用于检索 WSDL 的 URL。 可能需要使用 svcutil 命令测试元数据检索。 例如,用于检索Customer_Order服务的元数据的命令为:

      svcutil.exe https://<computer_name>/Customer_Order/Rfc.svc?wsdl
      
      

下一步

若要为 SAP 项目创建应用程序定义文件,请使用业务数据目录定义编辑器。 有关说明 ,请参阅步骤 2:为 SAP 项目创建应用程序定义文件 。 应用程序定义文件标识 LOB 数据的存储位置及其存储格式。

另请参阅

教程 1:呈现 SharePoint 网站上的 SAP 系统中的数据