mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Audit cleanups (process names for automations; no audit if no fields changed;
This commit is contained in:
@ -210,14 +210,17 @@ public class DMLAuditAction extends AbstractQActionFunction<DMLAuditInput, DMLAu
|
||||
}
|
||||
}
|
||||
|
||||
if(details.isEmpty())
|
||||
if(details.isEmpty() && DMLType.UPDATE.equals(dmlType))
|
||||
{
|
||||
details.add(new QRecord().withValue("message", "No fields values were changed."));
|
||||
// no, let's just noop.
|
||||
// details.add(new QRecord().withValue("message", "No fields values were changed."));
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
AuditAction.appendToInput(auditInput, table.getName(), record.getValueInteger(table.getPrimaryKeyField()), getRecordSecurityKeyValues(table, record), "Record was " + dmlType.pastTenseVerb + contextSuffix, details);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// new AuditAction().executeAsync(auditInput); // todo async??? maybe get that from rules???
|
||||
new AuditAction().execute(auditInput);
|
||||
|
@ -381,6 +381,10 @@ public class PollingAutomationPerTableRunner implements Runnable
|
||||
}
|
||||
});
|
||||
|
||||
try
|
||||
{
|
||||
QContext.pushAction(runProcessInput);
|
||||
|
||||
RunProcessAction runProcessAction = new RunProcessAction();
|
||||
RunProcessOutput runProcessOutput = runProcessAction.execute(runProcessInput);
|
||||
if(runProcessOutput.getException().isPresent())
|
||||
@ -388,6 +392,11 @@ public class PollingAutomationPerTableRunner implements Runnable
|
||||
throw (runProcessOutput.getException().get());
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
QContext.popAction();
|
||||
}
|
||||
}
|
||||
else if(action.getCodeReference() != null)
|
||||
{
|
||||
LOG.debug(" Executing action: [" + action.getName() + "] as code reference: " + action.getCodeReference());
|
||||
|
@ -265,6 +265,8 @@ public class ScheduleManager
|
||||
runProcessInput.setProcessName(process.getName());
|
||||
runProcessInput.setFrontendStepBehavior(RunProcessInput.FrontendStepBehavior.SKIP);
|
||||
|
||||
QContext.pushAction(runProcessInput);
|
||||
|
||||
RunProcessAction runProcessAction = new RunProcessAction();
|
||||
runProcessAction.execute(runProcessInput);
|
||||
}
|
||||
|
@ -173,6 +173,17 @@ class DMLAuditActionTest extends BaseTest
|
||||
assertTrue(auditDetailList.stream().noneMatch(r -> r.getValueString("message").contains("Favorite Shape")));
|
||||
MemoryRecordStore.getInstance().reset();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// confirm if nothing changed on an edit, that no audit. //
|
||||
///////////////////////////////////////////////////////////
|
||||
{
|
||||
qInstance.getTable(TestUtils.TABLE_NAME_PERSON_MEMORY).setAuditRules(new QAuditRules().withAuditLevel(AuditLevel.FIELD));
|
||||
new DMLAuditAction().execute(new DMLAuditInput().withTableActionInput(updateInput).withRecordList(recordList).withOldRecordList(recordList));
|
||||
List<QRecord> auditList = TestUtils.queryTable("audit");
|
||||
assertEquals(0, auditList.size());
|
||||
MemoryRecordStore.getInstance().reset();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user