Monday, April 2, 2018

How To Store Application Link on Oracle APEX to Create Dynamic Link Menus

Leave a Comment

This article will discuss about how to store application link on Oracle APEX to create dynamic link menus. When we develop some application usually there will be 2 main areas which are public area and admin area. Public area will show all of prohibit pages/contents on the application to public users. Admin area’s itself will controlling pages/contents that allowed to be viewed by public user. On some application there will found the public area controlling their own pages/contents such as adding a page.



Oracle APEX has a specific format to access its pages from a web browser. The format might be like this:

http://servername:port/apex/f?p=APP_ID:PAGE_ID:APP_SESSION::::params

APP_ID                 = Application ID that we created
PAGE_ID              = Destination page ID will be shown
APP_SESSION    = Session ID from browser session
params                 = parameter that given from user interactions

This article will show you how the public user control its page/content by creating a dynamic menu based on table records. Each of page references will be stored on tables and will be able to be viewed on public area.

First create new desktop application on Oracle APEX then follow the following steps:
1.       Create table named Project
2.       Create Page, Add PL/SQL Dynamic Content Region
BEGIN
HTP.P('<TABLE>');
HTP.P('<TR BGCOLOR="#cccccc"><TH>Project ID</TH><TH>Project NAME</TH></TR>');
                FOR a IN (
                                SELECT
                                                APEX_ITEM.TEXT(1,null,4) ID, APEX_ITEM.TEXT(2) NAME
                                FROM DUAL)
                LOOP
                                FOR i IN 1..5 LOOP
                                                HTP.P('<TR><TD>'||a.ID||'</TD><TD>'||a.NAME||'</TD></TR>');
                                END LOOP;
                END LOOP;
                HTP.p('</TABLE>');
END;

When it executed the appearance will be like this:


3.       Add a button or the region
4.       Create PL/SQL Process, assign to button
DECLARE
                id VARCHAR2(8);
                name VARCHAR2(32);
                par VARCHAR2(128);
    a VARCHAR2(8);
    b VARCHAR2(8);
BEGIN
                FOR i IN 1..apex_application.g_f01.count LOOP
                                id := apex_application.g_f01(i);
                                name := apex_application.g_f02(i);
                                par := 'P3_ID:'||id;
                                IF id IS NOT NULL THEN
INSERT INTO project(projectid,projectname,params) VALUES(id,name,par);
                                END IF;
                END LOOP;
END;
5.       Add TEXT item => P3_ID
6.       Add Report Region
a.       Source
select projectid, htf.anchor('f?p='||:APP_ID||':3:'||:APP_SESSION||'::::'||params,projectname) projectname from project
b.      Report Attributes, edit PROJECTNAME attribute, Display as: Standard Report Column
7.       Run, fill the fields, klik Save


8.       Results


9.       Klik on Projectname Link, if you click One the Id will be filled by 1. This means that if we click on One link it will be open a pege with PAGE_ID=1;
http://servername:port/apex/f?p=APP_ID:PAGE_ID:APP_SESSION::::params
http://servername:port/apex/f?p=APP_ID:1:APP_SESSION::::params


That’s it our discussion about store application link on Oracle APEX. This methods can be applied on dynamic APP_ID or the dynamic parameter passing.

Thank You - Bobsis

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment