Sumário Itens Encontrados: 282CHAPTER 1 Development Best Practices 1CHAPTER 2 Migrating to APEX from Desktop Systems 25CHAPTER 3 Authentication and User Management 65CHAPTER 4 Conditions and Authorization Schemes 119CHAPTER 5 Data Security 153CHAPTER 6 Navigation and Layout 203CHAPTER 7 Reports and Charts 247CHAPTER 8 Ajax and JavaScript 301CHAPTER 9 File Storage 331CHAPTER 10 Reporting and Printing 363CHAPTER 11 Themes and Templates. 401CHAPTER 12 Localization Issues. 445CHAPTER 13 LDAP and Single Sign-On 477CHAPTER 14 Performance and Scalability 553CHAPTER 15 Production Issues 593CHAPTER 16 APEX Dictionary. 641INDEX 683CHAPTER 1 Development Best Practices 1APEX Installation Decisions. 2Application Development Considerations 2Users and Administrators. 2Workspaces and Schemas 3Application Deployment 8Application Portability and Code Reuse. 13Performance Considerations. 20Bind Variables 20Report Pagination Style 22Error and Exception Handling 22Packaged Code 22Summary 24CHAPTER 2 Migrating to APEX from Desktop Systems 25Excel Migration 26Creating a New Application Based on a Spreadsheet. 27Running the New Application 30Customizing the Application 34Exporting Data to a Spreadsheet 37Access Migration 39Using the Access Export Option 40Using the ODBC Database Export Method 42Using Oracle Migration Workbench 48Migrating the Application. 56Migration from Other Systems 57Migrating from a System Using an Oracle Database 57Migrating from a System Using Another Database 57Migration with SQL Developer 58Connecting to a Migration Source 59Running the Migration Wizard 61Verifying the Migration 63Summary 64CHAPTER 3 Authentication and User Management 65Preconfigured Authentication Schemes 65Open Door Credentials. 67No Authentication 68Application Express Account Credentials 69Creating New Application Users 69Creating Groups. 70Controlling Authentication with Groups 71Maintaining Cookie Users Within Your Application 76Database Account Authentication 79Custom Authentication. 81Creating the User Repository. 82Creating a New Authentication Scheme 83Regarding Index Usage 88Hash Rather Than Crypt 92Implementing Locked User Accounts 97Automating User Registration 106Implementing Session Timeouts 115Summary 117CHAPTER 4 Conditions and Authorization Schemes 119Conditions 119Specifying Condition Types 119Using Conditions Appropriately. 141Authorization Schemes 144Creating an Authorization Scheme. 144Protecting Your Resources 147To Cache or Not to Cache 149Resetting the Caching 150Summary 151CHAPTER 5 Data Security 153URLs and Security 153Understanding the URL Syntax 153Manipulating the URL 156Session State Protection 163Enabling Session State Protection 164Configuring Session State Protection 165Virtual Private Database 171Implementing VPD. 172Using Contexts with VPD 180Using Advanced VPD Features 186VPD Best Practices 195Auditing 195Enabling Auditing 196Viewing Audit Data 197Summary 200Tabs 203Understanding Tab States: Current and Noncurrent 205Using Standard Tabs. 205Using Parent Tabs 208Navigation Bars. 212Accessing Navigation Bar Entries. 212Creating Navigation Bar Entries 214Performing an Action on the Current Page 216Breadcrumbs 218Accessing Breadcrumb Entries. 218Using Dynamic Breadcrumb Entries 220Displaying Breadcrumbs 221Lists. 223Accessing List Entries 223Creating a Menu Using a List 226Tracking Clicks on List Entries 229Using User-Defined Attributes for List Entries 230Trees. 231Creating a Table for the Tree Entries 232Creating the Tree Component 233Enabling and Disabling Tree Entries 236Page Zero. 237Creating Page Zero 237Adding Regions to Page Zero 239Layout 241Positioning Regions. 241Positioning Page Items. 244Drag-and-Drop Positioning 244Summary 245CHAPTER 7 Reports and Charts 247Reports 247Report Headers 251Named Columns vs. Generic Columns 255Report Pagination 265Break Formatting. 269Column Formatting 272Columns As Links 276Charts 277Chart Query Types. 278HTML Charts 279SVG Charts 285Flash Charts 292Generic Charting 296Summary 300Implementing an Ajax Search. 301Setting Up the New Search Page 302Adding JavaScript 304Examining the Ajax Code 306Calling On Demand Processes 310Showing and Hiding Page Elements 313Showing and Hiding Fields 313Showing and Hiding Report Columns 315Disabling Page Items 319Setting the Value of Form Items 320Implementing Third-Party Ajax Libraries 322Using the YUI Library AutoComplete Control 322Using the YUI Library Tooltip Control 328Summary 329Database or File System? 331Using Standard Procedures 334Standard Upload Procedure. 334Standard Download Procedure 340Issues with the Standard Procedures 344Creating Custom Procedures 344Custom Upload Procedure 344Custom Download Procedure 347Security for Download Procedures. 353Image Caching 357Checking for Caching 358Adding Expiry Headers to the Custom Download Procedure 360Summary 361Choosing a Print Server 363Configuring APEX to Use a Print Server 365Printing Reports 367Enabling Printing for a Report 368Troubleshooting Print Problems 370Configuring Some Simple Print Options 371Creating Custom Report Layouts with BI Publisher. 374Installing the Client-Side Layout Tool 375Creating a New Report Layout 375Adding Graphics and Charts 388Generating Reports Through Apache FOP 389Installing Apache FOP. 389Creating a New Layout Using XSL-FO 390Adding Graphics to a Report 399Summary 400Themes. 401Associating a Theme with an Application 403Viewing Theme Details and Reports 404Performing Theme Tasks. 406Defining Theme Attributes. 407Switching Themes. 409Templates 409Removing Unused Templates 409Viewing Template Information 410Understanding Template Types and Classes 415Managing Template Files. 415Choosing a Template Type 420Template Subscriptions 438Setting Up a Theme Subscription System. 438Refreshing Subscriptions 442Tools for Working with Templates 442Summary 443CHAPTER 12 Localization Issues 445Localizing Application Builder. 445Choosing a Language. 446Installing a Language File 447Localizing Your Applications 451A Simple Currency Example 452User-Dependent Localization 454NLS Parameters. 459Fully Translating Your Applications 460Defining the Primary Application Language and DerivedFrom Language 461Creating Translated Versions of an Application 462Translating On the Fly 470Translating the Standard Messages 475Summary 476CHAPTER 13 LDAP and Single Sign-On 477LDAP Schema 477Benefits of Using LDAP 479Centralized User Repository 479Including Other Resources and Attributes. 480Centralized Authentication and Authorization. 481Off-Loading Repository Maintenance and Administration 482Authentication with LDAP 482Authenticating with Oracle Internet Directory 484Authenticating with Microsoft Active Directory 488Integrating with Legacy LDAP Schema. 491Using the LDAP Username Edit Function 492Using a Custom LDAP Authentication Function 494Working with Groups in OID 498Checking Group Membership 498Checking Nested Group Membership 501Checking Groups with MEMBER_OF and MEMBER_OF2. 508Turning Groups into Table Rows. 511Gaining Efficiency and Resiliency Through Materialized Views 515Working with Groups in Microsoft Active Directory 516Examining Active Directoryâs Group Structure 518Checking Group Membership 525Querying and Updating LDAP Attributes 529Querying LDAP Attributes in OID. 530Querying LDAP Attributes in Active Directory 533Modifying LDAP Attributes. 539Using Single Sign-On 542External Applications vs. Partner Applications 543External Application Configuration 543Partner Application Configuration. 546Summary 551CHAPTER 14 Performance and Scalability 553Diagnosing Performance Problems 553Viewing Application Reports 554Using Debug Mode 566Using SQL Tracing and TKProf 571Giving Timing Information to the Users 574Making Your Applications More Scalable 575Image Caching Revisited 576Page and Region Caching 576HTTP Compression 582Summary 592Managing URLs. 593Using a Location Redirect 593Using Frames. 594Using Apache mod_rewrite 596Proxying Requests. 599Backing Up Applications 602Manual Exports 602Easy Backups the Database Way 602Automated Backups 606As-Of Backups. 612Migrating Between Environments 614Upgrading Applications 614Cloning an Application 616Summary 639CHAPTER 16 APEX Dictionary 641Accessing the APEX Dictionary. 641Using the Application Builder Interface 641Using the apex_dictionary View 647Uses for the APEX Dictionary 651Quality Assurance 652Self-Documentation 660Automated Monitoring 669Using the API 674Adding Items to Your Pages 675Creating Text Fields Programmatically 677Generating Applications 680A Final Warning! 680Summary 681