Friday, September 20, 2013

APEX 4.2.3 enhances sample and packaged apps

The Oracle Application Express (APEX) builder includes packaged and sample apps.  In each dot release of Oracle APEX we improve these apps.  The vision is two fold, provide best practice and clear examples of how to implement common application components like reports and charts (via sample apps) and provide out of the box fully functional applications (via productivity apps).

In an ideal world these sample and productivity apps would have the following 10 attributes:
  • Simple visually pleasing and intuitive user interface
  • Fast and performant from both database/SQL and HTML perspectives
  • Be HTML5-ey and flash free
  • Be fully responsive allowing the application to adapt to different screen sizes / devices
  • Be easy to maintain declaratively with a minimum amount of custom code or complexity
  • Be fully accessible
  • Secure and compliant with industry best practices (support for multiple levels of access including read only)
  • Have a dedicated mobile UI as needed (e.g. when responsive design is not enough)
  • Targeted at data centric applications (e.g. not focused on static web sites)
  • Be fully upgradable, easy to diagnose bugs, easy to install in short easy life cycle management
These apps are far from perfect but we do strive to achieve these objectives.  

So whats new in 4.2.3 and why should an APEX developer care.  Here is a quick tour of some things new in 4.2.3 I find cool:

1. Filter reports:

Filter reports leverage APEX collections and PL/SQL pipeline functions and provide a great e-commerce style  are unfortunately a tad complicated to implement but are easier to use out of the box then interactive reports for the casual user.  These reports are highlighted in the "Sample Reporting" app.

Here is a page that shows a classic report with a filter control.  The filters are based on lists of values (LOVs) and also support free form search.  This implementation has the advantage of maximizing horizontal screen real-estate by implementing the filter a drop down menu.

The next tab over in the same application shows a similar control but the filter is not hidden by a drop down menu.   The UI on the left side bar could use a bit more attention; hopefully resolved in our next release.  We have found this style report is very easy for first time users to understand as its similar to most every e-commerse site.  It also has the advantage of making "or" queries easy, you can find all the projects with status of "closed" or "on-hold" or "open".  This possible but much harder to do with a standard interactive report.

2. P-Track Enhancements

Next up is enhancements to the P-track.  No huge changes were made but 100's of small tweaks, bug fixes etc.  The goal for P-Track is to make this packaged app a world class project tracking tool for the IT manager responsible for large numbers of projects and constantly needing to maintain a road map (milestones), and ensuring tasks (action items) don't fall through the cracks.  In short I build this app for myself.   I know many use wiki's, excel spreasheets, and for-cost cloud services; all of which can be effective.  I use P-track every day and it helps me keep things structured and allows me to track who is doing what, and all the associated documents etc.

Here is a screen shot of two regions on the home page.  I can at a glance know where my time is going and easily drill in on important projects; and of course track the stuff I'm choosing to neglect.

From the home page I can easily find my project google style by simply typing any keyword.  Recently edited projects are also displayed in a prominent region making it easy to see updates and additions by others.

Clicking on a given project, APEX in this case shows the project detail page.  This page works for both read only users as well as contributors (read-write privilege).  I can at a glance add and view milestones, action items.  I can compare my goal with our actions, milestones and action items recently completed within the last 6 months are displayed by default providing a nice window on whats been done and what needs to be done.  Adding attachements, milestones etc uses model dialogs.

Sample apps ship "unlocked" by default, allowing developers to edit the application after installing it.  Packaged apps are locked.  Packaged apps are locked on install so that you can upgrade in the future; and to date every release of APEX has enhanced most every packaged app.  If your not so interested in using the application but want to review the implementation you can unlock the packaged application by performing the following.

  1. Navigate to the application builder, and click on the "P-Track" icon
  2. Click the "Manage" button
  3. Then "Unlock" following the wizard
Once the application is unlocked you can edit the app customize etc.  But be warned that its now your app and upgrades will not be possible.  The screen shots below show you how; why read text when you can look at screen shots:

Note that P-Track now has both a "Run" and "Edit" option, where before it just had "Run" and "locked".   If you do take the time to unlock p-track and navigate to shared components and then to plugins you can see the ever growing list of plugins used within our packaged apps.  Many are new and improved in APEX 4.2.3 (sorry don't have an exact accounting).  I  am a big fan of our "Flot Pie Chart" plug-in as well as mini-calendar, tags / tag cloud, and big value.  

These plug-ins can easily exported, click "Export Plug-in" in task region in right side bar, and imported into other applications.

Please do try it out on, and do come visit the APEX team at this years Oracle World in San Francisco next week.  We will be at the demo grounds at the APEX booth in the database area.  David Peake (our friendly Oracle APEX product manager) has created an application to make it easy to find our 36 APEX related OOW sessions/events (see link below).

This site also contains an OOW challenge focused on mobile development and Oracle APEX, if this is up-your-ally please do check it out; prizes will be awarded.


Wednesday, September 18, 2013

APEX 4.2.3 Released, new packaged app "Data Reporter"

As someone who develops a large number of Oracle APEX apps I frequently have the dilemma of guessing what type of reporting the end users will want. Basically its hard to know what reports people want in the future. To ease this burden the APEX development team and the special projects team here within Oracle have created a new packaged application called "Data Reporter". Here is how it works.

1. Run any Oracle APEX 4.2.3 environment, and if you don't have get a free one here

2. Click application builder, then create application, then packaged applications, then choose data reporter:

3. Install the application and run it. Installing can take a minute or more.

4. From the Data Reporter home page click the New button

5. Choose the type of report you wish to create, my favorite is the Filter Report, so I will choose one of these

6. Give the report a name and category. Color coding the category allows you to locate you report more rapidly on the home page.

7. Now for the important part, define your query. Administrators of the application can set up canned data sources. I simply selected "Top Cities" and it pre-populated the SQL. I can edit the SQL or enter new SQL. The theory is that SQL not that hard especially if you start from an existing query. For security each table accessed must be pre-defined by the application administrator by adding it to the "Whitelist".

8. Since this is a filter report, I need to determine which columns I would like to filter on. For this data set I choose to provide filters for country, sources, and continent. I also adjusted format masks. I only really need to select one filter and I can simply edit my report later.

9. Thats, it I confirm my report and I am good to go.

10. After creating the report immediately runs. I click the filters I wish to have; in the example below you see largest cities in Europe and North America from selected sources.

11. I can edit my report by clicking on edit. Each time the SQL is changed it is revalidated. I can manage access control, view history of when the report was run and changed etc.

12. Clicking the star icon, favorites the report, making it easy to find the reports you are interested in

13. Navigating back to the home page I see my new report, and it can be run by anyone with access to the application. Of course I have the option to restrict access. This allows reports to be timely addressing what is needed today, and can be removed if. You can filter to show your reports, favorites, specific groups etc.

You can follow the same process to build dashboards, interactive reports, calendars and even PDF printable reports. Hopefully this brief introduction will ease the burden on application developers to create lots of reports an effort to anticipate what end users will want in the future. Now end users can, or at least the SQL Savvy ones can get their data self service.