I need to check a specific field in an array of cdt or map for duplicates, and return an array of cdt or map without duplicates on that field. For example:CDT Array:
{type!example(
email: "hello@gmail.com",
type: 1,
date: 01/01/2022
),
type!example(
email: "hello11@gmail.com",
date: 03/02/2023
type: 2,
date: 01/02/2023
)
}
In the above case, I want to return an array with unique email fields. Since the first and third item in the array have the same email address "hello@gmail.com", I only want to return the first one.
Discussion posts and replies are publicly visible
try this ->
a!localVariables( local!data: { 'type!{urn:com:appian:types:DCT}DCT_temp'( type: 1, email: "212@gmail.com", date: today() ), 'type!{urn:com:appian:types:DCT}DCT_temp'( type: 2, email: "211@gmail.com", date: today() ), 'type!{urn:com:appian:types:DCT}DCT_temp'( type: 3, email: "212@gmail.com", date: today() ), 'type!{urn:com:appian:types:DCT}DCT_temp'( type: 1, email: "213@gmail.com", date: today() ) }, local!descardDuplicateEmailValue: a!forEach( items: local!data, expression: index( local!data, index( /*find where else our current email resides*/ wherecontains(fv!item.email, local!data.email), /*take only first one*/ 1, "" ), "" ) ), union( local!descardDuplicateEmailValue, local!descardDuplicateEmailValue ) )