Browsing "Older Posts"

Dynamic Actions als Nadelöhr

Von Tobias Arnhold → 2.28.2012
Eines Vorweg: 
Dynamic Actions sind genial und machen das dynamische agieren mit dem Endnutzer ohne Seiten-Submit wunderbar einfach. Nur leider können Dynamic Actions Ihren Browser auch leicht performance seitig ins wanken bringen. Nehmlich dann, wenn Sie sehr viele Dynamic Actions gleichzeitig verwenden.
Hier ein Beispiel meiner Plug-in App (Seite 1):
Ich verwende 7 unterschiedliche Dynamic Actions diese wiederum unterschiedliche Aktionen beinhalten:

Nun ist die Frage, wie kann ich die Performance überhaupt verbessern?
Das Zauberwort heißt: "Condition"
Sie können Dynamic Actions wie auch viele andere APEX Elemente bedingt anzeigen. Dies ist natürlich nicht immer möglich, aber man sollte es im Auge behalten, da jede geladene Dynamic Action auf Kosten der Endnutzer Performance geht.

Debugging:
Das Problem ist, Sie können sehr gut SQL und PL/SQL Code auf Performance-Probleme hin analysieren. Bei Dynamic Actions können Sie dies nur bedingt tun, da viele Client-PC's unterschiedliche Konfigurationen haben die ein späteres Debugging schwierig gestalten.
Tip: Zum Debuggen von Dynamic Actions verwende ich Firefox mit Firebug.

Wo liegen die größten Client Nadelöhre (Im Bezug auf Dynamic Actions):
- Client-Rechner (Hardware)
- Browser (Software)

Warum Browser?
Haben Sie sich jemals gefragt warum es Javascript Speed Tester gibt und warum die Browser Hersteller besonders mit tollen Javascript-Engines Werbung machen. Javascript wird wie in APEX in einem immer größerem Umfang bei der Webentwicklung genutzt. Das hat zur Folge, dass die Browser den JS-Code möglichst schnell abarbeiten müssen, um so die Usability der Webseiten flüssig zu halten. Sie sollten daher immer darauf achten die Endnutzer Browserauswahl einzuschränken. Dies ist aus CSS Gründen schon von Vorteil und wird durch die Nutzung von komplexen Javascript Code / Dynamic Actions noch verstärkt.

Zusammenfassung:
Dynamic Actions sind ein mächtiges Werkzeug das wohl überlegt verwendet werden muss. Genauso wie Sie bei der Entwicklung von SQL und PL/SQL Code auf Performance Engpässe achten müssen, ist auch bei der Entwicklung von Dynamic Actions die verwendete Anzahl abhängig von den Anforderungen im Rahmen zu halten. Ich rate im Normalfall nicht mehr als 10 Dynamic Actions pro Seite zu verwenden.

Ein paar Links zum Thema:
Dynamic Actions
AJAX-Technologie ganz einfach: Dynamic Actions  - http://www.oracle.com/webfolder/technetwork/de/community/apex/tipps/apex40-dynamicactions/index.html
Building Dynamic Actions in Oracle Application Express 4.0 - http://st-curriculum.oracle.com/obe/db/apex/r40/apexdynactions/apexdynactions_ll.htm

Javascript
ARE WE FAST YET - http://arewefastyet.com/
JavaScript engine - http://en.wikipedia.org/wiki/JavaScript_engine
Geschwindigkeit und Speicherverbrauch aktueller Browser - http://www.heise.de/ct/artikel/Surf-Triathlon-291708.html

Transfer report row values into multiple APEX items

Von Tobias Arnhold → 2.22.2012
I added a new example whichs shows the basic functionality how to import several row values into multiple APEX items by click on the row.


Example application: http://apex.oracle.com/pls/apex/f?p=66003:1



How To:

Click inside the row on column "Year", "Month" or "Ver" to import those values into the APEX items below the report.

The example uses one dynamic action with a little piece of javascript:
$s('P1_YEAR',$(this.triggeringElement).find(".tbYear").html());
APEX-AT-WORK no image

Rund um APEX

Von Tobias Arnhold → 2.19.2012
Fast schien es, als würden die Events für die APEX Community etwas einschlafen. Doch in den letzten Tagen sind mir mehrere Events aufgefallen bei denen APEX eine tragende Rolle spielt. Deswegen hier noch einmal eine kurze Auflistung (Sortiert nach Datum):

01.03.2012 - Trier
DOAG Regionaltreffen: http://tinyurl.com/883tsgx

02.03.2012 - Köln (Siegburg)
APEX Stammtisch: http://tinyurl.com/6rmedrf

22.03.2012 - Mannheim
DOAG Regionaltreffen: http://tinyurl.com/7gkxlfd
Info: Vortrag von mir zum Thema Plugins

26.03. - 27.03.2012 - Bensheim
APEX New Feature Kurs: http://tinyurl.com/7lhwz7m
Info: kostenpflichtig

29.03.2012 - Dresden
DOAG Regionaltreffen: http://tinyurl.com/7pcuelf
Info: Vortrag von mir zum Thema Plugins

18.04.2012 - Berlin
Oracle APEX - Plugins & Dynamic Actions Kurs: http://tinyurl.com/6qkavgf
Info: kostenpflichtig

