About jishuang

该作者尚未填入任何详情
So far jishuang has created 559 blog entries.

终止和暂停的任务怎么继续流转

终止和暂停的默认平台默认的待办任务中是不显示的,但是可以在流程监控中显示 对于暂停的任务要重新流转可以如下处理: 1.“协调办公——任务管理——流程监控”打开流程监控功能 2.通过对处理状态(已暂停)的过滤找到具体的流程实例 3.切换到“任务列表”的tab页面,找到状态为“已暂停”的这条任务,在“更多”中点唤醒按钮   通过上面3步操作,暂停的任务就会在待办任务中现象就可以重新流程 对于终止的任务要重新流转可以如下处理: 1.“协调办公——任务管理——流程监控”打开流程监控功能 2.通过对处理状态(已终止)的过滤找到具体的流程实例 3.通过查找到的流程实例的信息到系统数据库的SA_Task表中查找这个流程实例的具体数据 切换到“任务列表”的tab页面,根据状态为“已终止”的这条任务的相关信息到系统数据库的SA_Task表中查找这条任务的具体数据 然后把流程实例和这个任务的sstatusid和sstatusname的值改为未处理的状态

获取回退的当前环节和目标环节之间的环节(包括当前环节和目标环节)

回退的时候可以指定环节回退,指定环节回退时当前环节和目标环节中间可能是跨环节的 如:A——B——C——D——E四个环节,在E环节设置了回退到B环节,那么中间跨了C、D两个环节 在BIZ的回退后(onAfterBack)事件中可以获取到相关的E、B、C、D这四个环节的名字和任务ID 具体如下: public static void backFlowProcessAfterBack() { //获取回退的当前环节和目标环节之间的环节(包括当前环节和目标环节) String source = ProcessUtils.getAI().getNextAIs().get(0).getTask().getSource();//只有回退的时候才可以用getSource,使用这个方法回退后再回退获取的也不会重复 Set ais = ProcessUtils.getPI().getAI(source).getAllNextAIs();//通过获取相应的环节实例,获取直接后续环节实例 System.out.println(ais.size()); for(ActivityInstance ai : ais){ System.out.println(ai.getActivityName());//环节的名字 System.out.println(ai.getTask().getId());//任务ID } }

回退后获取回退的目标环节

BIZ流转后获取流转的目标环节是需要从ProcessControl中获取,但回退的时候就不需要从ProcessControl中获取 在onAfterBack具体实现如下: public static void backFlowProcessAfterBack() { //获取回退后的环节 String front = ProcessUtils.getAI().getNextAIs().get(0).getTask().getFront();//只有回退的时候才可以用getFront,getFront获取的是当前回退的这个任务 Set <ActivityInstance> backAis = ProcessUtils.getPI().getAI(front).getAllNextAIs();//通过获取相应的环节实例,获取直接后续环节实例 for(ActivityInstance backai : backAis){ System.out.println(backai.getActivityName());//环节名称 System.out.println(backai.getTask().getId());//任务ID } }

树形数据新增维护层级和全路径的值

平台的数据数据在新增的时候没有维护层级和类似与SA_OPOrg中sFID中全路径的值 如果需要维护可以在data的onAfterNew事件中处理 如下: Model.prototype.treeDataAfterNew = function(event) { var data = this.comp("treeData"); var parent = data.getValue("fParentID");//获取父ID的值 if(parent){ //如果父ID有值,可以通过父ID获取父的全路径和层级的值 var parentRow = data.getRowByID(parent); data.setValue("fPath",data.getValue("fPath", parentRow)+"/"+data.getCurrentRowID());//父的全路径再加上当前的rowid拼接为当前记录的全路径 data.setValue("flevel",parseInt(data.getValue("flevel", parentRow))+1);//父的层级加1为当前记录的层级值 } else{ //如果父ID没有值,就直接个rowid设置为全路径,层级设置为1(为根目录) data.setValue("fPath","/"+data.getCurrentRowID()); data.setValue("flevel",1); } }; 最终结果如下: [...]

获取当前人员成员在某业务管理权限下所管理的下级组织

在com.justep.system.opm.OrgUtils提供了获取指定组织单元的下属 findSubordinations(Object org, String manageType, Object inOrg, Boolean isPersonMember) 获取指定组织单元的下属 参数: Object org 组织单元; 允许两种情况: 单个组织单元ID或FID(String类型); 多个组织单元ID或FID(String类型)形成的List; String manageType 管理类型的CODE,空表示所有管理类型 Object inOrg 返回值必须在指定组织范围内, 允许三种情况: 空值, 表示不限制范围; 单个组织单元ID或FID(String类型); 多个组织单元ID或FID(String类型)形成的List; Boolean isPersonMember 是否取到人员成员 返回: List<OrgUnit> [...]

pc3修改默认的主题颜色

如果要修改pc3门户默认的主题颜色可以修改/UI2/portal/pc3/AdminLTE/js/setting.js中var my_skins定义中的顺序,默认如下是蓝色: var my_skins = [ "skin-blue", "skin-black", "skin-red", "skin-yellow", "skin-purple", "skin-green", "skin-blue-light", "skin-black-light", "skin-red-light", "skin-yellow-light", "skin-purple-light", "skin-green-light" ]; 如果需要设置为紫色的可以把紫色的放到数组的第一个,如下: var my_skins = [ "skin-purple", "skin-blue", "skin-black", "skin-red", "skin-yellow", "skin-green", "skin-blue-light", "skin-black-light", [...]

pc3登录后默认隐藏功能树

BeX5门户登陆后首页功能树中默认实现的 如果需要默认隐藏可以在/UI2/portal/pc3/index.js中实现 找到this.on('onLoadFunctionTree', this.doCreateFunctionTree);在后面加上$(".sidebar-toggle").click(); 具体如下: //加载功能树 this.on('onLoadFunctionTree', this.doCreateFunctionTree); $(".sidebar-toggle").click();//隐藏功能树 //清理功能树 this.on('onClearFunctionTree', this.clearFuncTree);

carousel组件动态添加图片时显示空白

carousel组件动态添加图片时显示空白有两种情况 第一: 设置了自动切换(auto属性为true),切换的时候总有一个空白的,这个是因为carousel组件默认有一个content,如果没有跟这个content添加图片就会有一个空白的 解决方案: 删除这个默认的content或者跟这个content添加图片 第二:设置不自动切换(auto属性为false),添加图片后默认显示空白 字段切换设置为false,把默认的content删除后动态添加图片没有默认选中的content,所以导致显示空白 解决方案: 在动态添加后调用carousel里面的contents组件执行to方法设置一个默认选择的 如:this.comp("contents1").to(0);

修改流程推送的信息

BeX5 V3.2.1及其后的版本中通过相关的配置流转流转的时候移动端(app或者微信企业号)中会推送消息通知,参考消息推送 默认消息的内容只是流转生成的任务名,会比较简单,可以自己添加其他的信息 在/BIZ/system/logic/code/dsrc/ProcessPushEngine.java中message的信息如下:变量name的值 for (Task t : tasks){ String status = t.getStatus(); if (TaskStatus.READY.equals(status) || TaskStatus.EXECUTING.equals(status)){ String name = t.getName(); String url = t.getEURL(); if (SystemUtils.isNotEmptyString(url)){ url += (url.contains("?") ? "&" : "?"); [...]

在data的onBeforeSave事件中调用action不起作用

某些情况下可能需要在data的onBeforeSave或者process组件的相关事件中等调用action,并且立即执行,那么就需要在调用action的时候设置directExecute为true 如下: biz.Request.sendBizRequest({ "context" : this.getContext(), "action" : "sendNoticeAction", "directExecute" : true,// 在批事务中是立即执行这个action callback : function(result) { if (result.state) { alert("通知创建成功"); } } });   这个是因为在data的onBeforeSave或者process组件的相关事件等中调用action时跟save的执行和流程相关动作的执行是在一个批里面的,如果要立即执行action就需要通过这个属性值控制