我向微软申请了MWMS,可拿到CD时解压不了,连DEMO环境都部署不了,要微软换吧,先叫我退回CD再寄,晕了...



于是我从网上下了原码,心想我用源码来搞吧,不要你的DEMO了,想从网上找相关的部署--没有,只好自己开始了...................











一准备



   先把网上下载源码,安装好VS2008,INFOPATH,SHAREPOINT DESGIGNER 2007当然还有MOSS 2007环境.



二安装MWMSWORKFLOW数据库



  先把网上的源码解压,里面有个文件 <<微软工作流解决方案技术手册.docx>> 在最后有关数据库的SQL,COPY下来.

  1. USE [MWMSWorkflow]

     
  2. GO

     
  3. /****** 对象:  Table [dbo].[ApprovalLog]    脚本日期: 03/24/2008 02:57:56 ******/

     
  4. SET ANSI_NULLS ON

     
  5. GO

     
  6. SET QUOTED_IDENTIFIER ON

     
  7. GO

     
  8. CREATE TABLE [dbo].[ApprovalLog](

     
  9.         [ID] [int] IDENTITY(1,1) NOT NULL,

     
  10.         [WorkflowTemplateID] [int] NOT NULL,

     
  11.         [ListID] [uniqueidentifier] NOT NULL,

     
  12.         [ItemID] [int] NOT NULL,

     
  13.         [WorkflowID] [uniqueidentifier] NOT NULL,

     
  14.         [CurrentLevel] [int] NOT NULL CONSTRAINT [DF_ApprovalLog_CurrentLevel]  DEFAULT ((0)),

     
  15.         [ApprovalFileName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  16.         [ApplicantID] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  17.         [ApplicantDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

     
  18.         [StartDate] [datetime] NULL,

     
  19.         [EndDate] [datetime] NULL,

     
  20.         [Result] [int] NOT NULL,

     
  21.         [Detail] [text] COLLATE Chinese_PRC_CI_AS NULL

     
  22. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

     


  23.  
  24. GO

     
  25. /****** 对象:  Table [dbo].[MailTemplet]    脚本日期: 03/24/2008 02:57:56 ******/

     
  26. SET ANSI_NULLS ON

     
  27. GO

     
  28. SET QUOTED_IDENTIFIER ON

     
  29. GO

     
  30. CREATE TABLE [dbo].[MailTemplet](

     
  31.         [MailTempletID] [int] IDENTITY(1,1) NOT NULL,

     
  32.         [MailTempletName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  33.         [MailTo] [text] COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_MailTemplet_MailTo]  DEFAULT (''),

     
  34.         [MailFrom] [text] COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_MailTemplet_MailFrom]  DEFAULT (''),

     
  35.         [MailCC] [text] COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_MailTemplet_MailCC]  DEFAULT (''),

     
  36.         [MailSubject] [text] COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  37.         [MailBody] [text] COLLATE Chinese_PRC_CI_AS NOT NULL

     
  38. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

     


  39.  
  40. GO

     
  41. /****** 对象:  Table [dbo].[ProxyList]    脚本日期: 03/24/2008 02:57:56 ******/

     
  42. SET ANSI_NULLS ON

     
  43. GO

     
  44. SET QUOTED_IDENTIFIER ON

     
  45. GO

     
  46. CREATE TABLE [dbo].[ProxyList](

     
  47.         [ID] [int] IDENTITY(1,1) NOT NULL,

     
  48.         [PersonDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  49.         [ProxyDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  50.         [UseProxyFlag] [int] NOT NULL CONSTRAINT [DF_ProxyList_UserProxyFlag]  DEFAULT ((0))

     
  51. ) ON [PRIMARY]

     


  52.  
  53. GO

     
  54. /****** 对象:  Table [dbo].[WorkflowHistoryLog]    脚本日期: 03/24/2008 02:57:56 ******/

     
  55. SET ANSI_NULLS ON

     
  56. GO

     
  57. SET QUOTED_IDENTIFIER ON

     
  58. GO

     
  59. SET ANSI_PADDING ON

     
  60. GO

     
  61. CREATE TABLE [dbo].[WorkflowHistoryLog](

     
  62.         [ID] [int] IDENTITY(1,1) NOT NULL,

     
  63.         [ListID] [uniqueidentifier] NOT NULL,

     
  64.         [WorkflowID] [uniqueidentifier] NOT NULL,

     
  65.         [ItemID] [int] NOT NULL,

     
  66.         [TaskID] [int] NOT NULL,

     
  67.         [CurrentLevel] [int] NOT NULL CONSTRAINT [DF_WorkflowHistoryLog_CurrentLevel]  DEFAULT ((0)),

     
  68.         [ActionXml] [char](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_WorkflowHistoryLog_ActionXml]  DEFAULT (''),

     
  69.         [TaskName] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,

     
  70.         [Creator] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  71.         [CreatorDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

     
  72.         [AssignedTo] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  73.         [AssingedToDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

     
  74.         [StartDate] [datetime] NOT NULL,

     
  75.         [EndDate] [datetime] NULL,

     
  76.         [DueTime] [datetime] NULL,

     
  77.         [Status] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,

     
  78.         [PercentComplete] [int] NOT NULL CONSTRAINT [DF_TaskLog_PercentComplete]  DEFAULT ((0)),

     
  79.         [Result] [int] NOT NULL,

     
  80.         [Priority] [int] NOT NULL CONSTRAINT [DF_TaskLog_Priority]  DEFAULT ((2)),

     
  81.         [Detail] [text] COLLATE Chinese_PRC_CI_AS NULL,

     
  82.         [ResultOut] [text] COLLATE Chinese_PRC_CI_AS NULL,

     
  83.         [CommitText] [text] COLLATE Chinese_PRC_CI_AS NULL

     
  84. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

     


  85.  
  86. GO

     
  87. SET ANSI_PADDING OFF

     
  88. GO

     
  89. /****** 对象:  Table [dbo].[WorkFlowTemplets]    脚本日期: 03/24/2008 02:57:56 ******/

     
  90. SET ANSI_NULLS ON

     
  91. GO

     
  92. SET QUOTED_IDENTIFIER ON

     
  93. GO

     
  94. CREATE TABLE [dbo].[WorkFlowTemplets](

     
  95.         [WorkflowTempletID] [int] IDENTITY(1,1) NOT NULL,

     
  96.         [WorkflowTempletName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,

     
  97.         [WorkflowTempletXML] [text] COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_WorkFlowConfigure_WorkflowConfigXML]  DEFAULT (''),

     
  98.         [CreateBy] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

     
  99.         [Shared] [int] NULL CONSTRAINT [DF_WorkFlowTemplets_Shared]  DEFAULT ((0))

     
  100. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
复制代码

在SQL 2005中创建名为MwmsWorkFlow的数据库,然后把COPY的SQL语句在查询中执行,生成相关的表.



  approvalog(审批日志

  MAILTEMPLET(邮件模板)

  ProxyList(代理人日志)

  WorkFlowHistorylog(工作流日志)

  WorkFlowTemplets(工作流模板)



三  开始做MWMS的管理网站.

  1 先把源码中的CODELAYOUTS中的,MWMSFORMSERVER.ASPX,WRKTASKIP.ASPX两个文件COPY到您的网站集中的LAYOUTS中去吧

  2 在你的网站集中用SHAREPOINT DESGIGNER 2007创建一个网站名为MWMS.

  3 打开CODESMWMS,打开MWMS.SLN方案

    3.1 在VS 2008命令中用 SN -K 生成一个mwms.snk

    3.2 并且放入到此方案下签入

    这里是为了生成PublicKeyToken

    3.3 打开AREDIT.ASPX.CS 找到Server.MapPath(""),改成Server.MapPath("/")

    这里我卡了很久,原因是后面的extract.exe不知道放在哪,本来Server.MapPath("")是放在当前网的当前目录下,可我把这个文件COPY到到处都是,可执行

  AREDIT.ASPX就是出错,没办法改到根目录下吧.

    3.4 重新BUILD方案,生成MWMS.DLL

  4 在应用程序目录下更改(如我的是(c:InetpubwwwrootwssVirtualDirectories80):WEB.CONFIG

    4.1加入

    PUBLICKEYTOKEN改为在第3步你所生成的

    4.2 找到,在中间加入

         

   

    4.3 COPY MWMS.DLL到你的网站BIN目录下吧.

  5 修改BACONFIG.XML

    这里我又卡了,原因这个文件是跟MWMS.WORKFLOW一起安装的,可这个文件在在执行时是生成到WINDOWSTEMP目录下

    如果你不能连接到数据库,就把这个文件修改后COPY到服务器WINDOWSTEMP目录下

   

        Data Source=数据库服务器名;Initial Catalog=MWMSWorkflow;Integrated Security=SSPI;

        你网站MWMS

        你的网站集

   


  6 建立MWMS管理

   6.1 SHAREPOINT DESGIGNER 2007打开您的MWMS

    把下面的文件全部放到MWMS网站下(这些ASPX是管理MWMS的,上传前,请把这些文件中的AutoEventWireup="true"

    ValidateRequest="false" 全部删除)

ANREdit.aspx

AREdit.aspx

BackEdit.aspx

BackEdit.aspx

BRFEdit.aspx

BRTEdit.aspx

ConfigWorkflow.aspx

MTEdit.aspx

MTManagement.aspx

openUrnSel.aspx

ShowMonitor.aspx

WFDesigner.aspx

WFManagement.aspx

WFMonitor.aspx

  6.2 组织这些管理MWMS文件,如何做?我暂时只是做个简单链结,能执行就OK了.

  6.3把EXTRACT.EXT COPY到你的根目录下吧,这是个把INFOPATH的XSN解成XML的文件,没有这个,就无法执行 AREDIT.ASPX的流程条件.

  6.4 把JS,IMAGES下的文件全部上传到你的MWMS网站.有8个JS文件,别搞少了.

   7.建立一个INFOPATH表单库和外部数据库链接库

    7.1首先你得在MWMS网站上建立一个INFOPATH表单库

    7.2在MWMS网站上建立一个外部数据库链接库

     这个是为了以后部署MWMS.WORKFLOW,启动流程链接到MWMSWORKFLOW数据库读流程数据



  8 开始建立流程模板

  8.1.在MWMS上执行MTManagement.aspx,新邮件模板



  8.2 在MWMS上执行WFManagement.aspx,新建流程模板





    到这里基本上所有管理MWMS的基本上就这样了.如果你不能建立流程模板,根据错误找相关原因吧.





四 流程MWMS.WORKFLOW的部署

  1修改STARTWF1.XSN

   1.1找到源码下的codesProgramSolutionMWMS.Workflow的startwf1.xsn用INFOPATH打开设计它

   1.2 按工具下的数据链接 ,删除原的有WORKFLOWTEMPETS

   1.3 重新添加一个叫WORKFLOWTEMPETS的数据连接:

     1.3.1新建 连接---仅接收数据---数据库(SQL)--选择数据库--新建一个SQL连接的ODC---服务器名(MWmsworkflow数据库名)--选择MWmsworkflow数据库和表

  WORKflowtempets---完成--选择数据源结构--(只要这两个WORKflowtempetid,WORKflowtempetnMAE)

     1.3.2 选中你刚建立的连接,按转换--在转换输入:URL(去7.2步中COPY你的数据库URL),成功转换后

     去MWMS网站中看看有没有这个链接(然后批准它)

     1.3.3 在工作流模板中按下接列表WFTEMPLATE属性,在列表框项,选"从外部数据源查找值"---项/dfs:myFields/dfs:dataFields/d:WorkFlowTemplets

     值:@WorkflowTempletID

     显示名:@WorkflowTempletName



     这时你按预览就可以看到你建立的流程模板了.



   1.4 在文件中另存源文件存到C:SOURCE

       1.4.1 开始运行CMD,在命令提示符下 XSD MYSCHEMA.XSD /C 生成文件C:SOURCEMYSCHEMA.CS

       1.4.2 MYSCHEMA.CS 改名为startWF1.cs COPY到你codesProgramSolutionMWMS.Workflow 把原来的覆盖掉

   2 重新BUILD MWMS.WORKFLOW

   3 修改你INSTALL.BAT

    找到 -url http://server:9000,修改成你的网站URL吧

   4 把你的BACONFIG.XMLCOPY 到codesProgramSolutionMWMS.Workflow

   5 可以安装MWMS.WORKFLOW了,按INSTALL ,..看有没有出错,没出错就OK了.



接下来的事就是...测试了这个MWMS.WORKFLOW了....完