Foreword |
|
xvi | |
About the Authors |
|
xxii | |
About the Technical Reviewers |
|
xxvi | |
Acknowledgments |
|
xxvii | |
|
Chapter 1 OHS, EPG, and APEX Listener Compared |
|
|
1 | (72) |
|
Why Should I Care About This Chapter? |
|
|
1 | (1) |
|
|
2 | (1) |
|
The Oracle HTTP Server (OHS) |
|
|
3 | (32) |
|
|
3 | (5) |
|
|
8 | (5) |
|
|
13 | (3) |
|
Configuring Virtual Hosts |
|
|
16 | (4) |
|
Prefork or Multi-Processing Module? |
|
|
20 | (2) |
|
|
22 | (8) |
|
|
30 | (5) |
|
|
35 | (15) |
|
Compression and Expiry Headers with the EPG |
|
|
38 | (1) |
|
Configuring SHARED_SERVERS |
|
|
39 | (3) |
|
Configuring EPG Parameters and DADS |
|
|
42 | (4) |
|
Debugging Issues with the EPG |
|
|
46 | (2) |
|
Configuring Virtual Hosts with the EPG |
|
|
48 | (2) |
|
|
50 | (21) |
|
|
51 | (9) |
|
Installing via Glassfish or Web Logic Server |
|
|
60 | (1) |
|
Compression with the APEX Listener |
|
|
61 | (3) |
|
Interesting APEX Listener Features |
|
|
64 | (7) |
|
|
71 | (2) |
|
Chapter 2 Oracle APEX 4.0 Charts Inside Out |
|
|
73 | (82) |
|
|
74 | (4) |
|
Using the HTML Charts Wizard |
|
|
74 | (1) |
|
|
75 | (1) |
|
Debugging and Performance |
|
|
75 | (1) |
|
|
76 | (1) |
|
Inline HTML Charts in Report |
|
|
76 | (2) |
|
|
78 | (20) |
|
|
78 | (1) |
|
|
79 | (5) |
|
|
84 | (1) |
|
Understanding the Chart Region |
|
|
85 | (4) |
|
Understanding the Chart Attributes |
|
|
89 | (9) |
|
Adding Multiple Series and Combined Charts |
|
|
98 | (5) |
|
Different Flash Chart Types |
|
|
103 | (2) |
|
|
105 | (6) |
|
|
111 | (5) |
|
Upgrading Oracle APEX 3.x Flash and SVG Charts |
|
|
116 | (2) |
|
Screen Reader Mode and Charts |
|
|
118 | (2) |
|
|
120 | (14) |
|
Customizing Charts by Using Custom XML |
|
|
121 | (3) |
|
Customizing Charts by Using Custom XML, Dynamic Actions, and JavaScript |
|
|
124 | (4) |
|
|
128 | (6) |
|
Drill-Down Charts, Dashboards, and Interactivity |
|
|
134 | (16) |
|
Simple Dashboard with Submit |
|
|
134 | (3) |
|
Simple Dashboard with JavaScript |
|
|
137 | (4) |
|
Complex Dashboard with Actions |
|
|
141 | (9) |
|
|
150 | (1) |
|
Search for a Specific Feature |
|
|
150 | (1) |
|
Invalid #H0ST# with Reverse Proxy or HTTPS |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
151 | (1) |
|
|
152 | (1) |
|
|
153 | (2) |
|
|
155 | (56) |
|
|
155 | (1) |
|
|
155 | (1) |
|
|
156 | (1) |
|
Tabular Forms Are Not Spreadsheets |
|
|
157 | (1) |
|
|
157 | (13) |
|
|
157 | (9) |
|
|
166 | (3) |
|
|
169 | (1) |
|
Future Features We'd Like to See |
|
|
170 | (1) |
|
Custom Coding in Tabular Forms |
|
|
170 | (29) |
|
Processing the Correct Rows |
|
|
170 | (4) |
|
|
174 | (4) |
|
|
178 | (7) |
|
Tabular Forms and Collections |
|
|
185 | (14) |
|
|
199 | (10) |
|
|
199 | (3) |
|
Autocomplete Returning Key Value |
|
|
202 | (6) |
|
|
208 | (1) |
|
|
209 | (2) |
|
Chapter 4 Team Development |
|
|
211 | (30) |
|
|
211 | (4) |
|
|
212 | (2) |
|
Extending Milestone Functionality |
|
|
214 | (1) |
|
|
215 | (5) |
|
|
215 | (4) |
|
Extending the Features Functionality |
|
|
219 | (1) |
|
|
220 | (7) |
|
|
220 | (7) |
|
Extending the To Do Functionality |
|
|
221 | |
|
|
227 | (2) |
|
|
229 | (11) |
|
|
229 | (1) |
|
|
230 | (2) |
|
Exporting Feedback to Development |
|
|
232 | (1) |
|
Importing Feedback into Development |
|
|
233 | (1) |
|
|
233 | (2) |
|
Exporting Response to Deployment |
|
|
235 | (1) |
|
Importing Response into Deployment |
|
|
235 | (1) |
|
Extending Feedback: Create a Report |
|
|
236 | (2) |
|
Extending Feedback: Feeding Back the Follow Up |
|
|
238 | (1) |
|
|
238 | (2) |
|
|
240 | (1) |
|
|
241 | (30) |
|
|
241 | (3) |
|
|
244 | (11) |
|
Application Language Derived From |
|
|
245 | (2) |
|
|
247 | (1) |
|
|
248 | (1) |
|
Translating an Application |
|
|
249 | (4) |
|
Manually Translate an Application |
|
|
253 | (2) |
|
Translating Data in the Database |
|
|
255 | (1) |
|
|
255 | (2) |
|
Translating APEX Internal Text |
|
|
257 | (3) |
|
Copying Translations to Other Environments |
|
|
260 | (1) |
|
Copying Only the Applications |
|
|
260 | (1) |
|
Copy the Primary Application and Publish |
|
|
260 | (1) |
|
Changing the Application ID |
|
|
261 | (1) |
|
|
261 | (4) |
|
|
262 | (1) |
|
|
262 | (1) |
|
Time Zones and Territories |
|
|
263 | (2) |
|
|
265 | (2) |
|
|
267 | (2) |
|
|
267 | (1) |
|
|
268 | (1) |
|
|
269 | (2) |
|
|
271 | (38) |
|
Principles of Code Instrumentation |
|
|
271 | (1) |
|
|
272 | (9) |
|
Page Processing and Rendering |
|
|
272 | (3) |
|
|
275 | (1) |
|
|
276 | (5) |
|
|
281 | (4) |
|
|
281 | (2) |
|
|
283 | (2) |
|
|
285 | (14) |
|
|
286 | (5) |
|
|
291 | (3) |
|
Instrumenting Your Own Code |
|
|
294 | (5) |
|
The Data Behind Debugging |
|
|
299 | (4) |
|
|
299 | (2) |
|
|
301 | (2) |
|
Using Debug Data for More Than Debugging |
|
|
303 | (1) |
|
Debugging Dynamic Actions |
|
|
303 | (3) |
|
What Debug Doesn't Capture |
|
|
306 | (1) |
|
|
306 | (1) |
|
|
306 | (1) |
|
|
307 | (1) |
|
|
307 | (2) |
|
Chapter 7 Dynamic Actions |
|
|
309 | (40) |
|
Custom JavaScript vs. Dynamic Actions |
|
|
309 | (6) |
|
|
310 | (1) |
|
Dynamic Action (New Method) |
|
|
311 | (4) |
|
Dynamic Actions in Detail |
|
|
315 | (14) |
|
|
318 | (1) |
|
|
318 | (4) |
|
|
322 | (1) |
|
|
323 | (6) |
|
Dynamic Actions in Action |
|
|
329 | (18) |
|
|
329 | (1) |
|
|
330 | (1) |
|
Create Department Employee Report |
|
|
331 | (2) |
|
Refresh Department Employees Report |
|
|
333 | (3) |
|
|
336 | (2) |
|
|
338 | (2) |
|
Emphasize Employee Change |
|
|
340 | (2) |
|
|
342 | (5) |
|
|
347 | (2) |
|
|
349 | (28) |
|
|
349 | (5) |
|
|
354 | (5) |
|
|
354 | (4) |
|
|
358 | (1) |
|
|
359 | (3) |
|
Denial of Service in an APEX Environment |
|
|
359 | (1) |
|
|
359 | (2) |
|
|
361 | (1) |
|
|
362 | (6) |
|
|
362 | (3) |
|
Custom Developed Applications vs. Commercial Off the Shelf Products |
|
|
365 | (1) |
|
SQL Injection in an APEX Environment |
|
|
366 | (2) |
|
|
368 | (3) |
|
|
371 | (4) |
|
|
375 | (2) |
|
Chapter 9 Lifecycle Management |
|
|
377 | (46) |
|
|
378 | (2) |
|
Working Concurrently on the Same Source Code |
|
|
378 | (1) |
|
Propagating All Required Changes for a New Release |
|
|
378 | (1) |
|
Parallel Development on Different Application Versions |
|
|
379 | (1) |
|
What Is the Current Status? |
|
|
379 | (1) |
|
Which Requirements Were Implemented in This Release? |
|
|
379 | (1) |
|
|
380 | (1) |
|
|
381 | (8) |
|
Version Numbering Scheme and the Overall Delivery Process |
|
|
381 | (1) |
|
Storing Files on the Application Server |
|
|
382 | (1) |
|
Requirements for Designing the Server Environments |
|
|
383 | (6) |
|
Project Management Related Aspects |
|
|
389 | (21) |
|
|
389 | (5) |
|
|
394 | (8) |
|
Naming Conventions for the File System |
|
|
402 | (8) |
|
|
410 | (12) |
|
|
411 | (3) |
|
|
414 | (2) |
|
|
416 | (2) |
|
Installation in the Test Environment |
|
|
418 | (1) |
|
|
419 | (1) |
|
Installation in the Production Environment |
|
|
420 | (2) |
|
|
422 | (1) |
|
Chapter 10 Working with APEX Collections |
|
|
423 | (18) |
|
When to Use APEX Collections |
|
|
423 | (1) |
|
Session State Management: A Quick Overview |
|
|
424 | (1) |
|
Session State Managed Tables |
|
|
424 | (1) |
|
Logically Walking Through a Web Shopping Cart Implementation |
|
|
424 | (1) |
|
|
424 | (5) |
|
Private Collections Objects Inside the APEX Engine |
|
|
425 | (2) |
|
Public Collections Objects Inside the APEX Engine |
|
|
427 | (2) |
|
Getting Started with Collections |
|
|
429 | (11) |
|
Initializing a Collection |
|
|
429 | (1) |
|
Adding and Removing Data from Collections |
|
|
430 | (3) |
|
Using the Collection Contents |
|
|
433 | (1) |
|
|
434 | (1) |
|
|
434 | (2) |
|
Creating a Tabular Form to Be Validated |
|
|
436 | (1) |
|
Collecting and Processing Submitted Data |
|
|
437 | (3) |
|
|
440 | (1) |
|
|
441 | (74) |
|
The APEX Plug-in Architecture |
|
|
441 | (12) |
|
Create/Edit Page for Plug-ins |
|
|
442 | (8) |
|
|
450 | (3) |
|
|
453 | (6) |
|
|
454 | (3) |
|
|
457 | (2) |
|
|
459 | (52) |
|
Developing a Process Plug-in |
|
|
459 | (9) |
|
Developing a Dynamic Action Plug-in |
|
|
468 | (8) |
|
Developing an Item Plug-in |
|
|
476 | (19) |
|
Developing a Region Plug-in |
|
|
495 | (16) |
|
Best Practices for Developing Plug-ins |
|
|
511 | (2) |
|
|
513 | (2) |
|
|
515 | (18) |
|
|
516 | (1) |
|
|
517 | (1) |
|
|
518 | (1) |
|
|
519 | (8) |
|
|
521 | (4) |
|
|
525 | (1) |
|
|
525 | (1) |
|
Running SQL and PL/SQL Contained Within an Application |
|
|
526 | (1) |
|
Workspaces and Multi-Tenancy |
|
|
526 | (1) |
|
Automatic Data Manipulation Language (DML) |
|
|
527 | (1) |
|
Application Extensibility |
|
|
528 | (2) |
|
Customizing User Interface Templates |
|
|
528 | (1) |
|
|
529 | (1) |
|
Using PL/SQL to Generate HTML |
|
|
529 | (1) |
|
|
530 | (1) |
|
Separation of Presentation and Logic |
|
|
530 | (1) |
|
|
531 | (2) |
|
Chapter 13 Advanced Interactive Reporting |
|
|
533 | (38) |
|
|
533 | (1) |
|
|
534 | (5) |
|
Report and Column Attributes |
|
|
535 | (2) |
|
|
537 | (2) |
|
|
539 | (9) |
|
|
545 | (1) |
|
|
546 | (2) |
|
Creating Default and Saved Reports |
|
|
548 | (2) |
|
|
550 | (2) |
|
Linking to Saved Interactive Reports |
|
|
552 | (2) |
|
|
554 | (3) |
|
|
554 | (3) |
|
|
557 | (1) |
|
|
557 | (10) |
|
|
560 | (5) |
|
|
565 | (1) |
|
|
566 | (1) |
|
|
567 | (1) |
|
|
568 | (1) |
|
|
569 | (2) |
Index |
|
571 | |