About jishuang

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

多人顺序或者同时处理时如何判断是最后一个人处理

同一个环节在多人顺序或者同时处理时有些操作是需要最后一个人处理时才执行的,那么就需要判断一下是否最后一个人处理 可以在onAfterAdvaneQuery或者onAfterAdvance中做判断 前端可以在process组件的事件中处理如下: Model.prototype.processAfterAdvance = function(event){ var processControl = event.processControl; var flowTos = processControl.getToItems(); if(flowTos.length>0){//判断是最后一个人处理 alert("onAfterAdvance最后一个人处理"); } }; Model.prototype.processAfterAdvanceQuery = function(event){ var processControl = event.processControl; var flowTos = processControl.getToItems(); if(flowTos.length>0){//判断是最后一个人处理 alert("AfterAdvanceQuery最后一个人处理"); } }; [...]

attachmentSimple控制只能上传一个文件,再上传提示是否替换

attachmentSimple组件默认没有提供设置上传个数的控制,如果需要控制,可以获取到组件上的uploader,在uploader上绑定事件onFileSelected进行控制 获取uploader参考: var attachmentSimple = this.comp("attachmentSimple3") var uploader = attachmentSimple.uploader; 给uploader绑定onFileSelected参考: uploader.on('onFileSelected',function(event){ }); 控制只能上传一个文件,再上传提示是否替换可以在model的onLoad事件中如下实现: Model.prototype.modelLoad = function(event) { var attachmentSimple = this.comp("attachmentSimple3") var uploader = attachmentSimple.uploader; var data = this.comp("mainData"); [...]

如何用代码控制流转跳转到指定环节

在某些情况下可能需要判断不同的数据跳转到不同的环节可以用条件环节或者条件分支 如果条件环节或者条件分支都不满足需求可以在onAfterAdvanceQuery事件中通过修改ProcessControl控制flowTo实现 如下是在活动环节2的onAfterAdvanceQuery事件中通过修改ProcessControl直接跳转到环节环节4 public static void businessActivity2AfterAdvanceQuery() { ProcessControl control = (ProcessControl) ContextHelper.getActionContext().getActionResult(); // 删除原来的后续环节 if (control.hasFlowTo()) { control.clearFlowTo(); } // 把businessActivity4创建为ProcessControl的可运行环节 String activityId = CommonUtils.createGUID(); RunnableActivity rn = new RunnableActivity("businessActivity4", "true", "true", "活动环节4", [...]

app中查看attachment中附件报错“handleDocumentWithURL is not defined”

手机app中点击attachment中的附件查看时会提示“handleDocumentWithURL is not defined” 手机app中查看附件是需要cordova插件的,打包的时候没有选择相关的插件,app中操作就会报错 手机app中操作附件需要的插件如下,打包的时候要把这些插件勾选上: cordova!cordova-plugin-file cordova!cordova-plugin-file-transfer cordova!cordova-plugin-inappbrowser cordova!ch.ti8m.documenthandler cordova!cordova-plugin-x-toast

下载或查看附件时报错

下载或查看附件时通常会遇到下面两种错误 第一种 Caused by: org.outerj.daisy.blobstore.NonExistingBlobException: Non existing blob name: defaultDocNameSpace_____________attachment201704063b5912003520474c4e475e7c2803747154225857 at org.outerj.daisy.blobstore.impl.FSBlobStore.retrieve(Unknown Source) ... 20 more 第二种 Caused by: org.outerj.daisy.repository.DocumentNotFoundException: A document with id 1811-defaultDocNameSpace does not exist. at org.outerj.daisy.repository.serverimpl.LocalDocumentStrategy.loadDocumentInTransaction(Unknown Source) at [...]

移动端如何在首页添加待办任务类型的功能块

移动端首页待办任务块不是通过widget配置的,所以要添加自己的块不能通过widget配置实现,具体操作参考如下: 参考/BIZ/OA/personalOffice/logic/action/portal.action.m中的action,定义一个自己功能的action,然后在/BIZ/portal/logic/action/message.config.m中添加action的配置即可 需要注意的是 1.action中要返回Map类型的数据,如: public static Map<String, Object> gridPortal(){ HashMap<String, Object> result = new HashMap<String, Object>(); result.put("fLabel", "显示不同的grid"); result.put("fProcess", "/appdemo/test/process/grid/gridProcess"); result.put("fActivity", "mainActivity"); result.put("fCount", 2); return result; } 2.要在java代码给参数fProcess设置的process文件的动作设置中添加自己定义的action 3.要确保给参数fProcess设置的process和activity进行功能权限的发分配

动态创建labelInput

labelInput是由labelEdit扩展的,有label和input组合的,所以在创建labelInput时要创建分别创建labelEdit、label和input然后再组合 参考如下: 引用js文件: var labelEdit = require("$UI/system/components/justep/labelEdit/labelEdit"); var input = require("$UI/system/components/justep/input/input"); 动态创建: var parentNode = this.getElementByXid("content2"); var option = { parentNode : parentNode, xid : 'input9', class : 'x-label-edit x-label x-edit', }; [...]

java获取人员信息的mail

java中平台提供的API可以直接获取人员的ID等,但是获取mail、phone这些信息时没有直接的API可以参考下面的方式实现 Collection<String> extPersonRelations = new ArrayList<String>(); extPersonRelations.add("sMail,"); com.justep.system.opm.api.Person person = com.justep.system.opm.api.PersonHelper.loadPerson(sID, extPersonRelations); String email = person.getExtValue("sMail").toString(); 其中的sID就是人员的ID的值

app中流转对话框选择执行者第一次不显示数据

手机app中做流程流转时选择执行者对话框第一次打开可能没有数据要点一下加载才会有数据,第二次加载就正常了 这个现象的可能是组织机构中的数据太多导致的,可以先提前把数据加载好,选择执行者的时候直接用加载好的数据就可以避免这种现象 提前加载数据如下操作: 在/UI2/portal/mobile/main/main.w的model的onload事件中添加下面的调用 OrgUtil.getOrgData(this,"", "", "", ""); 注意调用前要先在/UI2/portal/mobile/main/main.js中添加添加js文件的引用,如下: var Org = require("$UI/system/components/justep/org/js/org"); var OrgUtil = Org.Util;