J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX



Similar documents
Beginning Oracle. Application Express 4. Doug Gault. Timothy St. Hilaire. Karen Cannell. Martin D'Souza. Patrick Cimolini

INTRODUCING ORACLE APPLICATION EXPRESS. Keywords: database, Oracle, web application, forms, reports

<Insert Picture Here> Michael Hichwa VP Database Development Tools Stuttgart September 18, 2007 Hamburg September 20, 2007

Rapid Application Development of Oracle Web Systems

Oracle Application Express Workshop

Elgg 1.8 Social Networking

ORACLE APPLICATION EXPRESS 5.0

<Insert Picture Here> Oracle Application Express 4.0

Designing portal site structure and page layout using IBM Rational Application Developer V7 Part of a series on portal and portlet development

Application Express Web Application Development

Reporting. Microsoft Dynamics GP enterpri se. Dynamics GP. Christopher Liley. Create and manage business reports with.

ORACLE BUSINESS INTELLIGENCE WORKSHOP

Top 10 Oracle SQL Developer Tips and Tricks

Building Views and Charts in Requests Introduction to Answers views and charts Creating and editing charts Performing common view tasks

BIRT: A Field Guide to Reporting

Database Forms and Reports Tutorial

End the Microsoft Access Chaos - Your simplified path to Oracle Application Express

Sisense. Product Highlights.

Dreamweaver CS3 THE MISSING MANUAL. David Sawyer McFarland. POGUE PRESS" O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC

DIPLOMA IN WEBDEVELOPMENT

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications MOC 20486

$99.95 per user. SQL Server 2008/R2 Reporting Services CourseId: 162 Skill level: Run Time: 37+ hours (195 videos)

Business Insight Report Authoring Getting Started Guide

LearnFromGuru Polish your knowledge

SonicWALL GMS Custom Reports

Expanded contents. Section 1. Chapter 2. The essence off ASP.NET web programming. An introduction to ASP.NET web programming

The Great Office 365 Adventure

GOA365: The Great Office 365 Adventure

Oracle Application Express

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

Site Configuration Mobile Entrée 4

ORACLE BUSINESS INTELLIGENCE WORKSHOP

Nintex Forms 2013 Help

Vector HelpDesk - Administrator s Guide

SSIS Training: Introduction to SQL Server Integration Services Duration: 3 days

DiskPulse DISK CHANGE MONITOR

Logi Ad Hoc Reporting Report Design Guide

An Oracle White Paper May Creating Custom PDF Reports with Oracle Application Express and the APEX Listener

Microsoft SQL Server 2005 Reporting Services Step by Step

Expert Oracle Application. Express Security. Scott Spendolini. Apress"

Market Pricing Override

Using SQL Reporting Services with Amicus

DNNCentric Custom Form Creator. User Manual

Migrate your Discover Reports to Oracle APEX

Jet Data Manager 2012 User Guide

McAfee VirusScan and epolicy Orchestrator Administration Course

MyOra 3.5. User Guide. SQL Tool for Oracle. Kris Murthy

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

EMC Documentum Webtop

Embedded BI made easy

Creating Reports with Microsoft Dynamics AX SQL Reporting Services

Taleo Enterprise. Taleo Reporting Getting Started with Business Objects XI3.1 - User Guide

Logi Ad Hoc Reporting System Administration Guide

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

2/24/2010 ClassApps.com

DotNet Web Developer Training Program

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

CommonSpot Content Server Version 6.2 Release Notes

CRM Global Search: Installation & Configuration

Visual Basic. murach's TRAINING & REFERENCE

SAP BO 4.1 COURSE CONTENT

Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access

SelectSurvey.NET Developers Manual

PeopleTools 8.51 PeopleBook: PeopleSoft Application Designer Lifecycle Management Guide

INFOPATH FORMS FOR OUTLOOK, SHAREPOINT, OR THE WEB

Logi Ad Hoc Reporting Report Design Guide

Oracle Business Intelligence 11g OPN Advanced Workshop

<Insert Picture Here> Oracle SQL Developer 3.0: Overview and New Features


