Windows 2008 计划任务的小问题,害人不浅呀

写了个Windows Form程序来产生XML文件,利用Flowportal.Net的BPM的文件触发流程,在本地和服务器上手工执行都没问题,但是设定了计划任务以后,看到任务历史记录执行成功,文件却怎么也没有生成,害人不浅呀。

看图你就懂了,如果要生成文件啥的,千万要设定这个运行起始位置,别以为它真的是可选项。

因为我用System用户,所以没有登录用户的问题,不过建议你看看这两篇文章:

关于window2008计划任务我想说
Win2008任务计划执行问题

分享几个Flowportal.Net BPM中的几个有用的Sql语句

第一个要分享的是获取当前的申请状态以及当前的处理人,虽然我们很容易通过BPMInstProcSteps这张表找到FinishAt is Null的记录,但是如果直接用2表的关联查询会有并行流程的问题,另外当你把自己的申请数据独立开来,做跨数据的关联就有些不直观,索性写一个函数GetBPMCurrentStep(@TaskID),使用方法很简单,直接在自己的视图里面使用就行。

USE [WAIWorkflow]
GO
/****** Object:  UserDefinedFunction [dbo].[GetBPMCurrentStep]    Script Date: 05/24/2011 14:34:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GetBPMCurrentStep](@TaskID nvarchar(50))
RETURNS nvarchar(Max)
AS
BEGIN
    DECLARE @r nvarchar(Max)
    SET @r = ''
    SELECT @r = @r + ',' + NodeName + '('+ OwnerAccount+')'
    FROM [BPMDB].[dbo].[BPMInstProcSteps]
    WHERE TaskID=@TaskID
  AND  [FinishAt] is null
  RETURN STUFF(@r, 1, 1, '')
END

第二个要分享的就是每个申请的摘要信息(下图),这个信息根据用户的需要可能需要增加一些字段或者删除一些字段,但是当更改以后,只对新的申请有效。老的申请只能通过自己写Sql后台运行,其实也不难,把自己的所有申请用到的表列出来,每个流程写一段语句,批量执行就行了。

--更新 NPD 的Task Description
update [BPMDB].[dbo].BPMInstTaskssetDescription = b.WAI_PN + ',' + b.Lester_Number
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormNPD b
where
a.TaskID=b.TaskID
--更新 FormADandEmail 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormADandEmail b
where
a.TaskID=b.TaskID
--更新 FormBaanSession 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormBaanSession b
where
a.TaskID=b.TaskID
--更新 FormComputer 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormComputer b
wherea.TaskID=b.TaskID
--更新 FormEmployeeOnBoard 的Task Description
update [BPMDB].[dbo].BPMInstTasksset
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormEmployeeOnBoard b
where
a.TaskID=b.TaskID
--更新 FormEmployeeResignation 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormEmployeeResignation b
where
a.TaskID=b.TaskID
--更新 FormSeat 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormSeat b
where
a.TaskID=b.TaskID
--更新 FormShortNumber 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName+ ',' + b.Mobile
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormShortNumber b
where
a.TaskID=b.TaskID
--更新 FormTelephone 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormTelephone b
wherea.TaskID=b.TaskID
--更新 FormVPN 的Task Descriptionupdate [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormVPN b
where
a.TaskID=b.TaskID
--更新 FormWirelessCard 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormWirelessCard b
where
a.TaskID=b.TaskID

在Windows 2008 R2环境安装Flowportal.Net BPM的注意事项

由于Windows 2008 R2是64位的操作系统,我们的Flowportal.Net BPM是32位的应用程序,所以安装的时候有一些注意事项。当然了这里我选择的SQL Server也是64位的2008 R2版本。

IIS安装方面,因为我Windows 2008是安装成Enterprise版本,所以要手工安装,通过Role Manager来安装Web Server(IIS)服务,这样.Net 3.5就自动安装完毕了。

安装完整BPM以后,需要设定一下Applciation Pools:32位程序支持以及应用程序池类型,文字介绍就不说了,参考一下截图吧

最近几周Flowportal.Net的开发应用3点小结

最近几周在使用Flowportal.Net BPM的过程中,遇到了一些问题,相信很多人在开始阶段也会遇到这些问题,整理下来分享给大家。

1、AD集成方面一定要注意IIS里面的Directory Security的验证方式要选择“Integrated Windows Authentication”。同时,Flowportal安装目录下的Server.config要修改如下:如果要取消网页认证的话,把WebLoginEnable修改成False即可。

<webSetting>
<WebLoginEnable>false</WebLoginEnable>
<NTLoginEnable>true</NTLoginEnable>
</webSetting>

2、通过以下操作在邮件中添加审批的按钮

1、在系统表BPMSysSettings中增加一行记录ItemName = ClickToProcessHTTP,ItemValue=http://IP Address/BPM/XMLService/ClickToProcess.aspx

2、在流程的邮件提醒的内容里加入<%=Context.Current.CreateProcessLinks()%>

3、流程的名称不能太长,超过30位就死翘翘了

在使用Flowportal.Net的过程中还遇到不少小问题,但是一般调整一下都可以自行解决。一个比较大的问题,需要提醒大家的就是当大家创建流程的名称时,不要太长,因为系统的默认字段长度只有30位。如果非要用长流程名,请修改BPMInstTasks和BPMInstProcSteps的ProcessName字段长度。

开始学习BPM业务流程管理软件FlowPortal.net

其实应该在2年前就听说过FlowPortal.net BPM,是老同事Ruiyi推荐的,当时还大概的玩了一下,不过后来公司有足够的人手做.Net开发也就没有继续摸索。因为目前公司的业务需求,从上周开始第二次接触FlowPortal.net BPM,发现以前每次开发Workflow工作流的应用,总要从底层数据库开始,到表单、报表、网页、审批流程…全部都要自己写,就算能重用,重用的只是上次的审批流程代码,很多业务的变化所带来的数据、表单的变化,都需要重来一次。而FlowPortal.net BPM却能带来很省力的快速部署,争取用本周时间内做几个公司内部的应用实例,尽快能正式采购和上线这个应用。

如果您也是做企业内部的.Net开发,也需要做Workflow工作流的应用,有兴趣的话不妨了解一下:FlowPortal.net BPM