Saving Map variable in editable grid

Certified Senior Developer

Hi,

I have a local variable with Map type. I have 2 fields inside a variable (Field label and Field Type)

I need to save the variable in a loop by clicking on the Add dynamic link. Please help me out here since the current code is not working.

local!manualDynamicField:a!map(
    manualdynamicFieldLabel:"",
    manualdynamicFieldType:""
  ),
  
  a!gridLayout(
                    label: "Manual Dynamic Fields",
                    labelPosition: "ABOVE",
                    headerCells: {
                      a!gridLayoutHeaderCell(label: "Field Label"),
                      a!gridLayoutHeaderCell(label: "Field Type"),
                      a!gridLayoutHeaderCell(label: "")
                    },
                    columnConfigs: {
                      a!gridLayoutColumnConfig(width: "MEDIUM"),
                      a!gridLayoutColumnConfig(width: "MEDIUM"),
                      a!gridLayoutColumnConfig(width: "ICON")
                    },
                    rows: a!forEach(
                      local!manualDynamicField,
                      {
                        a!gridRowLayout(
                          contents: {
                            a!textField(
                              label: "",
                              labelPosition: "ABOVE",
                              value: index(fv!item,"manualdynamicFieldLabel",{}),
                              saveInto: {
                                a!save(
                                  index(fv!item,"manualdynamicFieldLabel",{}),
                                  concat("###", save!value, "###")
                                ),
                                a!save(
                                  local!manualDynamicFieldToAdd,
                                  difference(
                                    index(local!manualDynamicField,"manualdynamicFieldLabel",{}),
                                    local!manualDynamicFieldCopy
                                  )
                                ),
                                a!save(
                                  local!manualDynamicFieldToRemove,
                                  difference(
                                    local!manualDynamicFieldCopy,
                                    index(local!manualDynamicField,"manualdynamicFieldLabel",{})
                                  )
                                ),
                                if(
                                  a!isNullOrEmpty(local!manualDynamicFieldToAdd),
                                  {},
                                  {
                                    a!save(
                                      ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                      append(
                                        ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                        local!manualDynamicFieldToAdd
                                      )
                                    ),
                                    a!save(
                                      ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                      append(
                                        ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                        local!manualDynamicFieldToAdd
                                      )
                                    )
                                  }
                                ),
                                if(
                                  a!isNullOrEmpty(local!manualDynamicFieldToRemove),
                                  {},
                                  {
                                    a!save(
                                      ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                      substitute(
                                        ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                        local!manualDynamicFieldToRemove,
                                        "",
                                        1
                                      )
                                    ),
                                    a!save(
                                      ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                      substitute(
                                        ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                        local!manualDynamicFieldToRemove,
                                        "",
                                        1
                                      )
                                    )
                                  }
                                ),
                                a!save(
                                  local!manualDynamicFieldCopy,
                                  index(local!manualDynamicField,"manualdynamicFieldLabel",{})
                                )
                              },
                              refreshAfter: "UNFOCUS",
                              validations: {}
                            ),
                            a!dropdownField(
                            label: "",
                            labelPosition: "ABOVE",
                            choiceLabels: {"Text","Dropdown","Radio Button"},
                            choiceValues: {"Text","Dropdown","Radio Button"},
                            placeholder: "Select a Value",
                            value: local!manualDynamicFieldTypetoAdd,
                            saveInto: {
                              local!manualDynamicFieldTypetoAdd
                             
                            }
                            ),
                            a!richTextDisplayField(
                              value: {
                                a!richTextIcon(
                                  icon: "times",
                                  color: "NEGATIVE",
                                  linkStyle: "STANDALONE",
                                  link: a!dynamicLink(
                                    value: "",
                                    saveInto: {
                                      a!save(
                                        local!manualDynamicField.manualdynamicFieldLabel,
                                        remove(ri!manualDynamicFields, fv!index)
                                      ),
                                      a!save(
                                        local!manualDynamicFieldToAdd,
                                        difference(
                                          local!manualDynamicField.manualdynamicFieldLabel,
                                          local!manualDynamicFieldCopy
                                        )
                                      ),
                                      a!save(
                                        local!manualDynamicFieldToRemove,
                                        difference(
                                          local!manualDynamicFieldCopy,
                                          local!manualDynamicField.manualdynamicFieldLabel
                                        )
                                      ),
                                      if(
                                        a!isNullOrEmpty(local!manualDynamicFieldToAdd),
                                        {},
                                        {
                                          a!save(
                                            ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                            append(
                                              ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                              local!manualDynamicFieldToAdd
                                            )
                                          ),
                                          a!save(
                                            ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                            append(
                                              ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                              local!manualDynamicFieldToAdd
                                            )
                                          )
                                        }
                                      ),
                                      if(
                                        a!isNullOrEmpty(local!manualDynamicFieldToRemove),
                                        {},
                                        {
                                          a!save(
                                            ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                            substitute(
                                              ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{657f4be1-54fc-4b71-8af5-94fc937f67a1}templateEnglish'],
                                              local!manualDynamicFieldToRemove,
                                              "",
                                              1
                                            )
                                          ),
                                          a!save(
                                            ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                            substitute(
                                              ri!record['recordType!{bf842322-0f8a-429a-873a-f0d69ec9d438}UWG Amendment Reference.relationships.{cbd28086-f4ea-4c46-a88b-e1a617136bb8}amendmentReferenceMaster.fields.{a94f4383-91a2-48fd-a9bf-cd64a4bf3a16}templateFrench'],
                                              local!manualDynamicFieldToRemove,
                                              "",
                                              1
                                            )
                                          )
                                        }
                                      ),
                                      a!save(
                                        local!manualDynamicFieldCopy,
                                        local!manualDynamicField.manualdynamicFieldLabel
                                      )
                                    }
                                  )
                                )
                              }
                            )
                          }
                        )
                      }
                    ),
                    addRowLink: a!dynamicLink(
                      label: "Add Field",
                      value: "",
                      saveInto: {
                        a!save(
                          local!manualDynamicField,
                          append(local!manualDynamicField, save!value)
                        )
                      }
                    ),
                    selectionSaveInto: {},
                    validations: {},
                    shadeAlternateRows: true
                  )

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    You can't save into index() like this.  The index() function returns an evaluated value equating to the index or property within the target value (if any), but it does not give a save-able pointer to the actual value itself, like you'd get if you saved into the target "fv!item.manualdynamicfieldlabel" here.  The way you have this should, i expect, result in a pretty severe error message.

Reply
  • 0
    Certified Lead Developer

    You can't save into index() like this.  The index() function returns an evaluated value equating to the index or property within the target value (if any), but it does not give a save-able pointer to the actual value itself, like you'd get if you saved into the target "fv!item.manualdynamicfieldlabel" here.  The way you have this should, i expect, result in a pretty severe error message.

Children
No Data