欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linkeybpm-联科BPM 使用总结

程序员文章站 2024-03-26 08:43:23
...
  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); 
	    } 
	}