About wex5

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

主流程+子流程+自动环节批转案例

案例中实现主流程+子流程+自动环节批转等特性: 简单说明案例中包含:4个流程,主流程没有关联业务数据,其中每个环节都是一个子流程,进入环节自动启动子流程,主流程任务挂起,当子流程结束后唤醒主流程继续流程分别是: 主流程(master),这是一个流程框架,没有相关业务数据 子流程(c1) 子流程(c2) 子流程(c3) 1、主流程UI使用windowFrame控制子流程界面 2、子流程启动时创建主流程,小技巧使用sData2记录关联的子流程的sData1,具体看启动主流程代码(/BIZ/demo/components/logic/code/src/com/justep/demo/DemoUtils.java) public static void startMasterProcess(String masterProcess, String masterActivity) { ActionContext context = ActionUtils.getRequestContext().getActionContext(); Map<String, Object> relas = (Map<String, Object>) context.getParameter(ProcessConstants.PI_RELATION_VALUE_PARAMETER); //启动主流程 String sData1 = CommonUtils.createGUID(); String sData2 [...]

流程高级特性之:process组件上auto-save属性详解

在W文件中,process组件上有一个属性:auto-save,它的含义是: 1. auto-save=true,这时,必须设置process组件上的data属性,表示执行任何流程操作(流转查询,流转,回退查询,回退。。。)之前,先保存process组件关联的data; 2. auto-save=false,表示执行任何流程操作(流转查询,流转,回退查询,回退。。。)之前,不保存data; 需求一(大部分自动保存,个别不自动保存):如果期望在某一个流程操作(例如回退查询和回退)中不自动保存data,其它流程操作中自动保存data,可以这么实现:  1. 设置processs组件上的auto-save的值为true;  2. 在process组件(w页面中)的在onBeforeBackQuery事件之前,设置process组件的_autoSave为false,例如:data.source._autoSave = false; //或者    justep.xbl('process组件的id')._autoSave=false;  3. 在process组件(w页面中)的onBackCommit和onBackError事件中设置_autoSave为true, 例如: data.source._autoSave = true; //或者justep.xbl('process组件的id')._autoSave=true; 需求二(大部分不自动保存,个别自动保存):如果期望在某一个流程操作(例如流转查询和流转)中自动保存data,其它流程操作中不自动保存data,可以这么实现:  1. 设置processs组件上的auto-save的值为false;  2. 在process组件(w页面中)的在onBeforeAdvanceQuery事件之前,设置process组件的_autoSave为false,例如:data.source._autoSave = true; //或者justep.xbl('process组件的id')._autoSave=true;  3. 在process组件(w页面中)的onAdvanceCommit和onAdvanceError事件中设置_autoSave为false, 例如: data.source._autoSave = [...]

提交、待办显示内容修改

修改提交或待办显示记录数 提交和待办任务中平台默认显示的是8条记录,可以根据需求修改为所需的记录条数,需要修改/BIZ/SA/task/logic/code/dsrc/TaskViewProcedure.java中相关方法的KSQL语句中的limit的值,如下红色字体 提交 public static Document querySubmitTask(){                 String condition = TaskUtils.getCreatorCondition("t", ContextHelper.getPerson().getPersonMembers(), true);                 String query = "select t, t.sName, t.sCURL, t.sProcess, t.sActivity, [...]

代码控制ProcessControl做流转

<div id="code_unv"> <ol> <li>//1、首先获取某个任务后续的流转数据结构</li> <li>ProcessControl control = ProcessUtils.advanceProcessQuery(task);</li> <li>//2、获得后续可能流转的环节</li> <li>List&lt;ProcessControlItem&gt; flowTos = control.getFlowTos();</li> <li>for (int i = flowTos.size() - 1; i &gt;= 0 ; i--) {</li> <li>    ProcessControlItem flowTo = flowTos.get(i);</li> <li>    [...]

流程嵌套

当前流程流转时启动另一个流程并暂停当前流程,另一个流程结束后再唤醒当前流程 例子如下: 俩个流程:1.外出申请   2.借书申请     1.在外出申请环节的onAfterAdvance事件中添加如下代码: <div class="blockcode"> <div id="code_ZNW"> <ol> <li>                String fID=CommonUtils.createGUID();//生成fID</li> <li>                String task=(String)ContextHelper.getActionContext().getParameter("task");//获取当前流程(外出申请)的task</li> <li>                [...]

动态工作流的另一种实现方式

在动态工作流案例里,实现了表单和流程的分开设计、动态关联。在案例讲解的最后,我们提到多个表单共用多个工作流,必须解决动作引用的问题。即每个工作流都需要包含所有表单的动作,否则表单运行在工作流环境中时,会出现当前activity没有表单需要的动作的错误。 但是对于M个表单、N个工作流,这里的引用关系是很复杂的(M * N),我们在视频里给出了一个解决方案: 1、所有表单用到的动作都设置为全局动作 2、用一个公共的模块,包含所有表单的动作模块 3、每个工作流模块引用上面的公共模块,完成对所有表单动作的引用 上面的这个方案确实解决了动作引用的问题,但是这个方案在实施中还是有一定的复杂度。而且,所有的动作都是全局动作,每个工作流包含表单的所有动作,从模型设计的角度也有不合理性。 下面我们换用另一种解决方案(在原案例基础上): 1、动作不设置为全局动作,表单的process要包含自身的动作 /BIZ/demo/process/process/dynamicFlow_LeaveApply/dynamicFlow_LeaveApplyProcess.process.m 在动作设置中引用表单自身需要的三个标准动作 2、从两个工作流模块的配置文件中去除对action模块的引用 /BIZ/demo/process/process/dynamicFlow1/model.config.xml /BIZ/demo/process/process/dynamicFlow2/model.config.xml 去掉引用/demo/process/logic/action 3、上面两步已经去掉了工作流,这时如果运行案例,在第二个环节会出现动作不存在的错误,现在我们修改.w,来解决这个问题: var mainActivity = {}; // 设置bizData的动作上下文 mainActivity.setDataContext = function(data) { data.process = "/demo/process/process/dynamicFlow_LeaveApply/dynamicFlow_LeaveApplyProcess"; data.activity = "mainActivity"; }; mainActivity.model1ModelConstructDone [...]

实现表单和流程分开设计、动态关联

需求场景     1、表单和工作流可以任意关联           一个表单可以用不同的工作流进行审批           多个表单可以用相同的工作流进行审批           多个表单可以用不同的工作流进行审批    2、流程中每个环节的表单是相同的,但是不同的业务场景有不同的业务规则(只读、显示、必填) 技术点    1、流程和表单分离,动态关联    2、一个表单用于流程的所有环节(包括启动),可以按照不同的场景定义规则 视频下载:动态工作流 附:动态工作流的另一种实现方式 http://bbs.justep.com/forum.php?mod=viewthread&tid=44091&extra=page%3D1   本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! [...]

流转相关事件的执行顺序

(1). process组件(onBeforeAdvanceQuery) (2). 流程定义(onBeforeAdvanceQuery) (3). 执行流转查询逻辑 (4). 流程定义(onAfterAdvanceQuery) (5). process组件(onAfterAdvanceQuery) (6). 弹出流转框,点确定后,执行 (7). process组件(onBeforeAdvance) (8). 流程定义(onBeforeAdvance) (9). 执行流转逻辑 (10). 流程定义(onAfterAdvance) (11). process组件(onAfterAdvance) 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443

第2章 加密应用使用说明

1.1 授权应用License注册功能   图2.1  注册应用License功能 1.2  部署应用 向开发商索要加密的应用模型资源 部署到小机构或者企业版(非开发版) 1.3  申请应用授权 先开发商申请应用授权License(必须提供X5平台授权码,其他和应用开发商确认)。 1.4   注册应用授权License 图2.2  注册应用License功能 图2.3  注册应用License 填入从开发商获取的appLicense,点击“注册”如果成功会提示license……规格 本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5! 阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443

第1章 开发商使用说明

1.1 功能授权 开发商使用功能有:“创建应用开发商数字证书”、“加密模型”、“生成应用License”三个功能 授权上述三个功能 图1.1功能授权 1.2  开发商数字证书申请 开发商数字证书需要开发商妥善保管(丢失无法找回,只能重新申请) 数字证书设置口令(一定要设置,使用证书时需要进行口令校验) 数字证书将用于应用加密和应用授权制作 创建开发商数字证书功能 图1.2创建数字证书功能 图1.3创建数字证书 点击生成后下载保存数字证书“developer.cert.xml”文件 1.3   开发商应用模型代码加密(必须是开发调试启动tomcat,推荐在studio中启动tomcat) 加密模型包括: BIZ:.m------>.me src------>slib UI:.w------->.release 其他保留,注意dsrc和dclasses不能修改,依赖src时将不能进行动态编译 应用模型代码加密 图1.4加密模型功能 图1.5加密模型 发布模型前如果在studio中没有编译过请勾选“强制编译模型”,这里建议使用studio中的模型编译(性能更好) 点击“执行”后“加密后模型存放路径”下是完整可发布的应用模型 1.4   制作发送应用授权License 制作发放应用授权License 图1.6生成应用License功能 图1.7  生成License 应用License是和申请人的用户授权码绑定的,授权码变更应用License自动失效 [...]