Inside Oracle APEX by Patrick Wolf

The future of Oracle APEX - aka Oracle APEX 4.0

In case you haven't read it on Marc Sewtz blog or in the newest edition of the German Oracle APEX community newsletter, on Friday July 25th at 14:00 (German time) there will be a WebCast about the features the Oracle APEX team is currently working on for Oracle APEX 4.0! The WebCast will also cover some tips & tricks for APEX 3.1.1.

Get the details about how to join the WebCast at the German Oracle APEX Community web site.

Note: This WebCast will be in German.

Labels: ,


« ... Read full posting ... »

More Oracle APEX sessions at Oracle Open World 2008

Looks like that the proposed Oracle APEX sessions at Oracle Mix did quite well. Not only did Raj's session about Security: Writing Custom Authentication Schemes for Application Express get most votes, congratulation Raj! But what I have counted, there are also 8 other Oracle APEX related sessions which made it into the top 35 sessions which are going to be invited to Oracle Open World 2008.

A great day for Oracle APEX at OOW 2008!

Labels: ,


« ... Read full posting ... »

Security: Writing Custom Authentication Schemes for Application Express

Raj Mattamal has put up an interesting topic for a presentation at Oracle Open World 2008, it's about Writing Custom Authentication Schemes for Application Express. The presentation is not just the basic stuff you will find in the manual or the tutorial, it goes way further. For example it covers SSO over multiple workspaces.

In case if you are not interested in the topic, it's still always fun to watch Raj doing a presentation/see him talking (fast). This guy has way to much energy or is drinking to much Red Bull ;-)

So people, vote for him that he is able to present that topic at Oracle Open World 2008!

And don't forget about the other great Oracle APEX sessions!

Labels: ,


« ... Read full posting ... »

My presentation at ODTUG Kaleidoscope

Just a very short blog posting, I'm currently sitting in the APEX vs ADF Shootout session hosted by Dimitri and Lucas, but I thought I should put my Increase Your Oracle APEX Development Productivity with Open Source Tools presentation online, which I have presented yesterday.

So here you go, it's in the download section together with my other presentations.

Labels: , ,


« ... Read full posting ... »

ApexLib 1.7 released!

Unbelievable, but I finally found the time to put together a new release of the ApexLib Framework for Oracle Application Express (APEX).

I have created bug fixes and enhancements since the last version has been released last year, but I just sent them to the person who requested it. I thought it's really getting time to put together a up-to-date version which also handles some issues with the last Oracle APEX 3.1.1 patchset.

The new version contains some new features, trimming blanks from submitted page items and tabular form columns is one of them. To disable the feature use $APEXLIB_NO_TRIM$

I have also updated the installation and integration documentation to the new style of the web page. See the change log for a full documentation of change requests and bug fixes. The upgrade instructions can also be found in the change log.

Download version 1.7!

BTW, don't forget to download and install the integration files for the Oracle APEX Builder Plugin to get a seamless integration of the ApexLib settings into your APEX Builder development environment.

Have fun using the framework!

Note: Version 1.7 will probably be the last version which supports Oracle APEX 2.2

Labels: ,


« ... Read full posting ... »

Vote for Oracle APEX sessions at Oracle Open World!!!

You may have already read it on Carl Backstrom's blog, Oracle has reserved some slots for community suggested topics for the upcoming Oracle Open World in September.

Want to hear more Oracle APEX related presentations during the conference?

It's up to you!!! Vote for the following Oracle APEX sessions, so that they are added to the conference program.I can really recommend "How to Hack an Oracle APEX application" by Anton Nielsen, I have already seen it at the unconference track at last years OOW.

Give APEX a boost and vote now! Voting ends 24th June.

The voting takes place on mix.oracle.com. You have to register if you have no account yet.

Update 21-Jun-2008: There is another new session available. Security: Writing Custom Authentication Schemes for Application Express

Labels:


« ... Read full posting ... »

Für Kurzentschlossene

Gehörst Du zu den spontanen Personen? Dann ist das Deine Chance!

Bei unserem Oracle APEX Training nächste Woche vom Montag, 02. Juni bis Mittwoch, 04. Juni sind noch ein paar Plätze frei. Schnell anmelden und nächste Woche beballtes Oracle APEX Knowhow erfahren!

Bis nächste Woche!
Patrick


Labels:


« ... Read full posting ... »

New entry page for my Oracle APEX activities

Some time ago I have registered the domain oracleapex.info and I finally found a few spare minutes to create an entry page for all my Oracle Application Express (APEX) activities.

I want to move all my APEX related open source projects to this domain. The Oracle APEX Builder Plugin is already hosted there and for my new project, Oracle APEX Essentials I have created a new web page today. The ApexLib Framework should also follow as time permits. I'm having a busy schedule lately.

BTW, I'm still looking for more beta testers for Oracle APEX Essentials. Get the details here.

Update as of 25-May: I have created a new web site for the ApexLib Framework, too. Now everything is complete.

Labels:


« ... Read full posting ... »

Oracle APEX 3.1.1 is out!

