08 January, 2016

Beginning Oracle Application Express 5 is OUT!

After a few grueling months, late nights, long weekends and some cursing into my sleeve, it’s finally out.

Beginning Oracle Application Express 5 is the updated version of the book which not only includes an all new guided tour of the APEX 5 Page builder, but also takes you through developing an entire system from soup to nuts. 

My thanks to all the people at A-Press for being patient while the initial versions of APEX 5 were still being released. (FYI - Writing a book against beta and early adopter versions isn’t the smartest decision!). Also thanks to my technical reviewer Warren Capps. Again he was an invaluable resource and caught things that I would not have thought about.

I hope that this book helps not only guide those new to Oracle APEX, but also helps some of those that want to get fast tracked on APEX 5.0.

The book can be found at the APRESS Site or on Amazon.





Arluk said...

Hey Doug, loaded tables and tried to run the app from you 5 book. I keep getting this error message when I try to run the app: (HELP):

Technical Info (only visible for developers)
is_internal_error: true
ora_sqlcode: -1422
ora_sqlerrm: ORA-01422: exact fetch returns more than requested number of rows
component.id: 107713000000001
component.name: Home
ORA-06512: at "WAYNER.GET_STATUS", line 7
ORA-06512: at line 3
ORA-06512: at "SYS.DBMS_SYS_SQL", line 2107
ORA-06512: at "SYS.WWV_DBMS_SQL", line 1033
ORA-06512: at "APEX_050000.WWV_FLOW_DISP_PAGE_PLUGS", line 988
l_count NUMBER;
l_status_id NUMBER := get_status('OPEN');
IF :APP_USER != 'nobody' THEN
SELECT count(*)
INTO l_count
FROM tickets
WHERE assigned_to = :APP_USER
AND status_id = l_status_id;

htp.p('Welcome to the APEX Issue Tracking System, '
|| :APP_USER || ''
|| 'You have ' || l_count || ' Open tickets.
|| 'Select an option from the list');

htp.p('Welcome to the APEX Issue Tracking System'
|| 'Select an option from the list');


Arluk said...
This comment has been removed by a blog administrator.
Doug Gault said...


From the error messages it looks like the data may have been loaded incorrectly. It LOOKS like the culprit might be the statuses ticket_statuses table. It should have 3 rows in it and there should be no duplication. OPEN, PENDING and CLOSED.

Check that to make sure the correct number of rows is present.


Mobile Zone said...

Somehow i can't leave a comment here, comes out with an error, so trying again and hope it doesn't end up duplicate.

Are the examples of your book still valid for APEX 5.1?

I am trying it now and getting 2 errors on chapter 6.
1) page 201 - cannot convert BLOB to varchar2.
2) Contact Us page - is_internal_error: false
ora_sqlcode: -6550
ora_sqlerrm: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'CONTACT_US' ORA-06550: line 1, column 7: PL/SQL: Statement ignored

Page 201 eorr details:

Data type BLOB can not be converted to VARCHAR2!

Contact your application administrator.
Technical Info (only visible for developers)

is_internal_error: true
component.id: 5483360122726869
component.name: Manage Tickets

----- PL/SQL Call Stack -----
object line object
handle number name
2FB8DAF8 935 package body APEX_050100.WWV_FLOW_ERROR
2FB8DAF8 1003 package body APEX_050100.WWV_FLOW_ERROR
2FB8DAF8 1395 package body APEX_050100.WWV_FLOW_ERROR
2FA84E80 1105 package body APEX_050100.WWV_FLOW_PLUGIN_UTIL
2D795988 3437 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
2D795988 3867 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
2D795988 5409 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
2D795988 5744 package body APEX_050100.WWV_FLOW_INTERACTIVE_GRID
2FA88464 2923 package body APEX_050100.WWV_FLOW_REGION_NATIVE
31238C00 2041 package body APEX_050100.WWV_FLOW_PLUGIN
2FA9EC54 1396 package body APEX_050100.WWV_FLOW_DISP_PAGE_PLUGS
2FA9EC54 1875 package body APEX_050100.WWV_FLOW_DISP_PAGE_PLUGS
2FA9EC54 982 package body APEX_050100.WWV_FLOW_DISP_PAGE_PLUGS
2FBF73B8 2393 package body APEX_050100.WWV_FLOW_PAGE
2FBF73B8 2620 package body APEX_050100.WWV_FLOW_PAGE
3126C8EC 4922 package body APEX_050100.WWV_FLOW
31058F4C 173 procedure APEX_050100.F
3116ACF4 30 anonymous block

Thanks in advance,

Doug Gault said...

Mobile Zone:

First, let me say that APEX 5.1 has changed MOST of the wizards. They've done a lot of work to try to make the wizard steps more straight forward but that has changed the order in many of them.

Overall the ideas of what is in the 5.0 book should work, but you can't just "Follow the bouncing ball" like you could with 5.0.

WRT your error. Can you let me know which step in Chapter 6 you were on? (Page number in the book and step?)

The page numbers you're referencing aren't matching what's in the book. While that isn't necessarily a problem in itself, It's difficult for me to know what step you're on .


Mobile Zone said...

Sorry the page numbers i was referring to was the application pages. The details about my steps are below.

I completed chapter 6 example: "Master - Detail Report and Form" on page # 127. Where you created 3 application pages 200, 210 and 220. My wizard did not create Detail page 2 - 220. I understand the wizard has changed, so i just went ahead without creating page 220.

Page # 135, I saved all the changes except 2 that i couldn't find it or didn't work is listed below.

At this point, when i "RUN", page 200 works and on clicking to see the detail page 210, it throws that BLOB error.

(a. CSS-Style: font size - can't find that option, b. move status column after column Ticket_ID - it moves only in edit mode but does not change on the application page after i run it).

I tried to retrace my steps as much as i could remember.

Thanks and appreciate your time,

Doug Gault said...

Alright.. Now that I know where things are going wrong, I can give you an explanation:

The new Master Detail wizards have changed such that they now create an interactive grid instead of a detail report and a separate (third) page on which to edit the details. Interactive Grids don't seem to support file upload for individual records of the grid, and it is because of that fact you are getting the error.

In my view you have two choices:

1. Remove the BLOB column from the Interactive Grid and replace it with some sort of link of button that would call a Modal dailog that would allow you to upload an attachment.

2. Revert the Interactive Grid to a Classic Report. Then you would have to create the Details Form (Page 220) separately (you can use a wizard for this) and then manually link the details report on 210 to the edit form on 220.

Suffice to say that there is no "easy way" to get past this without having some knowledge already under your belt. It looks like enough has changed in the Master Detail wizard that the exercises in the book aren't really going to work without some serious massaging.

That's the challenge we face as authors when writing about a rapidly growing and morphing development platform - Your work is far to quickly rendered out of date.


Mobile Zone said...

Thank you so much for your quick reply.

Yes, i do agree with you about the challenges created by the fast changing platforms. Since i am currently just learning APEX, i think it makes more sense for me to go back to APEX 5.0 and follow your book and get to a level where i can make those changes suggestd by you.

Thanks once again for your time,