Boolean 'OR' in DemandTools MassImpact formulas

Katie - May 7 '20 - - Dev Community

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.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .