Progressive Skill Who Are We? We are a full services Business Consulting and Internet Technology Company. Our mission is to improve business process and or generate net income for our customers. We focus on database driven solutions leveraging ‘open source code’ models so that our customers are not ‘Hostage’ to the technology. 2 Projects/Clients 3 Rapid Application Development Quick Development of Software Applications Visual Tools for Development Very Little Custom Coding/Programming Easier to Manage Code and Functionality Faster Testing and Debugging Simpler Collaboration among multiple skill sets Shorter Timelines Lower Budgets Greater Flexibility with changing/adding requirements 4 Introduction to Application Express (formerly HTML DB) 5 Agenda • APEX Defined • Uses – who, what, when, where, why • Building applications with APEX • APEX Administration and Monitoring • Tips and Techniques 7 APEX Defined 8 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 9 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 10 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 11 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(System Global Area) Size ~1.5GB • Average Unique Page Views: 25,000+ per weekday • Average Page View Time: <.5 seconds • 1 DBA – manages 15 other DBs 12 Major Components • Administration • SQL Workshop • Application Builder 13 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 14 More Features • Session and State Management – Each user has a session – Valid username/password is required • User Interface Control • Flexible Authentication and Authorization Schemes – Can use pre-built / built-in methods or custom – Look-and-feel is separate from application logic – Extensive templates 15 “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 16 Architecture Browser Oracle HTTP Server Oracle Database APEX 17 Architecture B Browser Oracle HTTP Server Firewall Oracle Database APEX Instead of the Oracle HTTP Server, you can use the HTTP Server supplied with Oracle Application Server 9i or 10g 18 APEX Uses Who, What, When, Where, Why… 19 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) 20 Select Journal Article review 21 Web Collaboration application 22 Customer Survey 23 Survey Administration 24 Testing Application 25 Creating an APEX Application Generally speaking 26 Log into Workspace • Use the Workspace you chose, the username and password emailed to you 27 Home Menu • You’re ready to begin – – – – Build Applications Work in SQL Work with Data Manage users 28 Migrate Data • Import data from Spreadsheets, XML or Delimited Files 29 Load Northwinds? • I loaded the Northwinds Database from SQL Server • Used Periscope to load/copy data • Once loaded, view data using SQL Workshop 30 Drill and Create • Can – – – – – – Drill into data Count rows Insert/Edit rows Query by Example View components Much more… 31 Use the Wizards • APEX’s many wizards will simplify your life – use them! • Reports, Charts, Forms, Calendars, Trees, etc. 32 Create a Hardware Inventory Application 33 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! 34 Example Hardware 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 35 Main Menu 36 Import Data (SQL Workshop) 37 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 38 Import Data Wizard 39 Paste Your Data In… 40 Set Column Preferences 41 Create a Primary Key and sequence 42 Object Detail for Table Created (in Object Browser) 43 Create Lookup Table • Select column for look up • Specify lookup table specifics 44 Create an Application 45 Create the application form scratch (this time) 46 Add Report and Form based on Hardware table • Notice inclusion of Analysis pages 47 Specify Details for Analysis 48 Could add as many pages as you want 49 Select Levels of Tabs 50 Can Share Components for other applications 51 Specify Security and Language 52 Choose a Theme 53 Verify and Finish 54 Run your new Application! (you will need to log in) 55 Instant Application! • Searchable report • Links to edit individual rows 56 Instant Application! • Edit form with – Calendar widget – Picklist based off lookup table 57 Instant Application! • Analysis Chart and Report 58 Good start but improvements can be made • Makes “codes” more meaningful • Format output Edit page through edit link 59 Three basic areas for each page 60 Elements of a Page • Shared Components – Tabs – Navigation bar – Templates • Regions – – – – Items Labels Buttons Widgets 61 Most things are created through WIZARDS • Step by step • Collect essential info 62 EVERYTHING has 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. 63 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 64 Reuse of Shared Components LOV used for both report and edit 65 Easy Data Validation • Some validation created automatically based on database. • Others easily created with wizard. 66 Validation Wizard • Choose the item • Specify the validation type 67 Validation Wizard • Choose subtype • Specify sequence and where error message is to be displayed 68 Validation Wizard • Depending on method, provide validation details • Specify error message • Always look for help provided – Examples – Item lookups 69 MOST things can be CONDITIONAL! • Many, many different types of conditions available. • Item is displayed or processed depending on the outcome of the condition. 70 Validation • Message displayed by item, central location or both • Navigation not allowed until validations pass 71 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. 72 Make a backup! 73 Save the export 74 Deployment Process HTML DB App PL/SQL Code Data Development (Periodic Refresh) Production 75 APEX Administration • Administrator controls Workspaces • Workspaces control developer access and provide resources. 76 APEX Administration • Workspaces can be requested. • Workspaces are “provisioned” • Initial users are created, more can be created by the “workspace” administrator • Workspaces/Applic ations can be monitored. 77 Workspace Administration • Workspace administrator manages services • Creates and alters workspace / application users • Monitors Activity 78 Workspace Administration Many reports and charts are available to monitor workspace activity. Many application reports are also available (to developers also) 79 APEX Tips and Techniques 80 Sample Applications • The Sample Applications have great examples • Take some time to understand the applications • Standard Sample – Common Concepts 81 Spend Time on Analysis/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 82 Storyboard Design • Take the time to map our your tabs, menus, layout and design Home Page Products Consulting Training Consulting Products A… B… C... Training 83 Debugging • To view the current value of any object (if you’re a developer), you can click on the session button at any time 84 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 85 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 86 Adding Images • To add images, static HTML / Docs and CSS files to the application, click on – Shared Components • Images • CSS • Static Files 87 Advanced Topics • • • • • • • Debugging Using Collections Authentication & Authorization Administration Deployment Process Available Functions & APIs Monitoring Activity 88 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 File http://hostname.com/pls/htmldb/f?p=100:1&p_trace=YES 89 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 90 Authentication & Authorization • Establish User Identity Through Authentication • Provide Security Through Authorization 91 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 92 APEX Summary • For additional information, check out: – http://apex.oracle.com • Externally Hosted Instance • OTN Discussion Forums • HTML DB “How To” Documents 93 &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 94 Summary • • • • • • Powerful Relatively Easy Fast Secure Really works Hosted 95 Questions and Answers 96 Where to Get More Information • • • • • 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 97