Skip to main content

Posts

Showing posts from 2009

APEX 4.0 : Overwhelming...

Just like the rest of the 'APEX World' I immediately jumped on the 4.0-bandwagon and signed up for a workspace on http://tryapexnow.com . Although I have seen a lot of the 4.0 stuff this year, but having the thing in your own hands is something completely different! IMHO this version (even without Websheets!) is the major APEX release ever. There are so many new, enhanced or restyled features, it just blows you away on first sight. I almost feel a newbie again... I hope to find the time to dive into some new features the next couple of days (or probably weeks..).

Abstracts accepted for IOUG Collaborate and ODTUG Kaleidoscope

Last Friday I received a mail from IOUG Collaborate telling me my abstracts were accepted. It will be my first Collaborate attendance (and my first visit to Las Vegas), so I am very honored by that! I will do the next two presentations there: It's great to integrate: Integrating Oracle Forms within Oracle Application Express. Since the release of version 3.2, the Oracle Forms migration toolkit is part of Oracle Application Express. This toolkit is not a silver bullet, so for complex Forms, labor-intensive adjustments in APEX will be necessary. To preserve investments in Oracle Forms and to prevent large re-investments in APEX, it is an advantage if you fully integrate existing Oracle Forms within Oracle Application Express. In this session you will learn how to integrate existing Oracle Forms in Oracle Application Express pages and how you can make these two technologies communicate with each other. Tales from a Parallel Universe: Using 11gR2’s Edition Based Redefinitions (in APEX...

UKOUG 2009 recap

Last week I had the pleasure of visiting the UKOUG Technology & EBS Conference. The 3 days of presentations and social networking started already on Sunday evening with the ACE dinner - very well organized by Mark and Debra. Thai food combined with good company is proven to be an excellent combination! Amongst all the tracks I picked the ones on APEX 4.0, Forms-to-APEX conversions and some DBA / CBO / SQL presentations. APEX 4.0 One of the greatest (of many) interesting features of APEX 4.0 is - without any doubt - the Plug-In functionality. Anyone can define snippets of code that can be used in a declarative way in your application. By defining a Dynamic Action based on a Plug-In, you can probably do anything - only limited by your imagination! Plug-Ins are defined per application, but can be published and subscribed, like you can do with Templates. Oracle is planning to have a Plug-In repository at apex.oracle.com (or samplecode.oracle.com) containing the Plug-In code itself or ...

Updateable Interactive Report - Websheets style

For a current project the customer needed an Interactive Report with update functionality - in an Excel like style. Since we couldn't wait for APEX 4.0, we decided to build it in the current version. The requirement is that the user can change some fields in the report (the Expenses, budget and estimates) for every year of the project life cycle and then the funding should be calculated according a defined formula (to financially smooth things out). So I created a nice view with a formula to show the budget en estimate and the calculate the funding and created an Interactive Report on top of it. The editable fields are created using the apex_item.text function with the p_attributes parameter set to: 'onclick=editField(<type>,<key1>,<key2>) readonly class="editField"' . Once the user clicks on the field, the field is presented in a different style, made editable and with two little icons next to it. After making the change, the user hits the green...

Collecting ideas for APEX 4.0 Plug-Ins...using Google Wave

As you all know by now APEX 4.0 will have some new functionality regarding the creation of Custom Item Types and Custom Region Types. These types will be called "Plug-Ins". The idea is that there will be a public App Store like library where you can up- and download plug-ins. A snippet from the Oracle Open World APEX 4.0 presentation: Easy way to enhance the existing built-in functionality of Oracle APEX with new item types, region types, dynamic actions, etc. Developers use in similar fashion to native widgets Wizard support and declarative setting of attributes Included in APEX application export By providing this plug-in system in APEX, we want to engage the APEX community to create a rich ecosystem around Oracle APEX. The APEX Development Team can’t possibly incorporate all the widgets that developers would like to utilize. By using plug-ins developers can readily incorporate additional item / region types to enhance the functionality, appearance and user friendliness of ...

Oracle Application Express Forms Converter Book - Review