Participant Guide RP301: Ad Hoc Business Intelligence Reporting

Set Up and Maintain Customer Support Tools

ORACLE USER PRODUCTIVITY KIT USAGE TRACKING ADMINISTRATION & REPORTING RELEASE 3.6 PART NO. E

Create a New Database in Access 2010

This course will also teach how to create various kinds of dashboards using Reporting Services.

IBM Information Server

Documentum Content Distribution Services TM Administration Guide

Content Management Systems: Drupal Vs Jahia

Intellect Platform - Tables and Templates Basic Document Management System - A101

SQL Server 2005: Report Builder

SAS IT Resource Management 3.2

ReportPortal Web Reporting for Microsoft SQL Server Analysis Services

ASP.NET Overview. Ken Casada Developer Evangelist Developer & Platform Evangelism Microsoft Switzerland

Oracle Data Integrator: Administration and Development

Course Descriptions for Focused Learning Classes

Web Intelligence User Guide

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

SAP BO Course Details

Developer Tutorial Version 1. 0 February 2015

Microsoft Business Contact Manager Complete

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

Developing and Implementing Windows-Based Applications With Microsoft Visual C#.NET and Microsoft Visual Studio.NET

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide

GP REPORTS VIEWER USER GUIDE

HYPERION SMART VIEW FOR OFFICE RELEASE USER S GUIDE

Transcription:

Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM - MUMBAI

Preface 1 Chapter 1: An Introduction to APEX 7 Web-based 7 Native Web based 8 Data Centric 9 A declarative development tool 9 RAD tool 10 Application Builder 10 Utilities 11 Globalization, localization, and NLS 11 APEX architecture 12 Summary 14 Chapter 2: What we need to know to effectively use APEX 15 SQL and PL/SQL 16 HTML and CSS 16 JavaScript 16 HTML 17 The DOM (Document Object Model) 17 DOM walking 19 DOM methods 19 DOM events 20 The APEX context 21 CSS 21 The cascading effect 22 The style sheets 22 CSS properties 24 CSS selectors 24

The (important keyword 27 The APEX angle 28 Where to store our external CSS file? 28 How to load our CSS code? 29 Globalization and NLS 29 JavaScript 30 JavaScript features 30 Object-Oriented 30 Case sensitive 31 JavaScript variables 31 JavaScript arrays 32 JavaScript operators 32 Blocks of code 34 JavaScript functions 35 The APEX angle 35 Where to store our external JavaScript file? 36 How to load our external JavaScript file? 36 Globalization and NLS 37 PL/SQL and JavaScript (advanced) 38 JavaScript and server-side resources (advanced) 38 The APEX JavaScript API 39 Summary 41 Chapter 3: APEX Basic Concepts 43 Session state 44 Session state firing points 44 Session state and the application page life cycle 45 Session state and the page rendering phase 45 Session state and the page processing phase 48 Manually saving to session state 48 Using the APEX_UTILSET_SESSION_STATE API procedure 48 Session state and AJAX 49 Using the f?p URL notation 50 Referencing persistence session state 50 Session state and stored procedures 51 Session state scope and persistence 53 Reviewing session state from the application builder 54 Substitution strings 55 APEX engine built-in substitution strings 55 Substitution strings that contain data 56 Substitution strings that contain HTML code 58 Application substitution strings 58 Application or page items 59 Referencing substitution strings 59 Using the #ITEM# notation 59 Using the &ITEM. notation 60 Referencing substitution strings in SQL and PL/SQL code 61

Shortcuts 62 Defining a shortcut 63 The name field 64 The type field 64 The shortcut field 64 Shortcuts availability 65 Themes and templates 66 Themes 66 Templates 68 Page templates 68 Region templates 69 Reports templates 70 Breadcrumbs templates 70 List templates 70 Calendar templates 70 Label templates 70 Button templates 70 Popup List Of Values template 70 Templates and the APEX upgrade process 71 Theme, templates, and good practice 71 The f?p URL notation 71 The p segments 71 1 App 72 2 Page 72 3 Session 73 4 Request 73 5 Debug 74 6 CC (Clear Cache) 74 7 itemname 75 8 itemvalue 75 9 PR (Printer friendly) 76 Item values including the colon character 76 APEX multi-lingual support 77 The APEX built-in translation mechanism 77 Single language applications 77 Single application with Multi-lingual user interface 78 National Language Support (NLS) in this book 78 Summary 78 Chapter 4: The Application Builder Basic Concepts and Building Blocks 79 The APEX Workspace 79 Start working with APEX 82 Logging in to the APEX IDE 83

The APEX IDE home page 84 The APEX Application Builder 85 The Application Builder home page 85 The Import button 86 The Create button 87 The Application IDE home page 88 The Pul! Down menu section 89 The application pages section 90 The Page component 92 The Page Rendering column 94 The Hide/Show icon bar 94 The Page Processing column 95 The Hide/Show icon bar 95 The Shared Components column 95 The Hide/Show icon bar 96 The Action Bar 96 Creating an application page 97 Editing the Page Definition page 99 The Page section 99 A page region 102 Creating a page region 102 Editing a page region 104 Summary 107 Chapter 5: APEX Items 109 Naming conventions and rules 109 Oracle Identifiers naming rules 109 Case sensitive APEX item names 110 Application items 110 Application items and security issues 111 Referencing application items 112 Application items and JavaScript 112 Page items 112 The Name section 113 The Name field 113 The Display As field 113 The Displayed section 114 The Sequence field 114 The Region field 114 The layout fields 114 The Label section 118 The Label field 118 The Horizontal / Vertical Alignment field 118 The Template field 119 The HTML Table Cell Attributes field 119

The Element section 120 The item dimension fields 120 The HTML Form Element Attributes field 121 The Form Element Option Attributes field 121 The Pre/Post Element Text fields 121 The Source section 122 The Source Used field 122 The Source Type field 123 Maintain session state 124 Source value or expression 125 Post Calculation Computation 125 Format Mask 125 The Default section 126 The List of Values section 127 Static LOV 127 Dynamic LOV 129 Defines LOV 130 The Security section 131 The Conditions section 132 The Condition Type field 132 The Expression 1 / Expression 2 fields 133 The Read Only section 134 The Help text section 135 The Configuration section 135 The Comments section 135 APEX pre-defined item types 135 Text based items 135 Multi-option based items 138 Special functionality items 144 Creating APEX items programmatically 147 Summary 147 Chapter 6: APEX Buttons 149 Button styles 149 HTML Button 150 Image based button 150 Template Driven button 151 Button positioning 152 Create new button(s) 153 Button position 154 Create a button in a region position 155 Button attributes 155 Image attributes or template (not for HTML) 157

Display properties 157 Branching (optional) 158 Conditional display 158 Create a button displayed among this region's items 159 Edit a button 160 The REQUEST feature 160 The REQUEST scope 160 Referencing REQUEST 161 Condition by REQUEST 162 Using JavaScript with "among this region's items" buttons 162 Re-visit the Buttons section 164 Summary 165 Chapter 7: APEX Computations 167 Create a page level computation 167 Compute item 168 Sequence 168 Computation point 168 Page Rendering computation points 168 Page Processing computation point 169 Computation type 169 Computation 171 Condition 171 Create an application level computation 172 Computation item 172 Frequency 172 Edit computations 173 Computations and Session State 173 Summary 174 Chapter 8: APEX Validations 175 Data validation 175 How APEX validation works? 176 Creating a new validation 177 Validation level 178 Create multiple not null validations 178 Item 179 Validation method 179 SQL 180 PL/SQL 181 Item Not Null 184 Item string comparison 184 Regular Expression 185

- I Table of Contents Sequence and Name 186 Sequence and Validation Name 186 Error Display Location 186 Validation 188 Conditions 189 Page level validation 190 Edit validations Client-side validation Implementing client-side validation 191 Client-side versus server-side validations 192 Summary Chapter 9: APEX Processes 193 Application Processes 194 Creating a new Application Process 194 Name Sequence Point Source Error message 197 Conditionality Edit Application Processes 198 Localization and Application Processes 199 Page level processes 200 Creating a new page level process 200 Process Type 201 PL/SQL 201 Reset Pagination 202 On Demand 204 Session State 204 Data manipulation 205 Web Services 209 210 Form Pagination pop-up window 210 Edit page level process Source: Automatic Row Processing (DML) On Demand processes Summary Chapter 10: APEX Branches 215 Application flow 216 Creating a new branch 216 Branchpoint 217 190 191 192 195 195 195 196 198 211 211 213 213 vii ]

218 Branch type 218 Branch to Function Returning a Page Branch to Function Returning a URL 219 Branch to PL/SQL procedure Branch to page Branch to page accept processing (not common) Branch to Page Identified by Item (Use item name) 221 Branch to page or URL 222 Branch to URL identified by item (Use item name) 224 Sequence and branch conditioning Edit branch Other ways to control the application flow 226 Branch with Buttons Branch with PL/SQL Branch with JavaScript Branch with an item Navigational aids 227 Summary 227 Chapter 11: APEX SQL Workshop 229 Navigating around the SQL workshop 230 Object Browser 232 Exploring the database with the Object Browser 232 Creating new database objects 234 Ul defaults Creating a package SQL Commands The SQL Commands code area 240 The SQL Commands results area (Display Pane) 242 SQL Scripts Query Builder The Query Builder working area (Design Pane) 246 The Query Builder results area (Output Pane) 248 Summary Chapter 12: APEX Forms 251 Sources for creating a form 252 Creating a new form 254 The form primary key 255 The form items 257 The form DML options The form branches 259 219 220 221 224 225 226 226 226 227 238 239 239 244 245 249 258

A new form has been created 259 The Page Rendering phase The items section The Page Rendering Processes section 263 The Page Processing phase The Validations section The Page Processing Processes section 264 The Branches section 266 Manually creating an APEX form 266 Summary 267 Chapter 13: APEX Reports 269 Report regions 269 Creating a simple report using a wizard 270 Start the report region wizard 271 Region type 271 Report implementation 272 Display attributes 272 SQL source 273 Query Builder 274 Report attributes 274 Conditional display 276 Wizard completion 276 Modifying a report manually 277 Editing a Region Definition 278 The identification section 278 The user interface section 278 279 The source section The caching section 280 The header and footer section Editing Report Attributes 281 281 The column attributes section The layout and pagination section 283 The messages section The report export section 284 The break formatting section 285 The external processing section 286 Editing Column attributes 287 The column definition section 287 The column formatting section 287 The tabular form element section The column link section Conditional display 260 261 263 264 280 284 289 290 290

Editing print attributes The printing section The page attributes section 292 The page header section The column heading section 292 The report columns section 292 The page footer section 293 Enabling PDF printing 293 Building a custom report row layout template 294 Building a parameterized report 295 Charts 296 Summary 297 Chapter 14: Tabular Forms 299 What is a Tabular Form? Using a wizard to create a Tabular Form 300 Start the Report Region Wizard 300 Region type 300 Form implementation 301 Identify Table/View Owner 301 Identify Table/View Name 302 Identify columns to display 302 Identify Primary Key 304 Primary key source 304 Updateable columns 306 Page and region attributes 306 Button labels 307 Branching Confirmation Wizard completion Show me the Tabular Form 310 What does the Tabular Form wizard add to my page? 310 Advanced note on the Update process How does the Tabular Form wizard organize the data on a page? 313 The client side The server side 316 Report regions revisited 317 Validating the Tabular Form 319 Enhancing Validation Errors Messages 321 Manually building a Tabular Form 331 Displaying the Tabular Form 332 APEXJTEM API 333 Rendering the Tabular Form 335 290 291 292 299 308 308 309 312 314

