intro to application express

108
1 Introduction to Application Express (formerly HTML DB) By Larry Linnemeyer, TUSC

Upload: jose-angel-ibarra

Post on 22-Nov-2014

5.687 views

Category:

Technology


1 download

DESCRIPTION

Linnemeyer Larry - Intro to Application Express

TRANSCRIPT

Page 1: Intro to Application Express

1

Introduction to Application Express

(formerly HTML DB)

By Larry Linnemeyer, TUSC

Page 2: Intro to Application Express

3

Agenda

• APEX Defined• Uses – who, what, when, where,

why• Building applications with APEX• APEX Administration and

Monitoring• Tips and Techniques

Page 3: Intro to Application Express

4

APEX Defined

Page 4: Intro to Application Express

5

What is APEX?• Oracle’s answer to “Wizards”• Meta Data (lots of it!)• Dynamic HTML (fast!)• PL/SQL - No Java• Does anything you can do in SQL

or PL/SQL• Nice Web-based team

development environment

Page 5: Intro to Application Express

6

It’s Origin• Originated from Tom Kyte’s “ASK

TOM” site• Used mod_plsql to develop• Became “Project Marvel” then

HTML DB• Now it’s APEX• Also referred to as Einstein

Page 6: Intro to Application Express

7

You’re a good candidate for APEX if you fit the following profile

• You are, or have developers who are, skilled in SQL and PL/SQL

• Your application is database-centric• Your application can be developed using

a hosted service• You are comfortable with a

declarative/4GL programming model • You want to migrate an Access / Excel

application to Oracle

Page 7: Intro to Application Express

8

Scalable?• APEX.oracle• 5,500 active

workspaces• Dell 6550 4x2.0 Ghz

Xeon Processors• 6 GB RAM• Red Hat AS 2.1• 5,500+ schemas

• DB Size ~75 GB• SGA Size ~1.5GB• Average Unique

Page Views: 25,000+ per weekday

• Average Page View Time: <.5 seconds

• 1 DBA – manages 15 other DBs

Page 8: Intro to Application Express

9

Major Components• Administration

• SQL Workshop

• Application Builder

Page 9: Intro to Application Express

10

Components• SQL Workshop

– Interact with your database as with SQL*Plus, but visual

– Data dictionary and object browsing, query by example

• Administration– Manage users– Manage services– Monitor activity

• Application Builder– Centerpiece of APEX– Loaded with wizards– Reports, forms and

charts– Connect pages using

branches– 75 pre-defined widgets– Basic HTML, pop-up lists,

calendars, etc.– Full data entry validation

Page 10: Intro to Application Express

11

More Features• Session and State

Management– Each user has a session– Valid

username/password is required

• User Interface Control– Look-and-feel is separate

from application logic– Extensive templates

• Flexible Authentication and Authorization Schemes– Can use pre-built /

built-in methods or custom

Page 11: Intro to Application Express

12

“Installing” APEX• Apply for a free account at apex.oracle.com

– Set up other developers / users for testing• Can optionally download and install locally

– Run the script on your 9iR2 or better database (also need Apache listener)

– Down / Upload your applications to your home system– Continue development on your home system

• Oracle 10g Companion CD• Oracle Express Edition• Develop your application (read the Help

messages – they really do help!)• Excellent support via OTN discussion forum

Page 12: Intro to Application Express

13

Architecture

BrowserOracle Database

APEXOracle HTTP

Server

Page 13: Intro to Application Express

14

Architecture B

BrowserOracle Database

APEXOracle HTTP

Server

Firewall

Instead of the Oracle HTTP Server, you can use the HTTP Server supplied with Oracle Application Server 9i or 10g

Page 14: Intro to Application Express

15

APEX Uses

Who, What, When, Where, Why…

Page 15: Intro to Application Express

16

What can you do with APEX?

• Select Journal Article review system (developed in 2 weeks)

• Web Collaboration application (developed in 2 days)

• General purpose Customer Survey (developed in 1 day)

• Survey Administration screens (developed in 2 hours)

Page 16: Intro to Application Express

17

Select Journal Article review

Page 17: Intro to Application Express

18

Web Collaboration application

Page 18: Intro to Application Express

19

Customer Survey

Page 19: Intro to Application Express

20

Survey Administration

Page 20: Intro to Application Express

21

Testing Application

Page 21: Intro to Application Express

22

Creating an APEX Application

Generally speaking

Page 22: Intro to Application Express

23

Log into Workspace• Use the Workspace you chose, the

username and password emailed to you

Page 23: Intro to Application Express

24

Home Menu• You’re ready to begin

– Build Applications– Work in SQL– Work with Data– Manage users

Page 24: Intro to Application Express

25

