SlideShare a Scribd company logo
1 of 33
Download to read offline
How to build Multi-Client APEX Applications
Reduce the number of applications and schemas required to serve clients with
similar needs but different data while maintaining privacy and personalization.
By Tony Jedlinski President Konoso LLC
Tony Jedlinski
President - Konoso LLC
Vice President - MOUG
Former Executive VP, Director Web Content and Initiatives - IOUG
•Recognized by Oracle Magazine as a leading expert in Oracle Application Express (ApEx) development
(named HTML-DB Developer of the year – 2005).
•Published ApEx author (Oracle Magazine May/Jun 2006), (IOUG SELECT Journal Q4 2005).
•ApEx presenter (Oracle World 2004, 2006, 7), (IOUG Live! 2004,5), (Collaborate 2006,7,8,9,10,11).
•More than 25 of years experience as an Oracle systems architect / developer, and 35 years of
experience in system analysis and development.
The idea
Sometimes multiple users have the basically
same needs but require some
customization, for example Oracle User
Groups
When working on a tight budget,
you may not have the luxury of
separate schemas for each client,
rather you may need to have
multiple clients share the same
tables and other objects.
Having everyone sharing the same
application and underlying data
structure can reduce support and
maintenance cost and time.
Customization is still possible using these techniques
• Automatically selected theme roller themes
• Option settings
• Saved settings (e.g. logo file location) in database
• Custom Dictionary Values
• Use application level variables to substitute variable text e.g.
Organization Name
Setup
• Determine at what level(s) you will customize (e.g. Organization)
• Add a foreign key column to the USER dictionary to identify which
Organization the user belongs to.
• Use this same technique for other tables such as dictionaries
Setup
ACP_MHBS table defines the Organizations
Each user is associated with a particular Organization and given appropriate
privileges and personality
Set application level fields to easily reference the User’s Organization
Do not allow these fields to be set from the browser .
Re-calculate them on every page display so that any
setting changes are reflected immediately.
Now report queries etc. can be limited to just the rows of the current user’s
Organization
Changing Theme Roller settings dynamically
• Based on current user
• Based on current user’s affiliation (e.g. Organization)
• Any other entity in the database
Define several themes using theme roller
Associate each Organization with a Style
Create an Application Process: Set Style On Load
PL/SQL Procedure holds
the complexity
The code to manipulate styles is in
the APEX_THEME package provided
by Oracle
Look up the current style and the
desired style tor the user’s
Organization.
If they are different, set to the desired
style using
apex_theme.set_user_style
Demo
Options data
• Set up a table to manage options and how they are applied
• Integrate using APEX authorizations or pl/sql conditions
Options Table and Form
Set up authorization
Complexity is within the function HAS_OPTION
CREATE OR REPLACE FUNCTION has_option (acp_mhb_num_in IN
PLS_INTEGER, option_code_in IN VARCHAR2)
RETURN VARCHAR2
AS
CURSOR o_cur
IS
SELECT *
FROM options
WHERE code = UPPER (option_code_in);
result_v VARCHAR2 (1) := 'N';
BEGIN
FOR o_rec IN o_cur
LOOP
IF INSTR (':' || o_rec.acp_mhb_nums || ':', ':' ||
TRIM (TO_CHAR (acp_mhb_num_in)) || ':') > 0
THEN
result_v := 'Y';
END IF;
END LOOP;
RETURN result_v;
END;
/
Look up the Organization(s) who have this
option.
If the current Organization is included,
return Y else return N
Add this authorization to the appropriate page element(s),
in this case the entire EMP page and it’s navigation bar entry.
Demo
Saved settings
• For example, store the organization’s logo location in a table and
display using a report
Store the LOGO URL in the Organization dictionary
Reference this field in a report query
Demo
Custom Dictionary Values
• For example, each organization can have their own choices for “emp type”
Make sure there is a foreign Key to the parent entity (Organization) on both EMP
and EMP_TYPE
Make sure all reports and LOVs include only the appropriate rows
In Editable Interactive Reports, be sure the ACP_MHB_NUM column is
present, hidden and defaults to :MHB_NUM
Demo
Dynamic Application level variables
• Personalize text areas (e.g. Report titles) by setting and referencing a
dynamic application variable For example SHORT_NAME.
Set SHORT_NAME on each page display
Use &SHORT_NAME. notation to reference
Demo
More questions ?
Tony Jedlinski
Tony@konoso.com

