Tuesday, April 15, 2014

JasperReportsIntegration - Full path requirement and workaround

I have just posted an answer to a question that seems like a bug in the JasperReportsIntegration toolkit, that you have to use absolute paths for referencing images or subreports, which is typically a bad thing.

Don't know exactly why it doesn't work, but there is a workaround for that: http://www.opal-consulting.de/site/jasperreportsintegration-full-path-requirement-and-workaround/

Hope that helps,

Monday, April 14, 2014

First blogpost at my own hosted wordpress instance

I have been blogging at daust.blogspot.com for quite some years now ... and many people have rather preferred wordpress to blogspot, I can now understand why :).

It is quite flexible and easy to use and there are tons of themes available ... really cool ones.

The main decision to host my own wordpress instance was in the end motivated by different means. I have created two products and they needed a platform to be presented:
First I wanted to buy a new theme from themeforest and build an APEX theme for that ... but this is a lot of work.

I then decided to host my content using wordpress since I have already bought a new theme: http://www.kriesi.at/themedemo/?theme=enfold

And this one has a really easy setup procedure for wordpress and comes with a ton of effects and wizards, cool page designer, etc.

Hopefully this will get mit motivated to post more frequently ... we will see ;).


Wednesday, February 12, 2014

Oracle APEX Listener - support for Apache Tomcat

The Oracle APEX listener is one possible gateway to run Oracle Application Express besides the Oracle http server (OHS), the embedded pl/sql gateway (which is the http server included in the Oracle database as part of the XML DB) and other open source alternatives.

Being implemented as a J2EE application it needs a servlet container to be deployed in. Finally, due to popular customer demands, the Apache Tomcat servlet container is (again) supported. Many customers are using it already for quite a while and I personally had hardly any issues with that.

When you look at the APEX listener 2.0 installation guide you will find a section on deploying to tomcat. There they talk about Apache Tomcat 7 but it seems like version 6 is also supported, I have found the information on Kris Rices blog, he is the development manager of the APEX listener.

This is not really NEW news ;), but I personally had not seen this information before.

Cheers and enjoy,

Thursday, November 21, 2013

Upgrading the JasperReports libraries to 5.2.0

Would you like to upgrade your existing JasperReportsIntegration with the 5.2.0 libraries of JasperReports?

As of now this already seems to be not the most current version, JasperReports has already moved on to 5.5.0. But since I have already created the 5.2.0 package a while ago, I might just post the instructions here. The 5.5.0 version will follow.

Here you go ...

This is an updated version of the original instructions found here: http://daust.blogspot.de/2013/01/upgrading-jasperreports-libraries-to-501.html

Step 1: Download the libary files for 5.2.0

You can download the files here:


Step 2: Shutdown the Apache Tomcat J2EE server


Step 3:  Remove the existing JasperReportsLibraries from your existing installation

Typically, after you have installed your previous version of the JasperReportsIntegration toolkit on your Apache Tomcat J2EE server, the files will be located in the directory $CATALINA_HOME/webapps/JasperReportsIntegration/WEB-INF/lib, for example version 4.7.0 of JasperReports, where $CATALINA_HOME represents the path to your installation of Tomcat.

Then you would have to remove these libraries first. In this directory you should find two files for removal: _jasper-reports-delete-libs-4.7.0.sh and _jasper-reports-delete-libs-4.7.0.cmd, for *nix or Windows respectively. For *nix systems you would have to make it executable, though, e.g.: chmod u+x _jasper-reports-delete-libs-4.7.0.sh . Then you can call it and it will remove all files for version 4.7.0. But it will NOT remove the file for the JasperReportsIntegration and all other libraries which YOU might have placed there deliberately.

You can always find the required removal scripts here: http://www.opal-consulting.de/downloads/free_tools/JasperReportsLibraries/ .

Whenever I release another package, the removal scripts for that package will be shipped as well.

Step 4: Install the new 5.2.0 libraries

Now you can just copy the new libraries from JasperReportsLibraries-5.2.0.zip into $CATALINA_HOME/webapps/JasperReportsIntegration/WEB-INF/lib.


Step 5: Start the Apache Tomcat J2EE server again

Now you system should be upgraded to the most current JasperReports 5.2.0 !

Just drop me a note when you need updated libraries for a later JasperReports version, etc. I have scripts in place to create a new package of the libraries.

Here you can find the notes from my upgrade (4.5.0 => 4.8.0) on Linux to illustrate the process, I hope it makes sense:

** download the libraries from:
**  http://www.opal-consulting.de/downloads/free_tools/JasperReportsLibraries/4.8.0/JasperReportsLibraries-4.8.0.zip
** to /home/jasper/JasperReportsLibraries

cd /home/jasper
mkdir JasperReportsLibraries

** unzip them
cd JasperReportsLibraries
unzip JasperReportsLibraries-4.8.0.zip -d JasperReportsLibraries-4.8.0

** stop tomcat server

** remove libraries of current jasper reports release
cd /home/jasper/tomcat/webapps/JasperReportsIntegration/WEB-INF/lib
chmod +x _jasper-reports-delete-libs-4.5.0.sh
dos2unix _jasper-reports-delete-libs-4.5.0.sh


