Thursday, September 13, 2007

EATD: Day 3 - Presentations, Goodbye and Feedback

As we went out on Wednesday we started the last day a bit later then planned (as some people requested that). Probably we'll change our agenda in the future, but then keep to the predefined schedule.

I had the honor to start on the last day ;-) (see previous post about the diner and the wine, that's why this smiley). We planned three presentations and a longer Q&A at the end.

The first presentation was about the integration of APEX and BI Publisher. (I'll also give a short version of that presentation at OOW and UKOUG.)
In APEX 3.0 you get PDF printing out of the box (if you integrate it with FOP, Cocoon, BIP, ...).
I wanted to show how powerful and easy it is to create some nice looking pdf's. The slides went fine...
More than 25 successful demos, but then my pc abandoned me! Although the day before everything worked still fine, now my BIP Word plugin didn't popup. For my last presentation (see further) I installed some other (extra) XLIFF editors, which needed some JVM's (v1.6). Maybe the other JVM's broke my system or even more stupid, during the morning Windows updated itself with some patches (automated updates). A lesson I learned! For OOW I'll probably use some VM's (vmware images) so I'm guaranteed that something else will not break my system.

Till today I still find it a pity that my last demo didn't work straightaway like before, as it spoiled half the message I wanted to give.
Some people might now think the integration with BI Publisher is difficult, but it isn't. But it is true, if you really want to get the full potential of the integration of APEX and BI Publisher, you have to know both environments. BI Publisher can do a lot of advanced things, but knowing all these will take some time to learn.

During the break I reinstalled BI Publisher, so I finally could show it working. Nevertheless I got afraid my system would blow up again!

Let's see if I can convince you about the integration of APEX and BI Publisher at OOW or UKOUG ;-)

The second presentation was again for John. He talked about Network Services. I'm sure John will blog more about that...

The last presentation of the European Apex Training Days was about Localization. We thought in Europe this topic would be hugh, but when asking the attendees how much they already did with Globalization/Localization the response was fairly low.
I didn't only talk how to make your APEX application multilingual (follow the six steps in APEX), but I stretched it out to the database requirements, different XLIFF editors and that you need to think about a lot more then just the translations.


After my last presentation we answered the questions of the people.
The first day we installed a whiteboard in the back of the room where everybody could write down a question, from the session or even questions they had about APEX we didn't talk about. The picture shows you some of the questions we got.


At the end of the day we thanked everybody, asked to fill out our evaluation/feedback forms and took a group picture in front of the room. They can all be proud and say: "We followed the first open European APEX Training Days!" ;-)

After going through the feedback and catching up with (urgent) mails of the last days, we closed our laptops for the night and decided to go and celebrate the successful three day training.

We had some nice lobster in the famous Rue des Bouchers in Brussels.

What does a man want more? ;-)


We also made a little video of the training days, which you find on our Apex Evangelists site.

This is the end of my postings about the first European Application Express Training Days. I would like to thank all participants which made it an unbelievable experience. I hope you all enjoyed these trainings as much as I did.

As a final note I would like to give my special thanks to my business partner and friend, John Scott, for the great support and the way we worked together. I found it so much more fun doing it with you! Thanks John...

Wednesday, September 12, 2007

EATD: Day 2 - Presentations, Exercise and Special Evening

The second day we started a bit earlier because we had some big topics and wanted to let the people do something!

In the morning John started with the AJAX & Javascript presentation.
I'm sure John will go into more detail about that on his blog.
There were again a lot of live demo's into this presentation. Most people were really interested in this area, which is not so surprisingly. AJAX is *hot* these days and it allows you to have a real web 2.0 app.
That's why we foresee for this presentation a longer time (over 2 hours).


