使用 BizTalk Server 和 Siebel 适配器对具有 MVG 字段的业务组件运行操作

本部分提供有关对包含多值字段的业务组件执行操作的说明。 若要演示此类业务组件的端到端操作,需要执行以下操作:

  • 对父业务组件执行 INSERT 操作

  • 子业务组件的 INSERT 操作

  • 对父业务组件和子业务组件之间的多值链接执行 ASSOCIATE 操作

  • 对父业务组件的记录执行Query_[MVG_Child_Business_Comp] 操作

    有关 Siebel 适配器如何支持业务组件上的操作的详细信息,请参阅 业务组件上的操作。 有关用于执行这些操作的 SOAP 消息结构的详细信息,请参阅 业务组件操作的消息架构

如何对具有多值字段的业务组件执行操作?

使用 Siebel 适配器和BizTalk Server在 Siebel 系统上执行操作涉及构建基块创建 Siebel 应用程序中所述的过程任务。 若要对业务组件执行操作,这些任务包括:

  1. 创建 BizTalk 项目并为要在业务组件上调用的所有操作生成架构。 如前所述,若要对具有多值字段的业务组件执行操作,必须为父业务组件和子业务组件上的插入操作生成架构、对父业务组件和子业务组件之间的多值链接关联操作以及针对父业务组件执行查询操作的架构。

  2. 在 BizTalk 项目中创建消息,以便从 Siebel 系统发送和接收消息。

  3. 创建业务流程以调用 Siebel 系统中的不同操作。

  4. 生成和部署 BizTalk 项目。

  5. 通过创建物理发送和接收端口来配置 BizTalk 应用程序。

  6. 启动 BizTalk 应用程序。

    本主题提供有关执行这些任务的说明。

基于本主题的示例

BizTalk 适配器包还提供了基于本主题的示例 MVLDemo。 有关详细信息,请参阅 Siebel 适配器的示例

生成架构

在本主题中,为了演示如何将父业务组件 帐户 关联到子业务组件 联系人,我们将为以下项生成架构:

定义消息和消息类型

前面生成的架构描述了业务流程中的消息所需的“类型”。 消息通常是一个变量,其类型由相应的架构定义。 必须在第一步中生成的架构链接到 BizTalk 项目的业务流程视图中的消息。

对于本主题,必须创建四组请求和响应消息,针对将在 Siebel 系统上调用的每个操作创建一组。 每个集必须具有请求消息和响应消息。 例如,以下过程提供了为 Associate 操作创建请求和响应消息的说明。 必须执行类似的步骤才能为其他操作创建消息。

执行以下步骤以创建消息并将其链接到架构:

  1. 打开业务流程视图 BizTalk 项目(如果尚未打开)。 单击“ 视图”,指向“ 其他窗口”,然后单击“ 业务流程视图”。

  2. 业务流程视图中,右键单击“ 消息”,然后单击“ 新建消息”。

  3. 右键单击新创建的消息,然后选择“ 属性窗口”。

  4. Message_1的“属性”窗格中,执行以下操作:

    使用此选项 要执行此操作
    标识符 键入 AccountAssociate_Request
    消息类型 在下拉列表中,展开“ 架构”,然后选择“ MVLDemo.SiebelBindingSchema.Associate”,其中 MVLDemo 是 BizTalk 项目的名称。 SiebelBindingSchema 是为调用帐户上的关联操作业务组件生成的架构。
  5. 重复上一步以创建新消息。 在新邮件的“ 属性 ”窗格中,执行以下操作:

    使用此选项 要执行此操作
    标识符 键入 AccountAssociate_Response
    消息类型 从下拉列表中,展开“ 架构”,然后选择“ MVLDemo.SiebelBindingSchema.AssociateResponse”。

设置业务流程

现在,必须将业务流程设置为使用 BizTalk Server 对帐户和联系人业务组件执行操作。

  • 设置业务流程以对 帐户 业务组件执行 INSERT 操作。 请参阅使用 BizTalk Server 和 Siebel 适配器在业务组件上运行操作

  • 设置业务流程以对 联系人 业务组件执行 INSERT 操作。 这类似于 帐户 业务组件上的 INSERT 操作。

  • 设置业务流程以对 帐户 业务组件执行 ASSOCIATE 操作。

  • 设置业务流程以对 帐户 业务组件执行QUERY_CONTACT操作。

    本主题将演示如何为 帐户 业务组件上的 ASSOCIATE 操作设置业务流程。 还必须执行类似的任务才能设置剩余的业务流程。

    帐户业务组件上 ASSOCIATE 操作的业务流程如下所示:

    在 Siebel 中使用 MVL 的业务流程

    以下部分介绍如何通过删除消息形状、端口、将消息链接到架构等来设置此业务流程。还必须执行类似的任务才能设置其他业务流程。

