[go: up one dir, main page]

0% found this document useful (0 votes)
47 views40 pages

Dokumen - Tips - Building A Flexible Ui With Oracle Apex

Uploaded by

Alaa Eldeen M A
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views40 pages

Dokumen - Tips - Building A Flexible Ui With Oracle Apex

Uploaded by

Alaa Eldeen M A
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

Building A User-Definable,

Flexible UI
with Oracle Application Express (ApEx)
By Bradley D. Brown, InteliVideo
Who am I?

• Bradley D. Brown • Today


http://bradleydbrown.blogspot.com • InteliVideo in April 2012
• Founder • Video Monetization Platform
• TUSC in 1988
• Built it to sell training online
• Sold to Rolta in 2008
• Focused on mid and long tail
• IntelliReal in 2005
and corporate deals
• Sold to Equifax in 2011
• ApEx provides a “quick turns”
• 10+ other companies, boards approach to our offering
• Professor – DU • Founders Institute
• Advisor for Founders Institute
• Author – 6 technical books
My Interests
• Making a difference
• Helping people – teaching,
advising, …
• Building companies
• Using my talents with
technology
• The outdoors
Agenda
• User Definable
• Flexible UI
• Project / POC Goals
• Application Specifics
• Application Design
• Database Specifics
• ERD
• Tables
• Functions
• Materialized views
User Definable

• Data Driven • Trade-offs


• Drive code based on data • Performance
rather than hard coded
• “Readability” of code
• Examples
• Too many choices
• ES valuation model at
IntelliReal • Advantages
• Partners “turning off” partners • Quick Turns
on InteliVideo site
• Testing 100s of models,
• Flexible Database variable changes, etc. can all
be done programmatically
• Do you need the ability to add
(perfect value)
“columns” without “adding
columns?”
Flexible UI

• Data Driven • My bottom line


• What page to start at (after • If I’m doing the original
login) coding or I’m going to
make a change to my code
• What partners to show
and there is an assumption
• Colors to display (i.e. a hard coded number
that I might put into my
• Easy with Apex code), I stop and think
• Authorization rules • Should I add a column to a
table and should I change
• Display rules at all levels the code so it points at the
column?
• What level? Per user?
Per customer?
Independent Nation – POC Goals
• Dave read the book
• Called the author – Fipp (John
Avalon)
• Met with him and discussed the
concepts
• We met with numerous political
campaign target market experts
• I developed the software,
secured data,…
• We did demos to politicians,
target market people, etc.
• EC2 platform
Political Premise
• Politicians want to share their views with targeted groups of people who
are voting
• Key target groups (lobstermen, working moms, first time home owners)
• Identify and find those people
• Invite them to custom events (per group)
• Drive custom messages (reduced taxes for lobster, better day care options,
incentives for buying your first home) – email, text, phone
• Visit the networkers
Project / POC Goals
• Provide intelligence to political campaigns
• Build a GUI and GIS application (with ApEx)
• Application for Independent Nation, but wanted something we
could use for any customer with Google map needs
• Application that is dynamic and flexible
• Design and develop application that allows customization by
changing data, not code.
• Data about people, their properties or addresses they live at, and
other information about them – yet, stay open for others
Application Specifics
• Independent Nation is a company that specializes in provide
intelligence about voters to political campaigns
• Data sourcing - merged voter registration, voter contribution and
numerous other data sources as the starting data set
• Goal was to provide a flexible database design that will allow for
SIMPLE attribute additions without new coding. New data feeds
won’t require DB changes.
Application Design
• Developed for Independent Nation
• Every user
• Starts in a different part of the world
• Has their own color scheme and search criteria
• Uses Google Maps
• Could integrate other mapping solutions in
• Database
• Generic driving table with attributes
• Not many tables (i.e. simple design)

12
Political contributors in NJ
• Contributors by party contributed to…

13
Other Visual Searches
Age – Education, Income
Key Tables
• Application Data • User Driven Data
• Attribute • User
• Category • User Attribute
• People • User Attribute Color
• People Attribute • User Option
• Property • User Option User
• People Property
ERD
Attribute Table
• Attributes (fields) • Parent Attribute

• Short Description • Text 1,2

• Long Description • Data 1,2

• Category • Number 1,2