19.03.2012 - München
DOAG Regionaltreffen: http://tinyurl.com/7wnuqdp

24.04.2012 - München
APEX Community Day: http://tinyurl.com/7q2fv47

26.04.2012 - Düsseldorf
APEX Community Day: http://tinyurl.com/7q2fv47

27.04.2012 - Berlin
APEX Community Day: http://tinyurl.com/7q2fv47

14.06.2012 - Bonn
DOAG Entwicklerkonferenz: http://tinyurl.com/72n2qp7 

Ich frage mich warum es in Frankfurt und Hamburg keine Events zum Thema APEX gibt. Hier sehe ich noch Luft nach oben! :) Mich trefft Ihr definitiv in Dresden und Mannheim und vielleicht auch noch auf der ein oder anderen Veranstaltung.

In Mannheim gibt es nach dem Regionaltreffen immer einen schönen Ausklang in einem Restaurant (Dank zu Kai F. Christianus), dies würde ich auch für Dresden gern planen. Wer Interesse hat, kann mir da gern mal eine Email zuschicken, vielleicht bekommen wir ja ein nette Truppe zusammen.

APEX Interactive Report mit der Save Public Report Option

Von Tobias Arnhold → 2.18.2012
Wenn Sie ihren Endnutzern die Möglichkeit geben einen Interactive Report als Public Report abzuspeichern, dann ist dies automatisch für alle Nutzer möglich. Im Normalfall dürfen nur einzelne Power-Nutzer diese "Öffentlichen Reports" erstellen.
Die Option: Save Public Report Authorization gibt Ihnen die Möglichkeit über ein Authorization Schema den Power-Nutzer zu definieren.

 
Weitere Informationen finden Sie auch in der APEX Dokumentation:
Optionally select an authorization scheme. This authorization scheme must evaluate to TRUE to save Public Report. If no authorization scheme is provided then reports may be saved by anyone.
--------
Users can save reports and classify them as being either public or private. Public reports can be viewed by all users. Private reports can only be viewed by the user who saved the report.
In addition to enabling Save Public Report under Actions Menu, you can add additional security by defining an Authorization Scheme to determine who has rights to enable Save Public Report.
To enable support for public reports, select an authentication method from this list.


IR Extender

Von Tobias Arnhold → 2.13.2012
I'm working on a new plug-in called IR Extender. With this plug-in you will get more control about your Interactive Report.

- Default Filter Handling
Should your customized IR show all filters even if they are default?
I added a blog about this topic before: http://www.apex-at-work.com/2011/08/irr-remove-single-rule.html  The described solutions will be part of the plug-in.


- Action Menu Extension
Based on the great idea from Jarola I'm currently working on a more advanced way adding individual entries and sub menu's to your Interactive Report. All will be controlled by the plug-in.

At the moment I have a preview image which gives you a hint about what will come:

I added to more entries inside the main control
One is a simple entry with some javascript action and the other one is a sub menu entry inlcuding a sub menu with two extra entries.

Tobias

Update 14.02.2012
I created a first version of the "Action Menu Extension":
http://apex.oracle.com/pls/apex/f?p=65560:20

Update 18.02.2012
I will add two more functionalities to the plug-in.
 - Custom delete of an entry
 - Move of an entry to another position
 - IR fix which is useful in customized layouts like ExtJS and so on

I just saw a similar plug-in published on http://www.apex-plugin.com/ which seems to use a similar technology as I do. It is also based on the extension from Jarola: https://forums.oracle.com/forums/thread.jspa?threadID=2344657&tstart=30
Even so that there is a plug-in similar to mine I still will go on with the development.
APEX-AT-WORK no image

APEX: Worddateien ohne biPublisher generieren

Von Tobias Arnhold →
Heute fand ich im APEX Forum zwei wirklich sehr gute Links zum Thema Word-Dateigenerierung mit Hilfe von PL/SQL. Beide Lösungen benötigen kein biPublisher:

Morten Braten - Erstellung von Office 2007 Dateien mit Hilfe eines PL/SQL Packages:
http://ora-00001.blogspot.com/2011/02/working-with-office-2007-ooxml-files.html

Håvard Kristiansen - RTF Dateien generieren:
http://monkeyonoracle.blogspot.com/2009/07/dynamic-rtf-documents-revisited.html

Difficult use of BI Publisher inside APEX

Von Tobias Arnhold → 2.08.2012
Are you using BI Publisher inside APEX? Do you have a lot of "Report Layouts" inside your application? Did ever need to update them? If yes, then you know about the issue. You can't update a RTF template file. You need to delete it and create a new one. Afterwards you need to reset the "Report Query".
You find the BI Publisher integration under Shared Components > Report > Report Layouts
You don't have any update button inside this mask.  

APEX mentioned the following standard way to proceed:
Named column report layouts are file based. To change, download the current file using the download button on this page, then modify the file as needed. Afterwards, upload the modified file as a new report layout.  

There are still problems left:
1. If you just create new file, you will need to assign it to your "Report Query".
2. After you assigned the new template, the old one needs to be deleted or you get a mess of templates.  

Recommendation:
Please APEX-Team make those files update-able. It would make the developer life much easier.