CE-1727 - migrating from updatedFrontendStepList to processMetaDataAdjustment - so one can update fields in a process (original intent for inline PVS's)

This commit is contained in:
2024-09-20 09:44:37 -05:00
parent 780341b5cc
commit cf4c6d2144
8 changed files with 82 additions and 45 deletions

View File

@ -335,12 +335,12 @@ public class RunProcessAction
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
runProcessInput.seedFromProcessState(optionalProcessState.get()); runProcessInput.seedFromProcessState(optionalProcessState.get());
/////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////
// if we're restoring an old state, we can discard a previously stored updatedFrontendStepList - // // if we're restoring an old state, we can discard a previously stored processMetaDataAdjustment - //
// it is only needed on the transitional edge from a backend-step to a frontend step, but not // // it is only needed on the transitional edge from a backend-step to a frontend step, but not //
// in the other directly // // in the other directly //
/////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////
optionalProcessState.get().setUpdatedFrontendStepList(null); optionalProcessState.get().setProcessMetaDataAdjustment(null);
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// if there were values from the caller, put those (back) in the request // // if there were values from the caller, put those (back) in the request //

View File

@ -29,7 +29,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData;
/******************************************************************************* /*******************************************************************************
@ -42,10 +41,7 @@ public class ProcessState implements Serializable
private List<String> stepList = new ArrayList<>(); private List<String> stepList = new ArrayList<>();
private Optional<String> nextStepName = Optional.empty(); private Optional<String> nextStepName = Optional.empty();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private ProcessMetaDataAdjustment processMetaDataAdjustment = null;
// maybe, remove this altogether - just let the frontend compute & send if needed... but how does it know last version...? //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
private List<QFrontendStepMetaData> updatedFrontendStepList = null;
@ -148,33 +144,36 @@ public class ProcessState implements Serializable
/******************************************************************************* /*******************************************************************************
** Getter for updatedFrontendStepList ** Getter for processMetaDataAdjustment
*******************************************************************************/ *******************************************************************************/
public List<QFrontendStepMetaData> getUpdatedFrontendStepList() public ProcessMetaDataAdjustment getProcessMetaDataAdjustment()
{ {
return (this.updatedFrontendStepList); return (this.processMetaDataAdjustment);
} }
/******************************************************************************* /*******************************************************************************
** Setter for updatedFrontendStepList ** Setter for processMetaDataAdjustment
*******************************************************************************/ *******************************************************************************/
public void setUpdatedFrontendStepList(List<QFrontendStepMetaData> updatedFrontendStepList) public void setProcessMetaDataAdjustment(ProcessMetaDataAdjustment processMetaDataAdjustment)
{ {
this.updatedFrontendStepList = updatedFrontendStepList; this.processMetaDataAdjustment = processMetaDataAdjustment;
} }
/******************************************************************************* /*******************************************************************************
** Fluent setter for updatedFrontendStepList ** Fluent setter for processMetaDataAdjustment
*******************************************************************************/ *******************************************************************************/
public ProcessState withUpdatedFrontendStepList(List<QFrontendStepMetaData> updatedFrontendStepList) public ProcessState withProcessMetaDataAdjustment(ProcessMetaDataAdjustment processMetaDataAdjustment)
{ {
this.updatedFrontendStepList = updatedFrontendStepList; this.processMetaDataAdjustment = processMetaDataAdjustment;
return (this); return (this);
} }
} }

View File

@ -374,7 +374,13 @@ public class RunBackendStepOutput extends AbstractActionOutput implements Serial
.map(step -> (QFrontendStepMetaData) step) .map(step -> (QFrontendStepMetaData) step)
.toList()); .toList());
setUpdatedFrontendStepList(updatedFrontendStepList); ProcessMetaDataAdjustment processMetaDataAdjustment = getProcessMetaDataAdjustment();
if(processMetaDataAdjustment == null)
{
processMetaDataAdjustment = new ProcessMetaDataAdjustment();
}
processMetaDataAdjustment.setUpdatedFrontendStepList(updatedFrontendStepList);
setProcessMetaDataAdjustment(processMetaDataAdjustment);
} }
@ -411,21 +417,21 @@ public class RunBackendStepOutput extends AbstractActionOutput implements Serial
/******************************************************************************* /*******************************************************************************
** Getter for updatedFrontendStepList ** Getter for ProcessMetaDataAdjustment (pass-through to processState)
*******************************************************************************/ *******************************************************************************/
public List<QFrontendStepMetaData> getUpdatedFrontendStepList() public ProcessMetaDataAdjustment getProcessMetaDataAdjustment()
{ {
return (this.processState.getUpdatedFrontendStepList()); return (this.processState.getProcessMetaDataAdjustment());
} }
/******************************************************************************* /*******************************************************************************
** Setter for updatedFrontendStepList ** Setter for updatedFrontendStepList (pass-through to processState)
*******************************************************************************/ *******************************************************************************/
public void setUpdatedFrontendStepList(List<QFrontendStepMetaData> updatedFrontendStepList) public void setProcessMetaDataAdjustment(ProcessMetaDataAdjustment processMetaDataAdjustment)
{ {
this.processState.setUpdatedFrontendStepList(updatedFrontendStepList); this.processState.setProcessMetaDataAdjustment(processMetaDataAdjustment);
} }
} }

