APEX

Restricting multiple sessions per user in Oracle APEX

Introduction: This document explains the implementation of Multiple Session Restriction in Oracle APEX applications. The objective of this solution is to ensure that a single user cannot maintain multiple active sessions at the same time across different browsers, devices, or tabs. Why We Need to Do This? Restricting multiple sessions per user is a crucial requirement for maintaining both security and control within an Oracle APEX application. Allowing the same user account to be logged in from multiple devices or browsers simultaneously can lead to risks such as credential sharing, data misuse, and difficulty in tracking true user activity. How Do We Solve It? STEP 1: In APEX Application                Go to Page 0 and Create Page Item (P0_ACTIVE_SESSION). STEP 2:  Create Dynamic Action, Event :On Page Load Name : Find active session   Items to Return : P0_ACTIVE_SESSION   Client-Side Condition : Item is null (P0_ACTIVE_SESSION)   Server-Side Condition : Current page != Page Value    : 9999 TRUE ACTION 1 :  Plsql Code:-  Declare            …

Read More

APEX USER LOGIN LOGOUT AUDIT

Introduction: This document explains the implementation of a Login and Logout Audit mechanism in Oracle APEX. The objective of this solution is to capture and track user activity within the…

Read More

Creating a Wizard-Style Progress Bar in Oracle APEX

Introduction/ Issue:   Multi-step forms are common in applications — onboarding flows, surveys, registrations, or wizards. But in Oracle APEX, when you build multi-step forms using multiple regions, the user can…

Read More

APEX & ORDS UPGRADE

Description: This document explains how we upgraded Oracle APEX, ORDS, and Java on the DBNAME database. It covers the checks and backups done before starting, the steps for installation and configuration, and how we fixed common issues during the process. The aim was to move from older versions to APEX 24.1, ORDS 24.1, and Java 11 smoothly, without affecting service availability. Componets Current versions   Upgrade version Apex 22.2 24.1 Ords 21.2 24.1 Java  Jdk-1.8 11.1 Pre checks and backups.      Apex Workspace backups.   Steps: Login to admin responsibility and take the workspace level backup. Using APEX port utility to take workspace and application backups in backend.   Tomcat and Ords backup Taking current tomcat and ords backup using tar.   Validate workspace schema backup should be taken in DBA team.   Installation of apex in DB level.…

Read More

Enhancing Jasper Reports with Dynamic PDF Titles

Introduction: In many web applications that use JasperReports, the same JSP export logic serves multiple report templates (.jrxml files). Each report may represent different business documents such as share certificates,…

Read More

Changing Interactive Grid Headings Dynamically in APEX

Introduction: In Oracle APEX, Interactive Grids often display fixed column headings, which may not suit scenarios where data is time-bound or varies with user input. When working with reports spanning…

Read More

Dynamic Row-Wise Validation Across Two Interactive Grids in APEX

Introduction :   Interactive Grids in Oracle APEX are a powerful feature for managing and editing tabular data within applications. However, when it comes to dynamically summing column values as users input…

Read More

Single Date Range Picker In Oracle APEX Using JavaScript

Introduction : In many Oracle APEX applications, date selection is a common task — whether it’s filtering reports, exporting data, or running analytics. Traditionally, this requires two separate date pickers: one…

Read More

Display Report Execution Time with #TIMING# in Oracle APEX

Introduction/ Issue:   The *TIMING# substitution variable represents the elapsed time (in seconds) taken to render a region, including the time to fetch data and render region items. This variable is…

Read More

Displaying Counts in APEX Navigation Menu in Oracle APEX

Introduction/ Issue:   In Oracle APEX, it’s possible to dynamically present the number of items—such as pending modules, unread messages, or active records—next to navigation entries (e.g., “Modules [5]”). This live…

Read More