I have(had) an issue with a Selectable Editable Grid and I don't know if this is a bug or not.
BUSINESS USE CASE
I actually have two grids. The Use Case here is to have the user assign a speaker to a parish for a parish event.
One grid shows unassigned approved speakers and the other shows parishes that do not have a speaker. There are two local variables that are loaded with this data; speakerEvents and parishEvents. The user selects the Speaker, then selects the Parish before submitting the data.
Here is the JSON for one of the grids.
a!gridLayout( label: "Unassigned Approved Speakers", labelPosition: "ABOVE", emptyGridMessage: "There are no Unassigned Approved Speakers for this Event.", headerCells: { a!gridLayoutHeaderCell(label: "Speaker"), a!gridLayoutHeaderCell(label: "Type"), a!gridLayoutHeaderCell(label: "Language"), a!gridLayoutHeaderCell(label: "Accommodations") }, columnConfigs: { a!gridLayoutColumnConfig(width: "DISTRIBUTE"), a!gridLayoutColumnConfig(width: "DISTRIBUTE"), a!gridLayoutColumnConfig(width: "DISTRIBUTE"), a!gridLayoutColumnConfig(width: "NARROW") }, rows: { a!forEach( items: local!speakerEvents, expression: a!gridRowLayout( id: fv!index, contents: { a!textField( label: "Speaker", labelPosition: "COLLAPSED", value: rule!PMSO_GetSpeakerFullNameTextBySpeakerId( fv!item['recordType!PMSO Speaker Event.fields.speakerId'] ), readOnly: true ), a!textField( label: "Type", labelPosition: "COLLAPSED", value: rule!PMSO_GetSpeakerTypeTextBySpeakerId( fv!item['recordType!PMSO Speaker Event.fields.speakerId'] ), readOnly: true ), a!textField( label: "Languages", labelPosition: "COLLAPSED", value: rule!PMSO_getSpkrLanguageNamesForSpeakerId( fv!item['recordType!PMSO Speaker Event.fields.speakerId'] ), readOnly: true ), a!textField( label: "Accommodations", labelPosition: "COLLAPSED", value: if( rule!PMSO_getSpkrAccommodationsForSpeakerId( fv!item['recordType!PMSO Speaker Event.fields.speakerId'] ), "Yes", "No" ), readOnly: true ) } ) ) }, selectionValue: local!selectedSpeakerEventIndex, selectionSaveInto: local!selectedSpeakerEventIndex, selectable: true, selectionStyle: "ROW_HIGHLIGHT", selectionRequired: true, shadeAlternateRows: true )
It seems that I can only use fv!index as the id in the gridRowLayout function. Is this a bug?!?
If I use fv!identifier, all of the records in the grid are "selected" when the grid is displayed even though they are not selected.
I tried to use the fv!item.speakerEventId, it throws an HTML 500 error. This is the tomcat-stdOut.log
2025-04-21 07:00:44,225 [RecordSyncScheduler_Worker-2] ERROR com.appiancorp.record.data.recordloaders.ads.RecordTypeAdsLoadService - Error creating join index for relationship with uuid: com.appian.data.client.AdsUserInputException: APNX-3-1000-06D: Invalid parameter specified to the createJoinIndex function. Attrs must reference valid attributes. Invalid attr ref(s): []
I got around the problem by using the index as the id and adding a save into the saveinto function of the submit button.
a!save(ri!selectedSpeakerEvent, index(local!speakerEvents, local!selectedSpeakerEventIndex))
Discussion posts and replies are publicly visible