After this session we had our "special" mystery guest speaker: Carl Backstrom.
If there were no problems with his flight, Carl would have been "live" in Belgium, which would have been awesome... as he couldn't make it, he recorded an exclusive video message about AJAX and APEx 4.0.
Thanks Carl! You did a great job!
The room was so silent during the video and I saw some peoples mouth falling open... Just to say the people really enjoyed it.
For us it was also an honor that we could show some more after my "sneak preview" blog post of some weeks ago.


Then it was time for the people to do something themselves. They are all addicted to pc's, so they were really eager to show their potential. The AJAX exercise went really well for most of the people. I also did a little contest, as we put a "bug" into the application... the first who corrected it got a little Oracle gadget. Bart won... but then there were other people who found some other "improvements" to our AJAX code! Of course they also got something ;-)
AJAX and Javascript are very browser dependent, so testing everything in different browsers is really necessary! It was a lot of fun.

After lunch I presented 3rd party integration. There're so many 3rd party products, all in different areas. For ex. I showed some AJAX/Javascript implementations like the Yahoo User Interface Library and highslide. In another area I touched for ex. the ApexLib framework.
Should you use 3rd party integration? Yes and no. You've some pros and cons. But there're some really cool things in "wonderland" or other additions that make your life much easier.

The last presentation of the day was about the Apex Dictionary. John showed some advanced features you can use in APEX by using the APEX Dictionary. I think this is one of the topics most people are underestimating... A meta data-driven framework as APEX can be really powerful. It's unbelievable what you can get out of the dictionary.

In the evening we organized a special "AE-diner". We invited everybody to join us to an exclusive restaurant, La Vierge Noire, in Brussels. I also would like to thank IBM and Oracle for their sponsorship. With their help we could do "that bit" more.
I really liked that evening. Talking with people offline, with a nice wine and some excellent food.
Also, for John and me it was special... we both gave a little speech and toasted on our first open APEX training days.

The pictures speak for them ;-)

The day after it would be a lot harder to present (or to keep listening) ;-)
But about the last day, I'll tell you everything tomorrow...

Tuesday, September 11, 2007

EATD: Day 1 - Welcome and presentations

Tuesday morning (September 4), first day of our "European Oracle Application Express Training Days"...

Some people arrived already on Monday evening, where others left home very early the same day to be on time (one of them left at 4 am!).

From 8 till 9 o'clock we planned registration. While people were waiting for the other attendees they could enjoy a little breakfast.
It's not evident to be on time the first day in a country you don't know, so it's a good idea to have a time slot to arrive. It's also a nice time to talk to the people.
Some I knew from their blog, so it was a pleasure to meet them in real life. Some of the Oracle blogging people who attended our training; "Jornica", Patrick and Michiel of AMIS and Douwe, Bart and Menno from Caesar.

We printed a name tag for everybody and put a folder with the agenda on their desks. I also want to thank Kristel Geukens, my wife and owner of G&G Design, a company specialized in graphical and conceptual design, for the great support. She made the name tags and all layout and graphics.

The format of our training days was fairly simple:
90 minutes session - 15 minutes break - 90 minutes session
- Lunch (1 hour) -
90 minutes session - 15 minutes break - 90 minutes session

So, basically we had four sessions a day which we tried to build up logically.

