Hello!
As a fresh Jboss user I came to a problem that is basic probably for most of 
you, but I cannot find a solution anywhere. 
I am using jBPM-starters kit 3.1.4 and working in Eclipse with the JBoss plugin.
I try to create two processes, where one is nested in another as a subflow. The 
very simplified version of the problem is such:
Super-process:
<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition
  |   xmlns="urn:jbpm.org:jpdl-3.1"  name="Super">
  |    <start-state name="start">
  |       <transition name="" to="process1"></transition>
  |    </start-state>
  |    <process-state name="process1">
  |       <sub-process name="Sub" />
  |       <transition name="" to="end1"></transition>
  |    </process-state>
  |    <end-state name="end1"></end-state>
  | </process-definition>

Sub-process:
<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition
  |   xmlns="urn:jbpm.org:jpdl-3.1"  name="Sub">
  |    <start-state name="start">
  |       <transition name="" to="end1"></transition>
  |    </start-state>
  |    <end-state name="end1"></end-state>
  | </process-definition>

Then I try to run the super-process in a way suggested in this thread:
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=93504

public class Test {
  | 
  |     public static void main(String[] args) {
  | 
  |             JbpmContext context = JbpmConfiguration.getInstance()
  |                             .createJbpmContext();
  | 
  |             try {
  |                     FileInputStream fis_super = new FileInputStream(
  |                                     
"/path/Eclipse/workspace/SubflowTest/src/main/Super/processdefinition.xml");
  |                     FileInputStream fis_sub = new FileInputStream(
  |                                     
"/path/Eclipse/workspace/SubflowTest/src/main/Sub/processdefinition.xml");
  | 
  |                     ProcessDefinition pdload_sub = ProcessDefinition
  |                                     .parseXmlInputStream(fis_sub);
  |                     context.deployProcessDefinition(pdload_sub);
  | 
  |                     ProcessDefinition pdload_super = ProcessDefinition
  |                                     .parseXmlInputStream(fis_super);
  |                     context.deployProcessDefinition(pdload_super);
  | 
  |                     GraphSession gs_caller = context.getGraphSession();
  | 
  |                     // don't think I necessarily need to reload the process 
definitions
  |                     // from the session but it doesn't make a difference
  |                     ProcessDefinition pd_sub = gs_caller
  |                                     .findLatestProcessDefinition("Sub");
  |                     ProcessDefinition pd_super = gs_caller
  |                                     .findLatestProcessDefinition("Super");
  | 
  |                     ProcessInstance inst = new ProcessInstance(pd_super);
  | 
  |                     // begin
  |                     Token token = inst.getRootToken();
  |                     ContextInstance contextInst = (ContextInstance) inst
  |                                     .getInstance(ContextInstance.class);
  | 
  |                     System.out.println("getNode().getName(): "
  |                                     + token.getNode().getName());
  | 
  |                     token.signal();
  |                     System.out.println("getNode().getName(): "
  |                                     + token.getNode().getName());
  |             } catch (Exception e) {
  |                     e.printStackTrace();
  |             } finally {
  |                     context.close();
  |             }
  |     }
  | }

The result of the execution is the well known "table JBPM_PROCESSDEFINITION not 
found" error (exactly:
10:49:44,916 [main] DEBUG DbPersistenceService : beginning hibernate transaction
  | 10:49:44,959 [main] WARN  JDBCExceptionReporter : SQL Error: -22, SQLState: 
S0002
  | 10:49:44,960 [main] ERROR JDBCExceptionReporter : Table not found in 
statement [select top ? processdef0_.ID_ as ID1_4_, processdef0_.NAME_ as 
NAME2_4_, processdef0_.VERSION_ as VERSION3_4_, 
processdef0_.ISTERMINATIONIMPLICIT_ as ISTERMIN4_4_, processdef0_.STARTSTATE_ 
as STARTSTATE5_4_ from JBPM_PROCESSDEFINITION processdef0_ where 
processdef0_.NAME_=? order by processdef0_.VERSION_ desc]
  | org.hibernate.exception.SQLGrammarException: could not execute query
  |     at 
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
  |     at 
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  |     at org.hibernate.loader.Loader.doList(Loader.java:2153)
  | (...)
  | Caused by: java.sql.SQLException: Table not found in statement [select top 
? processdef0_.ID_ as ID1_4_, processdef0_.NAME_ as NAME2_4_, 
processdef0_.VERSION_ as VERSION3_4_, processdef0_.ISTERMINATIONIMPLICIT_ as 
ISTERMIN4_4_, processdef0_.STARTSTATE_ as STARTSTATE5_4_ from 
JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=? order by 
processdef0_.VERSION_ desc]
  |     at org.hsqldb.jdbc.Util.throwError(Unknown Source)
  |     at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
  |     at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
  | (...)
  | 10:49:44,968 [main] ERROR GraphSession : 
org.hibernate.exception.SQLGrammarException: could not execute query
  | org.jbpm.JbpmException: couldn't find process definition 'Sub'
  |     at 
org.jbpm.db.GraphSession.findLatestProcessDefinition(GraphSession.java:157)
  |     at 
org.jbpm.db.GraphSession.deployProcessDefinition(GraphSession.java:67)
  |     at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173)
  |     at Test.main(Test.java:26)
  | Caused by: org.hibernate.exception.SQLGrammarException: could not execute 
query
  |     at 
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
  |     at 
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  | (...)
  | Caused by: java.sql.SQLException: Table not found in statement [select top 
? processdef0_.ID_ as ID1_4_, processdef0_.NAME_ as NAME2_4_, 
processdef0_.VERSION_ as VERSION3_4_, processdef0_.ISTERMINATIONIMPLICIT_ as 
ISTERMIN4_4_, processdef0_.STARTSTATE_ as STARTSTATE5_4_ from 
JBPM_PROCESSDEFINITION processdef0_ where processdef0_.NAME_=? order by 
processdef0_.VERSION_ desc]
  |     at org.hsqldb.jdbc.Util.throwError(Unknown Source)
  |     at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
  |     at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
  | (...)
  |  (I trimmed the log)
So one thing I understood from what I read in the forum and in the Internet - i 
have to set up the Hibernate database and create a table 
JBPM_PROCESSDEFINITION. But I couldn't find a hint on how to to it. Can it be 
done programatticaly? Or how should I do it in any other way (preferably nice 
and easy :P)?

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4028719#4028719

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4028719
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to