创建测试对象
上一篇我们通过WCF-SQL适配器向导创建了SQL存储过程所需的架构,这样我们就可以通过它来匹配到这个存储过程,但在这之前我们需要设计一个测试对象来对存储过程进行调用。这个测试对象会包含一个映射文件,这个映射文件负责将来自StoreInventoryUpdate的消息转换为UpdateInventory_dbo架构的消息,另外还包含一个业务流程,它来负责BizTalk Server与SQL Server之间的相互通信与调度。
创建映射来转换WCF-SQL适配器所需消息
1. 先来创建一个映射文件,将其命名为StoreInventoryUpdate_to_SqlUpdateInventoryRequest.btm,单击打开源架构我们选择InventoryUpdate.Orchestration > References > InventoryUpdate.Schemas > Schemas, 点击 InventoryUpdate.Schemas.StoreInventoryUpdate, 之后点击确定。
StoreInventoryUpdate描述了一个请求更新仓储库存的消息架构,我们假设它是由玩具店POS系统和ERP系统两者共同生成的,也就是说这个消息中一部分信息是来自POS系统,另一部分消息是来自ERP系统。
2. 点击右侧面板的打开目标架构,选择Schema节点下的UpdateInventory_dbo,点击确定。并按照如下图所示的映射关系来匹配各个节点。
设计业务流程
1. 我们在业务流程设计器中创建如下控件。
2. 设置Inventory Update控件激活属性为True;在Log New Update表达式控件中键入代码:System.Diagnostics.EventLog.WriteEntry("UpdateInventoryTestHarness", "A new request to update a store's inventory has been received.");在Log Success表达式控件中键入代码:System.Diagnostics.EventLog.WriteEntry("UpdateInventoryTestHarness", "Store Inventory Updated.");
3. 在业务流程视图中,右键点击消息->新建消息->改变标识符为msgStoreInventoryUpdate->选择消息类型为架构-><从引用的程序集中选择…>->InventoryUpdate.Schema->StoreInventoryUpdate->确定。
4. 用上述方法创建另一个消息,右键点击消息->新建消息->改变标识符为msgUpdateDatabseReq->选择消息类型为多部分消息类型->_InputMessage。这个消息将会被映射文件构造为一个StoreInventoryUpdate消息并用来调用存储过程。
5. 再另外创建一个消息,右键点击消息->新建消息->改变标识符为msgUpdateDatabseResp->选择消息类型为多部分消息类型->_OutputMessage。这个消息将负责接收一个调用存储过程后的返回值。
6. 配置接收和发送控件的消息属性。
7. 添加一个消息构造控件和一个转换控件,放在Log New Update下方,将消息构造控件命名为Create Update Database Request,并设置构造的消息为msgUpdateDatabaseReq,将转换控件命名为StoreInventoryUpdate_to_SqlUpdateInventoryRequest,在设置名称中点击后面的“…”按钮,打开转换配置界面,选择现有映射,并在完全限定的映射名称中点击下拉框选择InventoryUpdate.Orchestrations.StoreInventoryUpdate_to_SqlUpdateInventoryRequest,之后在源中选择msgStoreInventoryUpdate,在目标中设置msgUpdateDatabaseReq.parameters,点击确定。
8. 在端口图面中右键点击新建配置的端口->设置名称为GetUpdates->新建端口类型,将端口类型命名为InventoryUpdatePortType,通信模式选择单向->通信方向选择始终在此端口上接收消息->完成。之后将GetUpdates端口与Inventory Update接收控件相连。
9. 按照上述方法再创建另一个端口->设置名称为UpdateDatabase->点击使用现有端口类型并选择Inventory.Orchestration.Procedures_dbo->通信方向选择始终在此端口上发送消息。之后将端口的Request连接到Update Database Request,将端口的Response连接到Update Database Response。
部署和测试
至此我们已经设计好了业务流程,现在我们要对该流程进行部署和进一步的配置,在配置好之后,我们会使用测试消息来看一下BizTalk与SQL之间是如何交互的。
1. 在解决方案资源管理器中,右键点击InventoryUpdate解决方案,选择部署解决方案。部署好之后,打开BizTalk Server管理->右键InventoryUpdate应用程序->点击配置->选择UpdateStoreInventoryTestHarness流程->选择主机为BizTalkServerApplication->设置该流程上逻辑端口 GetUpdates,选择新建接收端口,打开接收端口属性窗口->设置名称为InventoryUpdates->选择接收位置,点击新建,打开接受位置属性窗口,设置名称为InventoryUpdates_FILE->设置传输类型为FILE并点击配置按钮打开FILE传输属性窗口->设置接收文件夹路径为C:/BizTalk2010Labs/Labs/Integration/WCF-SQL/In->点击确定->设置接收管道为XMLReceive。
2. 配置WCF-SQL发送端口。在配置应用程序窗口中配置输出端口,选择新建发送端口->在发送端口属性窗口中,设置名称为UpdateInventoryDatabase_WCF-SQL->设置传输类型为WCF-SQL并点击配置按钮打开WCF-SQL传输属性窗口->点击配置按钮,制定Server为localhost,InitialCatalog为TailspinToys数据库->设置SOAP操作头为Procedure/dbo/sp_UpdateInventory->设置接收管道为XMLReceive->点击确定完成对WCF-SQL端口的配置。
测试流程
1. 在BizTalk管理控制台中启用InventoryUpdate应用,之后我们准备了一个XML文件,来模拟从POS系统发出一个消息,这个消息会减少编号为1234的仓库中产品的数量。
2. 先来看一下仓库编号为1234所对应的数据表在更新之前的内容。
3. 现在我们把准备好的这个XML消息放到上面配置好的接收端口所监听的文件夹In当中,并回到BizTalk管理控制台查看事件查看器,还记得之前在流程当中使用表达式控件来通过代码记录接收消息后记录在日志中的操作么?我们现在能够看到有两条来自流程当中的消息被记录到了日志中,这是流程告诉我们它当前已经处理的结果。
4. 通过日志可以证明这条来自POS系统发出的用来减少存库库存量的消息已经传入到我们的流程当中,现在我们回到数据表中看看产品的数量是按照XML消息中描述的那样,减少了1个商品。
5. 我们在用另外一个消息来验证一下,这回传入一个消息,调用SQL存储过程,将仓库表中的商品量增加10个,注意通过刚才第一次的测试,ID为1号的商品数量目前是99个,如果我们这次通过消息增加10个,那么应该是99+10=109个,下面我们来看一下结果吧。
分享到:
相关推荐
BizTalk Server 2006 BizTalk Server 2006
Installing BizTalk Server 2010 and BAM in a Multi-Computer Environment
Biztalk中使用SQL适配器获取sql server 2008数据库数据并用web服务发布
本文对BizTalk Server 2010进行介绍,其中就如何设置仪表板达到简化的调试和复制,利用System Center Operations Manager (SCOM) 管理包轻松监控和查错,BizTalk Server 2010安装和升级的改进和其他管理功能的改进...
BizTalk Server2004 白皮书 BizTalk Server2004 白皮书
BizTalk server 2009 sample 企业应用程序集成 采购订单流程 发票和付款流程 业务活动监视
Chapter 1, Introducing BizTalk Server 2010: This chapter introduces the reader to BizTalk Server, its capabilities, and internal architecture in an abstract manner. It introduces fundamentals of ...
Biztalk Server 2009 视频1
BizTalk Server 2010安装环境要求和配置步骤
Microsoft BizTalk Server 2010 (70-595) Certification Guide
对于存储,BizTalk Server 可以使用最新版本的 Microsoft 旗舰数据库产品 SQL Server 2008 R2。BizTalk Server 2010 还可以在 64 位 Windows Server 上运行,以便充分利用此新一代硬件所提供的更大内存和其他优点。
Biztalk Server 2009 视频 pdf
BizTalk Server 2009 WCF SQL适配器SQL Server查询通知
BizTalk Server 2009的中文白皮书
1.BizTalk Server 2004 教程(中文) (BTS2004Tutorial_...2.BizTalk Server 2004 教程(英文) (BTS2004Tutorial_EN.exe) 2.Microsoft BizTalk Server 2004安装与配置步骤。 3.BizTalk Server 2004 Installation.htm
微软刚发布的BizTalk Server RFID 2009 (x86 and x64) MSDN中文版 cn_biztalk_server_rfid_2009_x64_x86_cd_x15-51631.iso 用自己的帐号下载的,不多讨论真实性 仅为技术交流,请勿商用。
#BizTalk Server-开发集成解决方案##概述本课程适用于将要使用Microsoft BizTalk Server的系统开发人员。 我们将在集成的上下文中介绍概念和技术,并提供有关Microsoft集成环境的概述。 受众群体资料 本课程适用于...
The centerpiece of Microsoft's .NET initiative, BizTalk Server 2000 aims to solve one of the perennial bugbears of the corporate programmer. By the judicious application of XML messaging (under the ...
服务器产品,功能包括业务流程自动化,业务流程管理,企业应用集成以及企业之间的集成
BizTalk Server 2006 Installation Guide - Windows XP