Selectable Editable Grid

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