Hello,
It will be super to have more explanation in the Bonita API.
I search to clone a process to a new one. i'm looking to clone the form Mapping;
1/ How to process the current list of form?
I believe this is :
SearchOptionsBuilder search = new SearchOptionsBuilder(0,100);
search.filter(FormMappingSearchDescriptor.PROCESS_DEFINITION_ID, processDesign.processDefinitionId);
SearchResult<FormMapping> searchFormMapping = processAPI.searchFormMappings(search.done());
Then we can loop on the form Mapping
for (FormMapping formMapping : searchFormMapping.getResult()) {
Page page = pageAPI.getPage(formMapping.getPageId());
if (page!=null)
{
formMappingBuilder.addTaskForm(page.getName(), formMapping.getTarget(), formMapping.getTask()); }
Q1.1 Is that correct?
2/ How can I build the new form ?
BusinessArchiveBuilder barBuilder = new BusinessArchiveBuilder().createNewBusinessArchive()
.setProcessDefinition(newDesign);
FormMappingModelBuilder formMappingBuilder = FormMappingModelBuilder.buildFormMappingModel();
for (FormMapping formMapping : searchFormMapping.getResult()) {
Page page = pageAPI.getPage(formMapping.getPageId());
if (page!=null)
{
if (formMapping.getType() == FormMappingType.PROCESS_START)
formMappingBuilder.addProcessStartForm(page.getName(), formMapping.getTarget());
if (formMapping.getType() == FormMappingType.PROCESS_OVERVIEW)
formMappingBuilder.addProcessOverviewForm(page.getName(), formMapping.getTarget());
formMappingBuilder.addTaskForm(page.getName(), formMapping.getTarget(), formMapping.getTask());
}
}
Q2.1 : how do I deploy this newFormMappingModel ?
BusinessArchiveBuilder businessArchiveBuilder = new BusinessArchiveBuilder().createNewBusinessArchive();
if (artifactBuilder.processDefinitionBuilder != null)
businessArchiveBuilder.setProcessDefinition(artifactBuilder.processDefinitionBuilder.done());
if (artifactBuilder.formMappingBuilder != null) {
businessArchiveBuilder.setFormMappings(artifactBuilder.formMappingBuilder.build());
}
if (artifactBuilder.actorMapping != null)
businessArchiveBuilder.setActorMapping(artifactBuilder.actorMapping);
newDesign = artifactBuilder.processDefinitionBuilder.done();
Correct ?
At the end, my new process does not have any form mapping... Worst, it say " No form expected" for each tasks.
Thank you,