From 4f92fb2ae230d8879d11ec0eb24e3e01092e4201 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Mon, 7 Oct 2024 22:33:16 -0500 Subject: [PATCH] CE-1836: updates to allow getting basepull key value and sync config perform insert/updates from input --- .../actions/processes/RunProcessAction.java | 11 ++++-- .../AbstractTableSyncTransformStep.java | 35 +++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) 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 03ee26aa..ada00f9a 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 @@ -79,6 +79,7 @@ public class RunProcessAction { private static final QLogger LOG = QLogger.getLogger(RunProcessAction.class); + public static final String BASEPULL_KEY_VALUE = "basepullKeyValue"; public static final String BASEPULL_THIS_RUNTIME_KEY = "basepullThisRuntimeKey"; public static final String BASEPULL_LAST_RUNTIME_KEY = "basepullLastRuntimeKey"; public static final String BASEPULL_TIMESTAMP_FIELD = "basepullTimestampField"; @@ -517,9 +518,13 @@ public class RunProcessAction /******************************************************************************* ** *******************************************************************************/ - protected String determineBasepullKeyValue(QProcessMetaData process, BasepullConfiguration basepullConfiguration) throws QException + protected String determineBasepullKeyValue(QProcessMetaData process, RunProcessInput runProcessInput, BasepullConfiguration basepullConfiguration) throws QException { String basepullKeyValue = (basepullConfiguration.getKeyValue() != null) ? basepullConfiguration.getKeyValue() : process.getName(); + if(runProcessInput.getValueString(BASEPULL_KEY_VALUE) != null) + { + basepullKeyValue = runProcessInput.getValueString(BASEPULL_KEY_VALUE); + } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // if process specifies that it uses variants, look for that data in the session and append to our basepull key // @@ -551,7 +556,7 @@ public class RunProcessAction String basepullTableName = basepullConfiguration.getTableName(); String basepullKeyFieldName = basepullConfiguration.getKeyField(); String basepullLastRunTimeFieldName = basepullConfiguration.getLastRunTimeFieldName(); - String basepullKeyValue = determineBasepullKeyValue(process, basepullConfiguration); + String basepullKeyValue = determineBasepullKeyValue(process, runProcessInput, basepullConfiguration); /////////////////////////////////////// // get the stored basepull timestamp // @@ -631,7 +636,7 @@ public class RunProcessAction String basepullKeyFieldName = basepullConfiguration.getKeyField(); String basepullLastRunTimeFieldName = basepullConfiguration.getLastRunTimeFieldName(); Integer basepullHoursBackForInitialTimestamp = basepullConfiguration.getHoursBackForInitialTimestamp(); - String basepullKeyValue = determineBasepullKeyValue(process, basepullConfiguration); + String basepullKeyValue = determineBasepullKeyValue(process, runProcessInput, basepullConfiguration); /////////////////////////////////////// // get the stored basepull timestamp // diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java index 3eaba3e2..fed50bad 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/tablesync/AbstractTableSyncTransformStep.java @@ -111,6 +111,9 @@ public abstract class AbstractTableSyncTransformStep extends AbstractTransformSt protected QPossibleValueTranslator possibleValueTranslator; + protected static final String SYNC_TABLE_PERFORM_INSERTS_KEY = "syncTablePerformInsertsKey"; + protected static final String SYNC_TABLE_PERFORM_UPDATES_KEY = "syncTablePerformUpdatesKey"; + /******************************************************************************* @@ -193,6 +196,26 @@ public abstract class AbstractTableSyncTransformStep extends AbstractTransformSt + /******************************************************************************* + ** + *******************************************************************************/ + void setPerformInserts(boolean performInserts) + { + this.setPerformInserts(performInserts); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + void setPerformUpdates(boolean performUpdates) + { + this.setPerformUpdates(performUpdates); + } + + + /******************************************************************************* ** artificial method, here to make jacoco see that this class is indeed ** included in test coverage... @@ -222,6 +245,18 @@ public abstract class AbstractTableSyncTransformStep extends AbstractTransformSt SyncProcessConfig config = getSyncProcessConfig(); + //////////////////////////////////////////////////////////// + // see if these fields have been updated via input fields // + //////////////////////////////////////////////////////////// + if(runBackendStepInput.getValueString(SYNC_TABLE_PERFORM_INSERTS_KEY) != null) + { + config.setPerformInserts(Boolean.parseBoolean(runBackendStepInput.getValueString(SYNC_TABLE_PERFORM_INSERTS_KEY))); + } + if(runBackendStepInput.getValueString(SYNC_TABLE_PERFORM_UPDATES_KEY) != null) + { + config.setPerformUpdates(Boolean.parseBoolean(runBackendStepInput.getValueString(SYNC_TABLE_PERFORM_UPDATES_KEY))); + } + String sourceTableKeyField = config.sourceTableKeyField; String destinationTableForeignKeyField = config.destinationTableForeignKey; String destinationTableName = config.destinationTable;