Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
...
Code Block |
---|
import org.joget.apps.app.service.*; import org.joget.apps.form.dao.*; import org.joget.apps.form.model.*; import org.joget.apps.form.service.*; import org.joget.workflow.model.*; import org.joget.workflow.model.service.*; //constant value String foreignKey = "customProperties.apply_id"; String formDefId = "approveForm"; String tableName = "multiApproval_approvals"; String rowCountVariableName = "approvalCount"; String statusVariableName = "status"; int approvalCount = Integer.parseInt("#variable.approvalCount#"); String approvalIds = "#variable.approvalIds#"; //utility bean FormDataDao formDataDao = (FormDataDao) AppUtil.getApplicationContext().getBean("formDataDao"); WorkflowManager workflowManager = (WorkflowManager) AppUtil.getApplicationContext().getBean("workflowManager"); AppService appService = (AppService) AppUtil.getApplicationContext().getBean("appService"); //get foreign key String processId = workflowAssignment.getProcessId(); //build condition String condition = " WHERE " + foreignKey + " = ?"; Object[] paramsArray = new Object[]{processId}; //get subcontractorapproval data FormRowSet rows = new FormRowSet(); rows = formDataDao.find(formDefId, tableName, condition, paramsArray, "dateCreated", false, null, null); int rowCount = 0; String status = ""; String recordId = ""; for (FormRow r : rows) { recordId = r.getId(); String recordStatus = r.get("status"); if(recordStatus.equalsIgnoreCase("Rejected")){ status = "Rejected"; break; } rowCount++; } if(status.equalsIgnoreCase("Rejected")){ workflowManager.processVariable(processId, statusVariableName, "Rejected"); //terminate any remaining approval instances String[] approvalIdsSplit = approvalIds.split(","); for(String approvalId : approvalIdsSplit){ if(!approvalId.equalsIgnoreCase("") && !approvalId.equalsIgnoreCase(recordId)){ try{ workflowManager.processAbort(approvalId); }catch(Exception e){ } } } }else if(rowCount =>= approvalCount){ workflowManager.processVariable(processId, statusVariableName, "Approved"); } |
...
Figure 5: Result of Apply process