演练:模块 3 - 从业务流程中访问 SharePoint 属性

本演练是演练:模块 2 - 将 Office 与Windows SharePoint Services适配器集成的延续,并演示如何在运行时访问传入消息的Windows SharePoint Services上下文属性,然后基于在 中使用动态端口的属性确定该消息的目标编排。 有关 Windows SharePoint Services 适配器的简介,请参阅什么是 Windows SharePoint Services 适配器?

必备条件

以下为执行本主题中步骤的前提条件:

修改 BizTalk 项目

在此过程中,你将修改演练:模块 2 - 将 Office 与 Windows SharePoint Services 适配器集成中的 PurchaseOrder 架构。 此过程说明如何升级架构属性以方便在 BizTalk 业务流程中进行访问。

修改 PurchaseOrder.xsd 架构

  1. 启动 Microsoft Visual Studio

  2. 依次单击“ 文件”、“ 打开”和“ 项目/解决方案”。

  3. 浏览到 OrderProcess.sln 文件,然后单击“ 打开”。

  4. “解决方案资源管理器”中,右键单击OrderProcessSchema.xsd该文件,然后单击“打开”。

  5. BizTalk 编辑器中,展开 PurchaseOrder

  6. 右键单击 , Amount单击“ 升级”,然后单击“ 快速升级”。

  7. 单击 “确定”

    注意

    Visual Studio 在当前项目中为此创建属性架构。

  8. 保存 PurchaseOrder.xsd

创建业务流程

在此过程中将创建新的 BizTalk 业务流程。 此过程创建用于处理由 Windows Sharepoint Services 适配器所接收消息的业务流程。

添加 BizTalk 业务流程

  1. “解决方案资源管理器”中OrderProcess,右键单击项目,单击“添加”,然后单击“新建项”。

  2. “类别”下,选择“ 业务流程文件”。

  3. “模板”下,选择“ BizTalk 业务流程”。

  4. “名称”字段中键入 MyCompanyOrderProcessing ,然后单击“添加”。

创建接收信息

在此过程中,将为业务流程创建新消息、接收端口和接收形状。 此过程说明如何配置接收来自 BizTalk Server 的消息的业务流程。

创建新消息的步骤

  1. “业务流程视图”中,右键单击“ 消息”,然后单击“ 新建消息”。 这将生成名为 Message_1的新消息。

  2. 右键单击 Message_1,单击“ 重命名”,然后键入 Message_PO

  3. 右键单击 , Message_PO然后单击“ 属性窗口”。

  4. “消息类型” 属性中,展开 “架构”,然后选择“ OrderProcess.OrderProcessSchema 架构”。

向业务流程添加接收端口

  1. 在“工具箱”中的 “BizTalk 业务流程 ”下,将 “端口” 形状拖到“端口图面”。 此时将启动端口配置向导。

  2. 在“欢迎”屏幕上,单击下一步

  3. “名称”字段中键入 ReceivePurchaseOrder ,然后单击“下一步”。

  4. 选择“ 创建新的端口类型”。

  5. 在“端口类型名称”字段中键入 PurchaseOrderPT ,然后单击“下一步”。

  6. “端口绑定”屏幕上,保留默认值,然后单击“ 下一步”。

  7. 单击“完成”。

  8. “业务流程视图”的“ 端口类型”下,展开 PurchaseOrderPT 端口类型。

  9. 右键单击 Operation_1,单击“ 重命名”,然后键入 PurchaseOrderOperation

向业务流程添加接收形状

  1. 在“工具箱”中的 “BizTalk 业务流程 ”下,将 “接收” 形状拖到业务流程。

  2. 右键单击“接收”形状,然后单击“ 属性窗口”。

  3. Activate 属性设置为 True

    注意

    如果 activate 属性设置为 false,将收到以下错误:“错误 X2214:必须为非自相关端口上的非激活接收指定至少一个已初始化的关联集”

  4. “名称”字段中键入 Receive_PO

  5. “属性”窗口中,选择 Message_PO “消息”属性。

  6. 选择 ReceivePurchaseOrder.PurchaseOrderOperation.Request操作” 属性。 此操作会将该端口与业务流程设计器中的接收形状关联在一起。

