使用 BizTalk Server 从 SAP 中在事务性上下文中接收 IDOC。

在事务上下文中接收 IDOC 类似于在事务上下文中接收 tRFC。 在这种情况下,从 SAP 系统接收的 IDOC 包含 TID 作为 <TransactionalRfcOperationIdentifier> 元素的一部分。 此 TID 由适配器保存在 SQL 数据库中。 如果发送 IDOC 的 SAP 系统中的 ABAP 代码具有“COMMIT WORK”语句,则会在将响应发送回 SAP 系统后,从 SQL 数据库中删除 TID。

无论 IDOC 是否在事务性上下文中接收,接收 IDOC 所需的协调都是相似的。 请参阅 使用 BizTalk Server 从 SAP 接收 IDOC。 但是,您需要执行某些特定的附加任务,以确保在交易上下文中接收 IDOCs。

  1. 在设计阶段,生成您希望接收的 IDOC 的架构。

  2. 在运行时,请确保设置绑定属性 TidDatabaseConnectionString

    此属性采用连接到 SQL 数据库的连接字符串来存储 TID。 示例连接字符串如下所示:

    Data Source=<myServerAddress>;Initial Catalog=<myDataBase>;User Id=<myUsername>;Password=<myPassword>;  
    

    谨慎

    此示例或指南引用敏感信息,例如连接字符串或用户名和密码。 切勿在代码中硬编码这些值,并确保使用最安全的身份验证来保护机密数据。 有关详细信息,请参阅以下文档:

    有关绑定属性以及如何设置它的详细信息,请参阅 有关 mySAP Business Suite 绑定属性的 BizTalk 适配器的信息

    重要

    BizTalk 适配器包安装向导安装 SQL 脚本,SapAdapter-DbScript-Install.sql,SQL Server 管理员必须运行该脚本才能在 SQL Server 中创建数据库和数据库对象。 该脚本通常安装在 <安装驱动器>:P rogram FilesMicrosoft BizTalk 适配器包中。

    SAP 适配器使用这些对象来保留 TID。 因此,SQL Server 管理员必须确保作为连接字符串的一部分提供的用户名具有足够的权限来执行存储过程。 你还可以选择使用 Windows 身份验证,前提是 Windows 用户有足够的权限在数据库中执行存储过程。

  3. 请确保在安装了适配器的计算机上启用 MSDTC。 执行以下步骤以启用 MSDTC。

    1. 启动组件服务 MMC 管理单元。

    2. 在组件服务 MMC 管理单元中,从左窗格中展开 “组件服务”,展开 “计算机”,右键单击“我的计算机”,然后单击“属性”

    3. 在“ 我的计算机属性 ”对话框中,单击 “MSDTC ”选项卡。

    4. “事务配置 ”部分中,单击“ 安全配置 ”按钮。

    5. “安全配置 ”对话框中,选中“ 网络 DTC 访问 ”复选框,并在其中选中“ 允许远程客户端 ”复选框。

    6. “事务管理器通信 ”部分中,选中“ 允许入站允许出站 ”复选框。

    7. “安全配置 ”对话框中,单击“ 确定”。

    8. 在对话框中单击 “是 ”,告知 MSDTC 服务将重启。 重启 MSDTC 服务后,单击对话框中的 “确定 ”。

    9. 在“ 我的计算机属性 ”对话框中,单击“ 确定”。

  4. 将 MSDTC 添加到 Windows 防火墙例外列表(如果尚未添加)。 运行以下命令。

    netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable  
    

另请参阅

开发 BizTalk 应用程序