Hi all,
I'm creating an interface that records and calculates the working hours for employees, the idea is if the working hours are less than 8 it should display: " Working hours are incomplete " , and if it was less than 0 it should display: " insert your working hours correctly please "
I made this expression, but when the value is less than 8 even it was less than 0 it always display : " Working hours are incomplete "
here's the expression:
{ a!richTextItem( if( ri!WorkingHours = "8", "Working hours are complete", if( 8 > ri!WorkingHours > 0, "Working hours are not complete", if( ri!WorkingHours < 0, "insert working hours correctly please" ) ) ) )
Discussion posts and replies are publicly visible
Multiple conditions in Appian can be configured using or() & and() functions.
a!richTextDisplayField( value: { a!richTextItem( if( ri!WorkingHours = "8", "Working hours are complete", if( and(8 > ri!WorkingHours, ri!WorkingHours > 0), "Working hours are not complete", if( ri!WorkingHours < 0, "insert working hours correctly please", {} ) ) ) ) } )
Using the amazing match function.
a!richTextDisplayField( value: { a!richTextItem( a!match( value: ri!WorkingHours, equals: 8, then: "Working Hours are complete", whenTrue: and(ri!WorkingHours > 0, 8 > ri!WorkingHours), then: "Working hours are not complete", default: "insert working hours correctly please" ) ) } )
Thanks for your help, but when I tried the code I got this: Could not display interface. Please check definition and inputs. Interface Definition: Expression evaluation error at function 'if' [line 64]: Invalid number of parameters, function 'if' a minimum of 3 parameters (condition,true,false), passed 2.
try this
a!richTextDisplayField( value: { a!richTextItem( if( ri!WorkingHours = "8", "Working hours are complete", if( and(8 > ri!WorkingHours, ri!WorkingHours > 0), "Working hours are not complete", "insert working hours correctly please" ) ) ) } )
Ali Abdulqawi
I missed the third parameter in the last if. You can add an empty list there. I have updated the same code
its because the third if only have two parameters in it
if( ri!WorkingHours < 0, "insert working hours correctly please" )
if( ri!WorkingHours < 0, "insert working hours correctly please", "working hours passed limit" )
Thanks, it's working now, but I'm wondering should I use three conditions every time I want use if statement?
can't I use two only?
it just show the default message even when the user inserts 8, or 4
Did you take a look at Ujjwal's answer? I think it is a better approach.
workings hours as 8
working hours as 4