Audit cleanups (process names for automations; no audit if no fields changed;

This commit is contained in:
2023-02-17 10:25:14 -06:00
parent 049c60c6e3
commit 05a7f9d847
4 changed files with 33 additions and 8 deletions

View File

@ -210,12 +210,15 @@ 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);
}
AuditAction.appendToInput(auditInput, table.getName(), record.getValueInteger(table.getPrimaryKeyField()), getRecordSecurityKeyValues(table, record), "Record was " + dmlType.pastTenseVerb + contextSuffix, details);
}
}

View File

@ -381,11 +381,20 @@ public class PollingAutomationPerTableRunner implements Runnable
}
});
RunProcessAction runProcessAction = new RunProcessAction();
RunProcessOutput runProcessOutput = runProcessAction.execute(runProcessInput);
if(runProcessOutput.getException().isPresent())
try
{
throw (runProcessOutput.getException().get());
QContext.pushAction(runProcessInput);
RunProcessAction runProcessAction = new RunProcessAction();
RunProcessOutput runProcessOutput = runProcessAction.execute(runProcessInput);
if(runProcessOutput.getException().isPresent())
{
throw (runProcessOutput.getException().get());
}
}
finally
{
QContext.popAction();
}
}
else if(action.getCodeReference() != null)

View File

@ -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);
}

View File

@ -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();
}
}
}