For the first day we gave following sessions:

  • Themes & Templates

    I spoke about how to make a "waaaw"-site, how we (AE) make a new design (there's a lot more than just APEX) and how to really create a theme and templates in APEX.
    Did you for ex. know that there're two main choices in creating the layout of your website/application? I call it the choice between "table" layout and div/css layout.
    Although the 18 themes that come out of the box with APEX are mainly build as a "table" layout (or another example; the DG Tournament site), there exists something else. An example of the div/css layout is our Apex Evangelists website.
    Another question I could ask you: Do you know "Subscriptions" and the different "Tokens"? If not, you definitely have to see my Themes & Templates presentation ;-)

  • Authentication

    John covered this big topic. When we were discussing this topic before and John told me what he wanted to cover, I even didn't realize all that was in!
    Not for nothing we have another presentation only covering SSO. John concentrated on APEX users and Custom Authentication. I think a lot of people didn't realize you could do so much with the APEX (or cookie) users.
    Did you know about the authentication functions in APEX_UTIL? Or did you ever want to lock some accounts? John showed it live!

  • Reports & Charts

    I already blogged about it before, if it's useful and advanced enough (or not) for an Advanced APEX training?
    I still believe this is a good topic to get people on the same level. For our training we had some people just starting with APEX where others already developed for over 2 years.

    Do you know for example the difference in a "SQL report" and a "Wizard report"? I didn't limit the presentation to "only" APEX, but also talked about SQL Developer, Explain plan, SQL injection, bind variables etc.
    This is a really good topic to include all that... it's also a topic which requires a lot of demoing, what I really like to do ;-)
    When doing this presentation, it's sure people start asking questions. As APEX is such a rapid application development tool, in 9 out of 10 I can demo it right away.

    Have you ever looked at all possibilities you had with reports? You can't show it on one page!

    Somebody knows the difference in an "Updateable Report" and a "Tabular Form"?
    Or already tried the Customizations link?

    The Charts section is also nice to do. I suppose everybody knows you shouldn't use SVG charts anymore (desupported by Adobe)? But have you ever tried the asynchronous update? Flash charts can really give you a web 2.0 feeling...

    You can link so much else with this topic: Authorization, Conditions, Caching, Build Options...

    I always like to do this topic as people sometimes think they already know all that, until I show them one thing they didn't know ;-)
    Nevertheless, if I know the audience is really experienced I'll probably change some things and show for ex. drill down reports.

  • Performance Tips & Techniques

    This is really Johns corner. John has so much experience due to the APEX hosting he provides and talked about his top 4 performance tips.
    He's not only talking about that, John also proofs what he says. I won't tell you his 4 tips, that's something you should ask him ;-) But, I'm pretty sure there are not that many persons using all that.

So far the sessions of day 1...

At the end of the day we also planned some Q&A time. Although we got a lot of questions during the presentations, I think the people appreciated we had some time for them after the sessions with their day-by-day difficulties.


During the evenings John and I had some food, talked about the day and prepared for the next day. We were the only persons sitting in the bar with a laptop, but the waiters got used to it and were very understanding.


You may also read how John (Scott) experienced our training days on his blog (day 0, day 1).

Monday, September 10, 2007

EATD: Day 0 - Preparation

A few months ago John and I decided to organize some Oracle Application Express trainings.

First you've an idea and slowly it grows till the moment you announce it, but even then the preparation is not yet over. We wanted to do something special, give an "AE-experience" to our participants.

Second, we had to rent a place to do the trainings and chose for the exclusive Plaza hotel in Brussels.
As we call it the "European APEX Training Days", we thought Brussels would be a good place to start, as it's the capital of Europe.

Depending the number of people you need to find a room. Not to big, not to small. Although we had no idea how many would be interested to attend, we planned to have around 25 people and limit the numbers to that.

The size of the (training) room depends on the format of your sessions. Are you only "teaching" or also discussing with each other? We finally chose for the most interactive form, a U-format, in the nice "Versaille" room.

It's amazing to see how the sign ups went. You get some in the beginning, then it's quiet for a while, it starts again and at the end you get some more. Even the last week we got some new sign ups. The other side of the medal is also true, we also had some late sign offs, which was really difficult for us, as we had to pay a lot in advance.
So, if you want to organize something, unless they paid, it's not sure they will come after all.

The place to give the training is one of the things you need to prepare. Another one is where to stay, as we would have people flying in from other countries. Because we booked an hotel for the training, having the nights there was most appropriate. Nevertheless you need to pre-book some rooms. As it was an exclusive hotel, the prices weren't that cheap (although we negotiated a special price), so we also offered an alternative list of hotels.

