Did you already try to put an onload javascript event in the HTML body of your page in APEX?
You may want to do that to run some initial javascript when your page loads. For ex. in DG Tournament I use the onload event to enable Google Suggest.
In Oracle Application Express you put the onload event in the HTML Body Attribute section
If you would look in the source of your HTML page you would see something like:
<body onload="get_ApexEvangelists();">
However, when you try to put the above code as HTML Body Attribute, you may get the error "You may not declaratively set cursor focus if you specify an ONLOAD in this attribute." The complete message: You should always read the messages ;-) But I noticed (also with myself) that you check quickly your code to see what you did wrong. However it has nothing to do with your code...
You can fix this error by go to the Display Attributes of your Page and set the Cursor Focus to "Do not focus cursor" instead of that APEX puts the focus to the first item of the page.
People seeing this message by "Googling" the error, didn't read neither ;-)
I probably had this problem before, but today I came across the same error again...
For a tabular form your Primary Key Column can't be more than 22 characters long.
I wonder why the APEX development team didn't limit that length to 30 characters, as it is in the Oracle database?
To make it even more strange, for a "normal" form your primary key column can exceed the 22 characters limit!
I know the APEX development team is working hard to improve the tabular forms, so if I'm allowed to give a suggestion: please remove the 22 character limit ;-)
(this discussion is not about if it's a good idea to make your column name that big)
James Burke believes that if you stand still you'll die, so I finally took the time to finish this post (after 10 days)...
During the Oracle 11g webcast I took some notes and screenshots, which I posted below.
A big portion of this webcast was about "Innovation" and "Managing Information". Oracle wants to Innovate Faster (Oracle has 1500 developers working on the DB nowadays!) but they see some challenges:
Charles Philips stated only 3% of the world has been digitized. He thinks the biggest challenges for customers are the way to manage more and more complex data.
When you compare the innovations Oracle did during the last year, I'm glad I'm so Oracle minded ;-) Of course Oracle had to include the competition in the slide...
Where 10g was about "Grid", 11g is about "Scaling Grid". The next slide I find interesting too... When and why would customers upgrade their database?
The press release of the Oracle Database 11g you find here. More technical information about 11g you find on OTN. The whitepapers I like: Database 11g New Features and 11g Application Development Do we see Oracle Application Express - APEX into these? Of course ;-)
Oracle Application Express, Oracle’s declarative, browser-based, rapid application development tool for building database-centric applications, will be enhanced in the Oracle Database 11g release timeframe with
New, prepackaged applications for popular functions such as blogs, discussion forums, surveys, bug tracking, and storefront
Reporting with Oracle Business Intelligence Publisher integration
Scott Spadafore, Oracle ACE and one of the developers of APEX, especially in the security area, explained what happened when you click the logout link in your Oracle APEX application. (so for this post all credits go to him)
The built-in item LOGOUT_URL gives you access to the logout URL attribute of the current authentication scheme. In referencing it as &LOGOUT_URL. or v('LOGOUT_URL'), or as a bind variable, the resulting attribute will have had basic substitutions performed on it first, e.g., for &APP_ID. and &APP_SESSION., facilitating its typical use as the target of a Navigation Bar Entry.
The standard logout URL (before substitutions) looks like:
If you hover over this link in your application, you'll see that it's a full URL (host:port/pls/DAD/...) with substitutions completed and that the result of using the link is to execute the wwv_flow_custom_auth_std.logout procedure through modplsql.
Let's review the standard machinery: What does the logout procedure do?
Unsets your application's session cookie (actually sets it to '-1') and 2) redirects to the after-logout page.
How does it know what cookie to unset? ...The cookie name is also an attribute of the curent application's authentication scheme so it looks it up.
How does it know what the current application is since the logout procedure is not run in a "page request context"? ...The current application ID is a input parameter to the logout procedure (&p_this_flow=&APP_ID.).
How does it know what page to show after logout? ...That's the other input to the logout procedure (&p_next_flow_page_sess=&APP_ID:1 where the application and page to redirect to are both given).
But it looks like it goes to page 101 (login page) after logout. ...Yes, but the instructions were to redirect to page 1 after logout and if page 1 requires authentication, you have to login first. After login, you'll go to page 1.
How to create a custom logout procedure or call some DML during the logout operation?
A good way to do that is to change the logout URL in the authentication scheme to simply be a URL to a page in your application, say page 99:
f?p=&APP_ID.:99:&APP_SESSION.
On page 99 create a before-header process to call your DML procedure (or do the DML in the page process directly). Then create a second process on the page (also an on-load vs. an after-submit process) that does:
Apparently Oracle is releasing some new products...
First there was JDeveloper 10.1.3.3. See the list of changes here.
A few minutes ago John told me, the Oracle APEX development team released their patch for APEX 3.0. The patch set notes you find here, the download here.
I just got a message of Lewis Cunningham he posted his Podcost of ODTUG on his blog.
Listen good, maybe you'll here me ;-)
It was really fun doing my first podcast. Lewis is a great guy to talk to and a nice person to get interviewed by. That was definitely a highlight at ODTUG and something to be in the history books as the first real interview of the Apex Evangelists.
The podcast is a talk with 8 different people at ODTUG. The part I'm in, Lewis describes like this:
I'm currently waiting in Atlanta together with a lot of other ODTUG participants.
My overall impressions of Daytona Beach and the conference are positive.
Last year it was my first time in the States. At that time I didn't know what to expect and the whole experience was unbelievable. After that conference I went to other conferences in the States, like Collaborate and Open World and I think I'm getting partially used to it. Although the States are still "big" and impressive, but I suppose I already expect the most unbelievable things.
At every conference I learned something new, not only technical but also personal. Nevertheless, my biggest interest for doing theses conferences is networking. Putting some faces on the people you see on the internet or just talking to each other in real life.
My highlights (top 5) for this conference where:
Meeting Patrick Wolf in real life and hanging out together
Seeing Daytona Beach (the Nascar and the Ocean)
Giving my first presentation at ODTUG
Talking and having drinks with some of the Oracle APEX development team
Meet the other APEX fans and Oracle bloggers
Thank you ODTUG, Daytona and all you, nice people...
Unbelievable, but I didn't sleep well again! My mobile phone was switched off, no mosquitoes, I was tired and fell asleep almost immediately. But at 4h30 I got a cramp in my leg (convulsion in calf). It really hurt, it was such a heavy cramp I have never had before!
This morning (and even during the day and night) my leg was still hurting. I couldn't walk without pain... it still hurts, but what can I do about it?
I suppose it's due to the food, the air co and not having drunk enough.
The first session I followed with Managing Large Application Development Using Oracle Application Expressby David Peake. David explained his experience from the 4 years he worked at a big client in an APEX development project. How do you get the best results of your team and how do you structure your work, were one of the questions he tried to answer. I found it an interesting session (much better then the marketing stuff the previous day ;-))
The next session was about Oracle XE for internet Applications Generated by Designerby Marc de Oliveira. I'm not such a huge fan of Designer, maybe because I don't know it. But I think what he tried to do with Designer, generating web applications, he could have done in APEX in a lot less time. But again, I don't really know Designer, so maybe there was a purpose to do it with Designer.
The last session I followed was Application Express for the Designer Web Generator Expertby James Hudson. Basically what I saw in the previous session, James explained how to migrate from that to APEX. I found it interesting to see how, with his knowledge of Discoverer, he did his migration.
We got a last sandwich lunch and said everybody goodbye... Some last moment picture were taken. (from left to right Dimitri with: Steven Feuerstein, Karen Cannell, David Peake)
Now it's time to prepare for going home. Most of the people left today or will leave tomorrow.
The last night at Daytona Beach... Patrick and I went to a Steakhouse named Stonehood. We both had a nice steak (see picture). It was the perfect night to end the Daytona chapter...
After a bad night, due to mosquitoes and forgetting to switch my mobile phone off, the third day started...
The first session I followed was APEX Lessons from the Trenchesby Bill Holtzman. Bill explained the lessons he learned after creating his application for the National Air Traffic Controllers Association (NATCA). He used for ex. different linking mechanisms: Automated report Links (in APEX), Manual report link (in SQL) and links from Javascript. Another thing he learned was how to use checkboxes, which I think was useful to explain, as a lot of people have problems with it. Other areas he covered where creating an upload process and validating the file name (can't be more than 78 characters), Session State Protection and the use of htmldb_activity_log (or apex_activity_log). To conclude he believes that the APEX skill set is 60% PLSQL, 30% HTML and 10% Javascript.
My next session was Advanced Application Express Programming Techniquesby Michael Hichwa. The "father" of APEX explained his best practices and showed some sample (packaged) applications where it was used. The big topics where: database design, development guidelines and User Interfaces (user experience). His presentation was based on his experience and the Best Practice whitepaper published on OTN by Sergio Leunissen.
On the same time as previous two sessions, there were two other sessions. One from Patrick Cimolini about APEX Validation and Error Handling and another one of Peter Lorenzen about How to make your APEX application secure. It's a pity they were at the same time...
During lunch I did my first Podcast! Lewis Cunningham interviewed me about Oracle Application Express, the Apex Evangelists and our European APEX Training Days. I didn't hear the result yet, so I wonder what it will sounds like. I suppose you hear the ocean, as the interview was outside. Such a live interview is very special... we didn't prepare anything, so after the talk I thought: "oh I could have said this or I could have added that" ;-) Nevertheless, I was very honored Lewis asked me for that quick chat. Thanks Lewis!
My next session was Oracle Application Express 3.0, Introduction and New Featuresby David Peake. This was a more marketing kind of presentation about APEX and all the advantages of using it. Readers of this blog probably already know about this, so I won't go into more detail about this session. Only one thing... David mentioned and showed a screenshot of my application DG Tournament! Thank you David :-)
The first session in the afternoon was about creating an interface in APEX to organize Discoverer Workbooksby Jeff Hohman. Jeff showed his application, but on an APEX point of view it was a simple application. Basically what he did was creating a report and form which allowed to open Discoverer Workbooks with an url from APEX. If people are using Discoverer, this presentation can be useful. It explains how a Discoverer url looks like. Jeff also mentioned that this application gets maybe integrated with a next version of Discoverer...
Then it was my turn!APEX by Example: Shared Componentsby Dimitri Gielis. I'm not sure I should blog about my own session ;-) This presentation was the same as the one I did at Collaborate in Las Vegas. As I already knew, doing this presentation is a challenge, as it's a bit too much for a one hour presentation. 107 slides (ppt) and 4 live demo's in one hour! I made it, but I won't try it again in the future. ;-) My goal was to give an overview of all Shared Components and focus on some of them (demo), as I believed they aren't used/known that much. I think I achieved this goal, as even Patrick Wolf told me he had learned something new. I showed SSP, the Build Option, Shortcuts & Subscription and UI Defaults. Some people liked it very much as I got some nice feedback, but I'm pretty sure some others found it too much information and a too quickly change of "topic". But I'm glad I did it this way, as I believe my paper/presentation is ideally to get people thinking and putting them in the right direction of more advanced APEX skills.
Sidemark: I think the audience at ODTUG is different then the one at Collab. I believe there're only (or the vast majority) technical people (developers) at ODTUG, where at IOUG Collaborate you've more a mix. For one or another reason I felt that during the presentation.
The last session of the day was one of Patrick Cimolini about APEX and Project Management. I found it an interesting presentation to know how others start, develop and deliver an application. APEX is a Rapid Application Development Tool, but some people sometimes forget that you should treat it as just another development project. Even I must sometimes force myself not to start developing directly, but first make a project plan.
In the evening we went to Daytona USA to have an insight in the Nascar hype of Daytona. I found it really interesting and had a terrific time. I raced against Patrick, which was really fun and we also saw an iMAX movie of Nascar.
Here're some pictures I got from Patrick's camera...
Before beginning the second (and last day) of APEXPosed, there was the ODTUG Keynote.
Ted Farrell, VP Tools and Middleware gave an overview how he sees the Software Architecture in the New Era. Most of his talk was about Fusion and Java (ADF). I'm pretty sure some experts in this area will blog about it, so I won't go into a lot of detail. One thing however I found quiet nice, was his demo about some new things in JSF. He showed some drag-drop capabilities, some animation when something loaded (get data), in fact an improved Amazon, if you like. In one screen you could check out and do changes on the fly, which I think is more user friendly. Behind the scenes a lot of that is AJAX, which you could use in for ex. APEX too.
Lab: High Fidelity Reporting with PL/PDF
PL/PDF is quiet handy when you want to create some advanced reports from PLSQL. I definitely found it an interesting session. A few weeks ago I was looking into BI Publisher (the XML/XSL way), but PL/PDF can maybe do even more advanced reporting, although it's quiet different. PL/PDF is programming PLSQL to make your report, where in BIP you could also use Word templates for ex.
During lunch the Best Paper and Best Speaker award got delivered. The Best Paper went to Wilfred van der Dijl, where the Best Speaker award was for Maggie Tomkins.
In the afternoon Joel Kallman talking about Managing APEX, which I found really interesting. This session was the most advanced one and maybe some people don't really care what is happening or how you can manage an APEX instance. It all depends how far you would like to go with the product, but I think it's always nice to know how something you're using works.
The last session of the day was about APEX APIs. Raj got deeper into APEX_ITEM, APEX_COLLECTION, APEX_UTIL and APEX_MAIL. Something you could expect from an Advanced training session. On the hand of a tabular form he touched the most importing things in the APIs area.
In the evening there was the APEX SIG meeting. A bit the same as at Collaborate, but where before it was organized by IOUG, it now was an ODTUG session. In the evening I quickly went through my presentation and had a drink in the bar of the hotel with my other APEX friends. (Oh, and this time I'm not on the picture with the waitress, that honor is for David Peake ;-))
Tomorrow it's my turn to give a presentation... I hope I can learn the people something after a full 2-day APEX training.
... Oracle Disclaimer ... These screenshots are "pre-pre-alpha" and very preliminary screens of the final implementation. They are subject to change, maybe it never makes it to a release or it will work different. ...
In other words, Oracle doesn't engage or promise that it will be like that or that is will be ever available. But, I'm nevertheless really happy I can publish this "ultra, super cool" new feature/product or you name it. Thanks Mr. AJAX and Oracle!
I didn't sleep that bad tonight. In the morning I checked my mails and worked a bit. On the picture, taken in the morning, from left to right: Patrick Wolf, Kris Rice, Sue Harper, ODTUG board, David Peake, Dimitri Gielis, Flavio Casetta.)
Today APEXPosed started. You had to pay extra for these sessions, so it wasn't the regular ODTUG Kaleidoscope track.
The topics they covered with a bit of explanation and my view on things.
Breakfast
The time I arrived they just had to refill all sandwiches, so that was a bummer. I'll tell you tomorrow if it's good. Today I didn't have that much, some fruit and muesli.
APEX Keynote by Mike Hichwa
Mike started to talk about the history of APEX. Let's say before 2004, and the lessons they learned from it. Then they started to build APEX from scratch again with the first release in 2004 called HTMLDB 1.5, followed by 1.6 with the Themes quickly afterwards. The other highlights; in 2.0 you got the SQL Workshop and 2.1 was the integration with Oracle XE. 2.2 brought Packaged Applications and then you got APEX 3.0! The awesome stuff ;-) A lot of new feature, like for ex. MS Access Application Migration, Flash Charting, BI Publisher Reporting Integration, Improved Web Services, ...
Mike also showed his 10 most "cool" features of APEX.
Then we got to the really interesting stuff! APEX in the future. There will be first a patched version of APEX 3, called APEX 3.0.1 (foreseen for this month). This version will also be shipped with the Oracle Database 11g. As I blogged yesterday, the integration with SQL Developer will be enabled too. Mike demoed some cool things, like deploying an APEX application right from SQL Developer! As we already could see, you get some reports and more insights into the APEX dictionary too. This version will also probably work with Oracle XE... with maybe some installation guide.
So what will be in APEX 3.1?
This was absolutely fantastic! If you didn't already like APEX, you'll definitely like this version! What do you think of: Practical, Tactical, Easy, Database Centric, Declarative, Opportunistic, Super Fast, Browser Based... and Pull Down Report Columns? Mike demoed APEX Worksheet! Man!! You can't believe it! There's a lot of AJAX inside that! I was a bit too late to tape it, but I'll get some more screenshot from Mr. AJAX himself.
Video of new APEX Workspace
Lab: Hands-On Ajax and JavaScript by John Millinger
This session were some hands on on AJAX and Javascript.
First an overview of Javascript, then where you can find Javascript in APEX and exercises like Hide/Show an item and Check all check boxes.
Later we saw where AJAX is used in APEX and got some exercises on that as well, like for ex. auto population and dynamic reports.
It's always difficult to define "Advanced". I spoke with some people and they really liked it. Personally I already played with most of this. Nevertheless it was a nice exercise and overview again.
Lunch
We got some healthy food: a salad with some cheese and ham on. Some people didn't found it enough, but the dessert (some chocolate fudge pudding or cheese cake) was quiet heavy, so I didn't complain.
UI and Design by Scott Spendolini
Scott explained the difference in Themes and Templates. And then showed how you could make another theme in APEX. He build the Apple website theme in APEX and explained while he was doing that the different steps to build it, the pitfalls and the tools who can help you with it.
I believe this was a good session, especially if you didn't build a template yourself before. The experience and best practices Scott mentioned where also useful. I believe you learn the most from the experience of others.
Security by Raj Mattamal
The main topics Raj was discussing where: Security Balance, Create & Review Example Application, Declaratively Locking Example Application, Programmatic Measures, Deployment, Considerations and Other Considerations.
Raj pretty much mentioned every possibility you have in APEX to make your application more secure. In my session on Wednesday I'm also talking about Session State Protection, Authentication and Authorisation. He was talking about that too as also the use of bind variables and some other best/worst practices.
The "Cross-Site Scripting Attacks" demo I found really interesting. I didn't try that myself before. Putting some javascript in a text field on your form and then render the report... Give it a try yourself! Something to get afraid off ;-)
Ask the Experts - Open Forum
This session was Q&A with most of the APEX Development team and the other speakers of APEXPosed. David Peake took notes, so it might be possible he'll give some feedback on that. The questions were the normal ones, as I already blogged before when we did the IOUG, OOW or ODTUG Q&A of last year. Welcome Reception
The reception is always a nice place to meet others. I saw Mark Rittman, the AMIS guys, Peter Lorenzen and a lot of others I got to know of ODTUG of last year.
APEX Meetup
After the Welcome Reception we went to the bar to have another drink with only APEX lovers. There must have been around 30 people, which didn't make it easy. The larger the group, the more difficult it is to talk to everybody. Some pictures I took during the meetup.
Today (Sunday) I didn't do that much. As a lot of people arrived today and yesterday I came across some friends. I saw Lewis Cunningham with his family, Wilfred van der Deijl and the AMIS guys like Alex, Aino and Lucas.
Last night I stayed in the Comfort Inn, but to be honest, it wasn't that nice compared to some other hotels I stayed in before. The breakfast was included, but you could only have some limited donuts and a waffle.
Patrick and I also scheduled to meet today, which we did at 9h30 am. Almost all day we were together, heading between the beach, the pool and the surroundings of Daytona Beach.
Although Patrick and I already chatted a lot and exchanged mails, it's always different to meet somebody in real life. The picture on his blog isn't that clear ;-) I really liked being together and chatting about APEX and life.
At the late afternoon, something "special" happened. I got recognised while laying at the pool. A friendly young guy from Latvia (now living in the States) recognised me from my blog! I was pleasantly surprised. When Patrick told his name (as he was laying next to me at the pool) the guy was really happy.
In the evening we met Mike Hichwa in the bar and started to chat. I'm not sure I can give all details, but if you're an APEX developer, you should definitely start using SQL Developer. Something nice is coming up!
Afterwards we had some dinner with some "other guys".... On the picture from left to right around the table: Scott Spendolini, Patrick Wolf, Mike Hichwa, Raj Mattamal (he never wants to be on the picture), Kris Rice's wife and child, Kris Rice and myself. It was a lovely day and evening... tomorrow the real sessions will start.
As some of you couldn't make it, here some more pictures and a video!
Today (Saturday) I walked down the beach. The fresh air, the ocean, really nice. In Belgium we've a sea (the North Sea), but an ocean is nicer, bigger waves ;-) One thing however, the sun goes under in our sea... and that's not the case here in Daytona Beach. And on the Daytona Beach your car is allowed! The other picture shows the Daytona Beach street and what happens when you fall asleep! The video shows the ocean... nothing more, nothing less... but try to smell the air and get the feeling of being here ;-)
I walked to the impressive Hilton hotel where the seminar is going to be held. I wanted to register, but that's only possible from Sunday onwards. In the hotel I came across some other people, like for ex. Wilfred van der Deijl.
If you've never met Wilfred, you can recognise him on his length... I didn't have my camera with me, but I'm pretty sure in the next days we'll be on the same picture. You'll see the difference ;-)
We walked down the beach and talked about the development tools (JDeveloper, APEX, BPEL, ...) and life. Wilfred blogs a lot about his experience of their conversion from Forms to ADF. He's also in the panel who will discuss the differences in tools. Of course he's on the other side of the table compared to me! But he's a really nice guy ;-)
The rest of the day I headed between the pool, the beach and my laptop. As for food, I started with some famous American Onion Rings and a typical burger.
I'm going to sleep early tonight as I didn't sleep that well yesterday.
I finally arrived at Daytona Beach after 20h of travel time.
It was already late in the evening. After having walked a bit down the street, to stretch my legs after only have been sitting down, I went to bed.
I couldn't sleep that well. Around 5 o'clock I woke up again. John was online, so we had a quick chat.
I'm staying in the Plaza hotel only for one night because there were no more rooms for today. From Monday onwards I'm staying in the Hilton, where Kaleidoscope is taking place.
It's still early but I thought to take some first pics ;-) The early morning in Daytona Beach...
A picture from my balcony at 6:30 am: left the land view and on the right the ocean view.
I wonder what that "boll building" is on the land view?
If you're like me, waiting for some hours in Atlanta airport for the next flight to Daytona Beach, come and say hello! You find me at Gate 1B next to "Seattle's Best coffee", working on my laptop in a corner...
My flight from Brussels to Atlanta had some delay, but I didn't worry about that, as I had/have to wait for over 6 hours in Atlanta.
Nothing special happened during the flight. Food was fine compared to other air plains, hostesses where friendly...
But I read a nice article in Sky Magazine about "Blackberry addiction".
I must say the article sounded familiar. I also admit I'm addicted to mail, blog, internet, ... I'm not using a Blackberry, but a pda (HTC P3300). For ex. yesterday, I was at the Oracle Benelux OPN Days and between sessions I quickly connected with GPRS to read my mails. But it was not entirely my fault! During the OPN Days we needed to leave our mobile phones on, because they sent us messages with special announcements. They also created a site where you could search for other people and network with them. There was also an interactive session where you needed to vote on questions.
One of the questions was: "Where would you like the next OPN Days be held?" A) Belgium B) The Netherlands C) Luxemburg D) Seychelles
The last days were a rush... a lot of meetings, everybody coming at the same time and next to that trying to get the deadlines in some projects... My blog was a bit silent, but that will change in the coming days!
Today I'm leaving for Kaleidoscope 07 (ODTUG), held in Daytona Beach, US.
It's not that easy for me to go there. I'm flying over Atlanta where I need to wait for over 6 hours for the connecting flight to Daytona Beach, but it will be worth it.
Last year I really liked ODTUG. It was at that time also my first time in the States. I blogged every day and will try to do that again now.
I hope there's some free wireless in Atlanta, so I can finish some blog posts I started.
I updated the Apex Meetup website with the date. We'll meet on Monday during and after the Welcome Reception.
Passionate about bringing ideas to life with code.
Founder and CEO of United Codes and APEX R&D.
Loves the Oracle Database and Oracle Application Express (APEX).