More Related Content

What's hot

Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Databasepuja_dhar
 
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...Lucas Jellema
 
Oracle DB Performance Tuning Tips
Oracle DB Performance Tuning TipsOracle DB Performance Tuning Tips
Oracle DB Performance Tuning TipsAsanka Dilruk
 
A History of Oracle Corporation
A History of Oracle CorporationA History of Oracle Corporation
A History of Oracle Corporationdsp
 
Oracle Database Overview
Oracle Database OverviewOracle Database Overview
Oracle Database Overviewhonglee71
 
Cooper Oracle 11g Overview
Cooper Oracle 11g OverviewCooper Oracle 11g Overview
Cooper Oracle 11g Overviewmoin_azeem
 
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)Satishbabu Gunukula
 
Why oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cWhy oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cSatishbabu Gunukula
 
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive PresentationNabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive PresentationNabil Nawaz
 
שבוע אורקל 2016
שבוע אורקל 2016שבוע אורקל 2016
שבוע אורקל 2016Aaron Shilo
 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
 
Winning performance challenges in oracle standard editions
Winning performance challenges in oracle standard editionsWinning performance challenges in oracle standard editions
Winning performance challenges in oracle standard editionsPini Dibask
 
Collaborate 2019 - How to Understand an AWR Report
Collaborate 2019 - How to Understand an AWR ReportCollaborate 2019 - How to Understand an AWR Report
Collaborate 2019 - How to Understand an AWR ReportAlfredo Krieg
 
Oracle golden gate 12c New Features
Oracle golden gate 12c New FeaturesOracle golden gate 12c New Features
Oracle golden gate 12c New FeaturesSatishbabu Gunukula
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle MultitenantJitendra Singh
 
Maruthi_YH_resume
Maruthi_YH_resumeMaruthi_YH_resume
Maruthi_YH_resumeMaruthi YH
 
Top 10 tips for Oracle performance (Updated April 2015)
Top 10 tips for Oracle performance (Updated April 2015)Top 10 tips for Oracle performance (Updated April 2015)
Top 10 tips for Oracle performance (Updated April 2015)Guy Harrison
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...Alex Zaballa
 

What's hot (20)

Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Database
 
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
 
Oracle DB Performance Tuning Tips
Oracle DB Performance Tuning TipsOracle DB Performance Tuning Tips
Oracle DB Performance Tuning Tips
 
A History of Oracle Corporation
A History of Oracle CorporationA History of Oracle Corporation
A History of Oracle Corporation
 
Oracle Database Overview
Oracle Database OverviewOracle Database Overview
Oracle Database Overview
 
Cooper Oracle 11g Overview
Cooper Oracle 11g OverviewCooper Oracle 11g Overview
Cooper Oracle 11g Overview
 
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
 
153 Oracle dba interview questions
153 Oracle dba interview questions153 Oracle dba interview questions
153 Oracle dba interview questions
 
Why oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cWhy oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19c
 
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive PresentationNabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
Nabil Nawaz Oracle Oracle 12c Data Guard Deep Dive Presentation
 
שבוע אורקל 2016
שבוע אורקל 2016שבוע אורקל 2016
שבוע אורקל 2016
 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
 
Oracle Dataguard
Oracle DataguardOracle Dataguard
Oracle Dataguard
 
Winning performance challenges in oracle standard editions
Winning performance challenges in oracle standard editionsWinning performance challenges in oracle standard editions
Winning performance challenges in oracle standard editions
 