The logistics like place, hotel, flight, beamer, handouts, food, special evening, invoicing etc. are only one side of the preparation, I didn't talk about another important part yet ;-)

The preparation of the training material! As we already talked at OOW, IOUG and ODTUG we knew it takes some time to prepare a presentation. Doing a 3-day course isn't different!
We like to do a lot of live (!) demos and have some interactivity between both of us and the participants, but all that asks for a good (and long) preparation...

This post was just to give you an idea about the preparation of such an event. You only know what it means until you really do it yourself ;-)

Tomorrow I'll blog about the first day...

Saturday, September 08, 2007

Catching up after our EATD...

The last weeks were very busy...

Preparing our first "European Oracle Apex Training Days" (EATD) was a lot of work. There is so much you need to look at and until you effectively do it yourself, you don't really know what to expect.
It's unbelievable how OOW, ODTUG and IOUG are doing these events ;-)

In the next days I'll blog in more detail about the preparation, the content of our three day course and how I experienced our European Oracle Application Express Training Days (with pictures!) and the days after.

Some people who attended our APEX training already blogged about their impressions:
- First impressions of the European Application Express Training by Michiel Jonkers of AMIS
- AE Advanced Apex Training Day's by Douwe Pieter van den Bos of Caesar (in Dutch)

I already want to thank everybody who attended our first open APEX training days... you all made it an unbelievable experience!

Sunday, August 26, 2007

Groups @ Oracle Open World Connect

If you go to the Oracle Open World Connect site (= real-time community), you'll see some groups. Some of the most interesting groups (in my area of interest), I described below.

ODTUGgers
(created by Mike Riley, VP – Oracle Development Tools User Group)

Group to spearhead some discussions about sessions to see, places to eat, arrange meet-ups, etc. Mike also told me you are free to join that group without actually being an ODTUG member. The more people, the better the discussions will be!

Oracle Application Express (Oracle APEX)
(created by David Peake, Product Manager - Oracle Application Express)

Meet with others in the Oracle APEX Community. The reason Oracle APEX has become such a popular tool is because of the very strong community. Come and join in for enlightened discussion and information.
In the past I organized the APEX Meetup's through an APEX application and my blog, but this year we'll probably announce it through this group.

Oracle Bloggers
(created by Eddie Awad)

Group for bloggers who have a blog aggregated by http://orana.info/ or http://blogs.oracle.com/. This is also the group who will participate in the Bloggers Meetup organised in the past by Mark Rittman.

There are some other groups which could be useful, so it might be interesting to look on the site. I suppose other groups will be created too... November is still far away ;-)

Friday, August 24, 2007

NF in Oracle Application Express (APEX) 3.1 & 4.0

The Oracle Apex Development team updated their statement of direction today.

I won't go into much detail on APEX 3.1, the next release of APEX, as the changes are not that big in this release, although some may be very useful.

A bit of comment on some new features of APEX 3.1:

  • PL/SQL API to manage a runtime installation of Application Express: this could be very useful, especially for companies providing APEX hosting like us.
  • Documented and supported Application Express JavaScript libraries: Carl Backstrom already started that here.
  • Enhanced integration with Oracle SQL Developer for MS Access to Application Express migration: with every new release of SQL Developer you see some more features in that area.

The nicest thing however is what they will include in Oracle Application Express 4.0!!

"This release will focus on declarative support for Web 2.0 features in Application Express, as well as the extensibility of the Application Express framework.": Don't you like the sound of that?! That sounds awesome!!

Generally thought: the Apex team listened very well to us, the Apex Developers/Users, which is highly appreciated. Thanks Oracle Apex Development team for that.

My comments on some of the new features of APEX 4.0:
  • Interactive reporting region types which native integrate Web 2.0 features to filter, break, sort data: This we could already see in action in one of my previous blog post
  • Extensible item framework, enabling developers to "plug in" their own custom item types: this will definitely be one of the killing features of this new version! A while ago Carl Backstrom started a discussion about it (initially Patrick Wolf included this in the APEX 3.1 new features thread). You can still leave your comments in the thread Carl started...
  • Declarative support for AJAX validations: today you could already make the validations in APEX, but the validations required a round-trip to the server. With the ApexLib framework you could avoid this. Some javascript functions would dynamically look at your validations (defined in APEX) and test it on the client side. Getting an improved version (with AJAX) out of the box in APEX 4 is great.
  • Declarative support for cascading select lists and other similar item types: we demo this often and this is also one of the questions asked by a lot of people
  • Improved tabular forms, including support for validations, integration with collections, and additional item types: again, asked by a lot of developers, especially people coming from an Oracle Forms/Reports background.
  • New item/region types, including DHTML calendar and AJAX tree: the tree in the current APEX version does a submit of your page. Also the calendar wasn't uptodate anymore with the current expectations of the web. So it's understandable this is included.
  • Improved PDF report layout: I hope they look at my improvement for this too ;-) But PDF got only introduced in version 3 and it's already a nice feature, especially when you integrate it with BI Publisher. But yes, other improvements like printing charts and pictures easier would be welcome ;-)
  • Improved error message handling: we were waiting a long time for this, it looks like somewhere next year we get something with the new version that does the job
  • Numerous functional and performance improvements: Performance comes definitely from the caching mechanism (already a lot in APEX 3) and from the performance improvement of the 11g database. That's one of the things why APEX is great, as it's running inside the database, with every new release of the database you get so many more possibilities.
My final note on this: Oracle is not guaranteeing it will include all that... nevertheless I would like to thank the whole Apex Development team for this great road map and awesome product!

Thursday, August 23, 2007

Update: European Apex Training Days (in 2 weeks)

A few weeks ago we released our agenda to the people coming to the AE European Oracle Application Express Training Days.

This training will be held in two weeks time in Brussels. It's not a beginners training, more an advanced one, although "advanced" is difficult to measure.

During the last weeks I spoke with people working with APEX for more than two years, so they are quiet advanced I would say. But they are used to work in a certain manner and like with everything, if you don't know you can do it in a different way, you don't do it.
Next to that, there are still a huge amount of people working with version 2.2 of APEX, so all the new features of version 3 they don't know yet.

If you look at our agenda, you may think that Reports & Charts is not such an advanced topic, which is partially true. But if we look at trainings we did before, it was quiet useful to get people on the same level with that topic.


I look forward meeting all people and I'm sure we'll get some hard questions ;-)

Tuesday, August 21, 2007

DG @ Oracle Open World 2007

This weekend I booked my flight and hotel for Oracle Open World 2007 in San Francisco.

I first thought to stay in the Hilton hotel, but as that was already fully booked I decided to stay in the King George hotel. Mark Rittman stayed into that hotel last year and liked it, as he's staying there again this year.
"King George" ... sounds also very nice ;-)

This year I'll also present at OOW. I'm curious if presenting at OOW is different from presenting at the Oracle User Conferences like ODTUG Kaleidoscope and IOUG Collaborate. OOW is so big!
Last year was my first time at OOW and I liked it a lot. I never saw such a big event and a town literally changed in the red "Oracle" color.

The presentation I'll do is about the integration of APEX and BIP:

Title : Advanced PDF documents from Oracle Application Express (APEX) using Oracle Business Intelligence Publisher.

Abstract : Oracle Application Express (APEX) 3.0 provides new functionality to generate PDF documents. To create advanced PDF reports you can use Oracle Business Intelligence Publisher (formerly XML Publisher). This session covers how to configure APEX to use Oracle Business Intelligence Publisher and how to create an advanced PDF report in APEX using BI Publisher.


A lot of Oracle bloggers made there QuickConnect card. That card means you're registered on the OOW community site. You can find people having the same interests or just some info about a person.

Here's my QuickConnect Card:

Join Me at Oracle OpenWorld Connect!

See you at Oracle Open World!

Monday, August 13, 2007

Feedback and Tips after Oracle Application Express Training

John Scott already blogged about the APEX training days we gave to an AE customer last week.

Here's how I experienced our "duo" APEX training and some tips when you're doing some onsite training yourself.

Tip 1 - Be prepared

The customers asked a while ago for APEX training. Instead of doing a "standard" reply of saying what APEX training we (= Apex Evangelists) can deliver, we try to "customize" our trainings as much as possible.
To do that, we want to know our customers: What do they know? What do they not know? Why do they want to get trained? What facilities do they have? Which topics do they want us to cover? ...
The more info you get before hand, the better!

Our training exists out of powerpoint, a lot of live demos (we like that a lot!) and exercises. Doing live demos asks for a lot of preparation, but we believe it brings a big added value to our attendees. Some people say: One picture = one thousand words.

Depending how much material you already have, I still believe it's good to start preparing a week (and more) before. Run through all demos again, review the presentations etc.

Tip 2 - Arrive on time

John and I arrived the day before. We had a look around and went over the agenda and planning again. Especially when you're with two people doing the training it's important you know about each others topics, when and how to do things or just do some fine-tuning.

We love to train people together. I think there're not many companies doing that (giving training with two people). We also train people alone, but it's so much more fun when we're together.
Also, customers can appreciate it, sure it will be more expensive, but you'll get the experience of two people and it's "different". We've both our strengths and different experience which we can fully exploit together.

Tip 3 - Get to know your audience

We normally start with an introduction and a quickly round-up so we know the persons a bit better. It depends the size of course, but if it's possible to do, I would recommend doing a quick check.
People may say in the preparation phase of the training they've all a lot of experience, but when you're onsite and talk to them, maybe that's not entirely true. (they can be experts / or don't know that much as they believe themselves)
As you could read on Johns blog, some people had over two years experience, where others had only 2 days of experience! It's a real challenge to get everybody up to speed in a short amount of time, but it's so much easier when you know a bit of background of the people. I knew for ex. some had already experience in MS Access, so I spoke about how it looks like in the environment they already know.

Tip 4 - Be flexible

We had a tight planning prepared for this customer. After the first day John and I sat together and talked about it and we decided to put some more effort in some topics, give some extra exercises and skip some other topics. Again, this is so much easier when you know your audience. We spent for ex. quiet a long time on the AJAX topic, as they user was keen to use it and we also decided to skip the "Production Issues" presentation as they had an IT department doing all that stuff.
It's hard to decide and even though to take a decision to change your planning, but in this case it was really rewarding. This came also above when we read the evaluations, the customer really appreciated what we did.

Tip 5 - Include time for Questions

During the presentations we got some questions. We're very open to questions and really like the test if we know/can find the answer ;-)
I usually not only answer them, but also try to show them (or proof them) what I think the answer is. I think I learned that from Tom Kyte, he has a statement:

It ain't so much the things we don't know that gets us in trouble. It's the things you know, that just ain't so or just ain't so anymore or just ain't always so.

I sometimes have that too, I expect something will behave like that, and it suddenly doesn't do that, maybe it's that particular version, or it was never like that... with the test I see it!

The questions part was also highly appreciated by our attendees. The questions showed us also if they really understood or the things they were interested in.
We sometimes quickly built an app in APEX to show some other things we didn't prepare. At OOW we also did some kind-a-like thing, with the roundtable conversation. At Collaborate 07 we repeated it again. It's like a "life" forum.
We also referenced to some other sessions we did, like for ex. the Shared Components presentation I gave at ODTUG and IOUG Collab.

Tip 6 - Enjoy

Doing these trainings foreign is nice, but also hard. I enjoyed being there together with John. The days were flying by, it was over before we knew. During the day you're so busy with explaining to the customer, in the evening you're preparing for the next day and reviewing the previous sessions, to get really the best value for your client.

