对业务流程管理解决方案进行版本控制
业务流程管理解决方案的设计使您可以根据需要替换阶段。 该设计还提供了架构版本控制的更简易方法。
有关将业务流程划分为多个阶段的信息,请参阅 业务流程管理解决方案中的一些设计原则。
注意
解决方案的元素高度依赖于消息结构。 更改消息结构将需要对业务流程进行大量更改。
有关更新已部署解决方案中的程序集的一般说明和编写脚本以处理更新的准则,请参阅 更新 BizTalk 应用程序。
添加、替换或删除阶段
订单处理阶段业务流程包含两种类型的代码:实现业务流程的代码和提供基础结构的代码,以便它可以在解决方案中运行。 在两个阶段业务流程 (CableOrder1 和 CableOrder2)中,业务流程代码位于标记为“业务处理”的组形状内。
创建新阶段最简单的方法是复制其中一个阶段,使用您的代码替换“业务处理”组中的代码,并保留基础结构代码不变。
注意
CableOrder2 业务流程有两个“业务处理”组,第二个组围绕“更新历史记录发送”形状。 发送形状是有效发送作用域的组成部分。 (有关详细信息,请参阅 OrderBroker Orchestration 中的处理中的“使用嵌套作用域提高性能”。) 由于组形状不能与作用域形状的一部分重叠,第二个组被标记为指示它是业务流程代码的一部分。
必须按新业务流程在序列中的编号来设置其筛选器表达式。 OrderManager 假设阶段编号以 1 开头,然后为每个后续阶段 (1、2、3 ...) 增加一个。 若要筛选第三个阶段,则应将筛选器表达式设置为:
(Microsoft.Samples.BizTalk.SouthridgeVidoe.Schemas.Stage == 3)
解决方案使用 BAM API 来跟踪解决方案中的事件,包括订单处理阶段。 第一个阶段将启动 BAM 活动;最后一个阶段则结束该活动。 如果有异常,则解决方案中的处理程序将结束所涉及的 BAM 活动。 BAM 将不连续的操作有效地重新组装成连续的视图,以便进行监视。
更改配置
如果所做更改增加或减少了阶段数,则必须更改存储在企业单一登录 (SSO) 密钥存储区中的配置信息。
如果尚未部署应用程序,可以在 CreateSouthridgeVideoApplication.cmd 脚本文件中修改 TotalStages 的配置设置。 在部署期间运行该脚本时,该值将发生更改。
如果已经部署应用程序,则可以通过运行命令行实用工具 BTSScnSSOApplicationConfig(位于 SDK\Common\SsoApplicationConfig 文件夹中)来更改值。 若要将阶段的总数设置为三,请使用以下命令行:
BTSScnSSOApplicationConfig -set SouthRidgeVideo.CableOrder ConfigProperties TotalStages 3
由于解决方案缓存配置值,因此必须等到刷新间隔过后,新值才会生效。
对架构的版本控制
BizTalk 从包含它的最新版本的程序集中获取架构。 这意味着,如果创建新版本的架构,则它会完全替换所有以前版本的架构。 此操作在事务寿命很短时能够正常工作。 但是,业务流程管理解决方案中的事务寿命很长:订单可能需要一年时间才能完成。
为了允许使用正在使用的架构的多个版本,解决方案中的每个架构在其命名空间中都包括版本号。 例如,订单架构的命名空间如下所示:
http://Microsoft.Samples.BizTalk.SouthridgeVideo.Schemas.Order.v1
由于命名空间标识架构,并且通过包括版本号使命名空间对于架构来说是唯一的,新的架构有别于旧版本。 因此,无需取代旧架构就可以使用新架构。