** copy libraries of the new release to the WEB-INF/lib directory
cp /home/jasper/JasperReportsLibraries/JasperReportsLibraries-4.8.0/* /home/jasper/tomcat/webapps/JasperReportsIntegration/WEB-INF/lib

** restart tomcat


Monday, September 23, 2013

Oracle APEX 4.2 New Features und Tipps aus der Praxis - Neuer Kurs am 11.11.2013

In diesem November werden Denes Kubicek und ich wieder einen Kurs zu Oracle APEX in Bensheim abhalten:

Oracle APEX 4.2 New Features und Tipps aus der Praxis

Wir werden diesmal viel über den APEX Listener, Einsatz von jQuery und über Restful Web Services reden und natürlich, praktisch üben.

Darüber hinaus gehen wir auch das Thema Mobile Development an und geben einen Überlick über die 100+ neuen Features, die sich auch in diesem Release wieder geändert haben. Mir gefällt besonders, dass durch diese vielen kleinen Verbesserungen die Transparenz in der Applikationsentwicklung nochmals erhöht wurde.

Gerade die Packaged Applications liefern viele gute Beispiele, wie häufig verwendete Design Patterns in der Praxis moderner umgesetzt werden können.

Dieser Link informiert Sie über alle weiteren Details zum Kurs.

Viele Grüße,

Wednesday, May 22, 2013

DOAG 2013 Development in Bonn am 19. Juni

Am 19.Juni 2013 findet die nächste DOAG Development Konferenz in Bonn statt, diesmal mit dem Thema:

„Agile and Beyond – Projektmanagement in der Oracle-Softwareentwicklung“

Das Motto der zweiten Auflage der Community Konferenz steht fest: Die effektive Durchführung von Softwareprojekten steht thematisch im Zentrum der Konferenz für Entwickler, Softwarearchitekten und Projektleiter.

Gerade Oracle APEX eignet sich hervorragend für die agile Durchführung von Softwareprojekten, ich habe damit seit Jahren hervorragende Ergebnisse erzielt. Mit Oracle APEX kann man in extrem kurzen Iterationszyklen von 1-4 Wochen sehr beachtliche Funktionalitäten implementieren. Gerade die Lieferung von Funktionalitäten in kurzen Abständen hilft, das Vertrauen der Fachseiten zu gewinnen. Dennoch gibt es einige Fallstricke zu beachten, damit auch alles rund läuft ;).

Weitere Informationen zur Konferenz finden Sie hier.

Bitte beachten: der Frühbucher-Rabatt endet heute!

Viele Grüße,

How to locate all interactive reports in my application?

Today my client decided to remove the email functionality from all interactive reports in their APEX application.

I could step through all the pages of my application and check whether there are any interactive reports used. This very manual approach can take some time and I can make mistakes by overlooking some of the interactive reports to modify.

A different approach would be to use the (officially supported) data dictionary views in APEX. Using this simple sql query I can find all interactive reports in all pages of my application (having the id 20120618):
select   workspace
       , application_id
       , application_name
       , page_id
       , region_name
       , download_formats
  from apex_application_page_ir
 where application_id=20120618
 order by page_id;
This will show all interactive reports which are used in my application:

We can even look for all interactive reports that need to be fixed by specifically looking for all reports where the download format email is enabled:
select   workspace
       , application_id
       , application_name
       , page_id
       , region_name
       , download_formats
  from apex_application_page_ir
 where application_id=20120618
   and instr(download_formats, 'EMAIL') > 0
 order by page_id;
These data dictionary views contain a wealth of information about your application. This is a real strength of Oracle Application Express, due to its nature being driven by a metadata repository.

Thus from a quality management perspective you could use the following query to make sure, all interactive reports are configured the same way, i.e. having flashback disabled, using the same display position for pagination (Top and Bottom-Left) and showing the dropdown list for selecting the rows per page:
select   workspace
       , application_id
       , application_name
       , page_id
       , region_name
       , pagination_display_position
       , show_rows_per_page
       , show_flashback
  from apex_application_page_ir
 where application_id=20120618
   and (   pagination_display_position <> 'Top and Bottom - Left'
        or show_rows_per_page = 'No'
        or show_flashback = 'Yes' )
 order by page_id;
Here is the result:

But how do we find the appropriate views? The APEX data dictionary contains information about all available data dictionary views and all of their columns.

Typicall I use the following query to find all information about interactive reports, all related views contain _IR_ in the view name:
select *
  from apex_dictionary
 where apex_view_name like '%IR%'
This will show us all view including their respective columns:

If we want to display the view only without their columns we can add the filter for the column_id 0, in there the APEX team added the overall description of the view itself:
select *
  from apex_dictionary
 where apex_view_name like '%IR%'
   and column_id=0; 
Now, we get only the view names including their description:


Saturday, April 27, 2013

Oracle Application Express 4.2.2 Patch released

Just yesterday, the most recent APEX patch set has been released. It is Release The full version just as well as the patch set to apply to a 4.2.0 or 4.2.1 instance can be downloaded from here.

The full details can be found on Joel's Blog

Nevertheless I will have a good look at the release notes, because they contain quite some important notes, which you should be aware of before upgrading. Especially, there were some changes made to the templates. So it is wise to upgrade your existing 4.2.0 / 4.2.1 instance with the patch set directly. If you export/import a 4.2.1 APEX application into a 4.2.2 instance, you cannot leverage the changes immediately, you would have to install the new theme and switch it then. 

I will try to look at these issues in more detail ...