Collaborate 2019 - How to Understand an AWR Report
Collaborate 2019 - How to Understand an AWR ReportCollaborate 2019 - How to Understand an AWR Report
Collaborate 2019 - How to Understand an AWR Report
 
Oracle golden gate 12c New Features
Oracle golden gate 12c New FeaturesOracle golden gate 12c New Features
Oracle golden gate 12c New Features
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle Multitenant
 
Maruthi_YH_resume
Maruthi_YH_resumeMaruthi_YH_resume
Maruthi_YH_resume
 
Top 10 tips for Oracle performance (Updated April 2015)
Top 10 tips for Oracle performance (Updated April 2015)Top 10 tips for Oracle performance (Updated April 2015)
Top 10 tips for Oracle performance (Updated April 2015)
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
 

Similar to Build Multi-Client APEX Apps to Reduce Costs

Explain the explain_plan
Explain the explain_planExplain the explain_plan
Explain the explain_planMaria Colgan
 
20 tips and tricks with the Autonomous Database
20 tips and tricks with the Autonomous Database20 tips and tricks with the Autonomous Database
20 tips and tricks with the Autonomous DatabaseSandesh Rao
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management Systemsweetysweety8
 
Sql interview question part 7
Sql interview question part 7Sql interview question part 7
Sql interview question part 7kaashiv1
 
Details and Set-up of Other FlexFields in Oracle E-Business Suite
Details and Set-up of Other FlexFields in Oracle E-Business SuiteDetails and Set-up of Other FlexFields in Oracle E-Business Suite
Details and Set-up of Other FlexFields in Oracle E-Business Suiteeprentise
 
Admin Guiding Query Plans
Admin Guiding Query PlansAdmin Guiding Query Plans
Admin Guiding Query Plansrsnarayanan
 
Oracle Sql Tuning
Oracle Sql TuningOracle Sql Tuning
Oracle Sql TuningChris Adkin
 
Beginners guide to_optimizer
Beginners guide to_optimizerBeginners guide to_optimizer
Beginners guide to_optimizerMaria Colgan
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappearedLuc Bors
 
Sample Questions The following sample questions are not in.docx
Sample Questions The following sample questions are not in.docxSample Questions The following sample questions are not in.docx
Sample Questions The following sample questions are not in.docxtodd331
 
Non-functional requirements
Non-functional requirements Non-functional requirements
Non-functional requirements Rohela Raouf
 
Salesforce Basic Development
Salesforce Basic DevelopmentSalesforce Basic Development
Salesforce Basic DevelopmentNaveen Dhanaraj
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportKhushboo Wadhwani
 

Similar to Build Multi-Client APEX Apps to Reduce Costs (20)

Explain the explain_plan
Explain the explain_planExplain the explain_plan
Explain the explain_plan
 
20 tips and tricks with the Autonomous Database
20 tips and tricks with the Autonomous Database20 tips and tricks with the Autonomous Database
20 tips and tricks with the Autonomous Database
 
Relational Database Management System
Relational Database Management SystemRelational Database Management System
Relational Database Management System
 
Ebook7
Ebook7Ebook7
Ebook7
 
Sql interview question part 7
Sql interview question part 7Sql interview question part 7
Sql interview question part 7
 
Details and Set-up of Other FlexFields in Oracle E-Business Suite
Details and Set-up of Other FlexFields in Oracle E-Business SuiteDetails and Set-up of Other FlexFields in Oracle E-Business Suite
Details and Set-up of Other FlexFields in Oracle E-Business Suite
 
Csd115ig
Csd115igCsd115ig
Csd115ig
 
Admin Guiding Query Plans
Admin Guiding Query PlansAdmin Guiding Query Plans
Admin Guiding Query Plans
 
INFORMATION MODELS.pptx
INFORMATION MODELS.pptxINFORMATION MODELS.pptx
INFORMATION MODELS.pptx
 
