@Override public FormRowSet store(Element element, FormRowSet rows, FormData formData) { FormRowSet result = rows; if (rows != null && !rows.isEmpty()) { // store form data to DB result = super.store(element, rows, formData); // handle workflow variables if (!rows.isMultiRow()) { String activityId = formData.getActivityId(); String processId = formData.getProcessId(); if (activityId != null || processId != null) { WorkflowManager workflowManager = (WorkflowManager) WorkflowUtil.getApplicationContext().getBean("workflowManager"); // recursively find element(s) mapped to workflow variable FormRow row = rows.iterator().next(); Map<String, String> variableMap = new HashMap<String, String>(); variableMap = storeWorkflowVariables(element, row, variableMap); if (activityId != null) { workflowManager.activityVariables(activityId, variableMap); } else { workflowManager.processVariables(processId, variableMap); } } } } return result; }