Skip to main content

Change default (first) page in APEX

Having seen this question often (yesterday again in the OTN APEX forum) and having had the same problem when I first started with APEX, I thought to blog about it.


When you make your first application in APEX you typically have as default page 1 or the login page (101). If you want to change your default (first) page you need to have a look at three different places. Let's say we want to have page 9 as default page:

1) Application Builder > Your Application > Page 101 > Processes (Page Processing) > Login
Change Process to:
wwv_flow_custom_auth_std.login(
   P_UNAME       => :P101_USERNAME,
   P_PASSWORD    => :P101_PASSWORD,
   P_SESSION_ID  => v('APP_SESSION'),
   P_FLOW_PAGE   => :APP_ID||':9'
   );
Whenever somebody logs in we want him to go to page 9.

2) Shared Components > Security > Authentication Schemes > Your Authentication
Change the Logout URL: wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:9

If somebody logged out, we set the default page to 9 as that's our default page.

3) Shared Components > Security > Edit Security Attributes
Change the Home Link to: f?p=&APP_ID.:9:&SESSION.

If no page is specified this is the page to go to for ex. f?p=100 means we're going to application 100 with as default page, the page specified in the Home Link. You can also reference this url by #HOME_LINK#

Comments

  1. Shared Components > Security > Edit Security Attributes
    Change the Home Link to: f?p=&APP_ID.:9:&SESSION.
    Not finding Home Link option

    ReplyDelete

Post a Comment

Popular posts from this blog

Disabling of Password Expiration in Oracle Apex(Internal Workspace Admin)

This post was inspired by a  question  on the OTN APEX forum, which contains how to  reset set the password of the  Oracle Internal Workspace Admin    and  Set the account never to expire  The first bullet has so many blogs  talk about how to reset the password of the Internal Workspace. However, i am more intrigued with the second . To start of with It is not advisable to never expire accounts since its rudimental for user to always renew their accounts  prior to expiration. The default expiration of an account is mostly 180 days so hey whats the point going to do this again after 180 days?? . There are two methods that can be used to achieve this  Generic Never expiration of all User accounts (This should never be practiced in a production Environment All database users are assigned to something called a PROFILE . The profile controls two aspects of the users database access – the system resources available to the user and th

Expose your Local Development Environment to the outside world with Ngrok

When we develop on localhost, we usually use some kind of simple HTTP server like node, our Oracle database,APIs, webhooks, Callback Urls or whatever. This is all good and we are all pretty happy about that. We have access to our app using our fancy  http://localhost  url. We are happy, but  alone . What if you would like to share your app to a colleague that is not on the same network as yours ? What if you need to check your app on an SSL connection? What if you wanted an external system to pass you a process invoked by a method ? ngrok to the rescue Ngrok   is a simple “free” service that can help you with that. Here’s some of the features that it provides: Expose your locally hosted app/website to the outside world by providing you a  http(s)://{something}.ngrok.io  url. Allows you to have an SSL connection to your localhost environment. Inspect/replay the requests made to your local environment Custom subdomain (required a premium account) Password protect your ex

How does one add a day/hour/minute/second to a date value?

DATE is the datatype that we are all familiar  with when we think about representing date and time values. It has the ability to store the month, day, year, century, hours, minutes, and seconds. It is typically good for representing data for when something has happened or should happen in the future.  The problem with the DATE datatype is its' granularity  when trying to determine a time interval between two events when the events happen within a second of each other. This issue is solved with the TIMESTAMP datatype. In order to represent the date stored in a more readable format, the TO_CHAR function has traditionally been wrapped around the date: SQL> SELECT  TO_CHAR(hiredate,'DD.MM.YYYY:HH24:MI:SS')  "hiredate"   FROM employees; hiredate ------------------- 17.12.1980:00:00:00 20.02.1981:00:00:00 The SYSDATE pseudo-column shows the current system date and time. Adding 1 to SYSDATE will advance the date by 1 day. Use fractions to add hours, minut