How to write if condition in workflow

spandana kalla
Tera Contributor

Hello Community,

There is a maintain item named as 'Purchase Requisition Request (IT Use Only)' with 2 variables one variable is is_this_for_software_hardware_or_labor with dropdown options as software, hardware, GBS, services and another variable(check box) is is_software_included_in_this_purchase , here if user selects hardware , GBS, services then this software included variable should get populated , I have done these in UI policies and actions and tested it its working fine . Now if user selects other than software and checked the box of software included purchase variable then it should take yes part in workflow in that way we should write logic in if condition . please help me with this 

@Ankur Bawiskar 

Thank you.

1 ACCEPTED SOLUTION

Hi,

are you sure you are comparing correct value for software

Update as this

answer = ifScript(); // add this line if you have not added

function ifScript() {
    if (current.variables.is_this_for_software_hardware_or_labor == 'software') {
        return 'yes';
    }
    if (current.variables.is_this_for_software_hardware_or_labor != "software" && current.variables.is_software_included_in_this_purchase.toString() == 'true')
        return 'yes';
    else
        return 'no';

}

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

13 REPLIES 13

@spandana kalla 

Thank you for marking my response as helpful.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Hello Ankur,

Without mentioning tostring can we write logic according to my requirement .As one of my team member said true value is boolean value we should not use tostring . @Ankur Bawiskar 

Thanks.

 

Hi,

you never know how boolean value behaves in ServiceNow.

I have seen cases where it has failed

So I don't find any reason for not using toString()

try this

answer = ifScript(); // add this line if you have not added

function ifScript() {
    if (current.variables.is_this_for_software_hardware_or_labor == 'software') {
        return 'yes';
    }
    if (current.variables.is_this_for_software_hardware_or_labor != "software" && (current.variables.is_software_included_in_this_purchase == true || current.variables.is_software_included_in_this_purchase))
        return 'yes';
    else
        return 'no';

}

Can you mark my response as correct and helpful since you mentioned it worked for you.

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

@spandana kalla 

Hope you are doing good.

Did my reply answer your question?

If my response helped please close the thread by marking appropriate response as correct so that it benefits future readers.

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader