Я использую Activiti BPM и хочу использовать его для запуска своего процесса bpm без Activiti Explore. Просто у меня есть пользовательская задача с одной переменной формы. Мне нужна помощь, чтобы присвоить значение этой задаче с помощью java.
Вот мой код:
public class Application {
public static void main(String[] args) throws FileNotFoundException {
String filename = "E:/Activiti/STS_workspace/Test/src/main/resources/diagrams/FinancialReportProcess.bpmn";
ActivitiRule activitiRule = new ActivitiRule();
// Create Activiti process engine
ProcessEngine processEngine = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration()
.setDatabaseType("postgres")
.setJdbcUrl("jdbc:postgresql://localhost:5432/testActiviti")
.setJdbcDriver("org.postgresql.Driver")
.setJdbcUsername("postgres")
.setJdbcPassword("postgres")
.setDatabaseSchemaUpdate("true")
.buildProcessEngine();
// Get Activiti services
RepositoryService repositoryService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();
// Deploy the process definition
repositoryService.createDeployment()
.addInputStream("financialReport.bpmn20.xml", new FileInputStream(filename)).deploy();
// Start a process instance
String procId = runtimeService.startProcessInstanceByKey("financialReport").getId();
FormService formService = processEngine.getFormService();
Map<String, String> formProperties = new HashMap<String, String>();
formProperties.put("name", "activiti rocks!");
// Get the first task
TaskService taskService = processEngine.getTaskService();
List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("accountancy").list();
for (Task task : tasks) {
System.out.println("Following task is available for accountancy group: " + task.getName());
TaskFormData taskFormData = formService.getTaskFormData(task.getId());
List<FormProperty> listFormProperty = taskFormData.getFormProperties();
for(FormProperty formProperty : listFormProperty){
System.out.println(task.getId()+":"+task.getName()+"id:"+formProperty.getId());
System.out.println(task.getId()+":"+task.getName()+"name:"+formProperty.getName());
System.out.println(task.getId()+":"+task.getName()+"type:"+formProperty.getType().getName());
System.out.println(task.getId()+":"+task.getName()+"value:"+formProperty.getValue());
}
System.out.println("task is "+task.getId()+":"+task.getName()+":"+task.getAssignee()+":"+task.getDescription());
}
}
}