a!localVariables( local!creating: a!refreshVariable( value: isnull(ri!record), refreshOnReferencedVarChange: false ), local!oldRecord: a!refreshVariable( value: ri!record, refreshOnReferencedVarChange: false ), local!status: a!refreshVariable( value: ri!record.status, refreshOnReferencedVarChange: true ), local!oldDocuments: a!refreshVariable( value: if( isnull(ri!documents), {}, ri!documents ), refreshOnReferencedVarChange: false ), a!formLayout( label: if( local!creating, "Add New Anomaly Record", "Update Anomaly Record" ), contents: { rule!LQGAL_AnomalyRecordDetails( record: ri!record, documents: ri!documents, deletedDocuments: ri!deletedDocs, creating: local!creating, readOnly: false ) }, buttons: a!buttonLayout( primaryButtons: { if( local!creating, a!buttonWidgetSubmit( label: "Submit Anomaly Record", style: "PRIMARY", saveInto: { a!save(ri!record.createdOn, now()), a!save(ri!record.createdBy, loggedInUser()), a!save(ri!record.updatedOn, now()), a!save(ri!record.updatedBy, loggedInUser()), a!save(ri!documents, reject(fn!isnull, ri!documents)), /*New save for status */ a!save(ri!record.status, local!status) } ), a!buttonWidgetSubmit( label: "Update Anomaly Record", style: "PRIMARY", saveInto: { a!save(ri!record.updatedOn, now()), a!save(ri!record.updatedBy, loggedInUser()), a!save(ri!oldRecord, local!oldRecord), a!save(ri!documents, reject(fn!isnull, ri!documents)), a!save(ri!addedDocs, reject(fn!isnull, difference(ri!documents, local!oldDocuments))), a!save(ri!oldDocs, local!oldDocuments) } ) ) }, secondaryButtons: { if( local!creating, {}, a!buttonWidgetSubmit( label: "Cancel", style: "NORMAL", value: true, saveInto: { ri!cancel, a!save(ri!addedDocs, reject(fn!isnull, difference(ri!documents, local!oldDocuments))), a!save(ri!deletedDocs, append(difference(ri!deletedDocs, local!oldDocuments), ri!addedDocs)) }, skipValidation: true ) ) } ) ) )