Migrate Data

• Import data from Spreadsheets, XML or Delimited Files

Page 25: Intro to Application Express

26

Load Northwinds?

• I loaded the Northwinds Database from SQL Server

• Used Periscope to load/copy data

• Once loaded, view data using SQL Workshop

Page 26: Intro to Application Express

27

Drill and Create

• Can – Drill into data– Count rows– Insert/Edit rows– Query by Example– View components– Much more…

Page 27: Intro to Application Express

28

Use the Wizards• APEX’s many

wizards will simplify your life – use them!

• Reports, Charts, Forms, Calendars, Trees, etc.

Page 28: Intro to Application Express

29

Create a Hardware Inventory Application

Page 29: Intro to Application Express

30

Building an application “from scratch” – in 5 simple steps

• Login with developer privileges• Use the SQL tools to make your tables,

constraints, triggers, procedures etc.• Start a new application (use the wizard)• Customize the application (check each

change as you make it)• Deploy to the users!

Page 30: Intro to Application Express

31

ExampleHardware Inventory

App• Record and view hardware

inventory• Searchable report • Present analysis graphically as well

as numerically• Design for novice users• Remote users with access to

Internet

Page 31: Intro to Application Express

32

Main Menu

Page 32: Intro to Application Express

33

Import Data (SQL Workshop)

Page 33: Intro to Application Express

34

Converting Data

• Previously, data was stored in an Excel spreadsheet

• Conveniently, this can be made into an Oracle table by simply copying and pasting into the APEX create table wizard

• Select Region• Copy from Excel

Page 34: Intro to Application Express

35

Import Data Wizard

Page 35: Intro to Application Express

36

Paste Your Data In…

Page 36: Intro to Application Express

37

Set Column Preferences

Page 37: Intro to Application Express

38

Create a Primary Keyand sequence

Page 38: Intro to Application Express

39

Object Detail for Table Created (in Object Browser)

Page 39: Intro to Application Express

40

Create Lookup Table

• Select column for look up

• Specify lookup table specifics

Page 40: Intro to Application Express

41

Create an Application

Page 41: Intro to Application Express

42

Create the application form scratch (this time)

Page 42: Intro to Application Express

43

Add Report and Form based on Hardware table

• Notice inclusion of Analysis pages

Page 43: Intro to Application Express

44

Specify Details for Analysis

Page 44: Intro to Application Express

45

Could add as many pages as you want

Page 45: Intro to Application Express

46

Select Levels of Tabs

Page 46: Intro to Application Express

47

Can Share Components for

other applications

Page 47: Intro to Application Express

48

Specify Security and Language

Page 48: Intro to Application Express

49

Choose a Theme

Page 49: Intro to Application Express

50

Verify and Finish

Page 50: Intro to Application Express

51

Run your new Application!(you will need to log in)

Page 51: Intro to Application Express

52

Instant Application!• Searchable report • Links to edit individual rows

Page 52: Intro to Application Express

53

Instant Application!• Edit form with

– Calendar widget– Picklist based off lookup table

Page 53: Intro to Application Express

54

Instant Application!• Analysis Chart and Report

Page 54: Intro to Application Express

55

Good start but improvements can be made

• Makes “codes” more meaningful

• Format output

Edit page through edit link

Page 55: Intro to Application Express

56

Three basic areas for each page

Page 56: Intro to Application Express

57

Elements of a Page

• Shared Components– Tabs– Navigation bar– Templates

• Regions– Items– Labels– Buttons– Widgets

Page 57: Intro to Application Express

58

Most things are created through WIZARDS

• Step by step • Collect

essential info

Page 58: Intro to Application Express

59

EVERYTHINGhas attributes and almost

everything has an edit page

All of the basic attributes collected through the wizards, and many more detailed attributes are editable through an elements attribute/edit page. All of this information is called Meta Data.

Page 59: Intro to Application Express

60

Attribute/Edit Pages

• Attributes in regions by logical groups

• Quick navigation to each region

• Many items are select lists

• Almost all have context sensitive help

Page 60: Intro to Application Express

61

Reuse of Shared Components

LOV used for both report and edit

Page 61: Intro to Application Express

62

Easy Data Validation

• Some validation created automatically based on database.

• Others easily created with wizard.

Page 62: Intro to Application Express

63

Validation Wizard

• Choose the item

• Specify the validation type

Page 63: Intro to Application Express

64

Validation Wizard

• Choose subtype• Specify

sequence and where error message is to be displayed

Page 64: Intro to Application Express

65

Validation Wizard

• Depending on method, provide validation details

• Specify error message

• Always look for help provided– Examples– Item lookups

Page 65: Intro to Application Express

66

MOST things can beCONDITIONAL!

