- 浏览: 304376 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (286)
- 设计模式 (14)
- spring (5)
- 开发工具 (12)
- java (19)
- apache.commons工具 (7)
- ibaits (5)
- extjs4.0 (4)
- 数据库 (2)
- spring工具类 (2)
- jquery1.8 (32)
- 杂记 (1)
- linux (2)
- Quart (1)
- springMVC (2)
- webservice (1)
- oracle (5)
- dwr (6)
- jbmp3 (27)
- lucene3.5 (27)
- javascript (18)
- hibernate3.3.2 (27)
- spring事务管理 (10)
- nio (2)
- strust2 (3)
- jvm (7)
- jquery-easyui-1.2.6 (22)
- 多线程 (14)
- maven (3)
- 常用正则表达式 (4)
最新评论
-
HF_SKY000:
请问:
一、能否提供一下密钥库文件的生成方法?
二、密钥库的密 ...
Java sslSocket 聊天实例
<process-definition name="test3">
<start-state name="开始">
<!-- 流转条件,从ContextInstance中取days变量 -->
<transition name="流向李四审批" to="李四审批" condition="#{days gt 10}"></transition>
<transition name="流向王五审批" to="王五审批" condition="#{days le 10}"></transition>
</start-state>
<task-node name="李四审批">
<task name="审批">
<assignment actor-id="李四"></assignment>
</task>
<transition name="" to="结束"></transition>
</task-node>
<task-node name="王五审批">
<task name="审批">
<assignment actor-id="王五"></assignment>
</task>
<transition name="" to="结束"></transition>
</task-node>
<end-state name="结束"></end-state>
</process-definition>
//创建公文
@Test
public void createDocTest(){
JbpmContext context = null;
try {
//默认从classpath中查找名为hibernate.cfg.xml的配置文件
JbpmConfiguration configuration = JbpmConfiguration.getInstance();
//JbpmContext是对hibernate session的封装,提供了对JBPM相关对象的持久化功能
context = configuration.createJbpmContext();
Document document = new Document();
document.setTitle("公文"+new Random().nextInt());
context.getSession().save(document);
//创建流程实例
//1、首先从数据库中加载ProcessDefinition对象
ProcessDefinition definition = context.getGraphSession().findLatestProcessDefinition("test3");
//2、根据ProcessDefinition对象,创建流程实例对象
ProcessInstance instance = new ProcessInstance(definition);
instance.setKey(document.getId()+"");
context.save(instance);
//3、把公文对象和流程实例对象互相绑定
System.out.println("流程实例ID:"+instance.getId());
System.out.println("公文ID:"+document.getId());
document.setProcessInstanceId(instance.getId());
instance.getContextInstance().setVariable("documentId", document.getId());
//为流转条件赋值
instance.getContextInstance().setVariable("days", 5);
} catch (RuntimeException e) {
e.printStackTrace();
//回滚
context.setRollbackOnly();
}finally{
context.close();
}
}
//查询开始节点的下一个流转方向
@SuppressWarnings("unchecked")
@Test
public void searchNextTransitionsFromStartStateTest(){
JbpmContext context = null;
try {
//默认从classpath中查找名为hibernate.cfg.xml的配置文件
JbpmConfiguration configuration = JbpmConfiguration.getInstance();
//JbpmContext是对hibernate session的封装,提供了对JBPM相关对象的持久化功能
context = configuration.createJbpmContext();
//已知公文Id=5
Document document = (Document) context.getSession().load(Document.class, 5l);
//得到公文对应的流程实例
long processInstanceId = document.getProcessInstanceId();
ProcessInstance instance = context.getProcessInstance(processInstanceId);
//当遇到流转是有条件的时候,该方法不合适
//List<Transition> list = instance.getRootToken().getNode().getLeavingTransitions();
Set<Transition> list = instance.getRootToken().getAvailableTransitions();
System.out.println("当前节点可以选择的流转方向有:");
for (Transition transition : list) {
System.out.println(transition.getName());
}
} catch (RuntimeException e) {
e.printStackTrace();
}finally{
context.close();
}
}
public void submitDocTest(){
JbpmContext context = null;
try {
//默认从classpath中查找名为hibernate.cfg.xml的配置文件
JbpmConfiguration configuration = JbpmConfiguration.getInstance();
//JbpmContext是对hibernate session的封装,提供了对JBPM相关对象的持久化功能
context = configuration.createJbpmContext();
//已知公文Id=6
Document document = (Document) context.getSession().load(Document.class, 6l);
//得到公文对应的流程实例
long processInstanceId = document.getProcessInstanceId();
ProcessInstance instance = context.getProcessInstance(processInstanceId);
/*将公文提交到下一个环节,只有在流程处于开始节点的时候使用,
当流程流转到某个任务节点时,不能使用该方法,因为使用该法只
能使流程流转到下一个节点,而不能保证该任务节点的任务已经完成,
使任务处于关闭状态*/
//无参数的signal()方法只能随机选择一个流转,当流转有条件时,就会出现冲突,提交失败
//可能会抛出org.jbpm.JbpmException: transition condition #{days gt 10} evaluated to 'false'
instance.signal("流向王五审批");//对于一个公文只能执行一次
} catch (RuntimeException e) {
e.printStackTrace();
//回滚
context.setRollbackOnly();
}finally{
context.close();
}
}
发表评论
-
二十七、jbpm回退
2012-11-16 10:56 2043要实现JBPM的任务回退很 ... -
二十六、JbpmFacade简单实现
2012-11-16 10:30 1114public class JbpmFacadeImpl ext ... -
二十五、将JBPM集成到基于SSH的OA系统中
2012-11-15 22:43 909具体步骤如下: -
二十四、如何给角色分配任务,而且拥有此角色的用户必需要通过n个人的审批之后才能继续往下?
2012-11-15 21:33 764解决方案: 1、 在一个node-enter ... -
二十三、如何给角色分配任务,而且拥有此角色的用户只要有一个用户审批通过就可以继续往下
2012-11-13 14:41 754解决方案: 首先,是基于前一个解决方案,我们自己来给 ... -
二十二、如何给角色分配任务,而且拥有此角色的用户均需审批通过之后才能继续往下?
2012-11-13 14:18 826解决方法: * 在一个n ... -
二十一、如何在Jbpm的各种Handler中访问spring的bean
2012-11-13 11:42 1006import org.springframe ... -
二十、如何给角色分配任务
2012-11-13 11:12 1115实现AssignmentHandler接口,在接口的实现方法中 ... -
十九、会签(通过PooledActors或者在一个TaskNode中定义多个Task)来实现
2012-11-09 17:15 941如何实现多人会签,而且只要其中一个人审批通过就继续往下? ... -
十八、自定义VariableResolver
2012-11-09 16:50 981<decision name="decisio ... -
十七、Decision节点和DecisionHandler的使用
2012-11-09 16:15 1019<?xml version="1.0& ... -
十六、流程相关的用例图、流程图
2012-11-08 17:29 933部署流程: ... -
十五、从中间的TaskNode节点出发如何得到下一步可选路径列表
2012-11-06 16:12 788在上一节中说到: Set&l ... -
十三、Fork和Join节点的基本用法
2012-11-06 10:48 1026<?xml version="1.0&qu ... -
十二、查询公文流转到哪个节点
2012-11-06 10:43 928//得到流程流转到的当前节点 @Test ... -
十一、流程流转
2012-11-06 10:43 880提交公文到下一个节点(本节点不是开始节点) pr ... -
十、查询某个用户的公文列表
2012-11-05 10:27 845private void printTask(JbpmCont ... -
九、提交公文
2012-11-05 10:29 766//将公文提交到第一个环节 @Test ... -
八、创建公文
2012-11-05 10:29 7911、创建公文对象 public ... -
七、部署流程
2012-11-05 10:28 851测试代码如下: //部署流程定义:根据流程 ...
相关推荐
A-start路径搜索
可以用A*算法实现路径搜索,基于GUI的。
路径规划也称为运动规划,是自主机器人的一项重要任务。它的目标是找到起点和目标位置之间的最短或至少最优路径。...起点和终点坐标分别为:q_start=[206, 198]; q_goal=[416, 612]。选用RRT*方法来规划路径
def Dijkstra(network,s,d):#迪杰斯特拉算法算s-d的最短路径,并返回该路径和代价 print(Start Dijstra Path……) path=[]#s-d的最短路径 n=len(network)#邻接矩阵维度,即节点个数 fmax=999 w=[[0 for i in ...
DownloadBase start DownloadBase m_bResueThread = 0, m_hThread = 0 CHttpDownload Run before OpenInternetSession m_hInetSession : 0 after OpenInternetSession m_hInetSession : 13369352 before ...
到控制面板里面先把mysql删除. 到c盘C:\Program Files目录下把mysql目录删除. 如果在其他盘还有设置目录也要删除.空目录也要删除 到regedit把注册表 ,全部删除!
# 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ) # 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”) # 问总共有多少条不同的路径? # ...
官方链接 ...从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 示例 2: 输入: m = 7, n = 3 输出: 28 提示: 1 <= m,
含有各种障碍物的,水平面两点间最短的距离算法。就相当于计算你从一个地方走到另一个地方,最短的路径。 注意:不是图论!不是节点!不是Dijkstra!不是Floyd!
经常有些同学安装到最后一步时,出现服务器未打开的错误,希望这个可以帮助到TA
@echo Restore The Service Start State Saved At 9:20:27.79 2005-09-03 星期六 @pause sc config Alerter start= DISABLED sc config ALG start= DEMAND sc config AppMgmt start= DEMAND sc config AudioSrv...
maximo里的startcenter自动刷新功能
那么从左上角到右下角将会有多少条不同的路径? # 网格中的障碍物和空位置分别用 1 和 0 来表示 # 说明:m 和 n 的值均不超过 100 # 示例 1: # 输入: # [ # [0,0,0], # [0,1,0], # [0,0,0] # ] # 输出: 2
一个基于MATLAB的K-最短路径算法,能够最大程度的在第k次找到行进的最短路径
删除小车功能,设定小车颜色(可选),加入预设的特殊布局地图、计时功能。 ### V1.2 删除小车功能完成 #### 问题记录 ![image-20201119153155889](C:\Users\AA\AppData\Roaming\Typora\typora-user-images\...
从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 示例 2: 输入: m = 7, n = 3 输出: 28 提示: 1 <= m, n <
我们的目标是找到从起点(start)到终点(end)的路径。 这是使用Python实现的代码:见附件 注意,这个代码假设了起点的位置一定是可达的,并且迷宫中一定有可行的路径从起点到终点。如果这些假设不成立,那么你可能需要...
4、点击“下一步”,到下图界面,会因为我们没有填写上图的的支持信息而弹出两个警告框,直接“YES”通过即可。进入下图,勾选下面的框(不需要使用验证) 5、然后点击“继续”。到下图界面,选择“典型”和“定制...
mysql 安装到最后一步时,start service 为失败状态.docx
最短路径搜索是通过算法找到一张图从起点(start)到终点(goal)之间的最短路径(path),为了简化,我们这里使用方格图(该图可以简单地用二维数组来表示),如下动图所示,其中代表起点,代表终点。广度优先算法...