As I promised earlier I should write a review of the Oracle Application Express Forms Converter book by Douwe Pieter van den Bos. I finally found the time to work it through...it doesn't take that much time, because it is "just" 150 pages thick (or thin). The book contains 8 chapters, in which the reader is guided through an Forms2APEX conversion project from start to finish. It starts of with " Understanding your Project " (1), wherein understanding the reasons for conversion as well as the functionality of the Forms application is stressed as important, because these will influence the way you'll solve things in the APEX application. One or more examples should have been useful here. The next chapter, " Preparing your Forms Conversion " (2), covers the creation of XML files from the source files. BTW, not only Forms, also "Reports" are - briefly - touched (and can be converted as well). Also different ways of creating a target database...

A Google Wave in an APEX Page

That is soooo simple, click here http://apex.oracle.com/pls/otn/f?p=41715:APEXWAVE .

My first blogpost using Google Wave

It is somewhat experimental, but here it is...and you probably can't see it if you don't have a Wave account. There should be a " Bloggy " robot to facilitate postings from within Wave with just one click, but that doesn't seem to work. Instead I used Embeddy (embeddy@appspot.com) to give me some javascript with the Wave ID. I copied that and pasted it in the HTML of the Blogger Template. The DIV is just added to thi post. You can only have either one blogpost with a Wave or need a line of javascript for each Wave you need to publish. So a working version of Bloggy might be handy...

Handling information overload: Showing data on demand in an IR

Using APEX Interactive Reports you can let the user decide which columns to show or hide in a report. But even then, reports with over 20 columns are still being used. So I tried to come up with a solution where you can hide less important (detail) column information and still reveal that information with minimal effort - like a mouse-over event. In this tiny example the list of employees of a department pops up when the user moves his mouse over the little question mark icon. By adding some HTML and Javascript in the select statement (I know, that is not a " best practice "...but if you've got a better idea, please drop a comment) and some CSS you can use this technique - even for more complex "detail" reports! The select statement used in this example is: select dept.deptno , dname , loc , ' onmouseover="javascript:$(''.overlay'').hide();$x_Toggle('''||dept.DEPTNO||''')">'|| ' ...

Integration of Forms and APEX : Calling APEX from Forms

In previous blog posts (like this , this and this one) I explained how you can integrate (or embed) Oracle Forms within an APEX Page. But yesterday I stumbled upon this question on the Oracle APEX Forum. There someone was looking for a solution how to access an APEX Page from an Oracle Form - so exactly the other way round. And, after some trial-and-error I came up with this solution: 1. Copy the basejpi.htm (or whatever html file you're using in the formsweb.cfg) on your application server to (something like) forms2apex-jpi.htm and reference that in your formsweb.cfg. 2. Edit the forms2apex-jpi.htm and add an IFRAME tag just before the closing BODY tag: <IFRAME src="http://localhost:7778/pls/apex/f?p=104" style="width:800px;height:450px;visibility:hidden" name="APEX" id="APEX" scrolling="auto" marginwidth="1" marginheight="1" frameborder="1...

New cool Quest Tools

Yesterday evening guys from Quest presented their latest cool new tools at one of our company locations. They started with Foglight , a tool for Application Management. Using that tool you can see on one page the status of the applications that are running, where users experience some problems (based on thresholds), the number of users affected and where in the application stack the problem occurs. With a few clicks you can drill down to the actual origin of the problem. Foglight supports a number of application types (like Java, .Net, Siebel, SAP), different types of access (o.a. Apache, Citrix, Rich Clients), multiple infrastructures (Windows, Solaris, HP/UX, VMWare) and different databases (SQL Server and - of course - Oracle). Foglight uses so called "Quest Collectors" on the web-, application- and databaseservers to sample data. That data is collected in the Foglight Management Server . Apart from that you can use an Experience Monitor and Viewer as a network sniffer. Q...

Want to be a presenter at the Oracle Developers conference?

Developers and architects attend Kaleidoscope to find out how to use the new technologies to make their jobs easier. Your expertise and experience are key to our participants getting their questions answered. Click here to submit your abstract to speak at the developer event of the year. ODTUG Kaleidoscope 2010 at the Marriott Wardman Park Hotel in Washington, D.C. is the conference for Oracle developers and architects. Kaleidoscope has it all - more than 150 technical sessions, day-long symposia, hands-on training, chats with participants and speakers, and even a community service project. So far the "offical" advertisement. My personal opinion is that Kaleidscope is the place to be for Oracle Developers. Just because it is at a 'somewhat' smaller scale than - for instance - Oracle Open World (last year there where around 700 attendees), you can speak to whoever is there (and 'everyone' is!). Also the content of the presentations is very good. But don...

Oracle Application Express Forms Converter Book - Review coming up!

Back from OOW I found the Oracle Application Express Forms Converter book in my pile of mail. I received a free copy - just adding the word 'free' in order to prevent a claim from the FTC ... ;-) for writing a review on this blog. I haven't had a change to read the book, although it is only 172 pages, significantly less than the other Oracle related books on my shelf. If you are interested in a review now , please read Marc Sewtz's blogpost - he has already read it and wrote a review. I will try to write the review somewhere next week (with the usual disclaimers applied). If you're curious, you can read a preview chapter of the book here .

New article : Integration of Oracle Forms and APEX

When I opened my mail after a week in San Francisco I discovered that my article was published in the latest release of WeLoveIT (a free magazine for Oracle & Java users and developers). If you can read Dutch (or want to try), you can read it either here or here .

OOW 2009 : Thursday and wrap up

The day started easy: The first session had similar content as the last one of yesterday - which I didn't like too much - and the second one got cancelled. So a late start, what was fairly convenient because of yesterday's party... The first one was by Arup Nanda about 11g New Features for DBA's . Since 11g is already 'old school', I didn't learned that much: physical / logical / snapshot standby databases (quite handy for testing in a real production environment, performing rolling upgrades and reporting); partition by reference (where you can easily keep master and detail data in the same partition) etc. I was hoping for more R2 stuff, but maybe it is just to early as that version was released just a couple of weeks ago. The second one was all about Data Security . There are so many features and options regarding that subject. To name a few: VPD, FGA, Encryption, Data Masking, Advanced Security, Audit Vault, Database Vault, Label Security, Secure Backup.... I ...

OOW 2009 : Wednesday

I started off with a good breakfast with my roomies Marco and Jacco. Because there wasn't any interesting session in the first timeslot (or I couldn't find it), I attended the Exhibition Hall - which is mainly the same as previous years. Everyone wants to 'scan your badge' so they can spam you afterwards. Next there were two sessions I really liked, and - it may or may not be a coincidence - both were 30 minutes 'power sessions'. The first one was by Mark Drake, the Product Manager for XML DB, about Managing XML Content with APEX . Very good job, although having live demo's obviously are a risk...and that's why I like them! The next one was about Row Level Security / VPD and APEX. The presenter had a good demo and explained the stuff nicely. I followed the keynote from the OTN Lounge (it is less boring with a beer). It wasn't a surprise anymore that The Governator would attend. Arnold emphasized that technology will deliver the solution for CO2 redu...

