Search code examples
decodedata-warehouseetlinformatica-powercenterinformatica

What the decode function do in the update flag port in informatica?


I'm new to Informatica and like to ask a question regarding infa ports. I found an example which show how to create an update flag in expression transform for updating data. The code in v_UPDATE_FLAG port looks like this:

IIF(NOT ISNULL(PREV_ITEM_KEY)
AND
(
DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 
OR
DECODE(DISCOUNT,PREV_DISCOUNT,1,0) = 0 
OR
DECODE(PRICE,PREV_PRICE,1,0) = 0 
),'TRUE','FALSE')

Can you explain what this does? What the DECODE does here??

DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 

Solution

  • DECODE syntax:

    DECODE (
      value
    , first_search  , first_result 
    , second_search , second_result
    , ...           , ...
                    , default
    )
    

    The value parameter is compared with the search parameters and, when the first match is found, a respective result parameter is returned. If there is no match, the default parameter is returned.

    DECODE(BONUS_FLAG,PREV_BONUS_FLAG,1,0) = 0 means that the BONUS_FLAG and PREV_BONUS_FLAG are not equal.

    The entire expression flags a row for UPDATE when PREV_ITEM_KEY is not NULL and any of the attributes BONUS_FLAG, DISCOUNT or PRICE has changed (previous value versus current value).