But don't forget to take some time to enjoy too! We tried to take some time to eat together. for ex. One night we went to a Steakhouse and had some delicious lamb!

Tip 7 - Think back and learn

From last year onwards I'm more into giving presentations. I think it started at Oracle Open World last year, where I was in the roundtable panel for the APEX SIG.
After that I started to give presentations at IOUG Collaborate 07 in Las Vegas, ODTUG Kaleidoscope 07 in Daytona Beach, some more presentations in Belgium, followed by onsite training for Apex Evangelists customers. From every presentation you learn something, take it with you for the next one.

Next on the agenda are the Apex Evangelists "European APEX Training Days" in Brussels (September) - you can still subscribe for that one -, maybe Oracle Open World (November) and UKOUG (December)...

If you would have told me I would do so many presentations this year, I would have laughed at you ;-) Things can change quickly!

Saturday, August 11, 2007

Oracle 11g and some APEX 3.0.1 news

Already a lot others blogged about Oracle 11g (for Linux) is available for download. A direct link to the homepage of Oracle Database 11g.

Oracle proofs again why it's a leader and innovator in the database market. In 11g you get again a lot of new features.

Some of the new features I think can be really useful in an APEX environment:

  • Real Application Testing
  • SecureFiles (next generation of LOB)
  • Result Cache (storing the results of queries and PL/SQL functions)
  • Enhancements in XML, Text, Spatial and Medical Imaging
  • Oracle Flashback Data Archive
  • PL/SQL improvements for ex. native compilation
  • APEX 3.0.1 out-of-the-box

John Scott already installed Oracle Database 11g (with APEX) and blogged about it here and here. He mentioned a difference in release: where the standalone APEX 3.0.1 has a version number of 3.0.1.00.07, the version in 11g is 3.0.1.00.08.

Carl Backstrom told there were some minor bug fixes, which explains the difference at the very end of the number. Carl also blogged about a new thing he's working on (which I expect will probably be in some of the next releases of APEX). Next to the declarative AJAX support (which will be improved with every APEX version), he now talks about "tags". Have a look on his blog! I see these tags useful to give users the availability to create some "shortcuts" on their screen to parts of the application they use most.

Tuesday, August 07, 2007

New Oracle APEX Packaged Applications got released

I just saw a lot of new Oracle Application Express Packaged Applications got released on OTN.

I encourage everybody to have a look at these Packaged Application, as you can learn a lot from them. They're not only a great source to learn or to find ideas how to do something, some people even use these applications in production environments!

I had a quick look at the new applications, installed online on the hosted Oracle Apex service of Oracle and they look good and useful.

I liked the Questionnaire (Knowledge Testing) of APEX ;-)
You can answer the survey and get a nice report how well you did. Will they replace the Prometric tests (OCP)?

A direct link to the new demo apps:

Saturday, August 04, 2007

APEX Forum gets Ace'd!

First I want to congratulate all Oracle Aces in the Oracle Application Express Forum. They all deserve it very much. Well done guys!

After the new addition of Patrick Wolf to the Ace Hood last week, I saw another icon in the APEX Forum!

Somebody has a little crown!!


A very big congratulation to JES (John Scott) for achieving the Oracle ACE Director title.

John is not only very active in the APEX forum, he's also the author of the new Oracle Application Express book "Pro Oracle Application Express".

I'm very pleased and proud to be next to him at Apex Evangelists. John is a wonderful person and a great guy to be with. A true friend!

You can congratulate him in the forum ... let's give him a big celebration ;-)

Friday, August 03, 2007

Oracle APEX: f?p, p?n, z?p

Did you already see: "f?p=", "p?n=", "z?p_url=" in the url's used by Oracle Application Express?

Doing presentations is a good exercise to keep you fresh... You have to write down what you *think* you know ;-)

