崔文远 Troy Cui 老崔先生的上海生活、技术博客

Flowportal中OnBatchApproved的一条血的教训

第一版的时候因为用户需要增加了一个批量审批的事件,如果批量审批,某个字段统一设为No,后来流程变更,这块忘记了,用户汇报问题,跟踪调试了2周,才想起来这里的设定,真是血的教训。


FlowPortal.Net BPM的类库之Context上下文:Current

近期做了个FlowPortal的技术交流,有个关于流程自动生成的自定义流水号要保存到业务表的问题,当时没准备这块涉及如此底层类库的信息,不得不在这里补充一下。

先说一下我常用到的:

  1. Context.Current.Task.SerialNum - 当前流程任务的流水号

  2. Context.Current.ClientIP - 当前登录用户的IP地址

More...

FlowPortal.Net中写代码自定义步骤处理人

就写写代码,大家参考一下。

if (Convert.ToString(FormDataSet["FormManpower.Location"]).Contains("SHANGHAI"))
{
return Role.FromFullName("BPMOU://Shanghai/HR Specialist").Members;
}
else if (Convert.ToString(FormDataSet["FormManpower.OrderBPCode"]).Contains("BEIJING"))
{
return Role.FromFullName("BPMOU://Beijing/HR Specialist").Members;
}
else
{
return Initiator.GetParentOU("Company").GetAllRoles("HR Specialist").AllMembers;
}


More...

FlowPortal.Net BPM中所有可查看任务的一个权限bug

 姑且称之为bug吧,这个涉及到权限的管理,从记录的时间维度来看,这个地方的确是个bug。我画了一张图,帮助大家理解。

我处理的时候是找到2个特别的组,查看一下 Everyone这个组的记录,删除掉不需要的历史记录即可。

More...

6年做BPM的实施、开发、推广应用的一个小结

晚上加班整理了一下这些年(从2010年就开始使用了)FlowPortal.Net BPM的使用情况,希望能从用户、流程、申请、效率、价值等角度做一些可视化的分析。发现几点有趣的现象。

1、真正用得多的流程都是跟员工利益有重大关系的。
2、有一些流程只是为了帮助一小部分人考虑的时候,产生的效益其实不大。
3、没有一个独立的流程管控部门,不做绩效分析、流程梳理和优化,其实很难达到提高效率的目标,顶多只是电子化,无纸化。
4、做流程很寂寞,需要坚守并打开思路。思考如何做的更好,不能单纯从技术角度考虑。得从老板的角度考虑钱、时间、资源、效率。

More...

Flowportal.Net BPM中拒绝后更新数据库字段的方法

今天FlowPortal.Net群里有人提问一个问题,希望能在流程被拒绝后,更改流程对应数据库中的指定字段值,这个其实很简单啦,FlowPortal提供了很强大的流程事件,大家可以自行写代码。

请问,流程拒绝后,如何更改流程字段

例如:流程提交收 字段a 有空,改为 ‘申请中’,同意后,A改为 ‘同意’,如果拒绝 A 改为 空

打开“流程管理器”右键点击指定的流程,点击"Event"的Tab,就能看到丰富的事件,我常用的有OnTaskRejected、OnTaskAborted、OnTaskDeleted,其实这几项我实战项目中必须要配置的。

最关键的就是代码的写法,大家参考以下代码。其中FormHire是你流程对应的表(我这个例子是非重复表)名,Status是其中的字段。


FormDataSet.Tables["FormHire"].Rows[0]["Status"] = "Rejected";


补充:后来快乐DIY问我:如果是重复表呢,好吧,做好人做到底,这个代码不管重复表还是不重复表都行:FromDataSet.Tables["tableName.FieldName"]="Reject";


简单吧?!如果觉得有用,就留下你的大名,留言给我你的感触。

多公司下Flowportal.Net BPM流程步骤处理人的设定

6月份以来随着ERP系统的升级上线,忙得不可开交,但因为公司组织机构变动,还是得花时间弄BPM的流程审批人的问题,为了一套流程同行所有的中国区的组织,我们使用角色的定义来设定流程。其中一个典型的是出差申请,其中一个步骤是给到申请人和同行人所在的部门最大的老板审批,我们在BPM的每个Company级别下的组织架构下开设Department级别的部门,然后在每个部门设定一个Department Head的角色。但是在设定步骤审批人的时候,使用以下代码代表当前申请人所在部门的Department Head。

More...