From f18ddcf18832829c24d6d796f31e30d670c57c95 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 12 Feb 2024 18:57:05 -0600 Subject: [PATCH] CE-847 Add omitTriggeringAutomations to updateInput to ... let you say that you want to ... omit trigger automations --- .../core/actions/tables/UpdateAction.java | 11 ++++++- .../actions/tables/update/UpdateInput.java | 32 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java index 8c86057c..6fb1d54f 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java @@ -128,7 +128,16 @@ public class UpdateAction // for "not-found detection", and for the pre-action to use (if there is one) // //////////////////////////////////////////////////////////////////////////////// Optional> oldRecordList = fetchOldRecords(updateInput, updateInterface); - setAutomationStatusField(updateInput, oldRecordList); + + /////////////////////////////////////////////////////////////////////////////////////// + // allow caller to specify that we don't want to trigger automations. this isn't // + // isn't expected to be used much - by design, only for the process that is meant to // + // heal automation status, so that it can force us into status=Pending-inserts // + /////////////////////////////////////////////////////////////////////////////////////// + if(!updateInput.getOmitTriggeringAutomations()) + { + setAutomationStatusField(updateInput, oldRecordList); + } performValidations(updateInput, oldRecordList, false); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java index 818a2e84..7c96c5f0 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java @@ -51,6 +51,7 @@ public class UpdateInput extends AbstractTableActionInput //////////////////////////////////////////////////////////////////////////////////////////// private Boolean areAllValuesBeingUpdatedTheSame = null; + private boolean omitTriggeringAutomations = false; private boolean omitDmlAudit = false; private String auditContext = null; @@ -321,4 +322,35 @@ public class UpdateInput extends AbstractTableActionInput return (this); } + + + /******************************************************************************* + ** Getter for omitTriggeringAutomations + *******************************************************************************/ + public boolean getOmitTriggeringAutomations() + { + return (this.omitTriggeringAutomations); + } + + + + /******************************************************************************* + ** Setter for omitTriggeringAutomations + *******************************************************************************/ + public void setOmitTriggeringAutomations(boolean omitTriggeringAutomations) + { + this.omitTriggeringAutomations = omitTriggeringAutomations; + } + + + + /******************************************************************************* + ** Fluent setter for omitTriggeringAutomations + *******************************************************************************/ + public UpdateInput withOmitTriggeringAutomations(boolean omitTriggeringAutomations) + { + this.omitTriggeringAutomations = omitTriggeringAutomations; + return (this); + } + }