Oracle Sql Tuning
Oracle Sql TuningOracle Sql Tuning
Oracle Sql Tuning
 
Beginners guide to_optimizer
Beginners guide to_optimizerBeginners guide to_optimizer
Beginners guide to_optimizer
 
Pega training institutes in INDIA
Pega training institutes in INDIAPega training institutes in INDIA
Pega training institutes in INDIA
 
Calnf
CalnfCalnf
Calnf
 
Sap implementation
Sap implementation  Sap implementation
Sap implementation
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappeared
 
Sample Questions The following sample questions are not in.docx
Sample Questions The following sample questions are not in.docxSample Questions The following sample questions are not in.docx
Sample Questions The following sample questions are not in.docx
 
Non-functional requirements
Non-functional requirements Non-functional requirements
Non-functional requirements
 
Oracle report from ppt
Oracle report from pptOracle report from ppt
Oracle report from ppt
 
Salesforce Basic Development
Salesforce Basic DevelopmentSalesforce Basic Development
Salesforce Basic Development
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ report
 

More from Monica Li

MOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMonica Li
 
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PIMOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PIMonica Li
 
MOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEX
MOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEXMOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEX
MOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEXMonica Li
 
MOUG17: Three Types of Table Compression
MOUG17: Three Types of Table CompressionMOUG17: Three Types of Table Compression
MOUG17: Three Types of Table CompressionMonica Li
 
MOUG17 Keynote: Coding Therapy for Database Developers
MOUG17 Keynote: Coding Therapy for Database DevelopersMOUG17 Keynote: Coding Therapy for Database Developers
MOUG17 Keynote: Coding Therapy for Database DevelopersMonica Li
 
MOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database DevelopmentMOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database DevelopmentMonica Li
 
MOUG17 Keynote: Oracle OpenWorld Major Announcements
MOUG17 Keynote: Oracle OpenWorld Major AnnouncementsMOUG17 Keynote: Oracle OpenWorld Major Announcements
MOUG17 Keynote: Oracle OpenWorld Major AnnouncementsMonica Li
 
VIscosity-WhoWeAre
VIscosity-WhoWeAreVIscosity-WhoWeAre
VIscosity-WhoWeAreMonica Li
 

More from Monica Li (8)

MOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your Data
 
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PIMOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
 
MOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEX
MOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEXMOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEX
MOUG17: Oracle APEX - Tame IT Backlog Low Code Micro Apps in APEX
 
MOUG17: Three Types of Table Compression
MOUG17: Three Types of Table CompressionMOUG17: Three Types of Table Compression
MOUG17: Three Types of Table Compression
 
MOUG17 Keynote: Coding Therapy for Database Developers
MOUG17 Keynote: Coding Therapy for Database DevelopersMOUG17 Keynote: Coding Therapy for Database Developers
MOUG17 Keynote: Coding Therapy for Database Developers
 
MOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database DevelopmentMOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database Development
 
MOUG17 Keynote: Oracle OpenWorld Major Announcements
MOUG17 Keynote: Oracle OpenWorld Major AnnouncementsMOUG17 Keynote: Oracle OpenWorld Major Announcements
MOUG17 Keynote: Oracle OpenWorld Major Announcements
 
VIscosity-WhoWeAre
VIscosity-WhoWeAreVIscosity-WhoWeAre
VIscosity-WhoWeAre
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 

