replace an empty UDF field to a set value base on condition

Can anyone help, I test it for long time, doesn't work

retVal=0

Ppat=""
Ppatdesc=""
Ppatdesc1="CREDIT HOLD"
Ppatdesc2="REDUCE CREDIT LIMIT"
Ppatdesc3="NEW CUSTOMER OR SPECIAL ALERT"
Ppatdesc4="GOOD STATUS"

retVal = oBusObj.GetValue("UDF_PAYMENT_PATTERN$", Ppat)
retVal = oBusObj.GetValue("UDF_PP_PATTERN_DESC$", Ppatdesc)


if Ppat = "RED" then retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc1)

if Ppat = "CYAN" then retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc2)

if Ppat = "YELLOW" then retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc3)

if Ppat = "GREEN" then retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc4) else retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc)

  • 0

    You don't have Else between all the If statements, so the last if statement overwrites everything before it.  you either need to put Else between all of them or use a Select Case statement.  Also, VBScript requires End If after each If.

    I recommend Select Case when you have this many options

    select case Ppat
    case "RED" retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc1)
    case "CYAN" retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc2)
    case "YELLOW" retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc3)
    case "GREEN"
    retVal =  oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc4)
    case else
    retVal = oBusObj.SetValue("UDF_PP_PATTERN_DESC$", Ppatdesc)
    end select