Hi, i am trying to create a process instance, so i check the code given in examples and the method setEntityId no longer exists. So, i found setObjectEntityId but i can’t get it work. The entity ID never get saved on database, all other saved perfectly. This is my code:
public class ClientesEdit extends AbstractEditor<Clientes> {
private static final String PROCESS_CODE = "promoverClienteEstado";
@Inject
private ProcActionsFrame procActionsFrame;
@Inject
private DataManager dataManager;
@Inject
private Metadata metadata;
private ProcDefinition procDefinition;
private ProcInstance procInstance;
@Override
protected void postInit() {
super.postInit();
procDefinition = findProcDefinition();
if (procDefinition != null)
{
procInstance = findProcInstance();
if (procInstance == null)
{
procInstance = metadata.create(ProcInstance.class);
procInstance.setProcDefinition(procDefinition);
procInstance.setEntityName(getItem().getMetaClass().getName());
procInstance.setObjectEntityId(getItem().getUuid());
initProcActionsFrame();
}
}
}
private void initProcActionsFrame() {
procActionsFrame.initializer()
.setBeforeStartProcessPredicate(this::commit)
.setAfterStartProcessListener(() -> {
showNotification(getMessage("processstarted!!"), NotificationType.HUMANIZED);
close(COMMIT_ACTION_ID);
})
.setBeforeCompleteTaskPredicate(this::commit)
.setAfterCompleteTaskListener(() -> {
showNotification(getMessage("taskcompleted!!"), NotificationType.HUMANIZED);
close(COMMIT_ACTION_ID);
})
.init(procInstance);
}
@Nullable
private ProcDefinition findProcDefinition() {
LoadContext ctx = LoadContext.create(ProcDefinition.class);
ctx.setQueryString("select pd from bpm$ProcDefinition pd where pd.code = :code")
.setParameter("code", PROCESS_CODE);
return (ProcDefinition) dataManager.load(ctx);
}
@Nullable
private ProcInstance findProcInstance() {
LoadContext ctx = LoadContext.create(ProcInstance.class).setView("procInstance-start");
ctx.setQueryString("select pi from bpm$ProcInstance pi where pi.procDefinition.id = :procDefinition and pi.entity.entityId = :entityId")
.setParameter("procDefinition", procDefinition)
.setParameter("entityId", getItem().getUuid());
return (ProcInstance) dataManager.load(ctx);
}
}