创建发送信息

在此过程中,将为业务流程创建新消息、发送端口和决策结构。 此过程说明如何配置包含决策逻辑的业务流程,以及如何配置向发送端口发送消息的业务流程。

创建新消息的步骤

  1. “业务流程视图”中,右键单击“ 消息”,然后单击“ 新建消息”。 这将生成名为 Message_1的新消息。

  2. 右键单击 Message_1,单击“ 重命名”,然后键入 Message_Task

  3. 右键单击 , Message_Task然后单击“ 属性窗口”。

  4. “消息类型” 属性中,展开 “架构”,然后选择“ OrderProcess.OrderProcessSchema 架构”。

向业务流程添加发送端口

  1. 在“工具箱”中的 “BizTalk 业务流程 ”下,将 “端口” 形状拖到“端口图面”。 此时将启动端口配置向导。

  2. 在“欢迎”屏幕上,单击下一步

  3. “名称”字段中键入 SendPurchaseOrder ,然后单击“下一步”。

  4. 选择“ 使用现有端口类型”。

  5. “可用端口类型”下,选择 OrderProcess.PurchaseOrderPT,然后单击“ 下一步”。

  6. “端口绑定”屏幕上,在“ 通信的端口方向”下,选择 I'll always be sending messages on this port,然后单击“ 下一步”。

  7. 单击“完成”。

向业务流程添加发送形状

  1. 在“工具箱”中的“BizTalk 业务流程”下,将“发送”形状拖到“业务流程”Designer。 将其置于“接收”形状下方 Receive_PO

  2. 右键单击“发送”形状,然后单击“ 属性窗口”。

  3. “名称”字段中键入 Send_PO

  4. 选择 Message_PO消息” 属性。

  5. 选择 SendPurchaseOrder.PurchaseOrderOperation.Request操作” 属性。 此操作会将该端口与业务流程设计器中的发送形状关联在一起。

将判定形状添加到业务流程

  1. 在“工具箱”中的“BizTalk 业务流程”下,将“决定”形状拖到“业务流程”Designer。 将其置于“发送”形状下方 Send_PO

  2. 右键单击“决定”形状,然后单击“ 属性窗口”。

  3. “名称”字段中键入 NeedsApproval

  4. 在“业务流程Designer”中,单击“决定”形状上的“Rule_1”。

  5. 在“属性窗口”中,键入 ApprovalRequiredName 属性。

  6. 单击“ 表达式” 属性字段,然后单击省略号 (...) 按钮。

  7. 在 BizTalk 表达式编辑器中,键入或复制以下内容:

    Message_PO(OrderProcess.PropertySchema.Amount) > 1000  
    
  8. 单击 “确定”

向业务流程添加其他发送端口

  1. 在“工具箱”中的 “BizTalk 业务流程 ”下,将 “端口” 形状拖到“端口图面”。 此时将启动端口配置向导。

  2. 在“欢迎”屏幕上,单击下一步

  3. “名称”字段中键入SendToTasksList,然后单击“下一步”。

  4. 选择“ 使用现有端口类型”。

  5. “可用端口类型”下,选择 OrderProcess.PurchaseOrderPT,然后单击“ 下一步”。

  6. “端口绑定”屏幕上,在“通信的端口方向”下,选择 。I'll always be sending messages on this port

  7. 在“ 端口绑定”下,选择 Dynamic,然后单击“ 下一步”。

  8. 单击“完成”。

向判定形状添加发送形状

  1. 在“工具箱”中的“BizTalk 业务流程”下,将“发送”形状拖到业务流程Designer。 将其放在形状下方 ApprovalRequired

  2. 右键单击“发送”形状,然后单击“属性窗口

  3. “名称”字段中键入 CreateApprovalTask

  4. 选择 Message_TaskMessage” 属性。

  5. 选择 SendToTasksList.PurchaseOrderOperation.Request操作” 属性。 此操作会将该端口与业务流程设计器中的发送形状关联在一起。

