O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Oracle Application Express 3.2

Book Description

Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

About This Book

  • Grasp the principles behind APEX to develop efficient and optimized data-centric native web applications, for the Oracle environment

  • Gain a better understanding of the major principles and building blocks of APEX, like the IDE and its modules

  • Review APEX-related technologies like HTML and the DOM, CSS, and JavaScript, which will help you to develop better, richer, and more efficient APEX applications

  • Learn to Globalize APEX applications, including Right-To-Left support

  • This book covers APEX version 3.2, but the information is broadly applicable to all 3.x

  • Who This Book Is For

    This book is for developers, in general, and web developers, in particular, who wish to learn how to develop data-centric web applications in the Oracle environment. It is also for novice APEX developers, who wish to learn how to use and best utilize the APEX environment, as well as for more experience APEX developers who wish to improve their knowledge and understanding of APEX and its capabilities, and learn from the experience of others.

    It assumes basic knowledge of HTML, SQL, and PL/SQL. Basic JavaScript understanding is an advantage, and in general can make your life much easier as an APEX developer.

    Style and approach

    This book is a practical guide that not only shows you how to do things, but also makes you understand how things really work, so you'll be able to develop your own applications. It uses many screenshots, examples, and real-time "APEX code", some of which is documented for the first time.

    What You Will Learn

  • Fully utilize the Web development aspects of APEX by getting familiar with necessary skills such as HTML, the DOM, CSS, and JavaScript

  • Understand important concepts of APEX such as Session State, Substitution Strings, the Shortcuts mechanism, and more

  • Create the APEX application building blocks, like pages, items, processes, data validation, shared components, and others, and use them to implement the User Interface and the application (business) logic

  • Generate APEX Forms and modify them to your needs using the APEX wizards

  • Build, display, and validate a Tabular Form, manually as well as using a wizard

  • Create and modify Interactive Reports

  • Understand the AJAX concepts, such as XMLHttpRequest, communication, and data format, in order to enhance users' experience, and to optimize application performance

  • Secure your applications using Authentication Schemes, Authorization Schemes, Session State Protection, and Security Attributes

  • Build localized and/or multi-lingual applications using the APEX Globalization support, including the APEX built-in translation mechanism

  • Convert Microsoft Access and Oracle Forms applications to APEX applications

  • Explore APEX SQL Workshop via its modules such as Object Browser, SQL Commands, SQL Scripts, and Query Builder, and learn how to use them to build the database infrastructure and support for your application

  • Implement AJAX in APEX with the help of detailed working examples

  • In Detail

    Developing data-centric web applications can be a real challenge as it is a multi-disciplinary process. There are many technologies involved in the client side (HTML, CSS, JavaScript, and so on); the interaction with the database, on the server side; the typeless nature of the web environment; and above all, the need to put it all together. This needs to be done in a manner that will allow the end users to do their job in the simplest and most efficient way, while enriching their user experience. How often have you wished that developing such applications could be uncomplicated and straightforward? This book will show you that it's possible, and teaches you how to do it, using Oracle Application Express (APEX).

    With this practical guide to APEX, you'll learn how to easily develop data-centric web applications for the Oracle environment. The book covers the development cycle of an APEX application, reviewing the major APEX principles and building blocks chapter by chapter. It starts with the basic skills you need to get going when developing with APEX. Later, you will learn advanced issues, such as how to build tailor-made forms and reports, using APEX APIs, AJAX, and so on. It not only deals with the "How" but also with the "Why", and before long you will be able to understand APEX concepts, and use them to expand and enhance the built-in features, wizards, and tools.

    The book starts with the design phase, including building the necessary database objects infrastructure; continues with ways to implement the application logic (on the server side) and the User Interface (on the client side), whilst showing you how to enhance your applications' features and functionality according to your specific needs; and it ends with application deployment.

    The book emphasizes and clearly documents areas such as Globalization, Localization, and developing multi-lingual applications, and includes a special discussion about Right-To-Left (RTL) support for APEX applications, documented here for the first time.

    Throughout the book, there are many screenshots and snippets of code, taken from working APEX applications. The book is accompanied by demo APEX applications that you can download and install in your APEX environment, thoroughly analyze, and learn from as you read the book.

    Style and approach

    This book is a practical guide that not only shows you how to do things, but also makes you understand how things really work, so you'll be able to develop your own applications. It uses many screenshots, examples, and real-time "APEX code", some of which is documented for the first time.

    Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

    Table of Contents

    1. Oracle Application Express 3.2
      1. Table of Contents
      2. Oracle Application Express 3.2
      3. Credits
      4. About the Authors
      5. About the Reviewers
      6. Preface
        1. What is the aim of the book
        2. Who this book is for
        3. What this book covers
        4. Standards and assumptions
        5. Conventions
        6. Reader feedback
        7. Customer support
          1. Errata
          2. Piracy
          3. Questions
      7. 1. An Introduction to APEX
        1. Web-based
        2. Native Web based
        3. Data Centric
        4. A declarative development tool
        5. RAD tool
          1. Application Builder
          2. SQL Workshop
          3. Utilities
        6. Globalization, localization, and NLS
        7. APEX architecture
        8. Summary
      8. 2. What we need to know to effectively use APEX
        1. SQL and PL/SQL
        2. HTML and CSS
        3. JavaScript
        4. HTML
          1. The DOM (Document Object Model)
          2. DOM walking
          3. DOM methods
          4. DOM events
          5. The APEX context
        5. CSS
          1. The cascading effect
          2. The style sheets
            1. CSS properties
            2. CSS selectors
              1. HTML tags selectors:
              2. Pseudo-class selectors:
              3. HTML ID selectors:
              4. Class selectors
                1. Compound (nested) class selectors:
              5. Contextual selectors:
          3. The !important keyword
          4. The APEX angle
            1. Where to store our external CSS file?
            2. How to load our CSS code?
            3. Globalization and NLS
        6. JavaScript
          1. JavaScript features
            1. Object-Oriented
            2. Case sensitive
            3. JavaScript variables
            4. JavaScript arrays
            5. JavaScript operators
            6. Blocks of code
              1. Conditional blocks of code:
              2. Repetitive (loop) blocks of code:
            7. JavaScript functions
          2. The APEX angle
            1. Where to store our external JavaScript file?
            2. How to load our external JavaScript file?
            3. Globalization and NLS
            4. PL/SQL and JavaScript (advanced)
            5. JavaScript and server-side resources (advanced)
            6. The APEX JavaScript API
              1. $x(pItemId)
              2. $v(pItemId)
              3. $s(pItemId, pValue)
              4. $x_UpTill(pItemId, tagName, className)
              5. $x_Show(pItemId) , $x_Hide(pItemId)
              6. redirect (location)
        7. Summary
      9. 3. APEX Basic Concepts
        1. Session state
          1. Session state firing points
          2. Session state and the application page life cycle
            1. Session state and the page rendering phase
              1. Using computations in the page rendering phase
              2. Using processes in the page rendering phase
              3. Special session state processes
            2. Session state and the page processing phase
              1. Computations and processes in the page processing phase
          3. Manually saving to session state
            1. Using the APEX_UTIL.SET_SESSION_STATE API procedure
            2. Session state and AJAX
            3. Using the f?p URL notation
          4. Referencing persistence session state
            1. Session state and stored procedures
              1. Using the v() and nv() functions wisely
          5. Session state scope and persistence
          6. Reviewing session state from the application builder
        2. Substitution strings
          1. APEX engine built-in substitution strings
            1. Substitution strings that contain data
            2. Substitution strings that contain HTML code
          2. Application substitution strings
            1. Application or page items
          3. Referencing substitution strings
            1. Using the #ITEM# notation
            2. Using the &ITEM. notation
            3. Referencing substitution strings in SQL and PL/SQL code
              1. The bind variable notation
              2. The APEX built-in v() and nv() functions
        3. Shortcuts
          1. Defining a shortcut
            1. The name field
            2. The type field
            3. The shortcut field
          2. Shortcuts availability
        4. Themes and templates
          1. Themes
          2. Templates
            1. Page templates
            2. Region templates
            3. Reports templates
            4. Breadcrumbs templates
            5. List templates
            6. Calendar templates
            7. Label templates
            8. Button templates
            9. Popup List Of Values template
          3. Templates and the APEX upgrade process
          4. Theme, templates, and good practice
        5. The f?p URL notation
          1. The p segments
            1. 1—App
            2. 2—Page
            3. 3—Session
            4. 4—Request
            5. 5—Debug
            6. 6—CC (Clear Cache)
            7. 7—itemName
            8. 8 itemValue
            9. 9—PR (Printer friendly)
          2. Item values including the colon character
        6. APEX multi-lingual support
          1. The APEX built-in translation mechanism
            1. Single language applications
            2. Single application with Multi-lingual user interface
          2. National Language Support (NLS) in this book
        7. Summary
      10. 4. The Application Builder Basic Concepts and Building Blocks
        1. The APEX Workspace
        2. Start working with APEX
          1. Logging in to the APEX IDE
        3. The APEX IDE home page
        4. The APEX Application Builder
          1. The Application Builder home page
            1. The Import button
            2. The Create button
          2. The Application IDE home page
            1. The Pull Down menu section
            2. The application pages section
              1. The detailed list of application pages
              2. The Download link
        5. The Page component
          1. The Page Rendering column
            1. The Hide/Show icon bar
          2. The Page Processing column
            1. The Hide/Show icon bar
          3. The Shared Components column
            1. The Hide/Show icon bar
          4. The Action Bar
          5. Creating an application page
          6. Editing the Page Definition page
          7. The Page section
          8. A page region
            1. Creating a page region
            2. Editing a page region
              1. Region identification
              2. Caching
        6. Summary
      11. 5. APEX Items
        1. Naming conventions and rules
          1. Oracle Identifiers naming rules
          2. Case sensitive APEX item names
        2. Application items
          1. Application items and security issues
          2. Referencing application items
            1. Application items and JavaScript
        3. Page items
          1. The Name section
            1. The Name field
            2. The Display As field
          2. The Displayed section
            1. The Sequence field
            2. The Region field
            3. The layout fields
              1. The Drag and drop wizard
          3. The Label section
            1. The Label field
            2. The Horizontal / Vertical Alignment field
            3. The Template field
            4. The HTML Table Cell Attributes field
          4. The Element section
            1. The item dimension fields
            2. The HTML Form Element Attributes field
            3. The Form Element Option Attributes field
            4. The Pre/Post Element Text fields
          5. The Source section
            1. The Source Used field
              1. Only when current value in session state is null
              2. Always, replacing any existing value in session state
            2. The Source Type field
            3. Maintain session state
            4. Source value or expression
            5. Post Calculation Computation
            6. Format Mask
          6. The Default section
          7. The List of Values section
            1. Static LOV
            2. Dynamic LOV
            3. Defines LOV
              1. LOV related wizards
          8. The Security section
          9. The Conditions section
            1. The Condition Type field
            2. The Expression 1 / Expression 2 fields
          10. The Read Only section
          11. The Help text section
          12. The Configuration section
          13. The Comments section
        4. APEX pre-defined item types
          1. Text based items
          2. Multi-option based items
          3. Special functionality items
          4. Creating APEX items programmatically
        5. Summary
      12. 6. APEX Buttons
        1. Button styles
          1. HTML Button
          2. Image based button
          3. Template Driven button
        2. Button positioning
        3. Create new button(s)
          1. Button position
          2. Create a button in a region position
            1. Button attributes
            2. Image attributes or template (not for HTML)
            3. Display properties
              1. Position
              2. Sequence
            4. Branching (optional)
            5. Conditional display
          3. Create a button displayed among this region's items
        4. Edit a button
        5. The REQUEST feature
          1. The REQUEST scope
          2. Referencing REQUEST
          3. Condition by REQUEST
        6. Using JavaScript with "among this region's items" buttons
        7. Re-visit the Buttons section
        8. Summary
      13. 7. APEX Computations
        1. Create a page level computation
          1. Compute item
          2. Sequence
          3. Computation point
            1. Page Rendering computation points
            2. Page Processing computation point
          4. Computation type
          5. Computation
          6. Condition
        2. Create an application level computation
          1. Computation item
          2. Frequency
        3. Edit computations
        4. Computations and Session State
        5. Summary
      14. 8. APEX Validations
        1. Data validation
        2. How APEX validation works?
        3. Creating a new validation
          1. Validation level
            1. Create multiple not null validations
          2. Item
          3. Validation method
            1. SQL
              1. Exists
              2. Not Exists
              3. SQL Expression
            2. PL/SQL
              1. PL/SQL Expression
              2. PL/SQL Error
              3. Function Returning Boolean
              4. Function Returning Error Text
                1. Multi-lingual support for error messages
            3. Item Not Null
            4. Item string comparison
              1. Item specified is a valid date
            5. Regular Expression
          4. Sequence and Name
            1. Sequence and Validation Name
            2. Error Display Location
              1. On Error Page
              2. Inline
          5. Validation
          6. Conditions
          7. Page level validation
        4. Edit validations
        5. Client-side validation
          1. Implementing client-side validation
          2. Client-side versus server-side validations
        6. Summary
      15. 9. APEX Processes
        1. Application Processes
          1. Creating a new Application Process
            1. Name
            2. Sequence
            3. Point
            4. Source
            5. Error message
            6. Conditionality
          2. Edit Application Processes
          3. Localization and Application Processes
        2. Page level processes
          1. Creating a new page level process
            1. Process Type
            2. PL/SQL
            3. Reset Pagination
            4. On Demand
            5. Session State
            6. Data manipulation
              1. Automatic Row Fetch
              2. Automatic Row Processing (DML)
              3. Multi Row Update, Multi Row Delete, and Add rows to tabular form
            7. Web Services
            8. Form Pagination
            9. Close pop-up window
          2. Edit page level process
            1. Source: Automatic Row Processing (DML)
        3. On Demand processes
        4. Summary
      16. 10. APEX Branches
        1. Application flow
        2. Creating a new branch
          1. Branch point
          2. Branch type
            1. Branch to Function Returning a Page
            2. Branch to Function Returning a URL
            3. Branch to PL/SQL procedure
            4. Branch to page
            5. Branch to page accept processing (not common)
            6. Branch to Page Identified by Item (Use item name)
            7. Branch to page or URL
              1. Save state before branching
              2. Branches URL and JavaScript
            8. Branch to URL identified by item (Use item name)
          3. Sequence and branch conditioning
        3. Edit branch
        4. Other ways to control the application flow
          1. Branch with Buttons
          2. Branch with PL/SQL
          3. Branch with JavaScript
          4. Branch with an item
          5. Navigational aids
        5. Summary
      17. 11. APEX SQL Workshop
        1. Navigating around the SQL workshop
        2. Object Browser
          1. Exploring the database with the Object Browser
          2. Creating new database objects
            1. UI defaults
          3. Creating a package
        3. SQL Commands
          1. The SQL Commands code area
          2. The SQL Commands results area (Display Pane)
        4. SQL Scripts
        5. Query Builder
          1. The Query Builder working area (Design Pane)
          2. The Query Builder results area (Output Pane)
        6. Summary
      18. 12. APEX Forms
        1. Sources for creating a form
        2. Creating a new form
          1. The form primary key
          2. The form items
          3. The form DML options
          4. The form branches
        3. A new form has been created
          1. The Page Rendering phase
            1. The items section
            2. The Page Rendering Processes section
          2. The Page Processing phase
            1. The Validations section
            2. The Page Processing Processes section
            3. The Branches section
        4. Manually creating an APEX form
        5. Summary
      19. 13. APEX Reports
        1. Report regions
        2. Creating a simple report using a wizard
          1. Start the report region wizard
          2. Region type
          3. Report implementation
          4. Display attributes
          5. SQL source
            1. Query Builder
          6. Report attributes
          7. Conditional display
          8. Wizard completion
        3. Modifying a report manually
          1. Editing a Region Definition
            1. The identification section
            2. The user interface section
            3. The source section
            4. The caching section
            5. The header and footer section
          2. Editing Report Attributes
            1. The column attributes section
            2. The layout and pagination section
            3. The messages section
            4. The report export section
            5. The break formatting section
            6. The external processing section
          3. Editing Column attributes
            1. The column definition section
            2. The column formatting section
            3. The tabular form element section
            4. The column link section
            5. Conditional display
          4. Editing print attributes
            1. The printing section
            2. The page attributes section
            3. The page header section
            4. The column heading section
            5. The report columns section
            6. The page footer section
            7. Enabling PDF printing
          5. Building a custom report row layout template
          6. Building a parameterized report
        4. Charts
        5. Summary
      20. 14. Tabular Forms
        1. What is a Tabular Form?
        2. Using a wizard to create a Tabular Form
          1. Start the Report Region Wizard
          2. Region type
          3. Form implementation
          4. Identify Table/View Owner
          5. Identify Table/View Name
          6. Identify columns to display
          7. Identify Primary Key
          8. Primary key source
          9. Updateable columns
          10. Page and region attributes
          11. Button labels
          12. Branching
          13. Confirmation
          14. Wizard completion
          15. Show me the Tabular Form
          16. What does the Tabular Form wizard add to my page?
            1. Advanced note on the Update process
          17. How does the Tabular Form wizard organize the data on a page?
            1. The client side
            2. The server side
          18. Report regions revisited
          19. Validating the Tabular Form
            1. Enhancing Validation Errors Messages
              1. Changing the default error message phrase
              2. Add row number column
              3. Using Page Error for the Validation error message(s)
              4. Using JavaScript and AJAX
        3. Manually building a Tabular Form
          1. Displaying the Tabular Form
            1. APEX_ITEM API
            2. Rendering the Tabular Form
          2. Referencing and validating Tabular Form items
            1. Using checkboxes
          3. DML on the Tabular Form
            1. Delete
            2. Update
            3. Insert
        4. Summary
      21. 15. Calendars
        1. Calendar region
        2. Using a wizard to create a calendar
          1. Start the calendar region wizard
          2. Region type
          3. Calendar implementation
          4. Region attributes
          5. Calendar source
          6. Define columns
          7. Viewing the calendar
        3. Modifying a calendar manually
          1. Region Definition
            1. Region Source
          2. Calendar Attributes
            1. The Calendar Display section
            2. The Display Attributes section
            3. The Column Link section
            4. The Day Link section
        4. Summary
      22. 16. Interactive Reports
        1. Interactive Report Regions
          1. Select Columns
          2. Filter
          3. Sort
          4. Control break
          5. Highlight
          6. Compute
          7. Aggregate
          8. Chart
          9. Flashback
          10. Save report
          11. Reset
          12. Download
        2. Converting an Existing Report Region
        3. Create an Interactive Report using a wizard
          1. Start the Interactive Report Region Wizard
          2. Region Type
          3. Report Implementation
          4. Display attributes
          5. Source
          6. Conditional Display
          7. Wizard completion
        4. Manually modifying an Interactive Report
          1. Report Attributes
            1. Column Attributes
            2. Column Groups
            3. Default Report Settings
            4. Pagination
            5. Search Bar
            6. Download
            7. Link Column
            8. Advanced Attributes
            9. Column attributes
              1. Column Definition
              2. List of Values
              3. Column Link
        5. Linking to Interactive Reports
        6. Summary
      23. 17. AJAX with APEX
        1. The AJAX technology
          1. The XMLHttpRequest object
          2. Communication
          3. Data format
        2. AJAX implementation in APEX
          1. AJAX support on the client side
          2. The htmldb_Get object
            1. 1—obj
            2. 2—flow
            3. 3—req
            4. 4—page
            5. 5—instance
            6. 6—proc
            7. 7—queryString
            8. Code examples
          3. The htmldb_Get methods
            1. .Add(name,val)
            2. .AddParam(name,val)
            3. General remarks
            4. .get(mode, startTag, endTag)
              1. The mode parameter
              2. The startTag and endTag parameters
              3. Code examples
              4. Restrictions with AJAX pulling content
                1. Pulling report with pagination
            5. .GetAsync(pVar)
              1. The pVar function
          4. Namespace for the APEX AJAX framework
          5. AJAX support on the server side
            1. Application on-demand PL/SQL process
            2. Stored (packaged) procedure
          6. Handling errors in the AJAX process
            1. Debugging a failed AJAX process
        3. Examples of using AJAX in APEX
          1. Multiple calendars on a single application page
            1. The calendar main page (page xx)
              1. The 'Previous/Next Month' region
              2. The 'Main Calendar' region
            2. The small calendars page (page yy)
          2. Checkbox persistence in Tabular Forms (Reports)
            1. Report on CUSTOMERS
              1. The report SQL query
              2. The report headers
            2. The AJAX client-side JavaScript functions
              1. The updateCB() JavaScript function
              2. The toggleAllCB() JavaScript function
              3. The header_CB_Status() JavaScript function
            3. The AJAX server-side processes
              1. update_CB
              2. updateCB_all
        4. Summary
      24. 18. Globalization and Localization With APEX Applications
        1. A brief introduction to Globalization and Localization
          1. Globalization
          2. Localization
        2. Native IDE support of multiple languages
          1. Loading another language into APEX IDE
          2. Unloading the APEX IDE translated language
          3. Loading another language into APEX Runtime Environment
        3. Multi-language support
          1. How do we start Globalization support?
            1. Setting the APEX application language
            2. Date format
              1. Using the APEX Date Picker
          2. Adding or editing Globalization
          3. Load Data—Localization
          4. Translating Text Messages
            1. The Text Messages translation wizard
            2. Manage the Text Messages repository
            3. Using APEX Shortcut with Text Messages
          5. Dynamic Translations
            1. Using the Dynamic Translations repository
          6. Using the APEX_LANG APIs
            1. APEX_LANG.MESSAGE
            2. APEX_LANG.LANG
        4. Multi-lingual applications
          1. The translation mechanism home page
            1. 1—Application Language Mapping
            2. 2—Seed and export
            3. 3—Translating the text
            4. 4—Import and publish the translation
            5. Editing the Translatable Text repository
          2. Running translated applications
          3. Deploying translated applications
        5. Summary
      25. 19. Right-To-Left Support in APEX
        1. Why we need special Right-To-Left support
        2. Basic Right-To-Left scenarios
          1. Right-To-Left as a single language
          2. Right-To-Left as a translation language
        3. APEX templates with Right-To-Left support
          1. Page templates
            1. The Header section
              1. Right-To-Left as a single language
              2. Right-To-Left as a translation language
            2. The Body and Footer sections
            3. Tab attributes sections
          2. Button templates
          3. Popup List of Values Template
          4. All the other template types
        4. The APEX Shuttle item
        5. Labels and input fields alignment
        6. Date and time
        7. Summary
      26. 20. Deploying APEX Applications
        1. What do we need to deploy?
        2. Supporting Objects
          1. Messages
          2. Prerequisites
          3. Substitutions
          4. Build Options
          5. Validations
            1. Create/Update a Validation
          6. Install
            1. Create Script
            2. Script Attributes
            3. Define Script
            4. Create Scripts to Install Files
          7. Upgrade
          8. Deinstallation
          9. Export
        3. Exporting an Application
        4. Exporting a page
        5. Exporting components
          1. Components
          2. Components by Page
          3. Application Attributes
          4. Build Option Status
          5. Export Components
        6. Importing an application
          1. Start the Import Wizard
          2. Specify File
          3. File Import Confirmation
          4. Install
          5. Supporting Objects installation
        7. Command line export utility
        8. Summary
      27. 21. The APEX Runtime Environment
        1. What is the APEX Runtime Environment?
        2. Setting up a Runtime Environment
        3. Managing the APEX Runtime Environment
          1. Installing applications
          3. Viewing APEX reports
          4. Oracle SQL Developer
        4. Summary
      28. 22. Security
        1. APEX security features overview
        2. Authentication Schemes
          1. Adding an Authentication Scheme
            1. Creation method
            2. Selecting a pre-built Authentication Scheme
            3. Adding a login page
            4. Specifying LDAP settings
            5. Authentication Scheme name
          2. Changing the current Authentication Scheme
          3. Custom Authentication Scheme
          4. Authentication reports
        3. Authorization Schemes
          1. Create an Authorization Scheme
            1. Creation method
            2. Authorization Scheme details
          2. Assigning Authorization Scheme to pages, regions, and items
          3. Resetting Authorization Scheme results
          4. Authorization Reports
        4. Session state protection
        5. Security Attributes
          1. Authentication
          2. Authorization
          3. Database Schema
          4. Session Timeout
          5. Session State Protection
          6. Virtual Private Database
        6. Summary
      29. 23. Application Conversion
        1. APEX application conversion
        2. Planning and understanding the application
        3. APEX Application Migrations
        4. Creating an APEX workspace
        5. Converting Microsoft Access applications
          1. Exporting Microsoft Access metadata
          2. Migrating the Access database to Oracle
            1. Creating a repository
            2. Capturing Microsoft Access exported XML
            3. Converting to an Oracle Model
            4. Generating schema
            5. Creating an Oracle database
          3. Creating a Migration Project
            1. The Migration Project page
          4. Generating the application
            1. Select Application Objects
              1. Page Definition
            2. User Interface
            3. Confirmation
        6. Converting Oracle Forms applications
          1. Converting Oracle Forms to XML
          2. Database
          3. APEX Migration Project
          4. Reviewing and editing application metadata
            1. Annotations
            2. Including objects in conversion
          5. Generating the application
            1. Application name
            2. Create Pages
              1. Page Definition
            3. User Interface
            4. Confirmation
        7. What's left to do?
        8. Summary
      30. 24. APEX Best Practices
        1. Don't re-invent the wheel
          1. Be innovative when necessary
        2. Learn the APEX IDE
          1. The Drag and Drop Layout wizard
          2. The Action Bar
          3. The Page Definition view options
        3. Setting up workspaces
        4. Application ID
        5. Page numbering and page groups
        6. Use Oracle naming conventions
        7. Use bind variables
        8. Don't hardcode, use Substitution Strings
        9. Use PL/SQL packages
          1. Protect your business logic secrets
        10. Re-useable code
          1. Shared Components
          2. Page Zero
          3. Pre-defined and built-in resources
          4. User Interface Defaults
        11. Never change the provided APEX resources
          1. Themes and Templates
          2. JavaScript and CSS
        12. Never trust the end user
          1. Client-side validation
          2. Don't rely on database constraints
        13. Create your own restore point
        14. Multi-user environment
        15. Multi-lingual environment
        16. Team development
          1. Lock your pages
          2. Version control
        17. Document development standards
        18. Thou shall enter comments
        19. APEX views (APEX dictionary)
        20. APEX Application Reports
        21. APEX Runtime-only version
        22. Backup, backup, and more backup
        23. Summary
      31. A. APEX Installation, Upgrade, and Configuration Tips
        1. Obtaining APEX
        2. Reading the relevant documentation
        3. Back up your database and APEX applications
        4. Use AL32UTF8 in your DAD
        5. PL/SQL Web Toolkit
        6. EPG—Embbeded PL/SQL Gateway
          1. Enabling FTP on EPG
          2. Enabling remote access to EPG
          3. EPG versus OHS
        7. Utilizing static files caching
        8. Obfuscate your DAD file
        9. Upgrading an APEX Instance
          1. Copy the new images directory
          2. Themes and Templates in the Upgrade process
        10. Summary
      32. Index