View File

@ -33,6 +33,7 @@ import java.util.Optional;
import com.kingsrook.qqq.backend.core.model.actions.AbstractActionOutput; import com.kingsrook.qqq.backend.core.model.actions.AbstractActionOutput;
import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData;
import com.kingsrook.qqq.backend.core.utils.ObjectUtils;
import com.kingsrook.qqq.backend.core.utils.ValueUtils; import com.kingsrook.qqq.backend.core.utils.ValueUtils;
@ -336,7 +337,12 @@ public class RunProcessOutput extends AbstractActionOutput implements Serializab
*******************************************************************************/ *******************************************************************************/
public void setUpdatedFrontendStepList(List<QFrontendStepMetaData> updatedFrontendStepList) public void setUpdatedFrontendStepList(List<QFrontendStepMetaData> updatedFrontendStepList)
{ {
this.processState.setUpdatedFrontendStepList(updatedFrontendStepList); if(this.processState.getProcessMetaDataAdjustment() == null)
{
this.processState.setProcessMetaDataAdjustment(new ProcessMetaDataAdjustment());
}
this.processState.getProcessMetaDataAdjustment().setUpdatedFrontendStepList(updatedFrontendStepList);
} }
@ -346,7 +352,27 @@ public class RunProcessOutput extends AbstractActionOutput implements Serializab
*******************************************************************************/ *******************************************************************************/
public List<QFrontendStepMetaData> getUpdatedFrontendStepList() public List<QFrontendStepMetaData> getUpdatedFrontendStepList()
{ {
return this.processState.getUpdatedFrontendStepList(); return ObjectUtils.tryElse(() -> this.processState.getProcessMetaDataAdjustment().getUpdatedFrontendStepList(), null);
}
/*******************************************************************************
** Getter for processMetaDataAdjustment
*******************************************************************************/
public ProcessMetaDataAdjustment getProcessMetaDataAdjustment()
{
return (this.processState.getProcessMetaDataAdjustment());
}
/*******************************************************************************
** Setter for processMetaDataAdjustment
*******************************************************************************/
public void setProcessMetaDataAdjustment(ProcessMetaDataAdjustment processMetaDataAdjustment)
{
this.processState.setProcessMetaDataAdjustment(processMetaDataAdjustment);
} }
} }

View File

@ -176,9 +176,9 @@ public class StreamedETLExecuteStep extends BaseStreamedETLStep implements Backe
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(postRunOutput.getUpdatedFrontendStepList() != null) if(postRunOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.setUpdatedFrontendStepList(postRunOutput.getUpdatedFrontendStepList()); runBackendStepOutput.setProcessMetaDataAdjustment(postRunOutput.getProcessMetaDataAdjustment());
} }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -281,10 +281,10 @@ public class StreamedETLExecuteStep extends BaseStreamedETLStep implements Backe
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(streamedBackendStepOutput.getUpdatedFrontendStepList() != null) if(streamedBackendStepOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.getProcessState().setStepList(streamedBackendStepOutput.getProcessState().getStepList()); runBackendStepOutput.getProcessState().setStepList(streamedBackendStepOutput.getProcessState().getStepList());
runBackendStepOutput.setUpdatedFrontendStepList(streamedBackendStepOutput.getUpdatedFrontendStepList()); runBackendStepOutput.getProcessState().setProcessMetaDataAdjustment(streamedBackendStepOutput.getProcessMetaDataAdjustment());
} }
//////////////////////////////////////////////// ////////////////////////////////////////////////
@ -299,10 +299,10 @@ public class StreamedETLExecuteStep extends BaseStreamedETLStep implements Backe
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(streamedBackendStepOutput.getUpdatedFrontendStepList() != null) if(streamedBackendStepOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.getProcessState().setStepList(streamedBackendStepOutput.getProcessState().getStepList()); runBackendStepOutput.getProcessState().setStepList(streamedBackendStepOutput.getProcessState().getStepList());
runBackendStepOutput.setUpdatedFrontendStepList(streamedBackendStepOutput.getUpdatedFrontendStepList()); runBackendStepOutput.getProcessState().setProcessMetaDataAdjustment(streamedBackendStepOutput.getProcessMetaDataAdjustment());
} }
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////