Category Table
• Categories of • Add a new category, assign
Windows/Tabs it to attribute(s) and it
• Category ID
shows up for all of the
people…
• Short Description
• Full Description
• Parent Category
People
• People
• ID
• First, Last Name
• Voter ID
• Property ID
• People Attribute
• People ID
• Attribute ID
• Start and End Date
• Source, Integrity
• Text, Number, Date Values
Properties and People
• Property
• ID
• Address
• Phone, Cell
• Valuation
• Lat and Long
• People Property
• People ID
• Property ID
• Start and End Date
User Specific Data
• User Attribute Color
• Colorization
• Limiting data
• User Option
• Saved Filters
• Descriptions, Include, Exclude
• Starting map location
• User Option User
• Users who share a filter
• Default filter
Functions
• Get_Desc • Get_People
• Gets the description for a • Brains for everything here
specific attribute for a
• Pipeline (or table-based)
specific user
function
• Get_Option
• Finds the people that live
• Gets the default filter for a within the lat/long range
user on the map, matching the
filters
Let’s Add a New Category
• Add the category
• Change attributes to be in the category
• Refresh the Materialized View
• Test it out in the UI
Let’s Create a New Filter
• Education of Too Youngs…
• Color by education level
• Include <18 year olds
• Exclude other age categories
• Save it
List of People Matching
• Uses the same service as the map
• Shows the details
• Can be exported
Search
• Person’s name
• Municipality
• Address
• District
Finds People
• Clicking View shows them on the map
Performance

• Created materialized • Faster Spatial


view Options
• PEOPLE_MV • Change from
• Indexed search lat/long to spatial
columns column
• sdo_geometry
• Turned on query re-
• Change query to
write
use sdo functions
• ALTER SESSION SET
query_rewrite_enabled=TRUE;
• Or…I could have just changed
queries (people_mv)
How the Maps Works
• AJAX • select * from
table(cast(get_people(:P6_SW
• var url = "f?p=&APP_ID.:6:' _LAT, :P6_NE_LAT, :P6_SW_LO
|| v('app_session') || NG, :P6_NE_LONG, :P1_COLOR
'::::P6_SW_LAT,P6_SW_LO _ATTRIBUTE_ID,
NG,P6_NE_LAT,P6_NE_LO independent_authentication.g
NG,P6_ZOOM,P6_MAPTYP et_user_id(:APP_USER),:P1_IN
E:" + sw.lat() + "," + CLUDE_LIST, :P1_REMOVE_LIS
sw.lng() + "," + ne.lat() + "," T, :P1_SHOW_UNCOLORED, :P
+ ne.lng() + "," + zm + "," + 1_PEOPLE_ID,
mt; nvl(:P1_ROWS,1000)) as
• See Page 6 in my people_Table))
application
• XML Report
• Cast function as if it’s a
table
Other Options
• Could use a Cloud provider • Yahoo Pipes requires data
• Yahoo Pipes
in XML format
• Can come from ApEx too
• Google App Engine
• iPerspective
• We put this in a hosted
environment
• Amazon EC2
• MaxApex
BTW – Political Reality
• Politicians don’t decide much of anything
• Their interns and experts do
• They don’t want to pay for anything
• They do know what groups they want to get to
• They cannot craft a message to them – for fear one
person will get the wrong message and spread it
• They want to deliver generic messages
• This killed Independent Nation in the end…
Getting Started, then Other Mapping I’ve Done
• Heat Maps
• GeoSearch
• Highlight and Visual Search
• Test Scores within a Radius

• Get Creative!
Google Map Integration
• Easy integration Starts At:
• http://www.google.com/apis/maps/
• Simple Pushpins:
Heat Maps
• A look at different neighborhood trends in home values
GeoSearch
• Grouping of properties
• Colorized and customizable
Highlight and Visual Search
• Highlight it
• Build your search, see it
Test Scores within a radius
• Visual results
Summary – Building a Flexible UI
• Flexible Database and UI – can overdue it
• Project / POC Goals – sales engine
• Application Specifics – functional
• Application Design - flexible reuse
• Demo for Customers – cool UI
• Database Specifics – data driven app
Questions?
Brad’s Papers and Presentations
• Java-based Oracle Web • Practical Portal Practices
Development • Implementing JSP in Portal
• Java Server Pages • UltraSearch
• JavaMail • Search Engines
• Java for the PL/SQL • Utl_smtp and Utl_http
Developer
• iFS
• Web Cache – achieving
150 the performance • JavaScript

• 9iAS Installation, • Top DBA scripts for Web


Configuration, and Tuning Developers

• Wireless • Security
Copyright Information

• Neither InteliVideo, Rolta TUSC nor the author guarantee this


document to be error-free. Please provide comments/questions
to brownb@tusc.com.
• InteliVideo, Rolta TUSC © 2012. This document cannot be
reproduced without expressed written consent from an officer of
Rolta or InteliVideo.

You might also like