Build Multi-Client APEX Apps to Reduce Costs

  • 1. How to build Multi-Client APEX Applications Reduce the number of applications and schemas required to serve clients with similar needs but different data while maintaining privacy and personalization. By Tony Jedlinski President Konoso LLC
  • 2. Tony Jedlinski President - Konoso LLC Vice President - MOUG Former Executive VP, Director Web Content and Initiatives - IOUG •Recognized by Oracle Magazine as a leading expert in Oracle Application Express (ApEx) development (named HTML-DB Developer of the year – 2005). •Published ApEx author (Oracle Magazine May/Jun 2006), (IOUG SELECT Journal Q4 2005). •ApEx presenter (Oracle World 2004, 2006, 7), (IOUG Live! 2004,5), (Collaborate 2006,7,8,9,10,11). •More than 25 of years experience as an Oracle systems architect / developer, and 35 years of experience in system analysis and development.
  • 3. The idea Sometimes multiple users have the basically same needs but require some customization, for example Oracle User Groups When working on a tight budget, you may not have the luxury of separate schemas for each client, rather you may need to have multiple clients share the same tables and other objects. Having everyone sharing the same application and underlying data structure can reduce support and maintenance cost and time.
  • 4. Customization is still possible using these techniques • Automatically selected theme roller themes • Option settings • Saved settings (e.g. logo file location) in database • Custom Dictionary Values • Use application level variables to substitute variable text e.g. Organization Name
  • 5. Setup • Determine at what level(s) you will customize (e.g. Organization) • Add a foreign key column to the USER dictionary to identify which Organization the user belongs to. • Use this same technique for other tables such as dictionaries
  • 6. Setup ACP_MHBS table defines the Organizations Each user is associated with a particular Organization and given appropriate privileges and personality
  • 7. Set application level fields to easily reference the User’s Organization Do not allow these fields to be set from the browser . Re-calculate them on every page display so that any setting changes are reflected immediately.
  • 8. Now report queries etc. can be limited to just the rows of the current user’s Organization
  • 9. Changing Theme Roller settings dynamically • Based on current user • Based on current user’s affiliation (e.g. Organization) • Any other entity in the database
  • 10. Define several themes using theme roller Associate each Organization with a Style
  • 11. Create an Application Process: Set Style On Load
  • 12. PL/SQL Procedure holds the complexity The code to manipulate styles is in the APEX_THEME package provided by Oracle Look up the current style and the desired style tor the user’s Organization. If they are different, set to the desired style using apex_theme.set_user_style
  • 13. Demo
  • 14. Options data • Set up a table to manage options and how they are applied • Integrate using APEX authorizations or pl/sql conditions
  • 17. Complexity is within the function HAS_OPTION CREATE OR REPLACE FUNCTION has_option (acp_mhb_num_in IN PLS_INTEGER, option_code_in IN VARCHAR2) RETURN VARCHAR2 AS CURSOR o_cur IS SELECT * FROM options WHERE code = UPPER (option_code_in); result_v VARCHAR2 (1) := 'N'; BEGIN FOR o_rec IN o_cur LOOP IF INSTR (':' || o_rec.acp_mhb_nums || ':', ':' || TRIM (TO_CHAR (acp_mhb_num_in)) || ':') > 0 THEN result_v := 'Y'; END IF; END LOOP; RETURN result_v; END; / Look up the Organization(s) who have this option. If the current Organization is included, return Y else return N
  • 18. Add this authorization to the appropriate page element(s), in this case the entire EMP page and it’s navigation bar entry.
  • 19. Demo
  • 20. Saved settings • For example, store the organization’s logo location in a table and display using a report
  • 21. Store the LOGO URL in the Organization dictionary
  • 22. Reference this field in a report query
  • 23. Demo
  • 24. Custom Dictionary Values • For example, each organization can have their own choices for “emp type”
  • 25. Make sure there is a foreign Key to the parent entity (Organization) on both EMP and EMP_TYPE
  • 26. Make sure all reports and LOVs include only the appropriate rows
  • 27. In Editable Interactive Reports, be sure the ACP_MHB_NUM column is present, hidden and defaults to :MHB_NUM
  • 28. Demo
  • 29. Dynamic Application level variables • Personalize text areas (e.g. Report titles) by setting and referencing a dynamic application variable For example SHORT_NAME.
  • 30. Set SHORT_NAME on each page display
  • 32. Demo
  • 33. More questions ? Tony Jedlinski Tony@konoso.com