if (function)

Certified Senior Developer

Can some one explain how the below function evaluates, appreciate your help in advance!!

if(true, false, false, true, false, 30, 40) 

  Discussion posts and replies are publicly visible

Parents
  • the if() function can handle if/else if/else functionality inherently.  If given more than 3 parameters (if/then/else), the subsequent odd-numbered parameters [except the final one] will each be evaluated as a new condition.

    if(
      ri!colorIndex = 1,
      "Red",
      
      ri!colorIndex = 2,
      "Green",
      
      ri!colorIndex = 3,
      "Blue",
      
      "Something else..."
    )

    For example, the above code will evaluate to "Red" for an input of 1, "Green" for an input of 2, "Blue" for an input of 3, and for any other input value, it will return the default return value of "Something else..."

    NOTE: as mentioned down-thread, this functionality is not officially supported or documented, so use it with caution if at all. (/edit)

  • 0
    Certified Senior Developer
    in reply to Mike Schmitt

    Is this a supported "feature" as it does not appear to be mentioned on the help page?

  • I'm with you, Gavin - if it's not in the documentation then it is not officially supported. I've encountered a similar 'bending' of the index() function where you can provide a list of values as way of navigating a tree-structure, and having asked Appian Engineering about this I had the same response - the documentation says it only takes 3 parameters and that's how far the official support will take you.

  • 0
    Certified Lead Developer
    in reply to Gavin Hume

    Appian can go one of three ways about this:

    1. Fully document it

    2. Alter if() so it no longer behaves this way

    3. Do nothing and leave this question in Limbo

    Given the fact that at least some portion of Appian code out there, who knows how much, runs because someone figured out if() works this way, I would think option 2 might break an untold number of applications.  Appian wouldn't want to do this, so I like option 1 and really like the odds of option 3 happening.

  • Well to be fair, I was describing how it *does work*, especially given the context of the original question.  That's not to say whether it's officially documented / supported / not supported / etc.  I agree that anyone who uses this functionality should do so with caution.

    As an aside, I'd consider the error message you get when entering an invalid number of parameters fairly official:

Reply Children
No Data