惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
博客园 - 聂微东
Application and Cybersecurity Blog
Application and Cybersecurity Blog
MyScale Blog
MyScale Blog
罗磊的独立博客
H
Help Net Security
L
LangChain Blog
T
Threat Research - Cisco Blogs
量子位
S
Securelist
Last Week in AI
Last Week in AI
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
The Hacker News
The Hacker News
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
T
Threatpost
Security Latest
Security Latest
P
Palo Alto Networks Blog
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
F
Full Disclosure
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Heimdal Security Blog
J
Java Code Geeks
Recorded Future
Recorded Future
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
B
Blog RSS Feed
月光博客
月光博客
C
Cisco Blogs
V
Visual Studio Blog
D
DataBreaches.Net
H
Hacker News: Front Page
博客园 - 叶小钗
N
News and Events Feed by Topic
爱范儿
爱范儿
A
Arctic Wolf

博客园 - 阿木申

spring JPA 动态查询 iOS收到Push后播放声音和震动 [vb]sendkeys [vb]键盘精灵 - 阿木申 - 博客园 javascript 画带箭头的线段 关于input type='file'的内容的一种解决方法,模拟键盘 - 阿木申 - 博客园 防止IE缓存,就相当于IE选择每次打开就检查 - 阿木申 - 博客园 [dojo] 解决传中文的乱码问题 - 阿木申 - 博客园 [dojo] dojo.xhrGet和.net整合使用 [dojo]好用的页面对话框dijit.Dialog [dojo]日期选择:dijit.form.DateTextbox [dojo]功能强大的文本框:dijit.form.ValidationTextbox - 阿木申 - 博客园 dojo0.9 dojo.data研究笔记 [dojo] dojo 0.9 的使用心得 [原创]jBPM 子流程的使用 [原创]jBPM动态生成任务实例,会签或者分派任务时特别有用 [dojo转]动态生成widget [原创]jBpm中泳道使用心得 [原创]jBPM中的Expression和script
[原创]JBPM中的基本操作代码
阿木申 · 2007-07-02 · via 博客园 - 阿木申

最近研究了一下jBMP,将一些常用的方法记录下来:

public class BasicTest extends TestCase {
    
    
public void testSave(){
        JbpmContext jbpmContext
=null;
        
try //保存一个流程定义
        FileInputStream fis = new FileInputStream("src/main/jpdl/buy/processdefinition.xml");
        ProcessDefinition processDefinition 
= ProcessDefinition.parseXmlInputStream(fis);
        ProcessInstance instance 
= new ProcessInstance(processDefinition);
        jbpmContext 
= JbpmConfiguration.getInstance().createJbpmContext();
        
        jbpmContext.deployProcessDefinition(processDefinition);
        
        }
catch(Exception e){
        }
 finally {         
            jbpmContext.close();  
        }

    }

    
    
public void testCreateNewProcess(){
        JbpmContext jbpmContext 
= JbpmConfiguration.getInstance().createJbpmContext();
        
//ProcessInstance lastIns=jbpmContext.getProcessInstance(2);
        GraphSession graphSession = jbpmContext.getGraphSession();
        ProcessDefinition processDefinition1 
= graphSession.findLatestProcessDefinition("buy");
        ProcessInstance lastIns
=new ProcessInstance(processDefinition1);
        jbpmContext.save(lastIns);
        jbpmContext.close();        
    }

    
    
public void testSignal(){
        JbpmContext jbpmContext 
= JbpmConfiguration.getInstance().createJbpmContext();
        ProcessInstance ins
=jbpmContext.getProcessInstance(1);        
        System.out.println(
"root token:"+ins.getRootToken().getNode().getName());
        ins.signal();        
        System.out.println(
"root token:"+ins.getRootToken().getNode().getName());
        jbpmContext.save(ins);
        jbpmContext.close();
    }

    
    
public void _testManTask(){
        JbpmContext jbpmContext 
= JbpmConfiguration.getInstance().createJbpmContext();
                
        
//List list=jbpmContext.getTaskMgmtSession().findTaskInstances("shennan");
        List list=jbpmContext.getTaskMgmtSession().findPooledTaskInstances("shennan");
        
for(int i=0;i<list.size();i++){
            TaskInstance ti
=(TaskInstance)list.get(i);
            System.out.println(
"man task:"+ti.getName()+","+ti.getTaskMgmtInstance().getId());
            
            ti.end(
"to decision1");
        }

        
if(list.size()==0)System.out.println("no this man 's task!");
        jbpmContext.close();
    }

    
    
public void testSwimlane(){
        JbpmContext jbpmContext 
= JbpmConfiguration.getInstance().createJbpmContext();
                
        
//List list=jbpmContext.getTaskMgmtSession().findTaskInstances("shennan");
        List list=jbpmContext.getTaskMgmtSession().findPooledTaskInstances("shennan");
        
for(int i=0;i<list.size();i++){
            TaskInstance ti
=(TaskInstance)list.get(i);
            System.out.println(
"man task:"+ti.getName()+","+ti.getTaskMgmtInstance().getId());
            
            ti.end(
"to购买");
        }

        
if(list.size()==0)System.out.println("no this man 's task!");
        
        System.out.println(
"开始购买");
        List ll
=jbpmContext.getTaskList("shennan");
        
if(ll.size()>0){
            TaskInstance ti
=(TaskInstance)ll.get(0);
            ti.end(
"to 选择物品");
        }

        
        System.out.println(
"退回");
        
//list=jbpmContext.getTaskMgmtSession().findPooledTaskInstances("shennan");\
        list=jbpmContext.getTaskMgmtSession().findTaskInstances("limeng");
        
if(list.size()>0){
            System.out.println(
"重做");
            TaskInstance ti
=(TaskInstance)list.get(0);
            ti.end(
"to decision1");
            
        }

                
        jbpmContext.close();
    }

}