一步一步部署微软工作流解决方案(MWMS)到生产环境
我向微软申请了MWMS,可拿到CD时解压不了,连DEMO环境都部署不了,要微软换吧,先叫我退回CD再寄,晕了...
于是我从网上下了原码,心想我用源码来搞吧,不要你的DEMO了,想从网上找相关的部署--没有,只好自己开始了...................
一准备
先把网上下载源码,安装好VS2008,INFOPATH,SHAREPOINT DESGIGNER 2007当然还有MOSS 2007环境.
二安装MWMSWORKFLOW数据库
先把网上的源码解压,里面有个文件 <<微软工作流解决方案技术手册.docx>> 在最后有关数据库的SQL,COPY下来.
- USE [MWMSWorkflow]
- GO
- /****** 对象: Table [dbo].[ApprovalLog] 脚本日期: 03/24/2008 02:57:56 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE TABLE [dbo].[ApprovalLog](
- [ID] [int] IDENTITY(1,1) NOT NULL,
- [WorkflowTemplateID] [int] NOT NULL,
- [ListID] [uniqueidentifier] NOT NULL,
- [ItemID] [int] NOT NULL,
- [WorkflowID] [uniqueidentifier] NOT NULL,
- [CurrentLevel] [int] NOT NULL CONSTRAINT [DF_ApprovalLog_CurrentLevel] DEFAULT ((0)),
- [ApprovalFileName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [ApplicantID] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [ApplicantDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
- [StartDate] [datetime] NULL,
- [EndDate] [datetime] NULL,
- [Result] [int] NOT NULL,
- [Detail] [text] COLLATE Chinese_PRC_CI_AS NULL
- ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
- GO
- /****** 对象: Table [dbo].[MailTemplet] 脚本日期: 03/24/2008 02:57:56 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE TABLE [dbo].[MailTemplet](
- [MailTempletID] [int] IDENTITY(1,1) NOT NULL,
- [MailTempletName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [MailTo] [text] COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_MailTemplet_MailTo] DEFAULT (''),
- [MailFrom] [text] COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_MailTemplet_MailFrom] DEFAULT (''),
- [MailCC] [text] COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_MailTemplet_MailCC] DEFAULT (''),
- [MailSubject] [text] COLLATE Chinese_PRC_CI_AS NOT NULL,
- [MailBody] [text] COLLATE Chinese_PRC_CI_AS NOT NULL
- ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
- GO
- /****** 对象: Table [dbo].[ProxyList] 脚本日期: 03/24/2008 02:57:56 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE TABLE [dbo].[ProxyList](
- [ID] [int] IDENTITY(1,1) NOT NULL,
- [PersonDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [ProxyDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [UseProxyFlag] [int] NOT NULL CONSTRAINT [DF_ProxyList_UserProxyFlag] DEFAULT ((0))
- ) ON [PRIMARY]
- GO
- /****** 对象: Table [dbo].[WorkflowHistoryLog] 脚本日期: 03/24/2008 02:57:56 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- SET ANSI_PADDING ON
- GO
- CREATE TABLE [dbo].[WorkflowHistoryLog](
- [ID] [int] IDENTITY(1,1) NOT NULL,
- [ListID] [uniqueidentifier] NOT NULL,
- [WorkflowID] [uniqueidentifier] NOT NULL,
- [ItemID] [int] NOT NULL,
- [TaskID] [int] NOT NULL,
- [CurrentLevel] [int] NOT NULL CONSTRAINT [DF_WorkflowHistoryLog_CurrentLevel] DEFAULT ((0)),
- [ActionXml] [char](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_WorkflowHistoryLog_ActionXml] DEFAULT (''),
- [TaskName] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
- [Creator] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [CreatorDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
- [AssignedTo] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [AssingedToDisplayName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
- [StartDate] [datetime] NOT NULL,
- [EndDate] [datetime] NULL,
- [DueTime] [datetime] NULL,
- [Status] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
- [PercentComplete] [int] NOT NULL CONSTRAINT [DF_TaskLog_PercentComplete] DEFAULT ((0)),
- [Result] [int] NOT NULL,
- [Priority] [int] NOT NULL CONSTRAINT [DF_TaskLog_Priority] DEFAULT ((2)),
- [Detail] [text] COLLATE Chinese_PRC_CI_AS NULL,
- [ResultOut] [text] COLLATE Chinese_PRC_CI_AS NULL,
- [CommitText] [text] COLLATE Chinese_PRC_CI_AS NULL
- ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
- GO
- SET ANSI_PADDING OFF
- GO
- /****** 对象: Table [dbo].[WorkFlowTemplets] 脚本日期: 03/24/2008 02:57:56 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE TABLE [dbo].[WorkFlowTemplets](
- [WorkflowTempletID] [int] IDENTITY(1,1) NOT NULL,
- [WorkflowTempletName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [WorkflowTempletXML] [text] COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_WorkFlowConfigure_WorkflowConfigXML] DEFAULT (''),
- [CreateBy] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
- [Shared] [int] NULL CONSTRAINT [DF_WorkFlowTemplets_Shared] DEFAULT ((0))
- ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
复制代码
在SQL 2005中创建名为MwmsWorkFlow的数据库,然后把COPY的SQL语句在查询中执行,生成相关的表.
approvalog(审批日志
MAILTEMPLET(邮件模板)
ProxyList(代理人日志)
WorkFlowHistorylog(工作流日志)
WorkFlowTemplets(工作流模板)
三 开始做MWMS的管理网站.
1 先把源码中的CODE\LAYOUTS中的,MWMSFORMSERVER.ASPX,WRKTASKIP.ASPX两个文件COPY到您的网站集中的\LAYOUTS中去吧
2 在你的网站集中用SHAREPOINT DESGIGNER 2007创建一个网站名为MWMS.
3 打开CODES\MWMS,打开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:\Inetpub\wwwroot\wss\VirtualDirectories\80):WEB.CONFIG
4.1加入<SafeControl Assembly="MWMS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=46334fc4408228b2" Namespace="MWMS" TypeName="*" Safe="True" />
PUBLICKEYTOKEN改为在第3步你所生成的
4.2 找到<PageParserPaths>,在中间加入
<PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" />
4.3 COPY MWMS.DLL到你的网站BIN目录下吧.
5 修改BACONFIG.XML
这里我又卡了,原因这个文件是跟MWMS.WORKFLOW一起安装的,可这个文件在在执行时是生成到WINDOWS\TEMP目录下
如果你不能连接到数据库,就把这个文件修改后COPY到服务器WINDOWS\TEMP目录下
<MWMS>
<DBConnectionString>Data Source=数据库服务器名;Initial Catalog=MWMSWorkflow;Integrated Security=SSPI;</DBConnectionString>
<SharepointDBConnLib>你网站MWMS</SharepointDBConnLib>
<SiteUrl>你的网站集</SiteUrl>
</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找到源码下的codes\ProgramSolution\MWMS.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:\SOURCE\MYSCHEMA.CS
1.4.2 MYSCHEMA.CS 改名为startWF1.cs COPY到你codes\ProgramSolution\MWMS.Workflow 把原来的覆盖掉
2 重新BUILD MWMS.WORKFLOW
3 修改你INSTALL.BAT
找到 -url http://server:9000,修改成你的网站URL吧
4 把你的BACONFIG.XMLCOPY 到codes\ProgramSolution\MWMS.Workflow
5 可以安装MWMS.WORKFLOW了,按INSTALL ,..看有没有出错,没出错就OK了.
接下来的事就是...测试了这个MWMS.WORKFLOW了....完
转载于:https://blog.51cto.com/yerik/373400
一步一步部署微软工作流解决方案(MWMS)到生产环境相关推荐
- 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...
通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...
- Yearning SQL审核平台部署与使用 详细步骤【生产环境】
文章目录 前言 版本选择 一.数据库环境准备 1.卸载自带的mysql源 2.安装mysql-5.7.38 3.登录数据库并设置密码策略修改默认密码 4.创建Yearning要使用的数据库 二.部署Y ...
- 创建、部署和卸载SharePoint工作流解决方案包(WSP)
在Visual Studio 2005时代,Visual Studio的插件提供了一个批处理文件(*.bat)来部署SharePoint工作流:在Visual Studio 2008时代,Visual ...
- PaddleOCR——Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案
PaddleOCR--Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案 官方文档 环境配置 Step1: 下载PaddlePaddle C++ 预测库 paddle ...
- 一步一步学WF系列(四)——工作流模拟登陆
1. 摘要 我们之前已经熟悉了关于WF的基本概念,相信各位也都跃跃欲试.想步入真正的WF开发. 从本文开始,我们就先来熟悉在WF中的活动. 2. 活动 WF的核心就是一系列的活动. 而工作流就是多个活 ...
- 一步一步教你使用云服务器部署爬虫
一步一步教你使用云服务器部署爬虫 1. 注册阿里云,可以免费试用一个月的云服务器.每天十点0元抢购 2. 点击进入阿里云领取页面 3. 点击管理可以修改密码 4.用显示的公网ip远程登录服务器,默认r ...
- 【Python实战】用Scrapyd把Scrapy爬虫一步一步部署到腾讯云上,有彩蛋
接着之前的几篇文章说. 我把爬虫已经写好了,而且在本地可以运行了. 这个不是最终的目的啊. 我们是要在服务器上运行爬虫. 利用周末,同时腾讯送的7天云服务器体验也快到期了 就在这里再来一篇手把手的将爬 ...
- Linux手动部署nlb步骤,一步一步配置NLB(续)之深入测试
首先,准备一些工具: 1. Fiddler2,用来查看请求的分配情况,当然这个工具还有其他强大的功能,今天,我们只用很小的功能; 其次呢,我们了解一下NLB里面端口规则的设置: a.右键群集--> ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(八)——一步一步教你如何撸Dapr之链路追踪
Dapr提供了一些开箱即用的分布式链路追踪解决方案,今天我们来讲一讲如何通过dapr的configuration来实现非侵入式链路追踪的 目录: 一.通过Dapr实现一个简单的基于.net的微服务电商 ...
最新文章
- R语言ggplot2可视化在lines线图的尾端添加线图标签、并且去除图例实战
- 视频直播网站开发千万不能忘的一个知识点
- python输出特别的矩阵
- 前端答题小游戏_这是什么神奇操作!两个前端一周上线一款联机小游戏
- shell编程之正则表达式
- 架构之路(八)从CurrentUser说起
- Java并发编程实战————可重入内置锁
- oracle改类型吗,详解Oracle修改字段类型方法总结
- Java三种嵌入jsp的方法
- こだわり者いろはちゃん / Iroha's Obsession (暴力枚举)
- ArcGIS与地理加权回归GWR【二】以及MGWR软件下载
- sql2000 数据库置疑解决
- select默认选中及赋值问题
- 如何用Matlab求极限
- CF机器码怎么解-LOL机器码怎么改?(最详细教程CX)
- 城市数据大脑:小汽车儿堵成翔?NONONO!
- Pytorch学习率调整策略
- 做国外广告联盟:你要学会这些运作方法
- 四种Linux硬盘分区方式,首次安装Linux之磁盘分区
- 如何看hbo_哪些设备支持HBO Max? Roku和Amazon Fire TV不要