mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-1955 propagate errors from child (association) records up to main record
This commit is contained in:
@ -197,6 +197,14 @@ public class BulkInsertTransformStep extends AbstractTransformStep
|
|||||||
List<QRecord> recordsWithSomeErrors = new ArrayList<>();
|
List<QRecord> recordsWithSomeErrors = new ArrayList<>();
|
||||||
for(QRecord record : runBackendStepInput.getRecords())
|
for(QRecord record : runBackendStepInput.getRecords())
|
||||||
{
|
{
|
||||||
|
List<QErrorMessage> errorsFromAssociations = getErrorsFromAssociations(record);
|
||||||
|
if(CollectionUtils.nullSafeHasContents(errorsFromAssociations))
|
||||||
|
{
|
||||||
|
List<QErrorMessage> recordErrors = Objects.requireNonNullElseGet(record.getErrors(), () -> new ArrayList<>());
|
||||||
|
recordErrors.addAll(errorsFromAssociations);
|
||||||
|
record.setErrors(recordErrors);
|
||||||
|
}
|
||||||
|
|
||||||
if(CollectionUtils.nullSafeHasContents(record.getErrors()))
|
if(CollectionUtils.nullSafeHasContents(record.getErrors()))
|
||||||
{
|
{
|
||||||
recordsWithSomeErrors.add(record);
|
recordsWithSomeErrors.add(record);
|
||||||
@ -351,6 +359,34 @@ public class BulkInsertTransformStep extends AbstractTransformStep
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
**
|
||||||
|
***************************************************************************/
|
||||||
|
private List<QErrorMessage> getErrorsFromAssociations(QRecord record)
|
||||||
|
{
|
||||||
|
List<QErrorMessage> rs = null;
|
||||||
|
for(Map.Entry<String, List<QRecord>> entry : CollectionUtils.nonNullMap(record.getAssociatedRecords()).entrySet())
|
||||||
|
{
|
||||||
|
for(QRecord associatedRecord : CollectionUtils.nonNullList(entry.getValue()))
|
||||||
|
{
|
||||||
|
if(CollectionUtils.nullSafeHasContents(associatedRecord.getErrors()))
|
||||||
|
{
|
||||||
|
rs = Objects.requireNonNullElseGet(rs, () -> new ArrayList<>());
|
||||||
|
rs.addAll(associatedRecord.getErrors());
|
||||||
|
|
||||||
|
List<QErrorMessage> childErrors = getErrorsFromAssociations(associatedRecord);
|
||||||
|
if(CollectionUtils.nullSafeHasContents(childErrors))
|
||||||
|
{
|
||||||
|
rs.addAll(childErrors);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (rs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
Reference in New Issue
Block a user