View File

@ -148,9 +148,9 @@ public class StreamedETLPreviewStep extends BaseStreamedETLStep implements Backe
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(postRunOutput.getUpdatedFrontendStepList() != null) if(postRunOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.setUpdatedFrontendStepList(postRunOutput.getUpdatedFrontendStepList()); runBackendStepOutput.setProcessMetaDataAdjustment(postRunOutput.getProcessMetaDataAdjustment());
} }
} }
@ -219,10 +219,9 @@ public class StreamedETLPreviewStep extends BaseStreamedETLStep implements Backe
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(streamedBackendStepOutput.getUpdatedFrontendStepList() != null) if(streamedBackendStepOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.getProcessState().setStepList(streamedBackendStepOutput.getProcessState().getStepList()); runBackendStepOutput.getProcessState().setProcessMetaDataAdjustment(streamedBackendStepOutput.getProcessMetaDataAdjustment());
runBackendStepOutput.setUpdatedFrontendStepList(streamedBackendStepOutput.getUpdatedFrontendStepList());
} }
//////////////////////////////////////////////////// ////////////////////////////////////////////////////

View File

@ -145,9 +145,9 @@ public class StreamedETLValidateStep extends BaseStreamedETLStep implements Back
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(postRunOutput.getUpdatedFrontendStepList() != null) if(postRunOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.setUpdatedFrontendStepList(postRunOutput.getUpdatedFrontendStepList()); runBackendStepOutput.setProcessMetaDataAdjustment(postRunOutput.getProcessMetaDataAdjustment());
} }
} }
@ -183,10 +183,9 @@ public class StreamedETLValidateStep extends BaseStreamedETLStep implements Back
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// propagate data from inner-step state to process-level step state // // propagate data from inner-step state to process-level step state //
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
if(streamedBackendStepOutput.getUpdatedFrontendStepList() != null) if(streamedBackendStepOutput.getProcessMetaDataAdjustment() != null)
{ {
runBackendStepOutput.getProcessState().setStepList(streamedBackendStepOutput.getProcessState().getStepList()); runBackendStepOutput.setProcessMetaDataAdjustment(streamedBackendStepOutput.getProcessMetaDataAdjustment());
runBackendStepOutput.setUpdatedFrontendStepList(streamedBackendStepOutput.getUpdatedFrontendStepList());
} }
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////

View File

@ -453,11 +453,19 @@ public class QJavalinProcessHandler
resultForCaller.put("values", runProcessOutput.getValues()); resultForCaller.put("values", runProcessOutput.getValues());
runProcessOutput.getProcessState().getNextStepName().ifPresent(nextStep -> resultForCaller.put("nextStep", nextStep)); runProcessOutput.getProcessState().getNextStepName().ifPresent(nextStep -> resultForCaller.put("nextStep", nextStep));
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// todo - delete after all frontends look for processMetaDataAdjustment instead of updatedFrontendStepList //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<QFrontendStepMetaData> updatedFrontendStepList = runProcessOutput.getUpdatedFrontendStepList(); List<QFrontendStepMetaData> updatedFrontendStepList = runProcessOutput.getUpdatedFrontendStepList();
if(updatedFrontendStepList != null) if(updatedFrontendStepList != null)
{ {
resultForCaller.put("updatedFrontendStepList", updatedFrontendStepList); resultForCaller.put("updatedFrontendStepList", updatedFrontendStepList);
} }
if(runProcessOutput.getProcessMetaDataAdjustment() != null)
{
resultForCaller.put("processMetaDataAdjustment", runProcessOutput.getProcessMetaDataAdjustment());
}
} }