linkeybpm-联科BPM 使用总结

  1. 仔细分析需求,注意拆分。如新建修改**流程,要拆分成新建和修改,以应对后续不同的需求;

  2. 流程注意考虑发起条件;

  3. 流程表单页面布局尽量整洁,必输与非必输要有标识;必输要有提示信息;客户没有要求时,必填统一为蓝色字体,和主项目统一;

  4. 时间控件、下拉框不可编辑,是否有限制;

  5. 流程节点命名规范尽量准确,如“谁谁谁申请/移交/提交/审批/发布/启动/测试/执行什么什么事;

  6. 表单内容尽量充实,显示相关内容时,尽量可以列出相关信息,如表单只有工单编号,应再列出名称、状态、负责人、阶段、时间节点等相关信息,重要的信息可以再赋成超链接,提升用户使用体验;

  7. 不同信息适当添加栏目以区分;如:基本信息、附件、处置等重要信息可以标红;
    选择后继节点,注意排布顺序,一般退回、终止、作废。审批不通过放在后面;(旧版bpm修改表bpm_modsequenceflowlist的SortNum,值越大,显示越靠前;ApprovalFormImpl的196行替换LinkedHashMap<String,String> sequenceFlowMap=Rdb.getLinkedMapDataBySql(sql);

  8. 选择后继节点处理人信息,尽量不使用默认的“请选择某某节点的处理人” 可以根据流程需要在流程建模里修改;

  9. 选择处理人时,根据需求去查出可以被选择的相关人员列表,尽量不用默认选择所有人;

  10. 流程表单可以适当在table外加div 控制左右边距,默认左右全填充显示效果太挤;

  11. 每个节点表单不要只显示当前内容,应该根据具体情况继承上个节点的表单信息;

  12. 一个流程建一个应用,相同类别下流程应用,放到同一个分类下;

  13. 流程提交给子流程时或子流程结束返回主流程时,提示信息表达不准备,可以用表单的保存成功后的回调函数,重新写;

  14. 一个流程规则尽量只发一次PmsService请求,频繁发送交互,前台等候时间长效率低;

  15. 正确使用业务规则和流程规则;

  16. 子流程拷贝主流程数据规则;

  17. 视图显示调整优化:列名,列宽,数据格式化,排序等,可编辑的列名后加可编辑图标;

  18. 表单里选择人员,根据需要创建自己的人员选择器,不要默认选择全部人员;

  19. 流程之间有关联,可以在流程里增加关联流程的启动按钮;

  20. 流程里包含子流程,可以增加查看主子流程的链接;

  21. 视图对应表的字段类型尽量使用varchar;

  22. 子流程要返回主流程附件时,需要手动给数据库bpm_attachmentslist加一条数据,并拷贝一份附件;可以调FileUtil.copyFile(),不用自己重复写;

  23. 表单验证的相关方法在engine_openform.js 里;

  24. 与主系统交互的相关规则在SOA服务里查找;

  25. 流程活动参与者规则;

  26. 根据需要可以在设置-公用设计里自定义 控件、字段验证规则、字段选择器等;

  27. 环节字段属性会覆盖表单字段中设置的属性;主表单强制只读时,字段属性全部无效,表单强制为只读;环节中的可编辑会强制性把主表单中对字段属性的只读模式删除,这样字段就变为可编辑状态了;环节中的继承表单权限则以表单中的只读模式设置为主;

  28. 动态修改表单中的字段配置值就可以实现调入不同的视图;

	BeanCtx.getMainFormFieldConfig().get("字段名").put("字段属性名","新的属性值");
	BeanCtx.getMainFormFieldConfig().get("view").put("view","V_S002_G001");
  1. 表单跳过验证(engine_openform.js得改)
	$("input[name=WF_NextNodeSelect]").click(function(){ 
	        var nextNodeId = $(this).val();
	        if(nextNodeId === 'XXX'){
	            //  整个表单不验证 
	            $("#WF_NextNodeSelect_"+nextNodeId).attr("endbusinessid",2);
	        }
	});
  1. 调整表单左右间隙
①	bpm_systemconfig表的EngineFormTopBar的configValue值加<div style="margin: 0px auto; width: 90%; height: 100%; position: relative; -ms-overflow-x: hidden; -ms-overflow-y: auto;"></div>
sql: UPDATE bpm_systemconfig SET ConfigValue = '<table width=90% style=\'margin: 0px auto;\' border=0 cellpadding=2 cellspacing=6 class=\"ApprovalToptable\" id=\"TopFormTable\">\r\n<tr><td  colSpan=2 align=\"center\" style=\"padding-top:5px;font-size:20px;font-family:\'微软雅黑\',\'宋体\';color:#000\"><b>{WF_ProcessName}</b></td></tr>\r\n<tr style=\"line-height:20px\">\r\n<td>\r\n当前状态:{WF_CurrentNodeName}<br>\r\n当前处理人:{WF_Author_CN}<br>\r\n审批日记:<a href=\'\' onclick=\"ShowRemark(\'{WF_Processid}\',\'{WF_OrUnid}\');return false;\">查看审批日记</a>\r\n</td>\r\n<td align=right >\r\n申请时间:{WF_DocCreated}<br>\r\n申请人:{WF_AddName_CN}<br>\r\n流程图:<a href=\'\' onclick=\"ShowWorkflow(\'{WF_Processid}\',\'{WF_OrUnid}\');return false;\">查看流程图</a>\r\n</td>\r\n</tr>\r\n</table>' WHERE WF_OrUnid = '9FCC121207C1804B520A71B00DCF8DC74583';$go
②	表单加上面div
③	ApprovalFormImpl的83行加
④	R_S003_B014的29行加
  1. 审批记录是bpm_insremarklist
  2. 流转记录是bpm_insuserlist和bpm_insnodelist
  3. 附件必填属性设置:
  4. UPDATE bpm_formcontrollist SET AttriConfig = ‘name,id,xremark,required,valimsg,readtype’ WHERE WF_OrUnid = ‘ac8eecb2083da044ea083000c3784b57’;$go

35.使用Rdb.close(conn);关闭流减少代码量
38. 视图自动计算两列的乘积:在行点击事件时调用。

	function setEditing(rowIndex){ 
	    var editors = $('#dg').datagrid('getEditors', rowIndex); 
	    var priceEditor = editors[4]; 
	    var countEditor = editors[3]; 
	    var amountEditor = editors[5]; 
	    priceEditor.target.bind('change', function(){ 
	        calculate(); 
	    }); 
	    countEditor.target.bind('change', function(){ 
	        calculate(); 
	    }); 
	    function calculate(){ 
	        var cost = priceEditor.target.val() * countEditor.target.val(); 
	        $(amountEditor.target).numberbox('setValue',cost); 
	    } 
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值