Display Null = "Yes" and the %null% problem

I think most of us had already the problem, that when the Display Null property for a LOV has been set to “Yes”, that APEX had generating a %null% as indexing value for this “null” lov entry.

The problem now is that when the user selects the “null” entry from the select list, the page item gets populated with the %null%. If you don’t write some code to set the item to NULL when it has %null% as value, the database will raise an error (eg invalid number…).

Recently I posted a generic solution for that on the OTN forum.

I now have integrated the code into my ApexLib_Lov package which I have developed for my Generic solution for cascading select lists/lovs.

Integration into your Application

  1. For the general installation instructions see the above blog entry. You don’t have to install the JavaScript library if you just want to use the %null% solution.
  2. Create a Application Process (Shared Components\Application Process)
    • Name: ApexLib_Lov_clearLovNullValues
    • Sequence: 1 (should be a number before any of your page level processes)
    • On submit: After Page Submission – Before Computations and Validations
    • Process Text:
      ApexLib_Lov.clearLovNullValues;
    • Process Error Message: #SQLERRM#

In the case if you don’t want to reset the %null% for a lov, you can specify $APEXLIB_IGNORE_LOV_NULL$ in the page item comment to skip the reset.

That’s it! That solution will now work for all your pages.

4 thoughts on “Display Null = "Yes" and the %null% problem

  1. Hallo Patrick,

    ich habe dein Beispiel (APP_Process) für die Umwandlung von %null% nach null von der OTN-Seite übernommen, aber leider werden die %null%-Werte nicht in DB-taugliche null-Werte umgeschrieben.

    Kannst du mir bitte einen Tipp geben, wo ich suchen kann? Der App-Process wird ausgeführt. Das habe ich mit einem gewollten Schreibfehler im Code überprüft (es kam eine Fehlermeldung beim Submit der Seite). Leider kann ich deine ApexLib hier nicht einsetzten, da ich keinen Zugriff auf den Oracle-Server habe und meine Kollegen keine “Spielereien” dulden.

    mfg

    Carsten

  2. Hallo Carsten,

    was ist wenn Du einen anderen Wert als %null% reinschreibst, siehst Du diesen Wert?

    Was sein kann ist, dass das ‘%null%’ im Prozess Code von APEX umgewandelt wurde. Versuch es mal mit ‘%’||’null%’ wie der Scott ein wenig weiter unten geschrieben hat.

    Kannst Du nicht mal ein Package im Applikationsschema einspielen?

    Lg
    Patrick

  3. Ich habe es mit ‘%’ || ‘null%’ und ‘%null’ || ‘%’ probiert. Beides ohne Erfolg.

    Was meinst du mit deinem 1. Satz? Wenn ich den Code richtig verstehe, soll der Prozess nach der Zeichenkette ‘%null%’ suchen. Wenn ich dort etwas anderes reinschreibe, sucht er ja nach etwas anderem.

    Ich arbeite erst seit ein paar Wochen mit Apex. Wenn du mir sagst, wo man ein App-Schema einspielt, dann weiss ich, ob ich das darf. Momentan habe ich nur einen Zugriff, um Applicationen anzulegen und diese mit Seiten zu füllen.

    Wenn ich deine Anleitung zur Installation von ApexLib richtig verstanden habe, brauche ich auf jeden Fall Zugriff auf den Oracle-Server, auf dem das eigentliche Apex-System läuft. Der fehlt mir (Aufgabentrennung).

    lg
    Carsten

  4. Hallo Carsten,

    kannst Du mir bitte eine Mail schicken (zu finden in meinem Profil), damit geht die Kommunikation etwas leichter.

    Gruesse
    Patrick

Comments are closed.