创建表达式

在此过程中,将向解决方案中添加可将任务路径值赋予变量的表达式形状。 此过程说明如何向业务流程添加逻辑以修改动态发送端口的属性。

创建新的表达式

  1. 在“工具箱”中的 BizTalk 业务流程 下,将 表达式 形状拖到“发送” CreateApprovalTask 形状之前。

  2. 右键单击“表达式”形状,然后单击“ 属性窗口”。

  3. “名称”字段中键入 SetPortDestination

  4. 单击“ 表达式 ”属性字段,然后单击省略号 (...) 按钮。

  5. BizTalk 表达式编辑器中,键入以下内容:

    SendToTasksList(Microsoft.XLANGs.BaseTypes.Address) = "wss://localhost/sites/WSSAdapterWalkthrough/Lists/Tasks/";  
    
  6. 单击 “确定”

构造新消息

在此过程中,将向解决方案中添加构造形状,该形状将在业务流程内构造消息类型的新实例。 此过程说明如何创建作为入站消息副本的新消息,以及接下来如何修改该新消息的上下文属性。 此步骤是必需的,因为消息在 BizTalk 中是不可改变的,也就是说,在你构造原始消息之后,就不能修改原始消息了。

添加构造形状

  1. 在“工具箱”中的 “BizTalk 业务流程 ”下,将 “构造消息” 形状拖到“表达式” SetPortDestination 形状之前。

  2. 右键单击“构造消息”形状,然后单击“ 属性窗口”。

  3. “名称”字段中键入 ConstructTaskMessage

  4. 选择 Message_Task消息构造” 属性。

  5. 在“工具箱”中的 “BizTalk 业务流程 ”下,将 “消息分配” 形状拖动到“ ConstructTaskMessage构造消息” 形状中。

  6. “属性窗口”中,键入InitTaskMessage“名称”字段。

  7. 单击“ 表达式 ”属性字段,然后单击省略号 (...) 按钮。

  8. BizTalk 表达式编辑器中,键入或复制以下内容:

    Message_Task = Message_PO;  
    Message_Task(WSS.ConfigOverwrite) = "no";  
    Message_Task(WSS.ConfigNamespaceAliases)= "orchns='http://OrderProcess.PurchaseOrder'";  
    Message_Task(WSS.ConfigPropertiesXml) = "<ConfigPropertiesXml><PropertyName1>Title</PropertyName1><PropertySource1>Approve %XPATH=//orchns:PurchaseOrder/orchns:PurchaseOrderID%</PropertySource1><PropertyName3>Status</PropertyName3><PropertySource3>Not Started</PropertySource3><PropertyName4>Priority</PropertyName4><PropertySource4>(1) High</PropertySource4></ConfigPropertiesXml>";  
    

    重要

    为这些上下文属性提供的值都是区分大小写的。 在使用上下文属性设置动态端口的配置值时,必须确保使用正确的大小写格式,否则,如果 BizTalk 尝试将文档路由到指定的发送端口,将会出现错误。

  9. 单击 “确定”

  10. 单击“文件” ,然后单击“全部保存” 。

生成 BizTalk 项目

在此过程中,将生成并部署 BizTalk 项目。 此步骤对于创建和部署 BizTalk Server 在运行时使用的程序集来说是必需的。

生成并部署解决方案

  1. 单击“ 生成”,然后单击“ 生成订单”“进程”。

  2. 单击“ 生成”,然后单击“ 部署 OrderProcess”。

  3. 关闭 Microsoft Visual Studio。

修改接收位置和发送端口

在此过程中,将修改现有的接收位置和发送端口,以便对管道使用 XML 处理。 接收 XML 管道保持在业务流程处理过程中所使用的消息属性,发送 XML 管道保持在业务流程中应用的消息属性,这些消息属性随后将用于消息路由。

