易协软件:流程编辑器

易协软件:www.ecollab.com.cn

 
流程编辑器(GDWorkFlow)提供直觉化的流程建模工具,以可视化的方式建立各种业务流程,并将分类在数据库中统一管理。它通过图形化操作界面,让用户用最少的时间设计或修改企业业务流程;协助流程规划者快速设计符合企业需求的各类流程,并完善集成流程运行职务(组织或系统)、表单(资料呈现)、条件判断(商业逻辑)、时间控制等,建构最完善的企业流程机制。
支持流程类型
 
企业实际流程是复杂多变的,各个流程关卡必须支持多分支流程、并因应实际需求采用不同的流程类型,不单只有同意、驳回选择而已。GDWorkFlow流程设计提供线性、并发、回退、会审、条件式判断流程类型,并支持动态退回机制、阶层式流程、调用流程,可依需求自行搭配组合,完全满足企业的各式需求。
运转模式
 
目前流程编辑器支持串行、同步并行、同步聚合、聚合并行四类运转模式。
                    (串行)
 
(同步并行 / 同步聚合)
 
(聚合并行)
 
环节类型
  流程起点:流程的起始点
人工处理:人工处理环节,本环节只能有一人参与,且退回时只能退回至上一环节。
 
人工路由:人工处理环节,本环节只能有一人参与,只能有一条退回路径,同时至少有二个可选路径,可由本环节处理人主观选择退回或提交的环节处理人。
 
自动路由:依据条件设计好流程流转方向,流程在运行过程中将自动流转。
 
会审:由多个人同时参与处理同一个环节,只要有一个参与者,拒签或退回,其他参与者的工作将被取消;只有参与该环节的所有处理人都处理完成并提交后,下一环节处理人方可进行签收、办理工作;
 
导航线:用于连接各流程图元,同时导航类型分为前导、条件前导、退回三类。
     流程结束:流程结束节点。
图形化的流程拖拉设计
 