• Many, many different types of conditions available.

• Item is displayed or processed depending on the outcome of the condition.

Page 66: Intro to Application Express

67

Validation• Message displayed by item, central location or

both • Navigation not allowed until validations pass

Page 67: Intro to Application Express

68

Security• Two levels

– Authentication, controls initial access to the application– Authorization, can control access to tabs, pages, regions, items,

buttons, read/write vs read only, …..

• Use APEX built in functionality, totally custom or somewhere in between.

Page 68: Intro to Application Express

69

Make a backup!

Page 69: Intro to Application Express

70

Save the export

Page 70: Intro to Application Express

71

Deployment Process

Development Production

Data

HTML DB App

PL/SQL Code

(Periodic Refresh)

Page 71: Intro to Application Express

72

APEX Administration• Administrator controls

Workspaces • Workspaces control

developer access and provide resources.

Page 72: Intro to Application Express

73

APEX Administration• Workspaces can be

requested.• Workspaces are

“provisioned”• Initial users are

created, more can be created by the “workspace” administrator

• Workspaces/Applications can be monitored.

Page 73: Intro to Application Express

74

Workspace Administration• Workspace

administrator manages services

• Creates and alters workspace / application users

• Monitors Activity

Page 74: Intro to Application Express

75

Workspace Administration

Many reports and charts are available to monitor workspace activity.

Many application reports are also available (to developers also)

Page 75: Intro to Application Express

76

APEX Tips and Techniques

Page 76: Intro to Application Express

77

Sample Applications

• The Sample Applications have great examples

• Take some time to understand the applications

• Standard Sample – Common Concepts

Page 77: Intro to Application Express

78

More Examples

• Collections Showcase – Shopping cart concepts

• Web Services• Presidential

Inaugural Addresses – Oracle Text Examples

Page 78: Intro to Application Express

79

Spend Time onAnalysis/Design

• Time Well Spent– Follows standard design

principals– Storyboard approach

makes it a visual process• Pay me now or pay me

more later…– Poor design, results in a

poor application• Important to understand

Web development to design

Page 79: Intro to Application Express

80

Storyboard Design

• Take the time to map our your tabs, menus, layout and design

Home Page

Products

Consulting Training

A…B…C...

ProductsConsultingTraining

Page 80: Intro to Application Express

81

Debugging

• To view the current value of any object (if you’re a developer), you can click on the session button at any time

Page 81: Intro to Application Express

82

Help!• The online help

that is available is very well written as a reference

• The OTN Discussion Forum is very helpful!

http://forums.oracle.com/forums/forum.jspa?forumID=137

Page 82: Intro to Application Express

83

Web Services

• Web Services provide you the power of running a process on someone else’s machine as if it’s on your own machine

Page 83: Intro to Application Express

84

Creating a Popup

• You can specify a TARGET=NEW for an href if you want the URL / Link to pop up a new page when clicked

• This is useful when referencing other sites

Page 84: Intro to Application Express

85

“Report” on Page

• If you wish to execute a query and return the results to page region that you create, rather than using a PL/SQL block, use a “Report.”

Page 85: Intro to Application Express

86

Adding Images• To add images, static HTML / Docs

and CSS files to the application, click on– Shared Components

• Images• CSS• Static Files

Page 86: Intro to Application Express

87

Beware!

• Bugs do exist in APEX

• Be careful about changing things once they are created– Changing “Types”– Changing Item

Names

Page 87: Intro to Application Express

88

Advanced Topics• Debugging• Using Collections• Authentication & Authorization• Administration• Deployment Process• Available Functions & APIs• Monitoring Activity

Page 88: Intro to Application Express

89

Debugging• Run any page in your application• Turn on debug mode by clicking on

Debug in the developer toolbar• Timing is processor time, not rendering

time• Append &p_trace=YES to your URL to

generate SQL Trace Filehttp://hostname.com/pls/htmldb/f?p=100:1&p_trace=YES

Page 89: Intro to Application Express

90

Using Collections• Enable you to temporarily capture rows

and columns of data• Data is persistent throughout a users

unique session• Examples of when to use a collection:

– A wizard with more than one page– A shopping cart application

Page 90: Intro to Application Express

91

Controlling Collections

• HTMLDB_COLLECTION API– Create– Delete– Truncate– Add/Update/Delete Members– Check Status– Merging– Managing

Page 91: Intro to Application Express

92

Authentication & Authorization

• Establish User Identity Through Authentication

• Provide Security Through Authorization

Page 92: Intro to Application Express

93

Authentication• HTML DB will assign the authenticated

username to the built-in substitution string :APP_USER

