|
| SQL Modeler for Mac OSX |
#BLG_RATING# |
Dimitri Gielis |
02-JUL-2009 20:59 |
On the first of July Oracle's SQL Developer Data Modeler got a production release. You have the choice between a full version and a Viewer only version.
I installed the full version on my Mac to see how it is like. These are the steps I followed to get it working on my MacBook Pro:
- Download the zip file from OTN
- Unzip the file in my Applications folder
- You'll see a folder called "datamodeler"
- I ran a Terminal session to call this command: sh datamodeler.sh
- The first time SQL Developer Data Modeler asks you to enter the full pathname of a J2SE installation. For me the path is:
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home - Next SQL Developer Data Modeler opens and you are good to go
- I tried to generate a relational and logical datamodel and it worked great (see below screenshot of the DG Tournament schema

As expected Oracle didn't make the tool for free. I hoped differently, but apparently Larry decided against it. The latest Oracle pricelist shows under the Tools section the price of SQL Developer Data Modeler. The first year you pay USD 3,000 + USD 660 (support and upgrade), from the second year onwards it's 660, but that gives you the right to install all updates. I definitely think the product can justify the price, but maybe not for everybody or in every project as you might not want to use all the features.
One of the most important parts for me is viewing the ERD in a graphical way. I tend to use the ERD to explain clients how we see the application. Or if we come in when the application already exist, to quickly know what is going on behind the scenes. Till now I used SQLEditor of MalcolmHardie Solutions. It allows me to connect to a database and get the ERD for a schema or certain tables. It can do a lot more like adding tables, columns etc and you can see the sql statements in different formats. Below is a screenshot of the same schema as the picture before.
 Most of the time I have to rearrange the tables so it's more logic and more understandable. Personally I think Oracle SQL Developer Data Modeler looks a bit better and it has more features and I had to not rearrange that much as with SQLEditor. But then I guess that explains the difference in price ;-) SQLEditor costs $79.
I still have a lot to learn of the functionalities of Oracle SQL Developer Data Modeler, but what I saw at the conferences and what I could do so far, I definitely think it's worth for you to give it a try.
|
|
|
| APEX 3.2 Oracle Forms to APEX conversion in Oracle Scene |
#BLG_RATING# |
Roel Hartman |
02-JUL-2009 19:15 |
The new issue of Oracle Scene (the official UKOUG Magazine) out. I am very proud that one of the articles is written by ... me! It is even on the cover page! For all the folks out there who don't have a subscription, you can read my article here. Let me know what you think of it!
|
|
|
| APEX FLoating Developer Toolbar |
#BLG_RATING# |
Roel Hartman |
02-JUL-2009 12:51 |
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...
$(function(){ $('a.htmldbToolbar').parent().parent().css( 'text-align', 'center'); $('a.htmldbToolbar').parent().parent().parent().parent().css( {'position':'fixed' ,'bottom' :'0px' ,'width' : '100%'}) ; });
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.... |
#BLG_RATING# |
Roel Hartman |
02-JUL-2009 09:10 |
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?
|
|
|
| APEX: Saving item values for each user |
#BLG_RATING# |
Martin Giffy D'Souza |
02-JUL-2009 09:00 |
Someone asked me today if APEX could remember input values for specific page items. For example if you have a page with report parameters could APEX remember the report parameters that the user last used the next time they logged in?
APEX doesn't support this out of the box, however it does have some great features which can enable you to do this. You can use cookies for this but I wanted to make the solution work no matter where the user was accessing the application from.
To make things a bit more difficult, I don't want to remember all item values on a page so I must be able to control which items are "remembered" and which items aren't. I can do this by using a naming convention in my items, however I don't want to rename all my page items (I already have a lot of them). Instead I decided to create a table which will list all the items a user can remember.
You can try the demo here (follow the instructions on the page).
CREATE TABLE tapex_remember_page_item( application_id NUMBER NOT NULL, page_id NUMBER NOT NULL, item_name VARCHAR2(255) NOT NULL);
-- You don't need to add a UK, however it may be a good idea. ALTER TABLE tapex_remember_page_item ADD( CONSTRAINT tapex_remember_page_item_uk1 UNIQUE (application_id, page_id, item_name)); -- Since I name all my APEX items in uppercase, just do this as an extra precaution CREATE OR REPLACE TRIGGER trg_tapex_remember_pg_itm_buir BEFORE UPDATE OR INSERT ON tapex_remember_page_item FOR EACH ROW BEGIN :NEW.item_name := UPPER (:NEW.item_name); END; /
INSERT INTO tapex_remember_page_item (application_id, page_id, item_name) VALUES (20195, 1800, 'P1800_DEPTNO'); INSERT INTO tapex_remember_page_item (application_id, page_id, item_name) VALUES (20195, 1800, 'P1800_MIN_SAL');
For this example we'll store the values as APEX Preferences, however you could easily create your own preferences table to manage your data. I think they're several advantages to managing the preferences in your own table, however if you have a small application with a limited number of users then I'd recommend using the APEX_UTIL preference options
Create 2 Application Processes:
AP_GET_PAGE_ITEM_PREFS On Load: Before Header (page template header)
DECLARE BEGIN FOR x IN (SELECT item_name FROM tapex_remember_page_item) LOOP apex_util.set_session_state (p_name => x.item_name, p_value => apex_util.get_preference (p_preference => x.item_name, p_user => :app_user ) ); END LOOP; END;
AP_SET_PAGE_ITEM_PREFS On Submit: After Page Submission - After Computations and Validations
DECLARE BEGIN FOR x IN (SELECT item_name FROM tapex_remember_page_item) LOOP apex_util.set_preference (p_preference => x.item_name, p_value => v (x.item_name), p_user => :app_user); END LOOP; END;
For those of you that are curious APEX Preferences are stored in : apex_030200.wwv_flow_preferences$ where apex_030200 is the schema name for APEX (could also be called flows_xxxxxx)
|
|
| |
| The buzz around APEX 4.0 |
#BLG_RATING# |
Roel Hartman |
01-JUL-2009 13:28 |
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 Attachments, Notes and Tags to a record. The history is automagically kept, so auditing is out-of-the-box. You can define the properties of a column, move columns up or down, define column groups and even validations: all at runtime! So the (already thin) line between the Builder and the Runtime version of an application will get more vague. But even Websheets will have its limitations: The Page Flow is limited and also the control over the Look & Feel is less exhaustive as with 'normal' APEX Pages: No use of Themes and Templates (more or less similar with the Interactive Reports).
Dynamic Actions With Dynamic Actions you can Enable/Disable and Show/Hide Items dependent on the values of other Items. Things you nowadays need to code in (one line) of Javascript, will be declarative. That means not only less manual code, but - more important - easier maintenance, because these declarations will be stored in the APEX Repository and thus be available through APEX Dictionary Views.
Charts In APEX 4.0 all charts will use the - much better looking - AnyCharts 5.1 version. Not quite clear if also the new chart types (like Gantts) can be declaratively created.
REST Web Services In APEX 4.0 you also the use of REST Webservices is declarative. There was a short - but impressive - demo how to use Yahoo Maps within APEX.
Plug-Ins
Another main new feature are the Plug-Ins (previously called 'Custom Item Types'). You can compare these Plug-Ins to Widgets or - in the good old Oracle Forms environment - Pluggable Java Components (PJCs). Just register it within the Repository and you can use it wherever you like. The idea is that there should be a central 'Plug-In Registry' where every APEX Developer can register his Plug-In and make it available for download (free or for a fee). Oracle has no plans of managing / checking / controlling that registry due to legal restrictions (although just referencing source files didn't help Napster or The Pirate Bay ;-) ). The demo showed just registering / uploading a sql file containing the Plug-In (an Amazon style star rating) and the absurd easy way to use that Plug-In in a Form. Soon Patrick will be blogging about the technical details.
Improved Application Builder Also the APEX Application Builder itself is revamped. The navigation is more intuitive, Interactive Reports are used all over the place and there is a general 'Search' function. That'll make developing with APEX even more productive...
Improved Interactive Reports
And even the, already fantastic, Interactive Reports got a make-over, with added functionality, like e-mail notification, compound filter expression (so you can use brackets and OR's in a filter) and - one long lasting request - shared saved reports!
Release Date?? As I can see for the search terms that hit my blog, "APEX 4.0 Release Date" is a very hot topic. Of course the Oracle APEX posse didn't gave a fixed date. And if they did, there is always the 'safe harbor'/disclaimer page as the first slide of the presentation. But in one of the presentations a 'date' was mentioned: End of 2009! So I will set my expectation to 2010Q1...
|
|
|
| OTNs APEX Developer Competition 2009 |
#BLG_RATING# |
Anthony Rayner |
01-JUL-2009 11:22 |
Are you the...
...travelling type? Fancy winning a free ticket for Oracle OpenWorld in San Francisco (October 11 - 15) to meet with like minded APEX enthusiasts and learn more about APEX and other Oracle technology?
Or maybe more the...
...bragging type? How would the words 'Oracle Application Express Developer Competition Winner 2009' look on your CV? It does have a certain ring to it, don't you think?
Or even the...
...academic type? What about the prospect of furthering your understanding of APEX by paging through your winning copy of 'Pro Oracle Application Express'?
Whatever your reasons, enter the OTN 'Oracle Application Express Developer Competition 2009' by submitting an APEX application that stands out from the crowd and you could be in with the opportunity of winning one of these great prizes or accolades!
For more information, including submission guidelines, all important judging criteria and registration details, please visit the OTN page and David Peake's related post. Entries close 24 August, 2009.
Good luck!
|
|
|
| ODTUG 09 - Day 2,3,4 |
#BLG_RATING# |
Insum |
30-JUN-2009 10:28 |
 I had to wait to get back home to post about ODTUG Kaleidoscope. Network connections were kinda hard to get and I was so busy attending conferences and networking with everyone.
So Here is the resume of the rest of my week at Kaleidoscope ODTUG 09 :
Day 2 - Monday
I tried to attend Tom Kyte's session but , it was full. Tom is very popular.
I attented Scott Spadafore session on APEX security essantials. He explained in details how we can prevent cross site scripting and were APEX has built-in filtering. He also talked about Session State Protection, session state protection and non-persistent password item types. I will have to read my notes and implement some of those security features.
The same day, Mike Hichwa presented APEX 4.0. All I can say is, wow. Tons of new features. Some of them I heard for the first time like built-in feature for REST Web Services. Also, the item plugin feature looks very promising as the comunity will be able to create new item types and share them.
I think that 4.0 will be an important step especially for those who are migrating from forms. The client side will be more rich since you will be able do implement AJAX declaratively (Dynamic Actions).

The APEX Meet-up was on monday night. This meet-up was the biggest by far. I counted 40 people. It is always fun the meet with old and new APEXcionados. The discussions always comes back to how cool this tool is and how the APEX community is great.
Day 3 - Tuesday
Attended Tom Kyte's session Database worst practices. This time I was early. Like always, his presentation are very good and right to the point.
Dietmar Aust presented Jasper reports integration with APEX. He showed how we can design very nice reports using a WYSIWYG editor. You have to install an appserver like tomcat and you can create reports using iReport. This is another thing that I have to try. We are currently using PL/PDF which is very good, but if you want something were it is easier to design, Jasper seems like a good alternative.
Dietmar mentioned that he would offer the integration kit for jasper reports for free. So keep an eye on his blog.
Roel Hartman session on how to integrate APEX and Oracle Forms was also very interesting. Roel showed us how he integrated a real form in an APEX page using iframes. He also explained how he got APEX and forms to communicate together. I think that this method could be useful if you are partially converting a FORMS application to APEX and if you had shared canevas between the OLD application and the new APEX application.
Brian Spendolini explained how we can build an APEX application on the iphone. Again, another thing that I have to try. Very interesting.
Tuesday evening , we had a great "Meet the Oracle Ace Reception". And also, I had a super great time playing Texas Hold'em with friends.
Day 4 - Wednesday (Quebec National Holiday june 24)
I attended the following sessions :
"Intelligent Data Exploration with APEX and OLAP" by Marty Gubar. He showed how to create drilled down reports on Oracle OLAP Cubes. Another good utility of APEX.
"Effectively Manageing an APEX instance using Resource Manager" by Joel Kallman. He explained how to create and maintain consumer groups to avoid having long running cpu intensive processes impacting the database. This is a very nice feature of the Enterprise Edition.
Then, it was my turn. gulp ! I talked about our Software As A Service and how we serve multiple companies with the exact same application. I showed some of the techniques that we use for having different looks and menus. So hopefully people learned something.
 Day 5 - Thursday
Well, this was the last day. I was surprised to see how many people attended the last sessions.
I saw Patrick Cimolini "Developing a Rules and Guidelines document for APEX" session. For people like me that are more involved on the administrative side, this session was very interesting. He explained how they created development guidelines, standards and rules to have a team of developpers working on projects and delivering these projects on time and on budget. Basically, sometimes, you have to let go some of the cool stuff to be able to deliver on time.
Josh Millinger session "10 Easy ways to develop faster and more professionnaly with APEX" was also very popular. Lot of great tips to be more productive while developing with APEX. On of my favorite is : Don't try to re-invent the wheel. There are so many built-in features, especially for AJAX and Javascript.
So this is it. Now I have to get back to work.
It was nice to meet with everyone again. I had a lot of fun with other Canadians (Canapeans) fellows from Cognera in Calgary and with people from all around the world. Hopefully, we will have the chance to meet again at Oracle OpenWorld.

|
|
|
| ODTUG in the rearview mirror |
#BLG_RATING# |
Roel Hartman |
30-JUN-2009 10:21 |
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 with a good ROI (but of course you knew that already...). Olivier Dupont showed that at Brussels Airport APEX is used for securing the entrance to all parts of the area (a real mission critical example!), even using no (real) browser and no mouse. Cognera utilizes APEX for their billing solution in the utilities market in Canada (using BPO and SaaS constructions). Martin D'Souza even showed they embedded APEX into an Access application! On behalf of PAETEC, Dennis Vanill presented their APEX enterprise application using an own framework to intercept the standard APEX rendering in order to minimize the number of common objects. Jan Navratil showed that the National College for School Leadership uses APEX to support over 200,000 school leaders in the UK. At Cornerstone Brands APEX is successfully used in their call center to handle thousands of orders daily by hundreds of users. So even a data entry environment APEX is suitable as Paul Davidson showed. Using the new APEX application the call center reduced the time per call and so increased the number of calls per agent substantially.
All examples showed APEX is suitable for mission critical enterprise applications with large numbers of users, even in a data entry environment!
The last general session of the day was a keynote by Steve Miranda. He demo'ed a (small) part of the new Fusion Apps. The UI looked very web 2.0, impressive functionality and animations. Although I wondered if all this visual force is still impressive - and useful - if you use such an application on a daily basis...
Monday June 22 Doug Gault kicked off the APEX part of the day with Performance Tuning APEX Applications. Performance is all about the User Experience. Some free tips: Separate UI (APEX) from Logic (SQL); move anonymous PL/SQL into the DB; use binds; instrument your code; gather statistics (for both application and APEX schema). For monitoring performance you can use the APEX Reports (especially the By Weigthed Page Performance); set the debug mode on; show the #TIMIMG# substitution variable in the region footer; use Firebug and/or set &P_TRACE=YES in the URL. Next, mister APEX Security himself, Scott Spadafore, covered the APEX Security Essentials. All about the risks of hacking and the APEX answers thereto: session state protection, session timeout, VPD etc. The last session of the day was more or less the general APEX keynote: APEX 4.0 by Mike Hichwa. For a very interested and curious crowd of over 200 people, Mike showed a lot of cool new features. More details about that in a next post. In the evening we had the usual APEX meetup in one of Monterey's many restaurants. The meetup is getting bigger and bigger. This time there were more than 30 people!
 Tuesday June 23 Another (beautiful) day packed with interesting APEX sessions. Bharat had the honor of keeping everyone's interest (after yesterdays meetup). He easily attracted attention by showing what you can do using DHTMLX Tree's and Grid. Very web 2.0 like pages with no resemblance of the standard APEX Themes at all! Later that day Tim St. Hilaire dived into the wonderful world of jQuery and Yahoo UI. He showed how you can solve Wait Processing, Pop Up Dialog Boxes and Autocomplete functionality using these Javascript frameworks. Looking at the LOC needed for implementing this functionality jQuery will be my personal preference! Next John Scott showed what you can do to increase the scalability of APEX. Using caching, minifying javascript, adding expiry info, gzip files etc you can dramatically reduce the number of round trips and the size of the data transfer. Then it was my turn to present about How to integrate Forms and APEX. It went rather well, although I finished somewhat early. For myself I noted some accents to improve the presentation for OOW! The last session of the day was done by Brian Spendolini. He demoed how to use Oracle Application Express on the iPhone. He showed how to overcome the size and navigation limitations of the iPhone and how to create real native iPhone APEX apps. Very cool stuff... That evening I was invited for the Oracle ACE dinner in the other conference hotel at the beach. Nice food and good company. As always we ended up at Knuckles...
 Wednesday June 24 The (for me) final day of the conference started off with Dietmar Aust's Generating complex Excel reports with APEX and jXLS. Maybe as a last resort I would come up with this solution, but it is not my tool of choice, because you have to learn another specific "jXLS language" and some Java stuff for the communication with the engine. Next Joel Kallman showed how to Effectively Manage an Application Express instance using the Oracle Database Resource Manager. With live demo's on oracle.apex.com he explained how to use the different resource settings in order to improve the overall performance. With 7,000,000 page views a week, apex.oracle.com has only around 5 (real) active sessions at any moment. Should I say more on scalability? After that, two sessions about managing the development of larger and multiple applications. In the first, Scott Spendolini explained the use of multiple Applications (one master application to subscribe to, one login application, one template application with all the subscriptions as a starter app and one for access control) can simplify, unify and speed up your development effort. In the other session Raj Mattamal raced - in his own special way ;-) - through the problems you might encounter when working with a larger team on an APEX application. Version control, page locking, page exports and - again - splitting up an application into different sub-apps where discussed. In between these two, Francis Mignault talked about How to Build a multi-tenant SAAS application with Oracle Application Express. Very impressive to see how they managed to support such a different style of UI for their customers, while it still is one application in the end. Using VPD, customer specific style sheets and customer specific information it seemed like we were looking at totally different apps!
Thursday to Sunday June 25 - 28
While suffering from an information overload I decided to skip the last three sessions on Thursday morning and drove to Yosemite. After a very nice drive over the Californian roads (sometimes very long and straight, just like in the movies) I arrived in Yosemite. First I went to see the really, really big sequoias. Then I drove all the way up to Glacier Point. From there you have a stunning view on the amazing wonderful environment. Another long and winding road later I ended up in Yosemite Valley where I had reserved a cabin on forehand. Lots of squirrels, chipmunks and raccoons, but no bears... The next day I headed up to Mirror Lake, and took a quick look at the Yosemite Falls. Alas I had too little time to make a big hike all the way to the top, because I had to turn in my car at the end of the day. Another fine drive to (even visited La Grange) San Francisco - driving over the Bay Bridge is really special! Early next morning to the airport to catch my 7:35 flight to Atlanta. In Atlanta my 2 hours transfer time was extended to five hours before I could get on the long second leg to Amsterdam. Back home Sunday around noon....

Thanks to Crystal and her team and all the ODTUG volunteers it was another great ODTUG conference. Hope to see you all in October at OOW or at the next ODTUG event (in Boston? Atlantic City? Orlando?).
|
|
| | |
|