OOW 2009 : Tuesday

This day started easy by skipping the keynotes. So the first session I attended was at 11:30, called The Life of a Query in which the presenter revealed the details on the internal processing of the Oracle database. Next was Giving your Application Express a Web 2.0 Facelift . Not that many new things, but Raj is always very entertaining to watch. The most interesting thing I saw was a new prototype of the APEX Developer page on Patrick Wolfs laptop: Instead of the current Page Definition view (with Page, Regions, Items, Processes and so on), the same information was presented in an DHTMLX tree view! Patrick showed how you can easily re-order Items, copy buttons etc by just dragging them around in the tree. And on every object you can do a right mouse click that would present the actions you can do with that object. It looked very slick! We shortly discussed whether or not you should expand that tree with one level (Page) or even two (Application), to make it even easier to copy and m...

OOW 2009 : Monday

Still suffering from the jet lag I woke up at 6 AM today. Due to all kinds of other 'obligations' I only attended one session today about "How to get 10x improvement of your PL/SQL Application performance time" . And that one was all about TimesTen (a.k.a. IMDB - In Memory Database Cache). The session started with a small - alas pre-recorded - demo that indeed showed a 10x performance benefit. But before you all start to move all your applications to TimesTen, be aware that there are 'some' limitations: - Not all standard PL/SQL packages are available in TimesTen - You can't call PL/SQL from SQL - You can't use triggers in TimesTen - You can't join between tables in TimesTen and the 'real' database So due to this limitations, you can't run all PL/SQL applications (like APEX!) in a TimesTen database. However it would be extremely cool if you could use TimesTen for APEX (imagine APEX running 10x faster!). So maybe somewhere in the future,...