Just read on Joel Kallman's blog that Oracle Application Express (APEX) 3.1.1 is out. That's the long await patchset for the recently released Oracle APEX 3.1, which fixes some bugs we where facing. The readme file lists 52 fixed bugs.

The patchset can be found on MetaLink (search for Patch Number 7032837). The full download of 3.1.1 should be available shortly on OTN.

Labels: ,


« ... Read full posting ... »

Caution with new "Runtime Where Clause" in Oracle APEX 3.1

Found out the hard way that the new property "Runtime Where Clause" for processes (eg. Fetch, DML) has a serious bug. The value of the property gets exported and is contained in the export file of an application, but it isn't set when you import an application!!!

Because most of us are not developing on the production system, that bug is a real show stopper for that feature, because you never get the identical application onto the production system or to the customer.

The problem has been reported and according to Scott from the APEX team, it's getting fixed in 3.1.1

Note: The "Optional Where Clause" of "Get Next or Previous Primary Key Value" processes is not effected by that behavior, this property was already available before Oracle APEX 3.1

Labels: ,


« ... Read full posting ... »

Oracle APEX Award - Your chance!!!

Oracle Germany has announced an Oracle Application Express (APEX) Award with a grand prize of

€ 5.000 (about USD 7.750)

for the winner! The terms and deadlines can be found at www.oracle-apex-award.de (in German), a translation can be found at the following OTN thread. The contest is open for all nationalities, but the created application has to be delivered in German.

A few months ago I made a minor mistake, I agreed to be in the jury so I can't take part myself. But you should take your chance!!! Not only can you win a lot of money, the winner is also announced on several German web sites and in the media. In case you always wanted to get famous or wanted to increase the publicity of your company, that's your chance!

Labels: ,


« ... Read full posting ... »

APEX Essentials - Looking for early adopters

drum roll...drum roll...drum roll...

APEX Essentials - A great new tool on the Oracle APEX horizon...

but to finish it I need your help!

What is it?

APEX Essentials is my current working title (might also be the final name) of a new open source project which includes essential Oracle APEX tools for your daily Oracle APEX application development.

The first tool of this collection is

The Oracle APEX Advisor

Ever had the problem that you referenced a non existing page item with the substitution- or bind variable syntax, but you didn't notice because Oracle APEX just returns NULL in such a case without raising an error?

You did some data model or PL/SQL package changes and didn't notice that you broke your APEX application code? If you are lucky you get a runtime error. In some cases you don't event get that. Oracle APEX just ignores your invalid code... See OTN forum threads here and here.

APEX Advisor is some kind of a "compiler"/LINT for your Oracle APEX application. It goes through your applications meta data and performs a variety of checks. Some of them are to find invalid PL/SQL code or invalid references to page items, but others are more kind of "Best Practice" checks like
  • don't use V/NV in SQL statements
  • unconditional branches before conditional ones
  • ...
Currently there are a total of 22 checks which are performed! And the good news is that it has a plugin system so that you can add your own QA checks!

Want to take a quick look?

I have set up a demo workspace on apex.oracle.com where I have uploaded most of the Packaged Applications which are provided by the Oracle APEX team. So you can try it online first, before you request a beta copy.

Login with

Workspace: ae_demo
User: guest
Password: 123456

and run the application "APEX Essentials". If you are prompted for a username/password enter guest/123456

Note: Don't change anything in this workspace!

You can also directly run it, but then it's not integrated into the Oracle APEX Builder.

Want to test it with our applications?

The reason why I'm calling out for early adopters/beta testers is that only your real world applications can prove if the tool works or not and if there are still unhandled cases. If you want to participate in the beta, send a mail to beta@oracleapex.info

Ideas to improve it?

Are there some checks which you perform on your application, ... or do you have other ideas how to improve it. Please post them on the following OTN thread.

Pre-requirements

The tool has been developed to work with Oracle APEX 3.0 and newer versions and requires Oracle 10g or newer versions.

Screen captures of a quick test




Labels: ,


« ... Read full posting ... »

Integrate Speech Recognition into Oracle APEX

Tyler Muth has posted a really cool example on how to integrate Oracle APEX with another service.

Jott is a speech recognition service and allows to integrate third party applications into there service. Tyler used this mechanism to write the output text of the speech recognition into the table of an Oracle APEX application. Read all the details on his Speech to text to Oracle APEX posting.

Great work Tyler!