添加消息形状

请确保为每个消息形状指定以下属性。 Shape 列中列出的名称是上述业务流程中显示的消息形状的名称。

形状 形状类型 属性
AccountAssociateXML 接收 - 将 “名称” 设置为 AccountAssociateXML
- 将 “激活” 设置为 “True”
SendToLOB 发送 - 将 “名称 ”设置为 SendToLOB
ReceiveResponse 接收 - 将 Name 设置为 ReceiveResponse
- 将 “激活” 设置为 “False”
SendResponse 发送 - 将 Name 设置为 SendResponse

添加端口

请确保为每个逻辑端口指定以下属性。 “端口”列中列出的名称是业务流程中显示的端口名称。

端口 属性
FileIn_AccountAssociate - 将 标识符 设置为 FileIn_AccountAssociate
- 将 Type 设置为 FileInAccountAssociateType
- 将 通信模式 设置为 单向
- 将 通信方向 设置为 接收
LOBPort_AccountAssociate - 将 标识符 设置为 LOBPort_AccountAssociate
- 将 Type 设置为 LOBPortAccountAssociateType
- 将 通信模式 设置为 请求-响应
- 将 通信方向 设置为 “发送-接收”
SaveResponse_AccountAssociate - 将 标识符 设置为 SaveResponse_AccountAssociate
- 将 Type 设置为 SaveResponseAccountAssociateType
- 将 通信模式 设置为 单向
- 将 “通信方向 ”设置为 “发送”

为操作形状指定消息并连接到端口

下表指定要设置的属性及其值,以指定操作形状的消息并将其链接到端口。 Shape 列中列出的名称是上述业务流程中显示的消息形状的名称。

形状 属性
AccountAssociateXML - 将 消息 设置为 AccountAssociate_Request
- 将 操作 设置为 FileIn_AccountAssociate.Associate.Request
SendToLOB - 将 消息 设置为 AccountAssociate_Request
- 将 操作 设置为 LOBPort_AccountAssociate.Associate.Request
ReceiveResponse - 将 “消息 ”设置为 “AccountAssociate_Response”
- 将 操作 设置为 LOBPort_AccountAssociate.Associate.Response
SendResponse - 将 消息 设置为 响应
- 将 操作 设置为 SaveResponse_AccountAssociate.Associate.Request

指定这些属性后,将连接消息形状和端口,并且业务流程已完成。

现在必须生成 BizTalk 解决方案并将其部署到BizTalk Server。 有关详细信息,请参阅 如何生成业务流程将 BizTalk 程序集从 Visual Studio 部署到 BizTalk 应用程序

配置 BizTalk 应用程序

部署 BizTalk 项目后,前面创建的业务流程将列在 BizTalk Server 管理控制台的“业务流程”窗格中。 必须使用 BizTalk Server 管理控制台来配置应用程序。 有关配置应用程序的详细信息,请参阅 如何创建应用程序