Referencing and validating Tabular Form items 337 Using checkboxes 338 DML on the Tabular Form 341 Delete Update Insert Summary Chapter 15: Calendars 349 Calendar region Using a wizard to create a calendar 350 Start the calendar region wizard 350 Region type 350 Calendar implementation 351 Region attributes 352 Calendar source 353 Define columns 354 Viewing the calendar 354 Modifying a calendar manually 355 Region Definition 356 Region Source 356 Calendar Attributes 357 The Calendar Display section 357 The Display Attributes section 358 The Column Link section The Day Link section 359 Summary Chapter 16: Interactive Reports Interactive Report Regions Select Columns Filter Sort Control break Highlight Compute Aggregate Chart Flashback Save report Reset Download Converting an Existing Report Region 341 342 345 347 349 359 360 361 361 363 363 365 365 366 367 368 368 369 370 370 370 371

Create an Interactive Report using a wizard 371 Start the Interactive Report Region Wizard 372 Region Type 372 Report Implementation 372 Display attributes 373 Source 374 Conditional Display 374 Wizard completion 375 Manually modifying an Interactive Report 375 Report Attributes 376 Column Attributes 376 Column Groups 377 Default Report Settings 377 Pagination 378 Search Bar 378 Download 379 Link Column 380 Advanced Attributes 381 Column attributes 381 Linking to Interactive Reports 383 Summary 384 Chapter 17: AJAX with APEX 385 The AJAX technology 386 The XMLHttpRequest object 386 Communication 386 Data format 387 AJAX implementation in APEX 387 AJAX support on the client side 388 The htmldb_get object 388 1 obj 388 2 flow 389 3 req 390 4 page 390 5 instance 390 6 proc 391 7 querystring 392 Code examples 392 The htmldb_get methods 394.Add(name.val) 394.AddParam(name,val) 395 General remarks 396.get(mode, starttag, endtag) 397.GetAsync(pVar) 402

Namespace for the APEX AJAX framework 404 AJAX support on the server side 405 Application on-demand PL/SQL process 405 Stored (packaged) procedure 406 Handling errors in the AJAX process 407 Debugging a failed AJAX process 407 Examples of using AJAX in APEX 408 Multiple calendars on a single application page 408 The calendar main page (page xx) 409 The small calendars page (page yy) 411 Checkbox persistence in Tabular Forms (Reports) 413 Report on CUSTOMERS 414 The AJAX client-side JavaScript functions 416 The AJAX server-side processes 421 Summary 423 Chapter 18: Globalization and Localization With APEX Applications 425 A brief introduction to Globalization and Localization 426 Globalization 426 Localization 427 Native IDE support of multiple languages 427 Loading another language into APEX IDE 428 Unloading the APEX IDE translated language 429 Loading another language into APEX Runtime Environment 430 Multi-language support 430 How do we start Globalization support? 431 Setting the APEX application language 431 Date format 433 Adding or editing Globalization 434 Load Data Localization 436 Translating Text Messages 437 The Text Messages translation wizard 438 Manage the Text Messages repository 440 Using APEX Shortcut with Text Messages 442 Dynamic Translations 444 Using the Dynamic Translations repository 445 Using the APEX_LANG APIs 446 APEX_LANG.MESSAGE 446 APEX_LANG.LANG 449 Multi-lingual applications 451 The translation mechanism home page 452 1 Application Language Mapping 452 2 Seed and export 455

3- Trans!ating the text 458 4 Import and publish the translation 460 Editing the Translatable Text repository 462 Running translated applications 463 Deploying translated applications 463 Summary 465 Chapter 19: Right-To-Left Support in APEX 467 Why we need special Right-To-Left support 467 Basic Right-To-Left scenarios 469 Right-To-Left as a single language 470 Right-To-Left as a translation language 470 APEX templates with Right-To-Left support 471 Page templates 471 The Header section 471 The Body and Footer sections 474 Tab attributes sections 475 Button templates 475 Popup List of Values Template 476 All the other template types 478 The APEX Shuttle item 478 Labels and input fields alignment 482 Date and time 483 Summary 483 Chapter 20: Deploying APEX Applications 485 What do we need to deploy? 485 Supporting Objects 486 Messages 488 Prerequisites 490 Substitutions 492 Build Options 492 Validations 492 Create/Update a Validation 493 Install Create Script 494 Script Attributes 495 Define Script 496 Create Scripts to Install Files 496 Upgrade 497 Deinstallation 498 Export 498 Exporting an Application 498 Exporting a page 500 494