Too bad that the service is not available in Europe :-(

Labels: , ,


« ... Read full posting ... »

ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.

If you get an ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc. from your DML process when you submit the changes in an Oracle APEX application, then this is because Oracle APEX tries to lock the effected record before it updates/deletes it. This behavior was introduced in Oracle APEX 3.0, but with the side effect that complex updateable views with an instead of trigger get the above error.

BTW, why does Oracle not have a "locking" branch in an instead of trigger???

Back to the topic, what can we do?

In Oracle APEX 3.0.1.00.07/08 a new switch was added to disable that behavior, it's documented in the readme for the patch, but not in the online help (bug has been filed). The switch is called FSP_DML_LOCK_ROW and is a substitution value or an application/page item. If you set the value to FALSE, the locking will not be done by the DML process.

But is it a good idea to disable locking for the entire application?

I think No! It should only be done for those pages where it's necessary.
  1. Create an application item named FSP_DML_LOCK_ROW
  2. Create an application computation with the following settings
    • Sequence: 0
    • Computation Point: After Submit
    • Computation Type: Static Assignment
    • Computation: TRUE
  3. Create a computation on the pages which have the error
    • Sequence: 10
    • Computation Point: After Submit
    • Computation Type: Static Assignment
    • Computation: FALSE
BTW, there is another switch which effects the locking, it's called APEX_DML_LOCK_WAIT_TIME. For details have a look at the documentation.

Labels: , ,


« ... Read full posting ... »

Do you want to learn more about Oracle APEX and get some insights into Oracle APEX 3.2?

Then you have to attend our second Oracle APEX training! This time it's held in Munich from 02-Jun-2008 to 04-Jun-2008.

More detailed information follows in German:

Denes Kubicek, Dietmar Aust und ich freuen uns Euch wieder ein paar neue Einsichten, Tipps und Tricks zu Oracle Application Express (APEX) vermitteln zu dürfen. Die Agenda der Themen welche wir behandeln gibt es hier.

Besonders freut es mich, dass wir dieses Mal den Marc Swetz vom Oracle APEX Entwicklungsteam aus den USA als Gastredner begrüssen dürfen!

Marc wird uns ein paar Einblicke in die nächste Version von Oracle APEX und dem SQL Developer geben. Er wird auch an den Abendlichen Q & A Sessions teilnehmen, damit er aus erster Hand die Fragen und Anregungen die bei der täglichen APEX Entwicklung auftauchen, aufnehmen kann. Nutzt diese ideale Gelegenheit um Euch mal mit dem Oracle APEX Entwicklungsteam auszutauschen! Und keine Angst, der Marc spricht Deutsch :-)

Die Abendlichen Q & A Sessions sind überhaupt beim ersten Training sehr gut angekommen, weil es die Gelegenheit ist seine konkreten Projektfragen/-Probleme von drei Oracle APEX Experten beantworten zu lassen.

Also nicht lange zögern sondern jetzt Anmelden!

Würde mich freuen Euch dort zu sehen.



Labels: ,


« ... Read full posting ... »

Undocumented option for Static List of Values

Did you know that the STATIC and STATIC2 keyword used to define Static List of Values for Oracle Application Express (APEX) contains an undocumented option?

The online help documents the usage with
STATIC[2]:Display Value[;Return Value],Display Value[;Return Value]
But what to do if one of your values contains the semi colon or the comma in the text? You will get a problem with the predefined separators!

In such a case you can use
STATIC[2](lov-entries-sep,display-return-sep):Display Value[<display-return-sep>Return Value]
<lov-entries-sep>Display Value[<display-return-sep>Return Value]
For example:
STATIC2(~,*):Cat, Dog*1~Nemo, Shark*2

Labels: ,


« ... Read full posting ... »

Is there life on planet Oracle APEX 3.2?

Sure there is! ;-)

David Peake the Product Manager for Oracle Application Express (APEX) recently blogged about this "unofficial" insight what's on the drawing board after the patch release for Oracle APEX 3.1.

Get the details in this A peek over the Application Express horizon posting!

Labels: ,


« ... Read full posting ... »

Remote debugging of an Oracle APEX application

If you ever wanted to remote debug the PL/SQL code which is called during execution of an Oracle APEX application, then have a look at the May/June issue of the Oracle Magazine. David Peake wrote an article titled The Power of Two on how to use SQL Developer to do that. On the German Oracle APEX Community Web-Site you will find a similar how-to in German.

Update: In Oracle APEX 3.1.1 there will be a new debug mode called REMOTE to enable remove debugging in Oracle APEX without having to modify the application. See the related posting on the OTN Forum.

Labels: , ,


« ... Read full posting ... »

Oracle APEX: Got a 404 Not Found?

Maybe you also already got the 404 Not Found error message

The requested URL /pls/apex/wwv_flow.accept was not found on this server.

when you submit an Oracle APEX page, ...

There are a lot of reasons why this error can occur. But the above error message doesn't tell you a lot about the root cause of the problem. The real error message can be found on your Apache Web server in the Apache\Apache\logs\error_log.xxxxx file. There you will find and entry like
[Thu Apr  3 ...] mod_plsql: /pls/htmldb/wwv_flow.accept HTTP-404
wwv_flow.accept: SIGNATURE (parameter names) MISMATCH
VARIABLES IN FORM NOT IN PROCEDURE: P_T02XXX
NON-DEFAULT VARIABLES IN PROCEDURE NOT IN FORM:
Without the above information, you have no chance to find out what's causing the 404 error. But the problem is, that most developers don't have access to the application server.

You don't have to!

Just put
<Location /pls/apex>
...
PlsqlErrorStyle DebugStyle
...
into your dads.conf/marvel.conf and after restarting the Apache server you will get the error message directly in your browser.

For more details about PlsqlErrorStyle, have a look at the documentation.

Note: Only use this setting on developments systems, because on production systems a hacker might get more information as he should!

Credit for this tip goes to Dietmar Aust!

Labels: ,