配置应用程序涉及:

  • 为应用程序选择主机。

  • 将业务流程中创建的端口映射到 BizTalk Server 管理控制台中的物理端口。 对于此业务流程,必须:

    • 在硬盘上定义一个位置和相应的文件端口,你将在其中放置请求消息。 BizTalk 业务流程将使用请求消息并将其发送到 Siebel 系统。 对于所有四个业务流程,可以使用相同的端口。

    • 在硬盘上定义一个位置和相应的文件端口,BizTalk 业务流程将删除包含来自 Siebel 系统的响应的响应消息。 对于所有四个业务流程,可以使用相同的端口。

    • 定义物理 WCF-Custom 或 WCF-Siebel 发送端口以将消息发送到 Siebel 系统。 还必须在发送端口中指定操作。 有关如何创建端口的信息,请参阅 手动配置到 Siebel 适配器的物理端口绑定。 对于所有四个业务流程,必须具有不同的端口。

      注意

      使用使用适配器服务 BizTalk 项目外接程序生成架构还会创建一个绑定文件,其中包含有关要为这些端口设置的端口和操作的信息。 可以从 BizTalk 管理控制台导入此绑定文件,为) 出站调用创建发送端口 (。 有关详细信息,请参阅 使用 Siebel 的端口绑定文件配置物理端口绑定

启动应用程序

必须启动 BizTalk 应用程序,以便将父业务组件与子业务组件相关联。 有关启动 BizTalk 应用程序的说明,请参阅 启动 BizTalk 应用程序启动业务流程

在此阶段,请确保:

  • 用于接收业务流程请求消息的 FILE 接收端口正在运行。

  • 用于从业务流程接收响应消息的 FILE 发送端口正在运行。

  • 四个 WCF-Custom 或 WCF-Siebel 发送端口正在运行,每个端口用于向 Siebel 系统发送消息

  • 用于不同操作的四个 BizTalk 业务流程正在运行

执行操作

必须将请求消息删除到 FILE 接收端口。 请求消息的架构必须符合前面在主题中生成的架构。 有关不同操作的请求消息的架构的详细信息,请参阅 业务组件操作 的消息架构。 必须按以下顺序删除请求消息:

  • 删除请求消息以将记录插入 帐户 业务组件。 请求消息将类似于在主题使用 BizTalk Server 和 Siebel 适配器运行业务组件中的帐户业务组件中插入记录而删除的请求消息。 业务流程使用消息并将其发送到 Siebel 系统。 Siebel 系统的响应保存在定义为业务流程的一部分的其他 FILE 位置。

  • 删除请求消息以将记录插入到 “联系人业务” 组件中。 请求消息将类似于在主题使用 BizTalk Server 和 Siebel 适配器运行业务组件中的帐户业务组件中插入记录而删除的请求消息。 业务流程使用消息并将其发送到 Siebel 系统。 Siebel 系统的响应保存在定义为业务流程的一部分的其他 FILE 位置。

  • 删除请求消息以对 帐户 业务组件执行 ASSOCIATE 操作。 这将基于搜索表达式和在输入 XML 中指定的多值字段的名称关联父业务组件和子业务组件。 请注意:

    • ASSOCIATE 操作中的父搜索表达式必须与父表中的唯一记录匹配。

    • ASSOCIATE 操作中的子搜索表达式必须与子表中的唯一记录匹配。

      例如,对帐户业务组件执行 Associate 操作的请求消息为:

    <Associate xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects/Account/Account/Operation">  
      <ViewMode>3</ViewMode>  
      <ParentSearchExpr>[Name] LIKE "SampleName1"</ns0:ParentSearchExpr>   
      <ParentMVGField>Bill To First Name</ns0:ParentMVGField>   
      <ChildSearchExpr>[First Name] LIKE "SampleName2"</ns0:ChildSearchExpr>   
    </Associate>  
    

    业务流程使用消息并将其发送到 Siebel 系统。 Siebel 系统的响应保存在定义为业务流程的一部分的其他 FILE 位置。 例如,上述请求消息的响应为:

    <?xml version="1.0" encoding="utf-8"?>  
    <AssociateResponse xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects/Account/Account/Operation">  
      <AssociateResult>  
        <ChildID xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects">1-8AO09</ChildID>  
        <ParentID xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects">1-8ANZ5</ParentID>  
      </AssociateResult>  
    </AssociateResponse>  
    
  • 删除请求消息以对 帐户 业务组件执行QUERY_CONTACT操作。 例如,QUERY_CONTACT操作的请求消息为:

    <Query_Contact xmlns ="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects/Account/Account/Operation">  
      <ViewMode>3</ViewMode>   
      <ParentSearchExpr>[Name] LIKE "SampleName1"</ParentSearchExpr>   
      <ParentMVGField>Bill To First Name</ParentMVGField>   
      <ContactQueryInputRecord>  
        <SearchExpr xmlns:ns1="http://Microsoft.LobServices.Siebel/2007/03/BusinessObjects">[Id] LIKE '*'</SearchExpr>   
      </ContactQueryInputRecord>  
    </Query_Contact>  
    

    业务流程使用消息并将其发送到 Siebel 系统。 Siebel 系统的响应保存在定义为业务流程的一部分的其他 FILE 位置。

    有关请求消息的架构的详细信息,请参阅 业务组件操作 的消息架构。

可能的异常

有关在使用BizTalk Server对具有多值字段的业务组件执行操作时可能遇到的异常的信息,请参阅异常和错误处理

最佳实践

部署并配置 BizTalk 项目后,可以将配置设置导出到名为绑定文件的 XML 文件。 生成绑定文件后,可以从文件导入配置设置,这样就无需为同一业务流程创建发送端口、接收端口等。 有关绑定文件的详细信息,请参阅 重用适配器绑定

另请参阅

开发 BizTalk 应用程序