Update a field based on indexing

Certified Associate Developer

I have two variables of list type, 

local!selecteddata: { id:1, name:test1, id:4,name:test4}.  

local!data:{id:1,name:test1,

                 id:2,name:test2,

                 id2,name:test3,

                 id4,name:test4

}

if I update the "name" fields of local!selecteddata,How do I index local!data and update the field "name" for ids : 1 and 4 . Any help is appreciated 

  Discussion posts and replies are publicly visible

Parents Reply
  • 0
    Certified Senior Developer
    in reply to kowsalyavijayan
    tried this, but local!data lost rows with id 2 and id 4, because we are saving only two updated rows into this variable)

    Yeah Update returns the result.. So need to careful with what you are indexing. Have a look into the below template

    a!localVariables(
      local!Y: {
        a!map(id: 1, name: "test5"),
        a!map(id: 4, name: "test6")
      },
      local!X: {
        a!map(id: 1, name: "test1"),
        a!map(id: 2, name: "test2"),
        a!map(id: 3, name: "test3"),
        a!map(id: 4, name: "test4")
      },
      {
        a!buttonArrayLayout(
          buttons: {
            a!buttonWidget(
              label: "Button",
              style: "OUTLINE",
              saveInto: a!save(
                local!X.name,
                a!update(
                  local!X.name,
                  {
                    wherecontains(
                      tointeger(local!Y.id),
                      tointeger(local!X.id)
                    )
                  },
                  { local!Y.name }
                )
              )
            )
          },
          align: "START",
          marginBelow: "NONE"
        )
      }
    )

Children
  • 0
    Certified Associate Developer
    in reply to venkat Avuluri

    works perfect for local variable , but for record type , it throws error a!localVariables(
    local!Y: {
    a!map(id: 1, name: "test5"),
    a!map(id: 4, name: "test6")
    },
    local!X: a!queryRecordType(
    recordType: 'recordType!{a765be9a-3396-4105-8e82-56074696a931}LMS Test',
    fields: {},
    pagingInfo: a!pagingInfo(
    startIndex: 1,
    batchSize: 100
    )
    ).data,
    {
    a!buttonArrayLayout(
    buttons: {
    a!buttonWidget(
    label: "Button",
    style: "OUTLINE",
    saveInto: a!save(
    local!X['recordType!{a765be9a-3396-4105-8e82-56074696a931}LMS Test.fields.{74a22d07-4f83-4cc6-b8e8-1d3ff4bb620e}name'],
    a!update(
    'recordType!{a765be9a-3396-4105-8e82-56074696a931}LMS Test.fields.{74a22d07-4f83-4cc6-b8e8-1d3ff4bb620e}name',
    {
    wherecontains(
    local!X['recordType!{a765be9a-3396-4105-8e82-56074696a931}LMS Test.fields.{0804dc2d-19ac-41c7-aee2-cae30a26dd96}id'],
    tointeger(local!Y.id)

    )
    },
    { local!Y.name }
    )
    )
    )
    },
    align: "START",
    marginBelow: "NONE"
    )
    }
    )

    error :

  • 0
    Certified Senior Developer
    in reply to kowsalyavijayan

    Wrap it inside tointeger() and isn't it in reverse?? You want to update local!X  and update why you are giving direct record field reference??

    a!update(
    local!X[record.name],
    wherecontains(tointeger(local!Y.id),tointeger(local!X[recordname.id])),
    local!Y.name)