OOW 2009 : SUN-rise on a SUN-day

This week I am in San Francisco for my third Oracle Oracle Open World. Because it was my second consecutive visit I received an "Oracle Alumni" tag (for my badge) and a nice jacket during registration. This Sunday the first session (at 800 AM! - OOW is really hard work...) was by...me! There were around 50 to 60 attendees, and IMHO that's not too bad for a session at that time. The session seemed to be interesting enough for 111 people to include in their schedule, but I guess for a few of them it was too early after all... The session went ok, not great, but ok. I would rather do a session after being a couple of days in the US, because then you're more used to the language. This one was within 20 hours of arrival. Right after my session - and a well deserved cup of Starbucks coffee with Edwin - I went back to the "Holland ACE House", where I am staying with Marco, Andreas and Jacco, to drop off my laptop. BTW the house, rented by Anjo (thanks mate!), is ve...

Forms / APEX Integration video

I just uploaded a video with a small demo of the integration of Oracle Forms and APEX. The quality is not quite what I wanted, but it gives - some kind - of idea. If you want to see the real (high res) demo, you can visit my presentation at Oracle Open World (at Sunday morning 8:00...) - or at the upcoming UKOUG.

Getting rid of the annoying popup help

Recently I stumbled upon two excellent blog posts about how to change the default pop up APEX Help functionality to something more user friendly. Martin explained how to transform the Help into a tooltip, while Piotr transformed the Help pop up into a DIV. I will add my two cents to this discussion by adding another option... The pop up is trigger by a call to the Javascript function "popupFieldHelp'. So I decided to locally overwrite that function with this one: function popupFieldHelp(pItemId, pSessionId ){ // Construct the URL vURL = "wwv_flow_item_help.show_help?p_item_id=" + pItemId + "&p_session=" + pSessionId; // Call getRequest to get the HTML for the popupWindow var popupWindow = getRequest(vURL); // Get the Subject (item name) from the Window var HelpSubject = $(popupWindow).find('.fieldtitlebold').html(); // Get the HelpText from the Window var HelpText = $(popupWindow).find('.instructiontext').html(); // S...

Running APEX on 11gR2 using Sun's (Oracle's?) VirtualBox

Today I decided that I needed an environment to play with the latest and greatest Oracle RDBMS : 11gR2. This version is only available for Unix platforms, so I needed a virtual environment to get that working on my laptop - running on XP. You can pick any kind of virtualization software, but, due to the recent take-over of Sun by Oracle, I decided to go for what's currently known as Sun's VirtualBox. I guess this product will re-branded to Oracle's VirtualBox somewhere soon. So what are the steps: 1. Download VirtualBox from http://www.virtualbox.org/ and run the installer. 2. Start VirtualBox, click 'New' and enter a Name, Operating and Version for the Virtual machine. This is gonna be a 100% Oracle thing, so I installed Oracle Enterprise Linux (OEL). 3. Oracle 11gR2 needs 1Gb of RAM, so set the memory size to 1024 - you can change this afterwards. 4. Create a new boot harddisk with dynamically expanding storage . 5. On the next page you have to set the 'si...

Easy Show/Hide items in a Form

For showing and hiding information in a Form you can use a default "Show and Hide Region". But what to do if you want to show/hide some details within a region? The answer is: with a Label Template, some cool jQuery UI stuff and "Stop and Start HTML Table" Items. 1. Create a new Label Template (From Scratch) for Template Class 'No Label'. Call it 'Show/Hide Next Image' or something else you fancy. 2. Edit the Label Template you've just created. Remove everything that's there by default. 3. Set the 'Before Label' to : <img src="wwv_flow_file_mgr.get_file?p_security_group_id=<your workspace id>&p_fname= 4. Set the 'After Label' to : " onload="$(this).next().hide();" onclick="$(this).next().toggle('blind');"> 5. Now create a "Stop and Start HTML Table" Item just before the items you want to show/hide. Edit that Item and set the label property to the name of the imag...

