[BTS]WSS+InfoPath+BizTalk 案例


[BTS]WSS+InfoPath+BizTalk 案例


一.目的

      通过本文的学习,将带你进入BizTalk与WSS进行整合,完成一次简单的工作流程开发过程。了解BizTalk流程开发的基本过程,了解WSS+InfoPath的应用,了解InfoPath的使用方法,熟悉BizTalk WSS Adapter的使用方法。

二.背景

1.名词解释

WSS
    Windows SharePoint Services 是一个用来创建能够实现信息共享和文档协作的Web站点的引擎,从而有助于提高个人和团队的生产力。它是Microsoft Windows Server™ 2003中所提供的信息工作者体系结构的重要组成部分, 为Microsoft Office System和其他的桌面应用程序提供了附加的功能,并能够作为应用程序开发的平台。

InfoPath

    InfoPath 2003—Office System 中的新产品—是一个功能强大的程序,它使团队和公司能够通过丰富、动态的表单,高效地收集他们所需的信息。因为 InfoPath 支持使用任何客户定义架构的行业标准的可扩展标记语言 (XML),所以可以在整个企业内和在业务进程之间轻松重用收集到的信息。XML 支持使 InfoPath 用户可以在公司间和业务进程间共享信息,以获得更大的业务影响。

BizTalk
    Schema, Pipeline, Adapter, Orchestration, Mapping, Rule, BAM

2.运行环境

Server :
    windows 2003 server sp2 , sql server 2005, BizTalk 2006 , IIS , WSS2.0, Office 2003

Client :
    Windows XP , Office 2003

三.需求分析

1.处理流程

      如果非常详细的写,可以写一份《软件需求说明书》了,这里只把最关键的流程图放在这里。



2.数据定义

采购订单:订单号,填写人,采购产品名称,采购数量,单价,备注,时间
查看生产计划:订单号,产品名称,数量,备注
完成的订单:订单号,填写人,采购产品名称,采购数量,单价,总价,备注
取货表单:订单号,填写人,采购产品名称,采购数量,单价,备注,填写时间,完成时间

3.规则定义

如果订单中产品数量大于50件时,需要通知生产厂家进行生产后,将生产后的产品直接发给销售代理。

4.要求

全部数据保存在WSS的文档库中即可。

四.程序开发

很多BizTalk初学者与我当初一样,不知如何下手,其实,biztalk开发与一般的程序开发基本一样,只是使用的工具不同而已。

与程序开发一样,首先要明确用户需求,从用户需求中找到可以流程化的东西。然后确认用户现有系统中可以提供的接口有哪些,这也是为EAI做准备,缺的接口就找人或自己开发好。biztalk是基于消息的,所以,要根据需求中确定的数据定义来定义流程中要使用到的消息体(schema),以及明确消息之间的关系(map)。根据与各接口对接的方式,选择不同的adapter进行连接。根据业务流程的定义,就可以很快的把Orchestration画好。最后几步当然是部署、测试。

1.消息定义

注意:如果为了后面用到数据有效果验证,以及InfoPath自动生成控件,请为每一个Field设置正确的数据类型。

客户订单

生产计划(用state标记生产结束)

取货单

2. 升级属性

目的:.................................

创建Order的属性定义

属性定义(取关键性字段)

升级消息中对应的字段

 

 

其他几个消息也按同样规则定义好相应的属性。

3. 在WSS上建好对应的文档库

 

 

 

 

4. 使用InfoPath定制表单

 

 

点击保存后,选择发布

 

 

 

 

 

 

最完点击完成。

重复上面的步骤,完成其它两个Form表单的设计及发部。

5. 开发流程

根据前面的需求,定制Orchestration。
 

注意,这里用到了相关性概念(会在以后介绍),先按1,2,3顺序操作。

6. 部署、配置

RcvOrderPort 配置

SndProducePort 配置

RcvProduceResponsePort 配置
 

SndGoodsPort 配置
 

五. 测试

新建一个订单

 

理论上可以按原流程设计走通。

但当前进行测试时发现流程中有逻辑上的问题;

1. 发送到Produce_Form中后,又有一接收端口从这里取数据,这个地方有点问题,觉得应该再增加一个Form用来存ProduceResponse,然后从这个FormList中取数据。

2. 由于定义的Produce_XML的FinishTime类型是xs:datetime,所以生成的InfoPath表单无法打开从SndProducePort发过来的xml,因为这时FinishTime无值。InfoPath会发出警告。

所以整合流程只走通了count < 50 的那部分。

 

 

六. 总结

      本次实验虽然没有完全成功,但主要是为了介绍一下biztalk + infopath + sps 的一个开发方法,希望能从这个案例中明确使用biztalk进行开发的整体步骤。
      下一回会重点研究一下BAM在本流程中的应用,以及InfoPath的相关开技术。

原文地址:https://www.cnblogs.com/xuzhong/p/1057873.html