While preparing some other presentations I wanted to explain the url's in APEX... Although we use the url's all the time, it was more difficult for me to write down what they were doing, so I thought to blog about it.


** The "f" procedure is widely known and well covered in the Oracle APEX User Guide.

It's used to create links between pages in your application using the following syntax:
f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly

(We even included this syntax on our very cool AE MouseMats! I'll post a screenshot of the real mousemat in the next days...)



** The "p" procedure you can use to download a file from the APEX repository (see the apex_application_files view for a list of your files).

For ex. http://apex.shellprompt.net/pls/apex/p?n=217605020644166778 will show you a nice picture that's stored in my APEX repository. (n is the id of the file)

This procedure is not wrapped, so you can see what it's doing:


procedure FLOWS_030000.p (
n in varchar2 default null,
p_mime_type in varchar2 default null,
p_inline in varchar2 default 'NO')

-- Copyright (c) Oracle Corporation 2001. All Rights Reserved.
--
-- DESCRIPTION
-- View a page given a page ID
--
-- SECURITY
-- Public shortcut
--
-- NOTES
--
-- EXAMPLES:
--

is
begin
if n is null then
htp.p(wwv_flow_lang.system_message('p.valid_page_err'));
return;
end if;
--
wwv_flow_file_mgr.get_file (
p_id => n,
p_mime_type => p_mime_type,
p_inline => p_inline);
end p;
/


** The "z" procedure you use to track when users click on external links.

I don't know how I knew about the existence of the Z procedure, but when I discussed with John Scott he told me it had something to do with going to a url via the CountClicks procedure. After searching a bit more on the internet I found some info in the forum and a Tip in the HTMLDB Studio (rip) from Scott Spendolini.

The explanation:
p_url: This is the link to the external site or file to be downloaded.
p_cat: Provide a name that you can associate to this link.
p_company: This is your application's Security Group ID. You can determine what that is by running your app and clicking on "Session" in the developer toolbar at the bottom of the page. The Value for Security Group ID is what you would use in your link. (I didn't found that in APEX 3.0)

Track what users are clicking by navigating to: Home -> Administration -> Monitor -> Top External Clicks

Testing this out with my image of the p procedure: http://apex.shellprompt.net/pls/apex/z?p_url=dgielis.download_filez?p_id=217605020644166778&p_cat=ae_pics&p_company=54352117549007872

If you've some other additions, feel free to comment on this post.

Sunday, July 29, 2007

Oracle APEX: onload in Page HTML Body Attribute

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 ;-)

Wednesday, July 25, 2007

APEX - Why limiting a column to 22 characters?

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)

Sunday, July 22, 2007

Oracle 11g after the webcast

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 (from 11g NF whitepaper)

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
  • Microsoft Access migration aids
  • Declarative Ajax support
  • Drag-and-drop form layout

Wednesday, July 11, 2007

3 minutes before the 11g release of Oracle!

I'm ready for the 11g Oracle Database launch!

Tuesday, July 10, 2007

Oracle APEX behind the Scenes: Logout Procedure

I was catching up with the forum when I spotted this thread: Adding a Process to Logout

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:
wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:1
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?
  1. Unsets your application's session cookie (actually sets it to '-1') and 2) redirects to the after-logout page.

  2. 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.

  3. 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.).

  4. 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).

  5. 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:

apex_application.g_unrecoverable_error := true; 
wwv_flow_custom_auth_std.logout( p_this_flow=>:APP_ID,p_next_flow_page_sess=>:APP_ID ':1');
That should do it...

Wednesday, July 04, 2007

Oracle past 20!

Also having Oracle stock options?

For the first time in years Oracle passed the "20"-bounder!
I still have my Oracle stock options from the time I was an Oracle employee. ;-)


How comes this increase?

  • Did Oracle APEX expend that much? It's possible, but not the case in this graph ;-)
  • The reason behind that is probably the SAP (TomorrowNow) fight.
    More info in this article?