I have a form with a selectable read-only grid
The form contains complex validation for the grid where if a row was already selected before it cannot be selected again and submitted.
Optimistic Locking.
Now the validation works like a charm upon any interaction with the form except the SUBMIT button
I have exausted my imagination with trying to make it work:
I only use up to date interface components and the SUBMIT button obviously has skipValidation: false
here's a look at what I tried for the button
a!buttonWidgetSubmit( label: "SUBMIT", value: "SUBMIT", saveInto: {}, style: "PRIMARY" /*, confirmHeader: "bob", confirmButtonLabel: "concurency pass?", */ /*skipValidation: false*/ )
Here's a look at the validation
validations: { a!validationMessage( message: if( rule!isIntersection( array: ri!value, value: local!concurency ), "concurency", null )/*"concurency"*/, /*showWhen: rule!isIntersection( array: ri!value, value: local!concurency ),*/ validateAfter: "REFRESH"/*"SUBMIT"*/ ) }
I'm concidering to open a ticket with APPIAN because I think the fault is on their end
EDIT:
Added full generic form (I chared what I can it's confidential):
with( local!data: rule!getData(), local!report: rule!getActiveProcesses(), local!concurency: rule!whereContains(local!data,local!report), a!formLayout( label: "label", contents: { a!sectionLayout( label: "Customers for Review", contents: { a!gridField( label: "Read-only Grid", labelPosition: "ABOVE", data: local!data, columns: { a!gridColumn( label: "A", sortField: "A", value: fv!row.A ) }, pagesize: 20, selectable: true, selectionStyle: "CHECKBOX", selectionValue: { ri!value }, selectionSaveInto: ri!value, disableRowSelectionWhen: {}, validations: {} ) } ) }, buttons: a!buttonLayout( primaryButtons: { a!buttonWidgetSubmit( label: "SUBMIT", value: "SUBMIT", saveInto: { ri!action, }, style: "PRIMARY", skipValidation: false ) }, secondaryButtons: {} ), validations: { a!validationMessage( message: if( rule!isIntersection( array: ri!value, value: local!concurency ), "concurency", null ), /*showWhen: rule!isIntersection( array: ri!value, value: local!concurency ),*/ validateAfter: "REFRESH" ) } ) )
Discussion posts and replies are publicly visible