Reject Function

Certified Senior Developer

Hi,

Im new to using reject function. 

Now im using the reject function in a process model in a script task 

In the input : I am calculating a map which looks like this : 

{

   id : <>,

   account : <account_cdt(id, name, hold_code)> 

}

Now in the output tab I want to use reject function to reject all those accounts who have hold codes null ... but then my requirement is that the ID should remain in the output

I am using reject function like this : 

reject(

fn!isnull(_),

    a!forEach(

          items : ac!map,

          expression : {

                 id : fv!item.id,

                 holdCodes : index(index(fv!item, "account"), "hold_code")

          }

   )

)

Now I know this wont work, but can anyone suggest me how to make it work ? 

  Discussion posts and replies are publicly visible

Parents Reply Children
  • +1
    Certified Senior Developer
    in reply to GautamShenoy

    Then, just make a slight change in the code.

    a!localVariables(
      local!map: {
        a!map(
          id: 1,
          account: 'type!{urn:com:appian:types:PA}PA_accountTemp'(id: 1, name: "test", holdCode: "")
        ),
        a!map(
          id: 2,
          account: 'type!{urn:com:appian:types:PA}PA_accountTemp'(id: 1, name: "test1", holdCode: "abcd")
        ),
        a!map(
          id: 3,
          account: 'type!{urn:com:appian:types:PA}PA_accountTemp'(id: 1, name: "test2", holdCode: "")
        )
      },
      reject(
        isnull(_),
        a!forEach(
          items: local!map,
          expression: if(
            isnull(
              index(fv!item, "account", "holdCode", null)
            ),
            null,
            fv!item
          )
        )
      )
    )

    edit: Even simpler 

    a!localVariables(
      local!map: {
        a!map(
          id: 1,
          account: 'type!{urn:com:appian:types:PA}PA_accountTemp'(id: 1, name: "test", holdCode: "")
        ),
        a!map(
          id: 2,
          account: 'type!{urn:com:appian:types:PA}PA_accountTemp'(id: 1, name: "test1", holdCode: "abcd")
        ),
        a!map(
          id: 3,
          account: 'type!{urn:com:appian:types:PA}PA_accountTemp'(id: 1, name: "test2", holdCode: "")
        )
      },
      remove(
        local!map,
        wherecontains(null, local!map.account.holdCode)
      )
    )