top of page

Dynamic Actions: Set Value [Oracle APEX 18.2]

Updated: Dec 3, 2018


There are several reasons to love Oracle Application Express (APEX) and in this post we will see one of these reasons: Dynamic Actions - Set Value


But... what are dynamic actions?


Dynamic actions in APEX allow developers to declaratively define client-side behavior even without knowing JavaScript. With dynamic actions you can set a value for an item, hide or display a region based on developer-defined conditions or events, all very simply.


Set Value


In this post - which will be the first to talk about dynamic actions - we will see the dynamic action "Set Value". To illustrate the use of this dynamic action, we will use a very simple mathematical operation: Factorial calculation.


Remembering that my goal is not to talk about mathematical operations but rather about dynamic actions in Oracle APEX. In this example we will have a region with 2 items and a button. Our dynamic action will be executed by pressing the "CALC_FACT" button.


Page Items:

P8_FACT_NUM -> Number Field

P8_TOTAL_FACT -> Display Only


1. In the Page Designer, right click on the button of our page and select "Create Dynamic Action".




A dynamic action with the following settings will be created:




2. We define a name for the dynamic action and click on it with the right mouse button and select "Create TRUE Action".




3. We define the "Set Value" action and, to perform the factorial calculation, we select the "PL/SQL Function Body" set type.





4. In PL/SQL Function Body we created the following block of code:

declare

    l_x   number := :P8_FACT_NUM; -- Input Item
    l_y   number default 1;
    l_str varchar2(100) default l_x;
    
begin
    
    while l_x > 0 loop
        
        l_y := l_y * l_x;
        l_x := l_x-1;
        
        if l_x> 0 then
            l_str := l_str || ' x '|| l_x;
        end if;
        
    end loop;
    
    l_str := l_str || ' = '|| l_y;
    
    return l_str;
    
end;


5. Soon after, we select the page item to submit when executing our dynamic action and the item that will be affected by it. In this example, the input item that will be submitted in the dynamic action is P8_FACT_NUM, and the item that will receive the factorial value (Affected Element) is P8_TOTAL_FACT.




That done, we saved the changes on our page and our Dynamic Action is ready. All very simple and fast!


As an additional configuration, we can "ask" for the dynamic action to execute only when the input value of the P8_FACT_NUM item is less than or equal (<=) to 10, in the "Client-side Condition" session of our Dynamic Action.



In practice...

To see our Dynamic Action (Set Value) in action with a few more examples of its use, go to the demo application below.


Demo Application

User (default): demo

Password: demo


19,592 views1 comment

Recent Posts

See All
bottom of page