From 033dbeb76c8bebd5ad2a43f387a017dbeafab628 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 25 Oct 2022 13:31:48 -0500 Subject: [PATCH] Update to run an executeStep pre-action --- .../AbstractExtractStep.java | 13 +++++++++++++ .../ExtractViaQueryStep.java | 18 ++++++++++++++++-- .../StreamedETLExecuteStep.java | 1 + .../StreamedETLPreviewStep.java | 1 + .../StreamedETLValidateStep.java | 1 + 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/AbstractExtractStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/AbstractExtractStep.java index ea1dbc58..ce227961 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/AbstractExtractStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/AbstractExtractStep.java @@ -26,6 +26,7 @@ import com.kingsrook.qqq.backend.core.actions.processes.BackendStep; import com.kingsrook.qqq.backend.core.actions.reporting.RecordPipe; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput; +import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepOutput; /******************************************************************************* @@ -49,6 +50,18 @@ public abstract class AbstractExtractStep implements BackendStep + /******************************************************************************* + ** Allow subclasses to do an action before the run begins. + *******************************************************************************/ + public void preRun(RunBackendStepInput runBackendStepInput, RunBackendStepOutput runBackendStepOutput) throws QException + { + //////////////////////// + // noop in base class // + //////////////////////// + } + + + /******************************************************************************* ** *******************************************************************************/ diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/ExtractViaQueryStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/ExtractViaQueryStep.java index a7a86049..2f1cdc05 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/ExtractViaQueryStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/ExtractViaQueryStep.java @@ -54,6 +54,20 @@ public class ExtractViaQueryStep extends AbstractExtractStep { public static final String FIELD_SOURCE_TABLE = "sourceTable"; + private QQueryFilter queryFilter; + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Override + public void preRun(RunBackendStepInput runBackendStepInput, RunBackendStepOutput runBackendStepOutput) throws QException + { + super.preRun(runBackendStepInput, runBackendStepOutput); + queryFilter = getQueryFilter(runBackendStepInput); + } + /******************************************************************************* @@ -66,7 +80,7 @@ public class ExtractViaQueryStep extends AbstractExtractStep QueryInput queryInput = new QueryInput(runBackendStepInput.getInstance()); queryInput.setSession(runBackendStepInput.getSession()); queryInput.setTableName(runBackendStepInput.getValueString(FIELD_SOURCE_TABLE)); - queryInput.setFilter(getQueryFilter(runBackendStepInput)); + queryInput.setFilter(queryFilter); queryInput.setRecordPipe(getRecordPipe()); queryInput.setLimit(getLimit()); queryInput.setAsyncJobCallback(runBackendStepInput.getAsyncJobCallback()); @@ -88,7 +102,7 @@ public class ExtractViaQueryStep extends AbstractExtractStep CountInput countInput = new CountInput(runBackendStepInput.getInstance()); countInput.setSession(runBackendStepInput.getSession()); countInput.setTableName(runBackendStepInput.getValueString(FIELD_SOURCE_TABLE)); - countInput.setFilter(getQueryFilter(runBackendStepInput)); + countInput.setFilter(queryFilter); CountOutput countOutput = new CountAction().execute(countInput); return (countOutput.getCount()); } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLExecuteStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLExecuteStep.java index 66e3f9c6..bcf93dc3 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLExecuteStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLExecuteStep.java @@ -63,6 +63,7 @@ public class StreamedETLExecuteStep extends BaseStreamedETLStep implements Backe RecordPipe recordPipe = new RecordPipe(); AbstractExtractStep extractStep = getExtractStep(runBackendStepInput); extractStep.setRecordPipe(recordPipe); + extractStep.preRun(runBackendStepInput, runBackendStepOutput); AbstractTransformStep transformStep = getTransformStep(runBackendStepInput); AbstractLoadStep loadStep = getLoadStep(runBackendStepInput); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLPreviewStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLPreviewStep.java index 8aae88a6..aa587be9 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLPreviewStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLPreviewStep.java @@ -106,6 +106,7 @@ public class StreamedETLPreviewStep extends BaseStreamedETLStep implements Backe RecordPipe recordPipe = new RecordPipe(); extractStep.setLimit(limit); extractStep.setRecordPipe(recordPipe); + extractStep.preRun(runBackendStepInput, runBackendStepOutput); AbstractTransformStep transformStep = getTransformStep(runBackendStepInput); transformStep.preRun(runBackendStepInput, runBackendStepOutput); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLValidateStep.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLValidateStep.java index e10a57df..ac9b9e8c 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLValidateStep.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLValidateStep.java @@ -85,6 +85,7 @@ public class StreamedETLValidateStep extends BaseStreamedETLStep implements Back AbstractExtractStep extractStep = getExtractStep(runBackendStepInput); extractStep.setLimit(null); extractStep.setRecordPipe(recordPipe); + extractStep.preRun(runBackendStepInput, runBackendStepOutput); AbstractTransformStep transformStep = getTransformStep(runBackendStepInput); transformStep.preRun(runBackendStepInput, runBackendStepOutput);