$FLEX$ is a Special Variables in oracle Apps environment and is used in Value sets to hold values at runtime. It is Used for basing the value of a parameter and generate a LOV on another parameter. This variable is used in the Parameter form of a Concurrent Program and its defined in the Where Clause window in the value set of Table type.
Syntax:
:$FLEX$.previous_value_set_name
Syntax:
:$FLEX$.previous_value_set_name
Important:
- $FLEX$ must always be in capitals.
- A ‘:’ must precede the declaration of $FLEX$.
- The previous value set name must have already been assigned and saved on a different parameter.
This is explained with an example:
1. Create a concurrent program with 2 parameters. Namely “Run_type” and “Run_value”
2. The 2 parameters have 2 different value sets.
a. Value set of Run_type parameter is independent value set
b. Value set of Run_value parameter is table value set
3. Now you can see at run time, the LOV generated in Run_value parameter is dependent on Run_type.
Say we have 3 Params in a concurrent program
Param1 – valueset: run_type
Param2 – valueset: run_type
Param3 – valueset: run_value
Now Param1 and Param2 has the same valueset. And Param3’s valueset is calculated based on Run_type
Which Param value will be used in calculating the valueset of Param3? The answer is Param2. Even though param1 and param2 has the same valueset, $FLEX$ uses the value in the valueset which is just before it ie., param2
See the example: