diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/processes/RunProcessAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/processes/RunProcessAction.java index a9ed2cde..43225d02 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/processes/RunProcessAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/processes/RunProcessAction.java @@ -49,6 +49,7 @@ import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryInput; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryOutput; import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateInput; import com.kingsrook.qqq.backend.core.model.data.QRecord; +import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData; @@ -142,7 +143,7 @@ public class RunProcessAction QStepMetaData step = stepList.get(0); lastStepName = step.getName(); - if(step instanceof QFrontendStepMetaData) + if(step instanceof QFrontendStepMetaData frontendStep) { //////////////////////////////////////////////////////////////// // Handle what to do with frontend steps, per request setting // @@ -152,6 +153,7 @@ public class RunProcessAction case BREAK -> { LOG.trace("Breaking process [" + process.getName() + "] at frontend step (as requested by caller): " + step.getName()); + processFrontendStepFieldDefaultValues(processState, frontendStep); processState.setNextStepName(step.getName()); break STEP_LOOP; } @@ -229,6 +231,22 @@ public class RunProcessAction + /******************************************************************************* + ** + *******************************************************************************/ + private void processFrontendStepFieldDefaultValues(ProcessState processState, QFrontendStepMetaData step) + { + for(QFieldMetaData formField : CollectionUtils.mergeLists(step.getFormFields(), step.getInputFields(), step.getViewFields(), step.getOutputFields())) + { + if(formField.getDefaultValue() != null && processState.getValues().get(formField.getName()) == null) + { + processState.getValues().put(formField.getName(), formField.getDefaultValue()); + } + } + } + + + /******************************************************************************* ** When we start running a process (or resuming it), get data in the RunProcessRequest ** either from the state provider (if they're found, for a resume).