Hi~I have a bean that use for starting my process instance with the process variable, I use activiti 5.12 and activiti-cdi.
the code is quite sample:
public void startProcess(PurchaseOrder po) {
System.out.println("————-Process begin————");
businessProcess.setVariable("po", po);
System.out.println("————-set process variables done————");
businessProcess.startProcessByKey("myProcess");
System.out.println("————-Process started————");
}
the system out msg use for my debug.
everything is perfect using the following bpmn:
<process id="myProcess" name="My process" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
<userTask id="usertask1" name="User Task"></userTask>
<sequenceFlow id="flow2" sourceRef="servicetask1" targetRef="usertask2"></sequenceFlow>
<userTask id="usertask2" name="User Task"></userTask>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow3" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
</process>
but when i change the "usertask1" to a email task, the process instance was not deployed. the system out msg remain in —set process variables done—– but not —-Process started—— and also , there is no exceptions.
the email task is also not special : <serviceTask id="mailtask1" name="Send email if received" activiti:type="mail">
I go on debug.
I set the email task as Asynchronous, the process instance will work, but seems the mail did not sent out successfully
and if I change the email task to a service task, it is no problem.
my engine configuration:
public ProcessEngine getProcessEngine() {
CdiJtaProcessEngineConfiguration processEngineConfiguration = new CdiJtaProcessEngineConfiguration();
processEngineConfiguration.setProcessEngineName("default");
processEngineConfiguration
.setDataSourceJndiName("java:jboss/datasources/MysqlDS");
processEngineConfiguration
.setTransactionManager(lookupTransactionManager());
processEngineConfiguration.setDatabaseType("mysql");
processEngineConfiguration.setDatabaseSchemaUpdate("true");
processEngineConfiguration.setTransactionsExternallyManaged(true);
processEngineConfiguration.setJobExecutorActivate(true);
processEngineConfiguration.setMailServerPort(1025);
processEngine = processEngineConfiguration.buildProcessEngine();
return processEngine;
}
Looking forward for the help~ Thank you.