The ODTUG conference will be held in Washington DC again this year. Washington is one of my favorite places and my first ODTUG was in Washington as well... I liked it so much.
So what about APEX at ODTUG? APEX will be huge again... 30+ APEX presentations, the Oracle APEX Development team will be there, all "names" in APEX world will attend... in short a conference not to miss.
Early bird is there till 24th of March and now there is a special too. You can only subscribe for the Sunday Symposium. On Sunday you can watch some of the most well-respected Oracle APEX experts work as a team and demonstrate how to build an application from the ground up! We'll start with a set of requirements, design and build a data model, then build, secure, tune, enhance, and translate a working Oracle APEX 4.0 application right before your eyes!
Next to all the APEX things there are other development tools as well ;-)
And as like the other years, also this time there is a community service again. You find more information here.
Friday, January 29, 2010
APEX @ ODTUG...
Posted by
Dimitri Gielis
at
16:10
0
comments
Labels: odtug
Wednesday, January 27, 2010
Sumneva Live!
Early this morning we turned the switch on our site with the message that APEX Evangelists will join forces with Sumner Technologies in a new company called Sumneva.
The four of us will all be directors of this new company. While Doug and Scott will focus more on the US market, John and I will take care of EMEA. Having said that, in a lot of occasions we will work together. The first result of that is all training material will be the same. If you go to the new Sumneva website you'll find a complete set of APEX trainings available to you. From Beginner over Intermediate to Advanced. The next training dates in the US and Europe are already listed!
Next to the training, we'll work together on some clients to provide them with APEX Support the clock round. Although we have many US customers, for a European company it wasn't always easy to get somebody onsite, so now that is solved as well.
We have many more ideas and with the four of us, together with the people we work with we are just stronger in numbers and minds ;-) All of us have specific expertise which we can now leverage when needed.
In the meantime have a look at our new site and feel free to give any comments...
Posted by
Dimitri Gielis
at
15:23
8
comments
Labels: sumneva
Tuesday, January 26, 2010
APEX 4.0: Dynamic Actions - Part 1
So what is all that about Dynamic Actions in APEX 4.0?
Basically, before we had to write a lot of javascript to get things happening on the client. E.g. you wanted to show or hide a field or a region depending other values on the page.
From APEX 4.0 onwards we can do a lot of these things declarative (through a wizard).
You have two types of Dynamic Actions: Standard and Advanced.
This post will have a closer look into the Standard Dynamic Action. (Advanced will be covered in Part 2)
You will need to specify the selection type of the page elements that define when the dynamic action will fire. You can chose out of: Item(s), Region, DOM Object and JQuery Selector.
Depending the type you chose you'll see different things to fill in e.g. the item(s) or region name, the condition and value when the dynamic action needs to fire.
Next you specify the event type for the dynamic action. In conjunction with the triggering elements define in the 'When' region, this is used to define the actual event on the page that will cause the dynamic action to trigger.
So in the above example I want to fire the dynamic action when my P5_SELECT equals to Y and it looks for it whenever I change the select list.
Next you define what you want to do. In my case I want to disable an item when the value of the select list is N and enable it again when the value is Y.
Finally I told the dynamic action what field it had to enable/disable. You see it live here.
If you go back into the App Builder and look at your page (Tree View) you see the Dynamic Action below (if you still use the Components View it's at the end as well and the screenshot looks like the very first picture on top of this post).
You can still edit the Dynamic Action and configure it further.
I like Dynamic Actions a lot, it will definitely speed up development as it's just build-in now. Not a single line of javascript you have to write. Obviously we now did only a simple thing and you still need to test things if they do what you expect... I tried to Enable/Disable a button, but that didn't work yet, but like the above example with an item it worked like I expected.
Posted by
Dimitri Gielis
at
20:07
4
comments
Labels: apex 4.0, Dynamic Actions
Wednesday, January 13, 2010
Oracle Application Express Patch Set 3.2.1.00.12
Yesterday a new patch for APEX came out on My Oracle Support (Metalink). Without the patch number it was difficult for me to find the right patch, as just searching on product family Oracle Application Express didn't give the correct result. So if you want to download the patch from My Oracle Support search for patch number 8548651.
This patch includes a number of fixes:
How to install the patch and further information you find in the patch notes. After installing the patch your version of APEX should be 3.2.1.00.12.
Posted by
Dimitri Gielis
at
02:22
8
comments
Labels: apex 3.2 patch
Wednesday, January 06, 2010
APEX 4.0: My first Plugin - Editable Select List / Combobox
Before I just played around with APEX 4.0 and tested the new features and created some quick apps, but a week ago I made the decision to really see what APEX 4.0 can give me in a real project.
So the plan I had was to start this project in APEX 4.0. It's a risk as I might never be able to import it again in the next version of the Early Adopters release, but I made this conscious decision because I really wanted to see how much time APEX 4.0 could save me.
I'll do a proper blog post about the outcome once I finish the project, but I already wanted to discuss the Plug-ins part of APEX 4.0.
In my project a person need to be able to see and select a category. If the category doesn't exist he needs to be able to create it. So if I was in APEX 3.x I would look at using a select list or a popup lov. Possibly I would add a plus button next to it and write some javascript code to show a text item to enter a new category if it wasn't already in the system. Alternatively I would use some JQuery plugins like the autosuggest or an editable select list / combobox.
But in APEX 4.0 there is a build-in item type "textfield with autocomplete" which I could have used, but one of the drawbacks of that is that you can't really look what is in the system already without typing some letters. So I searched for an editable select list, but that item type didn't exist.
It would take me about 5 minutes to write some custom JQuery code and hook up the plugin to get an editable select list, but I would need to do that for every project again on every page I want to use it. So I thought it's a good moment to create such item type myself, which I would be able to reuse in every project.
It took me about 3 hours to understand how the plugins worked, read Patrick's documents and look at his examples and use that knowledge to create my first plugin. So I need to use this plugin 36 times to be break-even compared to if I did it the custom route.
But the big advantages of using the plug-in are:
- the implementation will be every time the same
- more people can use
- you don't need to know javascript to get things working
You can see the Editable Select List Plugin working and be able to download it here.
To install the Plugin in your own application, go to Shared Components > Plug-ins and hit the Install button.
Tell it in which app it needs to be installed into (Plug-ins are app specific).
And review the code, my plugin is called AE Sexy Combo, because it's based on the Sexy Combo JQuery plugin.
So now you should be able to create this item type on your pages.
You add a new item of type Plug-ins and select the AE Sexy Combo
You give it a name and you need to add a select statement to it (in the LOV section of the item) and it's ready!
Conclusion; it didn't take me too long to understand how the plugins worked especially not if you investigate the existing examples which you can use as a starting point.
I found it not easy to find my coding mistakes e.g. I'm not sure the plsql code gets parsed, but it took me some time to find I missed a ")" somewhere. But I used the apex_plugin.debug_page_item and found that helpful.
It would be nice to be able to upload multiple files at once and be able to reference the css like you do with javascript e.g. apex_javascript, get an apex_css.
I like Plug-ins very much, I think if people start to share that we can extend APEX ourselves all the time without having to wait for another APEX release. It's a very controlled environment, so much more secure to use especially for non-advanced developers.
Posted by
Dimitri Gielis
at
00:34
24
comments
Monday, December 21, 2009
Merry Christmas and Happy New Year!
It's time for a break for me and spend some time with family.
Thank you all for reading this blog, thanks to the APEX development team for the exiting Christmas present and thanks to all of you for a great year.
I wish you all a Merry Christmas and Happy New Year! See you in 2010...
Posted by
Dimitri Gielis
at
13:16
5
comments
APEX 4.0: My thoughts after first round of playing
In the last two days I developed with APEX 4.0 EA. Although I already played a bit during OOW it's different when you have some more time.
As I already mentioned earlier... it's the best APEX version so far. It looks good, feels smooth and there are many new features. Although this is not yet the "full" version of APEX 4.0 I would already be happy to just get this.
The blog posts I did so far:
- APEX 4.0: writing higher quality applications by using the Advisor
- APEX 4.0: new public packages
- APEX 4.0: dictionary views
- APEX 4.0: Tree View vs Component View
- APEX 4.0 EA available
- APEX 4.0 Screenshots and first impression
- APEX 4.0 Highlights and Video
I'm going to hold a little pause in doing blog posting on APEX 4.0...
There is a lot more to discover, so you might play with it and check other new features out.
I plan to write more about APEX 4.0 in January. These are in my drafts:
- APEX 4.0 Charts, Maps and Gantts
- APEX 4.0 Dynamic Actions
- APEX 4.0 My first plugin
- APEX 4.0 Team Development
Posted by
Dimitri Gielis
at
12:47
4
comments
Labels: apex 4.0
Sunday, December 20, 2009
APEX 4.0: writing higher quality applications by using the Advisor
APEX 4.0 includes so many nice features out-of-the-box now, that you can't stop smiling ;-)
I'm doing these series of blog posts more from the perspective from what has changed and how your development effort will change by using APEX 4.0.
The community build things around APEX (2.2, 3.x) to help us e.g. Patrick Wolf made some great things (already some time ago now) like his APEXLib framework and the APEX Advisor. Now that Patrick is in the APEX Development team it's nice to see a lot of this coming back as build-in components.
This post is about the build-in Advisor, which you find in the Utilities section in APEX 4.0.
I'm sure it will help to write higher quality of code.
Before (APEX 3.x days and prior) the flow was like; create database objects (tables, views etc), create application, pages, add validations, create shared components, make sure security and performance are good by manually checking things.
A change came in; adapt database objects, adapt pages etc. hoping you changed everything correctly...
Some of us build a QA tool to check things by running a package/query or by using the Advisor Patrick build, but I think a lot of people didn't do that.
So how does this process look like in APEX 4.0?
- Create database objects
- Create application
- Create page and check directly if it's "good" (see screenshot)
- Create shared components etc
Change is coming in
- Change database objects
- Run the Advisor and see directly which items you need to change or where things fail
- Change pages and check your pages directly
- When all done, run the Advisor again for the entire application (see screenshot) and you are good to go
It's amazing if you upload an existing application how many things the Advisor might suggest you have a look at ;-)
Having this feature build in is awesome. I used Patrick's Advisor (for APEX 3.x) before but sometimes I forgot to run it etc. now that it's build in it's so much easier.
While I was discussing with John Scott he had a really good suggestion; it would be nice if we could schedule a run of the Advisor (e.g. every night). Also adding our own checks would be nice, but we could get around that already if we could just call the advisor from pl/sql.
We would then email the results or store it in our QA repository.
Posted by
Dimitri Gielis
at
20:21
1 comments
Labels: apex 4.0
APEX 4.0: new public packages
I looked at the package we would be able to use in APEX 4.0 and saw some new ones.
Packages make it possible to do things in your own PL/SQL code which APEX does for you in the wizard. E.g. If you want to call a webservice, you can use the APEX Wizard to set this up, but it might be useful to do that from your own PL/SQL procedure or from a process in your APEX app.
On APEXBlogs.info I had to write a lot of custom code to read the different rss feeds. If the APEX development team opens up the packages they use behind the scenes you can just leverage these and don't need to write your own.
Another good example which happened in APEX 3; everybody wanted to send mails with attachments, so we all wrote our own package to do that, in APEX 3 (if I remember correctly) the APEX Dev team provided a new package called apex_mail which did that, so you could just use it to send emails without having to write your own anymore.
The same with APEX 4.0, the more package they provide, the better. So here are the new ones I found so far (it's hard to research them without SQL Developer or having access at the code):
- APEX_JAVASCRIPT
- APEX_PLUGIN
- APEX_REST
- APEX_UI_DEFAULT
- APEX_WEB_SERVICE
Let me give you two examples, you can just do desc apex_javascript yourself in SQL Commands to review the full definition.
SQL> desc apex_javascript

So it looks like we can add attributes, add onload events etc directly from a PL/SQL package. You probably want to use this package a lot when you write your own plugins.
SQL> desc apex_web_service

This is a really cool package. It's the same (as far as I can see) as the flex-ws-api Jason Straub wrote. If you need that already in APEX 3.x you can download it from the sample code website.
Doing research on APEX 4.0 is so much fun ;-)
Posted by
Dimitri Gielis
at
19:57
0
comments
Labels: apex 4.0
APEX 4.0: dictionary views
It looks like there are 19 new APEX Views (compared to APEX 3.1.2).
- APEX_APPLICATION_PAGE_DA
- APEX_APPLICATION_PAGE_DA_ACTS
- APEX_APPLICATION_PAGE_FLASH5
- APEX_APPLICATION_PAGE_FLASH5_S
- APEX_APPLICATION_PAGE_IR_COMP
- APEX_APPLICATION_PAGE_IR_GRPBY
- APEX_APPLICATION_PAGE_IR_NTFY
- APEX_APPLICATION_TRANS_MAP
- APEX_APPL_PLUGINS
- APEX_APPL_PLUGIN_ATTRIBUTES
- APEX_APPL_PLUGIN_ATTR_VALUES
- APEX_APPL_PLUGIN_EVENTS
- APEX_APPL_PLUGIN_FILES
- APEX_TEAM_BUGS
- APEX_TEAM_FEEDBACK
- APEX_TEAM_MILESTONES
- APEX_TEAM_TODOS
- APEX_UI_DEFAULTS_ATTR_DICT
- APEX_UI_DEFAULTS_GROUPS

For some reason the Team Development views are not listed in this report.
It's always interesting to review these views as they give you more insight into your application or to use them to have a look at the application behind the scenes. We have been using them for reporting an application or send automated QA feedback.
Posted by
Dimitri Gielis
at
19:23
0
comments
APEX 4.0: Tree View vs Component View
The Application Builder and more in particular the Page View has two modes in APEX 4.0.
You can view your page as you know from earlier APEX releases, the Component View:
Or from APEX 4.0 onwards you have the possibility to view your page in a Tree View:
This is my view on it;
- With the component view you to see everything on the page at once. You can just click on a link and it brings you to where you need to be. But you might have to scroll and especially for big pages with lot of conditions and different branches it might be harder to follow the logic.
The component view also works on your mobile device (nice if you have to do a quick update through your mobile phone).
- The tree view is a new view on an APEX page. It's structured more logic (a bit like the events view in APEX 3.x). It's also more condensed, it give you a ton of extra possibilities and ways to develop faster. E.g. if you want to put one item before another, you can just drag-drop.
By hovering items you get extra information (e.g. conditions), you can right click on the items of the tree and depending what you clicked you get the possibilities of that item. Double clicking on an item brings you to the details.
The more I use the tree the more I like it and I'm starting to become a huge fan of it. The only two drawbacks I see is that when I don't have a mouse with me, it's harder to develop (e.g. on my Mac I need to click the CTRL button to mimic a right click), the other drawback is that it won't work on a mobile device.
Conclusion
My first choice will probably become the tree view. I think in this view of the page you will make less "mistakes" and develop higher quality pages, just because of the structure. You'll also develop faster, which is a big thing for me.
But I do think the APEX Dev team should keep the Component View as well, as occasionally I probably want to go back there (develop mobile or if I don't have a mouse).
Posted by
Dimitri Gielis
at
16:23
5
comments
Labels: apex 4.0
Saturday, December 19, 2009
APEX 4.0 EA available
You can evaluate Oracle Application Express 4.0 now yourself. Oracle released the Early Adopter version http://tryapexnow.com/ ... just got access to the new version and it looks cool so far ...
Not all features are available yet (e.g. Websheets) but there are so many other nice things in there that it's definitely worth to have already a look now.
So try it out yourself and give feedback to the APEX Development team. The more feedback the better the production release ;-)
Posted by
Dimitri Gielis
at
08:03
0
comments
Labels: apex 4.0
Monday, December 07, 2009
Accessibility in APEX
One of my highlights at UKOUG was the presentation of Anthony Rayner about Accessibility in APEX. It remembered me at my youth where my mother (she's a professor) had to guide a blind person. From that time onwards I really started to appreciate and admire the disabled people and the people around them.
Anthony's presentation was all about how we can make our websites and applications better, so disabled people can better understand and visualize what is going on on there.
I got a real shock when Anthony started a screen reader (JAWS) and showed us what these people "see" (or better hear). He also explained what the lacks are in the current version of APEX and what they have been doing in APEX 4.0 to better support accessibility. Anthony also explained what you need to look for in your own application so screen readers have an easier job e.g. use divs, give meaning full names to regions, pictures, tags etc.
I'll try to do my best in the applications I write to better support accessibility as I think it's really important and as Anthony said, 15% of the people on the internet are disabled, so don't ignore them...
Posted by
Dimitri Gielis
at
09:40
0
comments
Sunday, November 29, 2009
APEX SIG at OBUG
On Thursday I had a final meeting with the directors of OBUG (Oracle BeNeLux User Group) about setting up an APEX SIG.
Oracle Application Express is getting more popular in Belgium, the Netherlands and Luxembourg, so it made sense to bring all these people together and talk about it.
So from Thursday onwards in the diagrams of the OBUG you'll see an APEX SIG now. The OBUG has a big one-day event in March called "Benelux Connect", so probably on that day we'll do some APEX sessions there. Next to that, the goal is to have at least two meetings a year with the APEX SIG. Next to the technical presentations, the Use Cases and sharing knowledge, the networking and having fun is an important part.
We are working on a new website for OBUG, which will go live in January and on there you will find more information about the APEX SIG.
We have many more ideas and I hope all of the APEX enthusiasts and people working with this wonderful tool in the BeNeLux will join.
While we wait for the official website to be launched you can register your interest in the APEX SIG here. All registered people will be kept informed... so register now!
PS: For the people thinking the current OBUG site is made in ASP, you are right, but the register section is an iFrame to an APEX app ;-)
Posted by
Dimitri Gielis
at
11:54
0
comments
Labels: obug
Monday, November 23, 2009
Twitter messages on APEXBlogs.info
I extended the APEX Blogs aggregator to also include Twitter messages.
A few years ago blogs were hot to exchange knowledge, but writing blog posts takes time. These days people use Twitter messages to post very short messages. But I find it very useful as you know what people are doing e.g. Patrick Wolf tweeted he was working on a Required Flag for an item in APEX 4.0.
As I think a lot of people miss out on these short (but interesting) messages I decided to include it on the site.
If you want to appear on the site you only need to put #apexblogs in your twitter message and in real-time your message will appear on the site.
I used some code of OraTweet to make this happen. Thanks to Noel Portugal to share that nice app.
Have fun with the tweets! Hope you like it.
Posted by
Dimitri Gielis
at
00:34
8
comments
Labels: apexblogs
Thursday, November 19, 2009
RSS of APEXBlogs.info
A couple of days ago the RSS feed of APEXBlogs.info started to behave weird. Although you could still read the message, the link at the bottom to redirect to the website suddenly didn't work anymore.
I didn't change anything but Feedburner is now under the Google flag and apparently that added statistics to the url.
e.g. &utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+OracleApexBlogAggregator+%28Oracle+APEX+Blog+Aggregator+%28by+AE%29%29
If you took that bit off it worked just fine.
I found the answer in the FeedBurner forum. You can disable all the statistics (not sure why they got enabled suddenly) so the url should become "normal" again, so that is what I did. Let's hope the new posts through RSS are correct again.
I've some new ideas for the website to include also the APEX related twitter messages and do a general update of the site to make it cleaner, but I didn't find the time to finish it yet.
If you have other ideas or recommendations for the site, feel free to add a comment. I'll take it into consideration for the new release.
Posted by
Dimitri Gielis
at
11:07
1 comments
Tuesday, November 10, 2009
APEX Meetup @ UKOUG
As on every Oracle conference, also this time we organize an APEX Meetup.
Last year we went for a pizza and some drinks and it was great fun!
For this year, I propose we come together on Monday 30th November at the Community Focus Pubs - 20.00 - 21.30. There should be an APEX table as well. We can already have some drinks there and then leave for another place and see what the night brings us...
Time is flying... See you in 2,5 weeks!
Posted by
Dimitri Gielis
at
17:25
2
comments
Wednesday, November 04, 2009
Accordion in APEX
*** This post uses SyntaxHighlighter to show code, if you are on an RSS-reader you might not see the code ***
The last weeks it seemed that more people were having the same question "how to integrate an Accordion in APEX".
I've been using an Accordion for a while, an online example is on the Anychart Integration kit website. The left-hand menu is an Accordion.
I think on all my projects of the last year I've been including JQuery and JQuery UI as a standard in the template. The Accordion I use is part of JQuery UI.
You can implement the different JQuery components and plugins in a lot of different ways in APEX; using a template, a shortcut, a region etc. but the principle is the same for any way you chose; you need to load the necessary javascript and have some html that works with it.
My standard philosophy is "if you can make things reusable, you should do it". (with this note: if time and effort allows)
APEX has a Shared Components section and Page zero which can help you with sharing your most common used code. APEX 4.0 will go a step further and provides a plugin mechanism, so you don't need to put the code in different places anymore, instead it will handle everything for you.
So to implement my Accordion, I used a List Template to change any List into an Accordion. Here's how the APEX list template looks like:
List Template Before Rows
List Template Current
#TEXT#
List Template Noncurrent#TEXT#
Between List Elements
Sub List Template Current
Sub List Template Noncurrent
List Template After Rows

Update; apparently SyntaxHighlighter can't show the script tags (javascript).
The List is a normal list as you can see in the below screenshot.

In the List itself you need to add the pages in "List Entry Current for Pages Type" in order to leave the Accordion open for a child. e.g. 2D Column is page 10 and that should be in the List Entry Current for Page 5.
So in every other project you can just use this template for a list and you have an Accordion in place.
javascript:void(0)
Posted by
Dimitri Gielis
at
21:00
3
comments
Tuesday, November 03, 2009
Testing Syntax highlighting
I found following blog post which explains how to include SyntaxHighligther (v2) in blogger.
So lets give it a try for the languages I use most.
SQL
SELECT ename, empno
FROM emp
WHERE empno = 7654;
PL/SQL (same highlighting as SQL)
BEGIN
FOR r in (SELECT ename, empno
FROM emp)
LOOP
htp.p(r.ename);
END LOOP;
END;
JavaScript
$(document).ready(function() {
$(".btn-download").click(function(){
callMyFunction();
});
});
XML
Posted by
Dimitri Gielis
at
07:34
8
comments
Labels: syntaxhighlighter
Friday, October 30, 2009
ODTUG 2010 submission deadline
Every year the Oracle conferences are a place to meet other fellow Oracle people and hear the latest and greatest in Oracle world.
Normally these are the conferences I go to: IOUG Collaborate, ODTUG Kaleidoscope, Oracle Open World, UKOUG and some smaller local ones.
One of the ways to get a free pass to these conferences is to present. ODTUG was the biggest APEX conference last year and for 2010 it will be no different. Especially with the release of APEX 4.0 it will be interesting to see these new presentations. The submission deadline for ODTUG just got extended, so now there are another 10 days left to submit an abstract for the ODTUG conference...
It will be nice for me personally to go back to Washington as that was the place I went to on my first visit to the States.
Good luck with the submission!
Posted by
Dimitri Gielis
at
00:49
2
comments