Transform ORA-xxxx messages into something more user friendly in APEX

When you delete a record that is referenced using a foreign key constraint you get a rather ugly error like this: Of course you can prevent such a thing from happening by creating a Page process that checks if your delete is "Ok". But that's double coding...and dangerous when you have to maintain your database structure: You'll probably forget to update the processes as well. Wouldn't it be nice if you can 'catch' that error an present it to the end user in a more friendly way (and with a somewhat more understandable text)? I guess your users will be more enthusiastic about your application (and you) when you show them something like this: So how do we achieve that? 1. Edit the "Error Page Template Control" region of your Application Default Page Template, because that's the one that is used for presenting errors. Set it to : <script type="text/javascript">$(document).ready(function(){raiseErrorHandler();});</script> ...

Blackbird : Javascript logging 2.0

When debugging your APEX Javascript stuff you probably use Firefox with Firebug. By writing messages to the console, you can follow the flow of your Javascript. Incidentally you use - annoying - alerts in your code to find out where you messed up your code. But recently I stumbled upon BlackBird! With blackbird you can write different types of messages, like info, warning and error messages, to a little console window, that looks a bit like a Twitter client. You can show/hide the window using F2. In this little window you can toggle the type of messages you're interested in. And it works even on IE! Blackbird consists just of 1 CSS, 1 JS and two image files, so it is very easy to install. Just a little tip, rename the namespace from 'log' to something like 'bb', to avoid conflicts with the Firebug log. You can find the code, demo and docs on http://www.gscottolson.com/blackbirdjs/ .

OOW 2009 Blogger Meetup

All you bloggers out there visiting Oracle Open World this year, let's get together at the traditional annual Blogger Meetup . This time the organizer is Pythian's Alex Gorbachev . Thank you Alex!!

Wondering what an Oracle ACE Award looks like?

I (finally) received the actual award (thanks to Lillian and Justin)!

Problems with running Oracle Forms on Firefox?

As I blogged about two weeks ago, I still get a lot of hits regarding problems when running Oracle Forms with Firefox. From this Client Platform Statement of Direction you can see that Firefox 2.0 (current is 3.5!) is the latest version that is certified in combination with JInitiator and Sun's JVM version 1.6.004 (current is 1.6.015). Not certified doesn't imply that it doesn't work, but from my experience running Oracle Forms with Firefox 3.0/JVM 1.6.005 works without any problems, but Firefox 3.5/JVM 1.6.005 does not! So be aware of 'automatic updates'...

APEX and Google Visualizations: Create sub-zero dashboards

APEX is cool, Google is cool, Google Visualizations are even cooler. So the combination the coolest technologies available is sub-zero! A Google Visualization needs can get it's data programmatically by using javascript: create a DataTable object and use addColumn to define the columns and addRows to define the rows. But a Visualization can also be fed with a JSON object. So I created a package prodcure that reads a sql query and spits out a JSON string in the format Google likes. This procedure is called by an APEX On Demand Application Process. In every APEX page the necessary Google Visualization packages are loaded by calling google.load with some packages, like this: google.load('visualization', '1', {packages :[ 'geomap', 'intensitymap', 'map' ]}); (The google.load function is loaded in the template by referencing a javascript file http://www.google.com/jsapi). Every chart is defined as an HTML Region. The source of that Region contain...

My most popular blog entry

According to Statcounter, the most popular page on this blog is an entry from as early as 2007...about how JInitiator can make Firefox crash. It even made it to an "official" manual of library of the Technical University of Eindhoven (it is in Dutch, and the link is almost at the bottom). I don't know if what I wrote there still holds for the current versions of Firefox and JInitiator, but according to the stats, the problem is rather persistent...

Presenting @ UKOUG 2009....

After ODTUG and OOW I will also present about the Integration of Oracle Forms and APEX at the next UKOUG event, from Nov 30 to Dec 2 in Birmingham. Unlike OOW, where my session is planned at the very beginning of the event, the UKOUG organization committee kindly planned my session in the very middle of the conference: on Tuesday from 12:05 - 12:50. So for all Europeans who couldn't make it to ODTUG or OOW and are interested in this kind of integration...you know where to go!

