Search code examples
oracleoracle-ebsoracle-fusion-apps

Why does Oracle Fusion EBS use both ENABLED_FLAG and START_DATE_ACTIVE/END_DATE_ACTIVE in its database tables?


A number of the Oracle EBS tables include the columns ENABLED_FLAG, START_DATE_ACTIVE, and END_DATE_ACTIVE which are used to determine whether the row is available in the application or not.

For example to get a list of the current lookup codes from the FND_LOOKUP table I would run the following SQL query

select lookup_code 
from fnd_lookups fl
where and fl.enabled_flag = 'Y' and sysdate between nvl(fl.start_date_active,sysdate) and nvl(fl.end_date_active,sysdate)

My question is why is there an ENABLED_FLAG given that the START_DATE_ACTIVE and END_DATE_ACTIVE appear to be sufficient to determine whether the row should be available in the application? Is there another purpose for ENABLED_FLAG which I'm not seeing?


Solution

  • As Matthew mentions - this is primarily historical. A table such as FND_LOOKUPS is referenced thousands of times in the code. As such, there's no easy way to change the existing semantics - you can only add on new semantics.

    On the plus side, you only need to do this when allowing the values to be chosen, and not when joining...