- 浏览: 36893 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (22)
- javaSE (1)
- javaEE (1)
- lifeary-portlet开发 (3)
- workflow-jbpm (3)
- struts1 (0)
- struts2 (0)
- javascript (2)
- html-js--css-jsp (0)
- jquery (0)
- ajax (0)
- Hibernate (1)
- Spring (4)
- workflow (0)
- database (1)
- Linux (0)
- design pattern (0)
- software engineering (0)
- 项目管理 (1)
- freemarker学习应用 (2)
- soa (0)
- webservice (0)
- 计算机常用问题 (1)
最新评论
-
星火2012:
很有用,挺不错的!!
用SQL语句添加删除修改字段 -
qepwqnp:
解决了
用portlet 的方式做一个数据展现的例子 -
qepwqnp:
users暂时无法使用??什么意思;回退了在点他就能读到vie ...
用portlet 的方式做一个数据展现的例子 -
taupo:
中科方德呆过,不过是在重庆的分公司,好像是中科院软件研究所?? ...
职业生涯中又一次的选择,希望大家帮忙看下!谢谢!^_^
公司需求开发,测试,部署,内容更新的流程管理.用到动态分配任务。
流程定义文件如下:
<?xml version="1.0"?>
<process-definition name="demand-management">
<!-- Event Logging -->
<!-- Swimlanes -->
<swimlane name="tester" >
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler" config-type="field">
<type>user</type>
<companyId>10113</companyId>
<id>10045</id>
</assignment>
</swimlane >
<swimlane name="requestor" >
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler" config-type="field">
<type>user</type>
<companyId>10113</companyId>
<id>10045</id>
</assignment>
</swimlane >
<swimlane name="approver">
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler" config-type="field">
<type>user</type>
<companyId>10113</companyId>
<id>10045</id>
</assignment>
</swimlane>
<!-- Nodes -->
<!-- 流程开始-->
<start-state name="add-Demand">
<task swimlane="tester">
<controller>
<variable name="text:demand-name" access="read,write,required" />
<variable name="textarea:demand-comments" access="read,write,required" />
<variable name="date:demand-start-date" access="read,write,required" />
</controller>
</task>
<transition name="add-Demand" to="manager-manage" />
</start-state>
<!-- 经理审核需求-->
<task-node name="manager-manage">
<task swimlane="tester">
<controller>
<variable name="textarea:why-testfaling" access="read,required" />
<variable name="text:demand-name" access="read,required" />
<variable name="textarea:demand-comments" access="read,required" />
<variable name="date:demand-start-date" access="read,required" />
</controller>
</task>
<transition name="approve-demand" to="manager-assign-task" />
<transition name="reject-demand" to="back-Demand" />
<transition name="exit-demand" to="end" />
</task-node>
<!-- 填写分配任务-->
<task-node name="manager-assign-task">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,write,required" />
<variable name="textarea:task-comments" access="read,write,required" />
<variable name="radio:assign-to-user1:yes,no" access="read,write,required" />
<variable name="radio:assign-to-user2:yes,no" access="read,write,required" />
<variable name="radio:assign-to-user3:yes,no" access="read,write,required" />
</controller>
</task>
<transition name="assign-task-submit" to="dynamic-create-task" />
</task-node>
<!-- 动态生成任务实例-->
<task-node name="dynamic-create-task" signal="last-wait" create-tasks="false">
<task swimlane="requestor">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="radio:assign-to-user1:yes,no" access="read,required" />
<variable name="radio:assign-to-user2:yes,no" access="read,required" />
<variable name="radio:assign-to-user3:yes,no" access="read,required" />
</controller>
</task>
<!-- 动态分配任务调用外部动作 -->
<event type="node-enter">
<action name="createInstance"
class="com.liferay.jbpm.handler.CreateTasksAction">
</action>
</event>
<transition name="task-finished" to="manager-checkup-task" />
</task-node>
<!--添加返回原因-->
<task-node name="back-Demand">
<task swimlane="tester">
<controller>
<variable name="text:demand-name" access="read,required" />
<variable name="textarea:demand-comments" access="read,required" />
<variable name="date:back-demand-date" access="read,write,required" />
<variable name="textarea:why-reject" access="read,write,required" />
</controller>
</task>
<transition name="back-demand-submit" to="back-Demand-resubmit" />
</task-node>
<!--返回修改需求-->
<task-node name="back-Demand-resubmit">
<task swimlane="tester">
<controller>
<variable name="textarea:why-reject" access="read,required" />
<variable name="date:back-demand-date" access="read,required" />
<variable name="text:demand-name" access="read,write,required" />
<variable name="textarea:demand-comments" access="read,write,required" />
<variable name="date:demand-start-date" access="read,write,required" />
</controller>
</task>
<transition name="modify-demand-resubmit" to="manager-manage" />
</task-node>
<!-- 经理审核任务-->
<task-node name="manager-checkup-task">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,write,required" />
<variable name="textarea:task-comments" access="read,write,required" />
<variable name="date:task-end-date" access="read,write,required" />
</controller>
</task>
<transition name="all-task-finished" to="test-manage" />
</task-node>
<!---测试已经开发完成的任务-->
<task-node name="test-manage">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="date:test-end-date" access="read,wrire,quired" />
</controller>
</task>
<transition name="test-finish" to="deploy-manage" />
<transition name="test-failing" to="failing-modify" />
</task-node>
<!-- 测试失败-->
<task-node name="failing-modify">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="date:test-end-date" access="read,quired" />
<variable name="textarea:why-testfaling" access="read,write,required" />
</controller>
</task>
<transition name="failing-modify-submit" to="manager-manage" />
</task-node>
<!-- 填写失败原因-->
<task-node name="deploy-manage">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="date:deploy-end-date" access="read,write,required" />
</controller>
</task>
<transition name="deploy-submit" to="end" />
</task-node>
<!-- 流程结束-->
<end-state name="end" />
</process-definition>
其中流转到开发经理审核时,采用了项目经理可以动态将需求划分成不同的子任务,等待所有任务完成后在重新审阅后,统一流转到下一个节点。动态创建任务的CreateTaskAction 如下:
/**
* Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.liferay.jbpm.handler;
import com.liferay.client.soap.portal.model.UserSoap;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.StringUtil;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.graph.node.TaskNode;
import org.jbpm.taskmgmt.def.Swimlane;
import org.jbpm.taskmgmt.def.Task;
import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
import org.jbpm.taskmgmt.exe.SwimlaneInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
/**
* <a href="NotifyRequestorActionHandler.java.html"><b><i>View Source</i></b>
* </a>
*
* @author Charles May
*
*/
public class CreateTasksAction implements ActionHandler {
private static final long serialVersionUID = 1L;
/* public void execute(ExecutionContext executionContext) throws Exception {
Token token = executionContext.getToken();
TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
TaskNode taskNode = (TaskNode) executionContext.getNode();
Task task= taskNode.getTask("manager-assign");
tmi.createTaskInstance(task, token)
.setPooledActors(new String[]{"10045"});
tmi.createTaskInstance(task, token)
.setPooledActors(new String[]{"10045"});
}
}*/
public void execute(ExecutionContext executionContext) {
ProcessDefinition definition = executionContext.getProcessDefinition();
TaskMgmtDefinition taskMgmtDefinition =
definition.getTaskMgmtDefinition();
TaskMgmtInstance taskMgmtInstance =
executionContext.getTaskMgmtInstance();
Swimlane requestorSwimlane =
taskMgmtDefinition.getSwimlane("requestor");
SwimlaneInstance requestorSwimlaneInstance =
taskMgmtInstance.getInitializedSwimlaneInstance(
executionContext, requestorSwimlane);
String userId = getDedicatedUserId(); // requestorSwimlaneInstance.getActorId();
//my test code
Token token = executionContext.getToken();
TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
TaskNode taskNode = (TaskNode) executionContext.getNode();
Task task= taskNode.getTask("dynamic-create-task");
//ActorId is UserId in liferay's userTable
//tmi.createTaskInstance(task, token).setActorId("10145");
// tmi.createTaskInstance(task, token).setActorId("14145");
// tmi.createTaskInstance(task, token).setActorId("14154");
//<variable name="radio:assign-to-user1:yes,no" access="read,write,required" />
//<variable name="radio:assign-to-user2:yes,no" access="read,write,required" />
//<variable name="radio:assign-to-user3:yes,no" access="read,write,required" />
//test code2
ContextInstance contextInstance = executionContext.getContextInstance();
String radio1 = (String)contextInstance.getVariable("radio:assign-to-user1:yes,no");
String radio2 = (String)contextInstance.getVariable("radio:assign-to-user2:yes,no");
String radio3 = (String)contextInstance.getVariable("radio:assign-to-user3:yes,no");
String checkBox1 = (String)contextInstance.getVariable("checkbox:assign-to-user1:yes");
String checkBox2 = (String)contextInstance.getVariable("checkbox:assign-to-user2:yes");
String checkBox3 = (String)contextInstance.getVariable("checkbox:assign-to-user3:yes");
if (radio1!= null && radio1.equals("yes")) {
tmi.createTaskInstance(task, token).setActorId("14145");
}
if (radio2!= null && radio2.equals("yes")) {
tmi.createTaskInstance(task, token).setActorId("14154");
}
if (radio3!= null && radio3.equals("yes")) {
tmi.createTaskInstance(task, token).setActorId("10145");
}
//Radio test assign task
/*if (taskRadio!= null && taskRadio.equals("assign-to-user1")) {
tmi.createTaskInstance(task, token).setActorId("14145");
}else if (taskRadio!= null && taskRadio.equals("assign-to-user2")) {
tmi.createTaskInstance(task, token).setActorId("14154");
}
else {
tmi.createTaskInstance(task, token).setActorId("10145");
}*/
//checkBox assign task
/* if (checkBox1 != null && checkBox1.equals("true")) {
tmi.createTaskInstance(task, token).setActorId("14145");
}
if (checkBox2 != null && checkBox2.equals("true")) {
tmi.createTaskInstance(task, token).setActorId("14154");
}
if (checkBox3 != null && checkBox3.equals("true")) {
tmi.createTaskInstance(task, token).setActorId("10145");
}
System.out.println("checkBox1======================================:"+checkBox1);
System.out.println("checkBox2======================================:"+checkBox2);
System.out.println("checkBox3======================================:"+checkBox2);*/
executionContext.getJbpmContext().getSession().saveOrUpdate(tmi);
// .setPooledActors(new String[]{"10145"});
// tmi.createTaskInstance(task, token)
// .setPooledActors(new String[]{"14145"});
// tmi.createTaskInstance(task, token)
// .setPooledActors(new String[]{"14154"});
// executionContext.leaveNode();
}
private String getDedicatedUserId() {
String userId = "10145";
return userId;
}
private static Log _log =
LogFactoryUtil.getLog(CreateTasksAction.class);
}
流程定义文件如下:
<?xml version="1.0"?>
<process-definition name="demand-management">
<!-- Event Logging -->
<!-- Swimlanes -->
<swimlane name="tester" >
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler" config-type="field">
<type>user</type>
<companyId>10113</companyId>
<id>10045</id>
</assignment>
</swimlane >
<swimlane name="requestor" >
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler" config-type="field">
<type>user</type>
<companyId>10113</companyId>
<id>10045</id>
</assignment>
</swimlane >
<swimlane name="approver">
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler" config-type="field">
<type>user</type>
<companyId>10113</companyId>
<id>10045</id>
</assignment>
</swimlane>
<!-- Nodes -->
<!-- 流程开始-->
<start-state name="add-Demand">
<task swimlane="tester">
<controller>
<variable name="text:demand-name" access="read,write,required" />
<variable name="textarea:demand-comments" access="read,write,required" />
<variable name="date:demand-start-date" access="read,write,required" />
</controller>
</task>
<transition name="add-Demand" to="manager-manage" />
</start-state>
<!-- 经理审核需求-->
<task-node name="manager-manage">
<task swimlane="tester">
<controller>
<variable name="textarea:why-testfaling" access="read,required" />
<variable name="text:demand-name" access="read,required" />
<variable name="textarea:demand-comments" access="read,required" />
<variable name="date:demand-start-date" access="read,required" />
</controller>
</task>
<transition name="approve-demand" to="manager-assign-task" />
<transition name="reject-demand" to="back-Demand" />
<transition name="exit-demand" to="end" />
</task-node>
<!-- 填写分配任务-->
<task-node name="manager-assign-task">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,write,required" />
<variable name="textarea:task-comments" access="read,write,required" />
<variable name="radio:assign-to-user1:yes,no" access="read,write,required" />
<variable name="radio:assign-to-user2:yes,no" access="read,write,required" />
<variable name="radio:assign-to-user3:yes,no" access="read,write,required" />
</controller>
</task>
<transition name="assign-task-submit" to="dynamic-create-task" />
</task-node>
<!-- 动态生成任务实例-->
<task-node name="dynamic-create-task" signal="last-wait" create-tasks="false">
<task swimlane="requestor">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="radio:assign-to-user1:yes,no" access="read,required" />
<variable name="radio:assign-to-user2:yes,no" access="read,required" />
<variable name="radio:assign-to-user3:yes,no" access="read,required" />
</controller>
</task>
<!-- 动态分配任务调用外部动作 -->
<event type="node-enter">
<action name="createInstance"
class="com.liferay.jbpm.handler.CreateTasksAction">
</action>
</event>
<transition name="task-finished" to="manager-checkup-task" />
</task-node>
<!--添加返回原因-->
<task-node name="back-Demand">
<task swimlane="tester">
<controller>
<variable name="text:demand-name" access="read,required" />
<variable name="textarea:demand-comments" access="read,required" />
<variable name="date:back-demand-date" access="read,write,required" />
<variable name="textarea:why-reject" access="read,write,required" />
</controller>
</task>
<transition name="back-demand-submit" to="back-Demand-resubmit" />
</task-node>
<!--返回修改需求-->
<task-node name="back-Demand-resubmit">
<task swimlane="tester">
<controller>
<variable name="textarea:why-reject" access="read,required" />
<variable name="date:back-demand-date" access="read,required" />
<variable name="text:demand-name" access="read,write,required" />
<variable name="textarea:demand-comments" access="read,write,required" />
<variable name="date:demand-start-date" access="read,write,required" />
</controller>
</task>
<transition name="modify-demand-resubmit" to="manager-manage" />
</task-node>
<!-- 经理审核任务-->
<task-node name="manager-checkup-task">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,write,required" />
<variable name="textarea:task-comments" access="read,write,required" />
<variable name="date:task-end-date" access="read,write,required" />
</controller>
</task>
<transition name="all-task-finished" to="test-manage" />
</task-node>
<!---测试已经开发完成的任务-->
<task-node name="test-manage">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="date:test-end-date" access="read,wrire,quired" />
</controller>
</task>
<transition name="test-finish" to="deploy-manage" />
<transition name="test-failing" to="failing-modify" />
</task-node>
<!-- 测试失败-->
<task-node name="failing-modify">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="date:test-end-date" access="read,quired" />
<variable name="textarea:why-testfaling" access="read,write,required" />
</controller>
</task>
<transition name="failing-modify-submit" to="manager-manage" />
</task-node>
<!-- 填写失败原因-->
<task-node name="deploy-manage">
<task swimlane="tester">
<controller>
<variable name="text:task-name" access="read,required" />
<variable name="textarea:task-comments" access="read,required" />
<variable name="date:deploy-end-date" access="read,write,required" />
</controller>
</task>
<transition name="deploy-submit" to="end" />
</task-node>
<!-- 流程结束-->
<end-state name="end" />
</process-definition>
其中流转到开发经理审核时,采用了项目经理可以动态将需求划分成不同的子任务,等待所有任务完成后在重新审阅后,统一流转到下一个节点。动态创建任务的CreateTaskAction 如下:
/**
* Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.liferay.jbpm.handler;
import com.liferay.client.soap.portal.model.UserSoap;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.StringUtil;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.graph.node.TaskNode;
import org.jbpm.taskmgmt.def.Swimlane;
import org.jbpm.taskmgmt.def.Task;
import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
import org.jbpm.taskmgmt.exe.SwimlaneInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
/**
* <a href="NotifyRequestorActionHandler.java.html"><b><i>View Source</i></b>
* </a>
*
* @author Charles May
*
*/
public class CreateTasksAction implements ActionHandler {
private static final long serialVersionUID = 1L;
/* public void execute(ExecutionContext executionContext) throws Exception {
Token token = executionContext.getToken();
TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
TaskNode taskNode = (TaskNode) executionContext.getNode();
Task task= taskNode.getTask("manager-assign");
tmi.createTaskInstance(task, token)
.setPooledActors(new String[]{"10045"});
tmi.createTaskInstance(task, token)
.setPooledActors(new String[]{"10045"});
}
}*/
public void execute(ExecutionContext executionContext) {
ProcessDefinition definition = executionContext.getProcessDefinition();
TaskMgmtDefinition taskMgmtDefinition =
definition.getTaskMgmtDefinition();
TaskMgmtInstance taskMgmtInstance =
executionContext.getTaskMgmtInstance();
Swimlane requestorSwimlane =
taskMgmtDefinition.getSwimlane("requestor");
SwimlaneInstance requestorSwimlaneInstance =
taskMgmtInstance.getInitializedSwimlaneInstance(
executionContext, requestorSwimlane);
String userId = getDedicatedUserId(); // requestorSwimlaneInstance.getActorId();
//my test code
Token token = executionContext.getToken();
TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
TaskNode taskNode = (TaskNode) executionContext.getNode();
Task task= taskNode.getTask("dynamic-create-task");
//ActorId is UserId in liferay's userTable
//tmi.createTaskInstance(task, token).setActorId("10145");
// tmi.createTaskInstance(task, token).setActorId("14145");
// tmi.createTaskInstance(task, token).setActorId("14154");
//<variable name="radio:assign-to-user1:yes,no" access="read,write,required" />
//<variable name="radio:assign-to-user2:yes,no" access="read,write,required" />
//<variable name="radio:assign-to-user3:yes,no" access="read,write,required" />
//test code2
ContextInstance contextInstance = executionContext.getContextInstance();
String radio1 = (String)contextInstance.getVariable("radio:assign-to-user1:yes,no");
String radio2 = (String)contextInstance.getVariable("radio:assign-to-user2:yes,no");
String radio3 = (String)contextInstance.getVariable("radio:assign-to-user3:yes,no");
String checkBox1 = (String)contextInstance.getVariable("checkbox:assign-to-user1:yes");
String checkBox2 = (String)contextInstance.getVariable("checkbox:assign-to-user2:yes");
String checkBox3 = (String)contextInstance.getVariable("checkbox:assign-to-user3:yes");
if (radio1!= null && radio1.equals("yes")) {
tmi.createTaskInstance(task, token).setActorId("14145");
}
if (radio2!= null && radio2.equals("yes")) {
tmi.createTaskInstance(task, token).setActorId("14154");
}
if (radio3!= null && radio3.equals("yes")) {
tmi.createTaskInstance(task, token).setActorId("10145");
}
//Radio test assign task
/*if (taskRadio!= null && taskRadio.equals("assign-to-user1")) {
tmi.createTaskInstance(task, token).setActorId("14145");
}else if (taskRadio!= null && taskRadio.equals("assign-to-user2")) {
tmi.createTaskInstance(task, token).setActorId("14154");
}
else {
tmi.createTaskInstance(task, token).setActorId("10145");
}*/
//checkBox assign task
/* if (checkBox1 != null && checkBox1.equals("true")) {
tmi.createTaskInstance(task, token).setActorId("14145");
}
if (checkBox2 != null && checkBox2.equals("true")) {
tmi.createTaskInstance(task, token).setActorId("14154");
}
if (checkBox3 != null && checkBox3.equals("true")) {
tmi.createTaskInstance(task, token).setActorId("10145");
}
System.out.println("checkBox1======================================:"+checkBox1);
System.out.println("checkBox2======================================:"+checkBox2);
System.out.println("checkBox3======================================:"+checkBox2);*/
executionContext.getJbpmContext().getSession().saveOrUpdate(tmi);
// .setPooledActors(new String[]{"10145"});
// tmi.createTaskInstance(task, token)
// .setPooledActors(new String[]{"14145"});
// tmi.createTaskInstance(task, token)
// .setPooledActors(new String[]{"14154"});
// executionContext.leaveNode();
}
private String getDedicatedUserId() {
String userId = "10145";
return userId;
}
private static Log _log =
LogFactoryUtil.getLog(CreateTasksAction.class);
}
相关推荐
标题 "liferay-portal-sql-6.1.1-ce-ga2-20120731132656558" 暗示了这是一个关于Liferay Portal 6.1.1社区版(CE GA2)的SQL相关资源,发布日期为2012年7月31日。Liferay Portal是一个开源的企业级内容管理平台,它...
此外,SDK还包括了构建脚本(如`build.xml`)和配置文件(如`liferay-plugin-package.xml`),这些文件用于控制项目的构建过程和插件的元数据。`build.xml`通常使用Ant构建工具,定义了编译、测试、打包和部署的步骤...
本文将详细介绍“liferay-ide-eclipse-updatesite-1.6.2”这一更新站点及其相关知识点。 一、Liferay IDE Liferay IDE是由Liferay公司开发的,它是基于Eclipse平台的插件,专门用于简化Liferay Portal的开发工作。...
在IT行业中,Liferay IDE是一款专为Liferay Portal开发设计的强大工具,而"Liferay-ide-eclipse-updatesite-1.1.0.zip"正是这个工具的更新站点包,它提供了针对Liferay 6.0版本的定制化集成开发环境。Liferay IDE是...
liferay-portal-src-6.0.6-20110225.part2
【标题】"liferay-faces-bridge-impl-3.0.0-ga1.zip" 涉及的是Liferay Faces Bridge项目的实现模块,版本为3.0.0 GA1。Liferay Faces是Liferay门户平台的一个扩展,它提供了一种在Java EE环境中集成和使用JSF(Java...
【标题】"liferay-servicebuilder-archetype-6.1.1.zip" 是一个与Liferay门户框架相关的开源项目构建工具。Liferay是一款流行的开源企业级门户平台,它提供了多种服务来帮助开发者创建、管理和集成Web应用。"service...
《Liferay Developer Guide 6.0》是一本深入讲解Liferay Portal开发的指南,由Liferay公司官方发布,旨在帮助开发者充分利用Liferay平台构建企业级的Web应用。这本书详细介绍了如何利用Liferay的API、服务和插件进行...
此外,SDK提供了一种简便的方式将插件部署到本地或远程的Liferay实例,以进行实际环境的测试。 为了充分利用Liferay Plugins SDK 5.1.2,开发者需要熟悉Java编程、Maven构建系统、portlet规范以及Liferay Portal的...
Liferay 6.2 SDK 是一个开发工具包,专为构建和扩展Liferay Portal 6.2 版本而设计。Liferay Portal 是一个开源的企业级内容管理平台,提供了丰富的功能,如网站创建、协作、内容管理、社交媒体整合等。Liferay ...
Liferay IDE Eclipse插件是专为开发者设计的一款强大的工具,旨在提升在Eclipse集成开发环境中的Liferay Portal项目开发效率。这款插件提供了丰富的特性,使得开发者能够在Eclipse内无缝地进行Liferay相关的代码调试...
- **Liferay Plugins SDK (Software Development Kit)**: 下载地址为[liferay-plugins-sdk-6.2(PluginsSDK)](https://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.2.5%20GA6/)。这是开发portlet的...
liferay-portal-tomcat-5.5-5.1.1.part4.rar
liferay-portal-tomcat-5.5-5.1.1.part1.rar
liferay-portal-tomcat-5.5-5.1.1.part2.rar
liferay-portal-tomcat-5.5-5.1.1.part3.rar
最新的liferay-administrator-guide-6.0 所有关于liferay的管理
liferay-portal详解 Liferay Portal 是一个基于 Java 的开源门户平台,提供了一个灵活的框架来构建企业门户和 web 应用程序。本文档将从架构解析、portal 规范、portlet 容器、portlet 生命周期、liferay portal ...
commons-configuration-gae.zip,配置的实现(由apache commons配置库提供),使用google app engine datastore api存储配置参数;配置的实现(由apache commons配置库提供),使用google app engine datastore api...