My session @ OOW : The first of all 1800+ sessions....

I just received an e-mail from the OOW Content Team. They've managed to schedule my session at Sunday morning from 8:00 - 9:00. So that's officially the kick off for the event... Two advantages for this early hour: I will probably wake up at 4:00 AM anyway due to the expected jet lag (just like all the other Europeans that will fly in on Friday or Saturday, so no excuse for you guys!). And I will have finished my duties one hour after the event starts, so I can enjoy the show without worrying about my presentation! Hope to see you all at this early - and probably inconvenient - time...

Ended up 10th at Oracle OpenWorld 2009 Vote-a-Session

My abstract "It's great to integrate: Combining Oracle Forms and Oracle Application Express" for the upcoming OOW ended up 10th (out of 150). That's one place up compared to last years voting! So a big thank you to all 99 people who voted for me (98 if I count myself out). And just like last year it proves that APEX has a very strong community: 5 of the top 10 sessions are APEX-related (8 of the top 30: around that number seem to get an invitation). So thanks again and I hope to see you all in San Francisco in a couple of months!

APEX FLoating Developer Toolbar

During the APEX 4.0 session at last ODTUG a question was raised: " Can we have a floating developer toolbar " (the thing at the bottom of the page with a.o. the 'Home' and 'Debug' link). There is no need to wait for APEX 4.0 to get that (if it will be implemented as a new feature), you can have it NOW! If you put the next piece of code in an HTML Region in Page 0 (or in your Template, whatever you like), the toolbar gets sticked to the bottom of your browser like glue... I guess it only works for FireFox, but that doesn't matter, because that's the tool we're all using anyway, aren't we? Oh, yeah, and you need jQuery...

Oracle SQL Developer Data Modeler available - but not for free....

Almost covered by yesterdays FMW 11g stampede, the production version of SQL Developer Data Modeler is available on OTN . As expected (see this and this last years blog entry) this is not a free tool like SQL Developer or JDeveloper. It is a for-cost option of SQL Developer, and requires a separate license. And what are the license costs (as of yesterdays Pricing List ): $3000 + $660 per year per Named User. It looks really good. The functionality is about the same as the modeling part of good old Oracle Designer (it can even import the definitions from a Designer Repository). The full Internet Developer Suite costs $5800 + support per user. But then you get the all Designer functionality + Oracle Forms + Oracle Reports... Is it worth the $3000? I don't have an opinion on that yet, do you?

The buzz around APEX 4.0

During last weeks ODTUG Mike Hichwa presented APEX 4.0. This seemed to be the best attended session (apart from the 'real' keynotes) with over 200 attendees, so a lot of people wanted to know where their favorite development environment is heading! Mike demoed some really cool new stuff - I will discuss these later on - and skipped (even more) nice features, with Declarative Tabular Forms, AJAX Client-Side Validations and Improved Error Handling make the top 3 of most interesting ones. See the pic of the slide for a complete list. Websheets There has been more blogging about Websheets last year, even with movies. But every time you see it live, it is amazing. Just copy data from a CSV, paste it into the APEX Builder and you're done! No Tables, Triggers, Primary Keys, etc needed: everything is automatically managed in APEX$xxx tables. You can update the data in line (like a Tabular Form), you can do mass update, create an LOV on the fly and add columns. You can also add Atta...

ODTUG in the rearview mirror

Still recovering from a light jet lag, it is time to look back at another excellent ODTUG event. Although I planned to blog about it on a daily basis, the social/networking activities prevented that... (a.k.a. "I rather drink a beer with some friends and have a good chat, that write another blog post" ). So here's a (rather) long wrap up of this fantastic event! Sunday June 21: APEX Symposium The symposium, with around 200 attendees, started at 8:00 AM (attending ODTUG is really hard work!). The day started with a sort of keynote by Joel Kallman , followed by 6 presentations of real world APEX applications and was finished off with a Panel discussion. Some highlights of the day: Joel did an excellent presentation called Application Express: Ahead of the Curve . He explained that APEX is still ahead of it's time and therefore will still gain (even) more interest in the market. Especially because of the high speed development, you can create all kinds of applications wi...