DEV Community

loading...

Boolean 'OR' in DemandTools MassImpact formulas

katiekodes profile image Katie Originally published at katiekodes.com on ・1 min read

Over on Salesforce Reddit, someone asked how to get "OR"-ing conditions together to work in a formula in the MassImpact module of Validity's DemandTools ETL software.

The problem

They described their desired formula as being of the following structure:

IF(
    OR(ThisCondition,ThatCondition)
    ,"ValueIfTrue"
    ,"ValueIfFalse"
)

They'd gotten this far with actual DemandTools code:

if_StringReturn(
    {owner.profileid}="aaaaaaaaaaaa"
    ,"ValueIfTrue"
    ,"ValueIfFalse"
)

Failed guesses

I couldn't get DemandTools to accept this:

if_StringReturn(
    {owner.profileid}="aaaaaaaaaaaa" || {owner.profileid}="bbbbbbbbbbbb"
    ,"ValueIfTrue"
    ,"ValueIfFalse"
)

Nor did this (sometimes you can "add" trues & falses and they behave like 1's & 0's):

if_StringReturn(
    (
        {owner.profileid}="aaaaaaaaaaaa"
        +
        {owner.profileid}="bbbbbbbbbbbb"
    ) > 0
    ,"ValueIfTrue"
    ,"ValueIfFalse"
)

Winning code

So I kept playing with this idea of "adding" trues & falses until I finally came up with code that works:

if_StringReturn(
    (
        Int(
            if_NumberReturn(
                {owner.profileid}="aaaaaaaaaaaa"
                , 1
                , 0
            )
        )
        +
        Int(
            if_NumberReturn(
                {owner.profileid}="bbbbbbbbbbbb"
                , 1
                , 0
            )
        )
    ) > 0
    ,"ValueIfTrue"
    ,"ValueIfFalse"
)

Like the formula field editor in Salesforce, DemandTools doesn't seem to care about your line breaks or whitespacing, so be sure to treat yourself to something nicely indented when writing a big formula like this.

Later-you will thank yourself.

Discussion (0)

pic
Editor guide