Peter Raganitsch

Bug im CSV-Export der Interactive Report Region

Gepostet am 22. Januar 2009

Gleichermassen beliebt bei Entwicklern und Anwendern, hat uns Oracle mit der Interactive Report Region ein sehr einfaches und sehr mächtiges Werkzeug in die Hand gegeben.

Interactive Report Region

Der Benutzer kann sich anzuzeigende Spalten aussuchen, Sortieren, Summen bilden, CSV-Dateien exportieren und noch so einiges mehr.

Will man einen CSV-Export der angezeigten Daten sehen, so muss man zwei Dinge beachten:

  1. es werden maximal 65535 Zeilen exportiert
  2. Filter/Sortierungen auf nicht exportierte Spalten ziehen nicht

Beide Punkte sind dem Oracle Application Express Development Team als Bug gemeldet worden, idealerweise wird dazu auch das Oracle APEX-Forum verwendet, somit findet man alle Infos, Fragen und Fehlermeldungen zentral an einer Stelle gesammelt.

Oracle Application Express Forum auf OTN
Gerade für Entwickler ist das Forum eine der wichtigsten Anlaufstellen für Fragen und für die Suche nach Antworten auf knifflige Probleme.

Nun zurück zu unserem CSV-Export:

CSV-Export ist beschränkt auf 65535 Zeilen

Frühere Version von Microsoft Excel waren auf eine maximale Zeilenanzahl von 65535 Zeilen begrenzt, seit der Version 2007 wurde dieses Limit auf 1 Mio. gehoben ( Quelle ).
APEX dürfte sich weiterhin an der 2^16 Grenze orientieren, denn egal wieviele Datensätze in ihrem Report enthalten sind, es werden maximal 65535 davon in die CSV-Datei geschrieben.

Maximum Row Count

Filter/Sortierungen auf nicht exportierten Spalten werden ignoriert

Sie kennen diese Situation sicher: in der Interactive Report Region geben Sie dem Benutzer soviele Spalten wie möglich, damit sich dieser den Report nach Belieben gestalten kann.
In der CSV-Export-Datei benötigen sie allerdings nur ein paar bestimmte Werte, deswegen werden die nicht benötigten Spalten ausgeblendet.

Condition: Request != CSV

Sortiert der Benutzer den Report in der Bildschirmansicht allerdings nach einer nicht zu exportierenden Spalte oder er setzt auf so einer Spalte ein Filterkriterium an, dann stimmt die Anzeige auf seinem Bildschirm nicht mit dem Inhalt der CSV-Datei überein, denn beim Export werden die Spalten (Dank der Condition) einfach ignoriert.

CSV Export VorgangCSV Export Datei

Im angezeigten Beispiel hat der Benutzer in der Spalte “Order Month” auf April eingeschränkt, in der exportierten Datei ist von dieser Einschränkung allerdings nichts zu sehen, da die Spalte “Order Month” im CSV-Export ausgenommen ist.

Conclusio

CSV-Export ist eine feine Sache,  bisher mussten wir dafür einen eigenen Batchjob schreiben, nun ist mit ein paar Klicks ein Interactive Report zusammengestellt, der auch gleich CSV-Daten exportieren kann.

Allerdings muss man sich der Stolperfallen bewusst sein, dann sind ihre Benutzer auch sehr schnell glücklich und zufrieden.



Kommentar schreiben