好的流程设计工具,应该以简单的方式提供给擘画流程的商务人士使用,GDWorkFlow流程编辑器即是依此目标开发的,流程设计人员仅需在图形化的界面中,依照实际流程走向进行设计即可,毋需了解困难的程序设计,与表单无缝式的结合,搭配流程条件判断式的设置,轻松打造与现实流程相符的流程系统,并可利用此工具与一般使用者快速沟通流程的各项规划。
本系统从操作界面上主要划分为:工具区域、导航区域、绘制区域、编译区域四个区域,在最上部是本系统操作的菜单和工具条,在左边是业务导航树以及系统鹰眼,在中间区域是绘制区域,最下部分是编译信息区域。具体参见www.ecollab.com.cn
操作要点:鹰眼是为了对整个流程进行预览和快速定位;在错误列表中双击鼠标,系统将会自动定位到出错图元;在导航树双击节点,如果双击的是流程节点,相应的流程将被打开;对于业务导航和错误列表,如果不进行定位选择,在绘制区域得到焦点后,两区域将会自动隐藏,流程导航区域的流程环节可准确定位当前环节位置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[removed] <!-- var listenerFieldsEditCount = 0; jq(function(){ _listener_event_type=jq('#listenerEventType').combobox({ editable:false }); _task_listener_fields_dg=jq('#task-listeners-fields-list').datagrid({ //title:"Listener", //url:'${ctx}/wf/procdef/procdef!search.action',//加载表格数据的URL singleSelect:true, width:600, height:300, iconCls:'icon-edit', //fit:true, //idField:'id', //pagination:true, //pageSize:15, //pageNumber:1, //pageList:[10,15], rownumbers:true, //sortName:'id', //sortOrder:'asc', striped:true, toolbar:[{ text:'New', iconCls:'icon-add', handler:function(){ if(listenerFieldsEditCount>0){ jq.messager.alert("error","有可编辑的单元格,不能添加!",'error'); return; } jq('#task-listeners-fields-list').datagrid('appendRow',{ id:'', fieldName:'', type:'', value:'', action:'' }); var index = jq('#task-listeners-fields-list').datagrid('getRows').length-1; jq('#task-listeners-fields-list').datagrid('beginEdit', index); } }], onDblClickRow:function(rowIndex,rowData){ editListenerField(rowIndex); }, onBeforeEdit:function(index,row){ row.editing = true; jq(this).datagrid('refreshRow', index); listenerFieldsEditCount++; }, onAfterEdit:function(index,row){ row.editing = false; jq(this).datagrid('refreshRow', index); listenerFieldsEditCount--; }, onCancelEdit:function(index,row){ row.editing = false; jq(this).datagrid('refreshRow', index); listenerFieldsEditCount--; } }); jq('#fieldSaveBt').linkbutton({ iconCls:"icon-save" }); jq('#fieldCancelBt').linkbutton({ iconCls:"icon-cancel" }); jq("#listenerServiceClass").autocomplete(_process_def_provided_listeners, { width: 450, minChars: 0, max: 10, autoFill: true, mustMatch: false, matchContains: false, scrollHeight: 220, //multiple: true, //multipleSeparator: " ", scroll: true }); populateListenerProperties(); }); function changeListenerServiceType(obj){ if(obj.value=='javaClass'){ jq('#listenerServiceLabel').html('Service Class:'); jq('#listenerServiceClass').show(); jq('#listenerServiceExpression').hide(); }else if(obj.value=='expression'){ jq('#listenerServiceLabel').html('Expression:'); jq('#listenerServiceClass').hide(); jq('#listenerServiceExpression').show(); } } function listenerFieldsActionFormatter(value,rowData,rowIndex){ var id = rowIndex; var s='<img onclick="saveListenerField('+id+')" src="../../image/ok.png" title="'+"确定"+'" style="cursor:hand;"/>'; var c='<img onclick="cancelListenerField('+id+')" src="../../image/cancel.png" title="'+"取消"+'" style="cursor:hand;"/>'; var e='<img onclick="editListenerField('+id+')" src="../../image/modify.png" title="'+"修改"+'" style="cursor:hand;"/>'; var d='<img onclick="deleteListenerField('+id+')" src="../../image/delete.gif" title="'+"删除"+'" style="cursor:hand;"/>'; if(rowData.editing) return s; else return e+' '+d; } function cancelListenerField(id){ _task_listener_fields_dg.datagrid('cancelEdit', id); } function editListenerField(id){ _task_listener_fields_dg.datagrid('beginEdit', id); } function saveListenerField(id){ //alert(id); _task_listener_fields_dg.datagrid('endEdit', id); //alert(editcount); } function deleteListenerField(id){ _task_listener_fields_dg.datagrid('deleteRow',id); refreshAllListenerFields(); } function refreshAllListenerFields(){ var rs = _task_listener_fields_dg.datagrid('getRows'); for(var i=0;i0){ jq.messager.alert("error","",'error'); return null; } var insertRows = _task_listener_fields_dg.datagrid('getChanges','inserted'); var updateRows = _task_listener_fields_dg.datagrid('getChanges','updated'); var deleteRows = _task_listener_fields_dg.datagrid('getChanges','deleted'); var changesRows = { inserted : [], updated : [], deleted : [] }; if (insertRows.length>0) { for (var i=0;i0) { for (var k=0;k0) { for (var j=0;j0){ jq.messager.alert("error","请先保存可编辑的表格!",'error'); return; } if(listenerId != "" && listenerId != null && listenerId!="null"&&listenerId;!="NULL"){ var listener = getExsitingListener(); var r = updateExistingListener(listener); if(!r)return; }else{ var listener = createNewListener(); var r = insertNewListener(listener); if(!r)return; } _listener_win.window('close'); } function insertNewListener(listener){ listener.event=_listener_event_type.combobox('getValue'); jq('input[name="listenerServiceType"]').each(function(i){ if(this.checked){ listener.serviceType=this.value; return false; } }); listener.serviceClass=jq('#listenerServiceClass').val(); listener.serviceExpression=jq('#listenerServiceExpression').val(); var changesRows = getListenerFieldsGridChangeRows(); if(changesRows == null)return false; var insertRows = changesRows['inserted']; if (insertRows.length>0) { for (var i=0;i0) { for (var i=0;i0) { for (var k=0;k0) { for (var j=0;j<deleteRows.length;j++) { listener.deleteField(deleteRows[j].id); } } loadTaskListeners(); return true; } function populateListenerProperties(){ if(listenerId != "" && listenerId != null && listenerId!="null"&&listenerId;!="NULL"){ var listener = task.getTaskListener(listenerId); _listener_event_type.combobox('setValue',listener.event); var serviceType = listener.serviceType; jq('input[name="listenerServiceType"]').each(function(i){ if(this.value==serviceType){ this.checked=true; changeListenerServiceType(this); if(this.value=='javaClass'){ jq('#listenerServiceClass').val(listener.serviceClass); }else if(this.value=='expression'){ jq('#listenerServiceExpression').val(listener.serviceExpression); } return false; } }); var fields = listener.fields; var _listener_fields_grid_data=[]; for(var i=0;i<fields.getSize();i++){ var field = { id:fields.get(i).id, fieldName:fields.get(i).name, type:fields.get(i).type, value:fields.get(i).value, action:'' }; _listener_fields_grid_data[i]=field; } _task_listener_fields_dg.datagrid('loadData',_listener_fields_grid_data); } } function closeTaskListenerWin(){ _listener_win.window('close'); } //--> [removed] Event: Create Assignment Complete All <input type="radio" id="listenerServiceType" name="listenerServiceType" value="javaClass" checked="checked" Class <input type="radio" id="listenerServiceType" name="listenerServiceType" value="expression" Service Class: <input type="text" id="listenerServiceClass" name="listenerServiceClass" size="80" value=""/> <input type="text" id="listenerServiceExpression" name="listenerServiceExpression" size="80" none;" value=""/> Fields: Field Name Type Value Action <a href="##" id="fieldSaveBt" <a href="##" id="fieldCancelBt"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值