Skip to main content
tommerr5996
July 29, 2023
Solved

update CDT values in loop

  • July 29, 2023
  • 4 replies
  • 0 views

I am new to Appian and I need to write a rule that takes an array of CDT objects; updates all of their "id" and "loanId" values to null; and returns them.

I have been trying to use a foreach loop as follows but the data won't change. what am I doing wrong?

a!localVariables(
  local!assestsLiabilitiesDetails: ri!assestsLiabilitiesDetails,
  
  expression:
  a!forEach(
    items: local!assestsLiabilitiesDetails,
    expression: {
      fv!item: a!update(fv!item, "id", null('type!{http://www.appian.com/ae/types/2009}Integer')),
      fv!item: a!update(fv!item, "loanId", null('type!{http://www.appian.com/ae/types/2009}Integer')),
    }
  ),
  
  a!save(target: ri!assestsLiabilitiesDetails, local!assestsLiabilitiesDetails)

)

Thank you in advance for the help!

Best answer by mathurambm639546

Hi, I hope the below example helps.

a!localVariables(
  local!inputs: {
    { id: 1, loanid: 6789, acctNum: "ACC1567" },
    { id: 2, loanId: 7823, acctNum: "ACC83049" }
  },
  local!idUpdatedToNull: a!forEach(
    items: local!inputs,
    expression: a!update(fv!item, "id", null())
  ),
  local!loanIdUpdatedToNull: a!forEach(
    items: local!idUpdatedToNull,
    expression: a!update(fv!item, "loanId", null())
  ),
  local!loanIdUpdatedToNull
)

4 replies

July 29, 2023

Hi, I hope the below example helps.

a!localVariables(
  local!inputs: {
    { id: 1, loanid: 6789, acctNum: "ACC1567" },
    { id: 2, loanId: 7823, acctNum: "ACC83049" }
  },
  local!idUpdatedToNull: a!forEach(
    items: local!inputs,
    expression: a!update(fv!item, "id", null())
  ),
  local!loanIdUpdatedToNull: a!forEach(
    items: local!idUpdatedToNull,
    expression: a!update(fv!item, "loanId", null())
  ),
  local!loanIdUpdatedToNull
)

mathieud0001
Brainy
July 29, 2023

Here is a slightly more optimized version:

a!localVariables(
  local!list: {
    a!map(id: 1, loanid: 6789, acctNum: "ACC1567"),
    a!map(id: 2, loanId: 7823, acctNum: "ACC83049")
  },
  a!forEach(
    items: local!list,
    expression: a!update(fv!item, { "id", "loanId" }, { null, null })
  )
)

July 29, 2023

Thank you, Mathieu, for sharing the optimized code. Previously, I was trying to update two indices/fields with a single value, which resulted in an error. Your code has helped to understand the error.