Posts

Environments page

This page will provide master -> detail -> detail  -> detail functionality.  The user will be able to add environments, the applications for the environments, the services for the environments and lastly the components for the services. The only environments that can be entered are within the scope of the roles the user has admin privileges for. The master (environments) is an interactive report.  This is because I used the wizard to create the page, and it's a "Report with form on a table".  I've manually added to the region a select list that shows the roles for a user.  When creating a select list based on a sql query, the query has to return two values, the display value and the item value.  The first column returned by the query is the display, the second is the item value.  In my example below I concatenated the role_id so I could visually see the item value. select role_name||' - '||role_description||' - '||role_id, ro...

Authorization scheme to prevent access to a specific page

Use of authorization scheme. The roles page is only to be used by a very small subset of users of this application.  An authorization scheme was created in shared components and applied to the roles page: select 'x' from ui_admin_users admin, ui_roles roles where roles.role_name = 'role_admin' and admin.email_address = lower(:APP_USER) Scheme type: Exists SQL Query Error message: You must be a role administrator to maintain roles.

Roles Page - Validations and Primary Key

Roles page is a master detail pair of Interactive Grids. Master is the Roles. Detail is the Admins. In the Roles IG properties, the Master Region is the Roles Region.  This appears to be the only setting required to do the master detail coordination. Validations required role_name - must be lower case, alphabetic characters, numerals and underscore.  No leading or trailing spaces. role_id - populated from sequence. email_address - must be lower case with @oracle.com the domain, No leading or trailing spaces. admin_id - populated from sequence.  This column was added to get the master detail coordination working in Apex, normally I wouldn't have used it, the original admin primary key of role_id with email_address didn't work in apex, the email address field would get populated with text of t100x by default. It seems there is some setting possibly of user updateable columns that I found on googling the issue but didn't play with it. role_description - requi...

Database triggers and Application Express

On the use or not of database triggers.  I've held a view that triggers have a narrower scope than many in the Oracle world.  This view has been challenged in my use of Apex.  Triggers have some significant limitations. - While Oracle allows multiple triggers of the same type to be created, it's not possible to control the order of the firing of triggers.  Why does this matter? If you are integrating to an existing system that has triggers, your trigger might fire before the existing trigger, or after. No assumptions can be made. - Triggers are quite difficult to debug. - Triggers can be disabled thus bypassing all trigger logic. - If integrating to an existing system, you may not have access / privileges to create triggers. Some have said these "limitations" are contrived / atypical.  That may be the case, my background is in Oracle Education (originally) and as a trainer I learned all of the capabilities and limitations of triggers.  My role is ...

Learning project

The purpose of this blog is to document my app development in Apex.  This initial app is a learning project to get my head around the options within Apex, it's more for me to learn Apex than anything else. The application will allow the maintenance of roles, environments, applications and services that are part of a dynamic UI generated for a log search tool I developed.  The users of the tool are shown the environments, apps, services based on their roles within ldap.  These roles defined in the apex app are to provide a mapping from the roles in ldap to the environments etc in the log tool.  As user on one role should not see details of other roles. The app will consist of a roles page, this is for creating roles and should only be shown to those who have role admin. Role admin are those admins on a special / reserved role that only exists for this application and is only there for providing appropriate authorization. My intent is to use the newest and most a...