km wen [http://community.jboss.org/people/kmwen] created the discussion
"Re: Question to process instance migration" To view the discussion, visit: http://community.jboss.org/message/570852#570852 -------------------------------------------------------------- thanks, michael, it works, if i deploy new process definition from the same .xml file with different version as following: ProcessDefinition pd1 = deployProcessDefinitionFromClasspath("org/jbpm/testMigration/a.jpdl.xml"); ProcessInstance pi1 = startAndSignal(pd1, "aa"); ProcessInstance pi2 = startAndSignal(pd1,"b"); ProcessInstance pi3 = startAndSignal(pd1,"c"); assertTrue(pi3.isActive("c")); // here get new process definition ProcessDefinition pd2 = deployProcessDefinitionFromClasspath("org/jbpm/testMigration/a.jpdl.xml"); assertEquals(pd2.getId(),"a-2"); pi3 = executionService.findProcessInstanceById(pi3.getId()); assertEquals(pd2.getId(),pi3.getProcessDefinitionId()); // here the instances of the previously deployed process definition //that are waiting in node "c" will be placed in the node "b". assertTrue(pi3.isActive("b")); __________________________________________________________________________________________ I have wrote following code, but it's failed. I want to get the new definition from another process .xml file. ProcessDefinition pd1 = deployProcessDefinitionFromClasspath("org/jbpm/testMigration/a.jpdl.xml"); ProcessInstance pi1 = startAndSignal(pd1, "aa"); ProcessInstance pi2 = startAndSignal(pd1,"b"); final ProcessInstance pi3 = startAndSignal(pd1,"c"); assertTrue(pi3.isActive("c")); // here get new process definition final ProcessDefinition pd2 = deployProcessDefinitionFromClasspath("org/jbpm/testMigration/a1.jpdl.xml"); new DefaultMigrationHandler().migrateInstance(pd2, pi3, new MigrationDescriptor()); processEngine.execute(new Command() { public Object execute(Environment env) { new DefaultMigrationHandler().migrateInstance(pd2, pi3, new MigrationDescriptor()); env.get(Session.class).update(pi3); return null; } }); assertTrue(pi3.isActive("b")); } following is process definition .xml file: <?xml version="1.0" encoding="UTF-8"?> <process name="a" xmlns=" http://jbpm.org/4.4/jpdl http://jbpm.org/4.4/jpdl"> <start g="33,107,48,48" name="s"> <transition to="aa"/> </start> <task g="138,107,92,52" name="aa"> <transition to="b"/> </task> <task g="274,108,92,52" name="b"> <transition to="c"/> </task> <task g="407,107,92,52" name="c"> <transition to="e"/> </task> <end g="549,109,48,48" name="e"/> <migrate-instances> <activity-mapping old-name="c" new-name="b"/> </migrate-instances> </process> ________________________________- <?xml version="1.0" encoding="UTF-8"?> <process name="a1" xmlns=" http://jbpm.org/4.4/jpdl http://jbpm.org/4.4/jpdl"> <start g="11,99,48,48" name="s"> <transition to="aa"/> </start> <state g="106,94,110,52" name="aa"> <transition to="x"/> </state> <state g="290,96,110,52" name="x"> <transition to="e"/> </state> <end g="499,99,48,48" name="e"/> </process> -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/570852#570852] Start a new discussion in jBPM at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