• Several Schemes– No Authentication/DAD– LDAP– OracleAS SSO (App as a Partner App)– OracleAS SSO (HTLM DB as Partner App)– HTML DB Internal– Open Door– Custom

Page 93: Intro to Application Express

94

Authorization• Once a user is Authenticated,

Authorization Schemes control what that user can/cannot see & do

• Several Scheme Types– Exists or NOT Exists SQL Query– Item is NULL or NOT NULL– PL/SQL Function– Value of Item = or != Specified Value

Page 94: Intro to Application Express

95

Administration• An HTML DB Administrator’s main task is to

manage the instance of HTML DB• Monitor Activity to ensure good performance• Some common tasks include

– Approving Service & Change Requests– Managing Schema to Workspace Mappings– Managing Schemas & Tablespaces– All Other Associated DBA functions

http://hostname.com/pls/htmldb/htmldb_admin

Page 95: Intro to Application Express

96

Available Functions & APIs

• Four major APIs– HTMLDB_UTIL– HTMLDB_ITEM– HTMLDB_APPLICATION– HTMLDB_CUSTOM_AUTH

Page 96: Intro to Application Express

97

APEX Summary• For additional information, check out:

– http://apex.oracle.com• Externally Hosted Instance

• OTN Discussion Forums• HTML DB “How To” Documents

Page 97: Intro to Application Express

98

Reference Materials

Page 98: Intro to Application Express

99

Referencing Items• Substitution String

– #variableName#• Short Substitution

String– &variableName

• PL/SQL– v(‘variableName’)– nv(‘numericValue’)

• Bind Variable– :variableName

• Items can be used to:– Include a substitution

string within a template

– Create an item at the application or page level

– Use built-in substitution strings to achieve a specific type of functionality

Page 99: Intro to Application Express

100

&variableName.• &variableName is used when you

need to substitute a variable as when you are building a link to another page

• You often need to place a period at the end of the name

• For example:– f?p=&app_id.:2:&session

Page 100: Intro to Application Express

101

#variableName#• #variableName# is similar to

&variableName. but is used in templates and as a parameter in SQL statements

Page 101: Intro to Application Express

102

:variableName• :variableName represents a bind

variable and can be used in SQL Query and PL/SQL regions

• For example:– SELECT project_title, total_cost– FROM projects– WHERE project_id = :P1_project_id

Page 102: Intro to Application Express

103

v(‘variableName’)• v('variableName') or

nv(‘numericVariableName') are functions from the HTML DB APIs that can be used in PL/SQL or SQL statement where a function is called

• For example:– htp.anchor('f?p=' || :app_id || ':2:' ||

v('SESSION'), 'An HTML DB Link') ;

Page 103: Intro to Application Express

104

Implicit Variables• APP_SESSION • APP_USER • IMAGE_PREFIX • WORKSPACE_IMAGES • APP_IMAGES • BROWSER_LANGUAGE • PRINTER_FRIENDLY • HOME_LINK • PROXY SERVER • REQUEST • SYSDATE_YYYYMMDD• DEBUG

• APP_ID • APP_PAGE_ID • APP SCHEMA OWNER • SQLERRM • AUTHENTICATED_URL_PR

EFIX • LOGOUT_URL • PUBLIC_URL_PREFIX • CURRENT_PARENT_TAB_T

EXT • APP_ALIAS • APP_UNIQUE_PAGE_ID

Page 104: Intro to Application Express

105

f?p Syntax• f=function, that

handles it all• p=parameters,

separated by a colon• f?p=16654:104

– 1) Application Number (16654, &APP_ID.)

– 2) Page Number (104)– 3) Session

(&SESSION.)– 4) Request

– 5) Debug– 6) Clear Cache (RP

resets pagination)– 7) Item Names,

comma separated– 8) Item Values,

comma separated– 9) Printer Friendly

• For blank parameters, just include the colon with nothing between

Page 105: Intro to Application Express

106

Summary

• Powerful• Relatively Easy• Fast• Secure• Really works• Hosted

Passionate about the Technology

Best in

the World

Economic

engine

Oracle

TUSC’s Vision

Page 106: Intro to Application Express

107

Questions and Answers

Page 107: Intro to Application Express

108

• htmldb.oracle.com• metalink.oracle.com• technet.oracle.com• otn.oracle.com• www.tusc.com

• Oracle Press, “Oracle HTML DB Handbook” by Lawrence C Linnemeyer and Bradley D. Brown

Where to Get More Information

Page 108: Intro to Application Express

109

• Thank you to Brad Brown, the other team members of TUSC for their contributions to this presentation.

• Please report errors to TUSC. Neither TUSC, or the author warrant that this document is error-free.

• TUSC © 2006. This document may not be copied or reproduced without the express written consent of TUSC.

Special Thanks To…