if duplicate data exists in the list then display a message indicating that duplicate data is present.

Certified Associate Developer

local!data: {
a!map(SAPNumber: "1111111", Qty: "1", Spare: "0"), 
a!map(SAPNumber: "1111111", Qty: "2", Spare: "1"),
a!map(SAPNumber: "1111111", Qty: "3", Spare: "0"),
a!map(SAPNumber: "2222222", Qty: "1", Spare: "0")
},

In the above list, If a duplicate combination of 'SAPNumber' and 'Spare' exists in the list, display a message indicating that duplicate data is present.

Example : 

a!map(SAPNumber: "1111111", Qty: "1", Spare: "0"), 

a!map(SAPNumber: "1111111", Qty: "3", Spare: "0"),

here, 'SAPNumber' and 'Spare' are same so it must shows a message.

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    You can build an expression rule to check duplicates and call that in the validations section of the grid/section. 

    a!localVariables(
      local!data: {
        a!map(SAPNumber: "1111111", Qty: "1", Spare: "0"),
        a!map(SAPNumber: "1111111", Qty: "2", Spare: "1"),
        a!map(SAPNumber: "1111111", Qty: "3", Spare: "0"),
        a!map(SAPNumber: "2222222", Qty: "1", Spare: "0")
      },
      if(
        contains(
          a!foreach(
            local!data,
            a!localVariables(
              local!arrayTemp: remove(local!data, fv!index),
              local!SAPCheck: property(
                local!arrayTemp,
                wherecontains(
                  fv!item.SAPNumber,
                  local!arrayTemp.SAPNumber
                ),
                {}
              ),
              local!spareCheck: property(
                local!arrayTemp,
                wherecontains(fv!item.Spare, local!arrayTemp.Spare),
                {}
              ),
              a!isNullOrEmpty(
                intersection(local!SAPCheck, local!spareCheck)
              ),
              
            )
          ),
          true()
        ),
        "Validation Message",
        {}
      )
    )

  • +1
    Certified Lead Developer
    in reply to Harsha Sharma

    a!localVariables(
      local!data: {
        a!map(SAPNumber: "1111111", Qty: "1", Spare: "0"),
        a!map(SAPNumber: "1111111", Qty: "2", Spare: "1"),
        a!map(SAPNumber: "1111111", Qty: "3", Spare: "2"),
        a!map(SAPNumber: "2222222", Qty: "1", Spare: "0")
      },
      local!dataset: a!foreach(
        local!data,
        a!localVariables(
          local!arrayTemp: remove(local!data, fv!index),
          local!SAPCheck: property(
            local!arrayTemp,
            wherecontains(
              fv!item.SAPNumber,
              local!arrayTemp.SAPNumber
            ),
            {}
          ),
          local!spareCheck: property(
            local!arrayTemp,
            wherecontains(fv!item.Spare, local!arrayTemp.Spare),
            {}
          ),
         
            a!isNotNullOrEmpty(
              intersection(local!SAPCheck, local!spareCheck)
            )
    
        )
      ),
      if(
        contains(local!dataset, true()),
        "Validation Message",
        ""
      )
    )

      I noticed an issue in the above code while testing with a negative dataset, here is an adjusted one to resolve that. Pls refer this one. 

Reply Children
No Data