Exporting components 500 Components 501 Components by Page 502 Application Attributes 503 Build Option Status 504 Export Components 504 Importing an application 505 Start the Import Wizard 505 Specify File 505 File Import Confirmation 506 Install 506 Supporting Objects installation 507 Command line export utility 508 Summary 509 Chapter 21: The APEX Runtime Environment 511 What is the APEX Runtime Environment? 511 Setting up a Runtime Environment 512 Managing the APEX Runtime Environment 512 Installing applications 512 APEX_INSTANCE_ADMIN API 513 Viewing APEX reports 514 Oracle SQL Developer 514 Summary 516 Chapter 22: Security 517 APEX security features overview 517 Authentication Schemes 518 Adding an Authentication Scheme 520 Creation method 521 Selecting a pre-built Authentication Scheme 521 Adding a login page 522 Specifying LDAP settings 522 Authentication Scheme name 523 Changing the current Authentication Scheme 523 Custom Authentication Scheme 524 Authentication reports 526 Authorization Schemes 527 Create an Authorization Scheme 527 Creation method 528 Authorization Scheme details 528

Table ofcontents Assigning Authorization Scheme to pages, regions, and items 530 Resetting Authorization Scheme results 531 Authorization Reports 531 Session state protection 531 Security Attributes 534 Authentication 534 Authorization 535 Database Schema 535 Session Timeout 535 Session State Protection 536 Virtual Private Database 536 Summary 536 Chapter 23: Application Conversion 537 APEX application conversion 537 Planning and understanding the application 538 APEX Application Migrations 538 Creating an APEX workspace 539 Converting Microsoft Access applications 540 Exporting Microsoft Access metadata 540 Migrating the Access database to Oracle 542 Creating a repository 543 Capturing Microsoft Access exported XML 543 Converting to an Oracle Model 544 Generating schema 545 Creating an Oracle database 546 Creating a Migration Project 546 The Migration Project page 547 Generating the application 549 Select Application Objects 549 User Interface 551 Confirmation 552 Converting Oracle Forms applications 552 Converting Oracle Forms to XML 553 Database 553 APEX Migration Project 554 Reviewing and editing application metadata 555 Annotations 557 Including objects in conversion 558 Generating the application 558 Application name 559 Create Pages 559

User Interface 562 Confirmation 562 What's left to do? 563 Summary 564 Chapter 24: APEX Best Practices 565 Don't re-invent the wheel 566 Be innovative when necessary 567 Learn the APEX IDE 567 The Drag and Drop Layout wizard 567 The Action Bar 568 The Page Definition view options 568 Setting up workspaces 570 Application ID 571 Page numbering and page groups 572 Use Oracle naming conventions 573 Use bind variables 573 Don't hardcode, use Substitution Strings 574 Use PL/SQL packages 574 Protect your business logic secrets 574 Re-useable code 575 Shared Components 575 Page Zero 575 Pre-defined and built-in resources 575 User Interface Defaults 576 Never change the provided APEX resources 576 Themes and Templates 576 JavaScript and CSS 577 Never trust the end user 578 Client-side validation 578 Don't rely on database constraints 578 Create your own restore point 578 Multi-user environment 579 Multi-lingual environment 580 Team development 580 Lock your pages 580 Version control 581 Document development standards 581 Thou shall enter comments 582 APEX views (APEX dictionary) 583

Embbeded Table of Contents APEX Application Reports 583 APEX Runtime-only version 585 Backup, backup, and more backup 585 Summary 586 Appendix: APEX Installation, Upgrade, and Configuration Tips 587 Obtaining APEX 587 Reading the relevant documentation 587 Back up your database and APEX applications 588 Use AL32UTF8 in your DAD 588 PL/SQL Web Toolkit 589 EPG - PL/SQL Gateway 590 Enabling FTP on EPG 590 Enabling remote access to EPG 590 EPG versus OHS 591 Utilizing static files caching 591 Obfuscate your DAD file 592 Upgrading an APEX Instance 592 Copy the new images directory 594 Themes and Templates in the Upgrade process 594 Summary 597 Index 599