修改接收位置

  1. 单击“开始”,指向“所有程序”,指向“MicrosoftBizTalk Server”,然后单击“BizTalk Server管理”。

  2. 依次展开 MicrosoftBizTalk Server管理 SnapInBizTalk 组应用程序BizTalk 应用程序 1,然后单击“接收位置”节点。

  3. 右键单击 SourceLocation,然后单击“ 属性”。

  4. 在“接收位置属性”对话框的“常规”下,选择“XMLReceive接收管道”属性。

  5. 单击 “确定”

修改发送端口

  1. 单击“ 发送端口” 节点。

  2. 右键单击 SendToDestination,然后单击“ 属性”。

  3. 在“发送端口属性”对话框的“常规”下,选择“XMLTransmit发送管道”属性。

  4. 选择“ 筛选器 ”选项卡。

  5. 选择现有条件,按 DELETE,然后单击“ 确定”。

启动新的发送端口

  1. 单击“ 发送端口” 节点。

  2. 右键单击 , OrderProcess_1.0.0.0_OrderProcess.MyCompanyOrderProcess_SendToTasksList_<GUID>然后单击“ 开始”。

注意

如果此项不可见,则可能必须刷新控制台。

绑定业务流程的步骤

在此过程中,将业务流程绑定到指定端口。 此过程对于将物理端口绑定到你构建并部署的业务流程是必需的。

绑定业务流程的步骤

  1. 在“BizTalk Server管理控制台”中,单击“业务流程”节点。

  2. 右键单击业务流程 OrderProcess.MyCompanyOrderProcessing ,然后单击“ 属性”。

  3. 选择“ 绑定 ”选项卡。

  4. “主机”下,在“主机”字段中选择BizTalkServerApplication

  5. 在“ 绑定”下,选择 FromSourceReceivePurchaseOrder 入站逻辑端口”。

  6. 在“ 绑定”下,选择 SendToDestinationSendPurchaseOrder 出站逻辑端口”。

  7. 单击 “确定”

  8. 右键单击“业务流程” OrderProcess.MyCompanyOrderProcessing ,然后单击“ 启动”。

通过系统发送消息

在此过程中,将创建 InfoPath 表单并将其上载到 Windows SharePoint Services 网站。 Windows SharePoint Services 适配器将接受该消息并将其存档在存档文档库中,然后将其发送到目标文档库。 在处理此消息的过程中,将访问有助于确定目标的 Windows SharePoint Services 上下文属性。

创建要通过系统发送的 InfoPath 表单

  1. 打开 Web 浏览器并导航到所创建站点的 URL。 例如,http://<server_name>/sites/WSSAdapterWalkthrough

  2. 在“快速启动”菜单中,单击 。InfoPathSolutions

  3. 单击该文件 PurchaseOrder 以显示“ 文件下载 ”对话框,然后单击“ 打开”。 InfoPath 将加载该表单。

  4. “采购订单 ID ”字段中,键入 1003

  5. “帐单给” 字段中,键入 John Doe

  6. 在“ 金额” 字段中,键入 1750

  7. 在“ 采购订单日期” 字段中,键入 1/3/2005

  8. 单击“保存”。

  9. 在“另存为”对话框中,键入http://<server_name>/sites/WSSAdapterWalkthrough/Source“文件名”字段,然后按 Enter。

  10. PurchaseOrder3.xml键入“文件名”字段,然后单击“保存”。

  11. 关闭 InfoPath。

  12. 在 Web 浏览器中,单击“ 文档和列表”。

  13. “文档库”下,单击“ 目标”。

  14. 在目标文档库中,你现在会看到你的消息列在此库中。 你还将在存档文档库中找到存档副本。

  15. 单击 “主页”

  16. “列表”下,单击“ 任务”。

  17. 在“任务”列表中,将看到新创建的批准任务。

注意

由于采购订单金额超过了 1,000.00 美元,因此创建了该任务。

总结

在本演练中,你学习了如何访问 Windows SharePoint Services 上下文属性,以及如何确定经过动态端口的消息的目标。

后续步骤

接下来请学习 Windows SharePoint Services 适配器部分的其余内容。 有关详细信息,请参阅“另请参见”部分中的主题。

另请参阅

Windows SharePoint Services 适配器概述
Windows SharePoint Services 适配器演练