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

    The local!manualDynamicField which you are trying to append in the addRowLink(line 201) is not an array. Updating the locallocal!manualDynamicField to have "{}" surrounding the a!map() will be required as follows.

    local!manualDynamicField:{
        a!map(
            manualdynamicFieldLabel:"",
            manualdynamicFieldType:""
        )   
    },

    You will also cannot save data into an index(). e.g. index(fv!item,"manualdynamicFieldLabel",{}),

    a!save(
        index(fv!item,"manualdynamicFieldLabel",{}),
        concat("###", save!value, "###")
    ),

    So you will have to update to reference the dot operator syntax fv!item.manualdynamicFieldLabel1

Reply
  • 0
    Certified Lead Developer

    The local!manualDynamicField which you are trying to append in the addRowLink(line 201) is not an array. Updating the locallocal!manualDynamicField to have "{}" surrounding the a!map() will be required as follows.

    local!manualDynamicField:{
        a!map(
            manualdynamicFieldLabel:"",
            manualdynamicFieldType:""
        )   
    },

    You will also cannot save data into an index(). e.g. index(fv!item,"manualdynamicFieldLabel",{}),

    a!save(
        index(fv!item,"manualdynamicFieldLabel",{}),
        concat("###", save!value, "###")
    ),

    So you will have to update to reference the dot operator syntax fv!item.manualdynamicFieldLabel1

Children
No Data