Friday, November 7, 2008

Additional presentations about Advanced Printing with APEX

Due to the high interest in the topic of Advanced Printing with Oracle Application Express, I signed up to present this topic at some additional upcoming conferences. The actual presentations will have different focus areas, but they all will cover the basics of configuring printing in Application Express, using BI Publisher and Apache FOP and showcase some of the advanced features such as Web Services based integration with BI Publisher, the APEX print API, report rescheduling and emailing, etc. Please see below for the current conference schedule, and please check the conference websites for updated information.


New York Oracle Users Group - General Meeting
Date: December 10, 2008
Location:
St. John's University
101 Murray Street
New York, NY 10007
http://nyoug.org/upcoming_events.htm#General_Meeting

My presentation is scheduled for Session 6 in the Developer Track from 4:00-5:00pm EST, please check the NYOUG website for updated information.


Oracle BIWA Summit 2008

Date: December 2-3, 2008
Location:
Oracle World Headquarters
Conference Center
350 Oracle Parkway
Redwood Shores, CA 94065
http://ioug.itconvergence.com/pls/htmldb/f?p=219:25

My presentation is scheduled for Tuesday, December 2, 2008, 11:00am PST, Room 106, please check the BIWA Summit website for updated information.



Desktop Conference - Fall 2008 virtual conference
Date: November 11-13, 2008
Location: your desk
http://desktopconference.org/

My presentation is scheduled for Thursday, November 13, 2008, 11am EST, Session 32, please check the DesktopConference for updated information.

Saturday, November 1, 2008

Advanced Printing in Application Express

For everyone using the printing features of Application Express, or whoever is struggling with the BI Publisher or Apache FOP configuration, you might be interested in the BIWA SIG Summit 08, taking place at Oracle’s World HQ December 2nd and 3rd. There are a number of presentations scheduled covering BI Publisher, and I’ll be doing a presentation there on advanced printing in Application Express. I’m going to cover the integration of APEX with BI Publisher, and also the configuration of APEX using Apache FOP for printing. Furthermore I’ll demonstrate how to use Web Services in APEX to call out to BI Publisher directly, to initiate and schedule the generation of reports. I’ll also go through some actual samples on how to use the PL/SQL print API to store reports inside the database and how to email them out to lists of recipients.

Visit the BIWA SIG's website for the full schedule and registration information:

BIWA Summit 2008 - December 2-3, 2008 - Oracle World HQ, Redwood Shores, California

Friday, August 29, 2008

Oracle APEX Forms Converter at NYOUG

As stated in out Statement of Direction, Oracle Application Express 3.2 will introduce an Oracle Forms Converter tool. This tool will capture the design of existing Oracle Forms applications and automatically translate many of the main components. Other components, such as complex triggers, will need to be manually converted from client-side PL/SQL to server-side PL/SQL.

On September 10th, I'll give a live preview of this tool at the 6th Annual New York City Metro Area Oracle Users Group Day. Registration is open to members and non-members, so please stop by if you’re in the area:

http://www.oracle.com/dm/09q1field/18983_ev_metro_day_new_york_sep08.html

APEX 3.1.2 Patch Released

Oracle Application Express 3.1.2 has been released to. The full installation is available here, the patchset is available on MetaLink - patch number 7313609. Please read the Patch Set Notes for details on the bugs fixed in this release.

Thursday, August 14, 2008

Oracle Application Express with Oracle eBusiness Suite

In case you haven't read about this already on other APEX Blog sites, we're currently conducting a short survey to determine how customers integrate Oracle Application Express with the Oracle eBusiness Suite. As Joel Kallman was explaining on his blog, the purpose of this is to gather evidence with the eventual goal of formally legitimizing the use of Oracle Application Express with the Oracle eBusiness Suite. So if you are using Oracle Application Express to integrate with the Oracle eBusiness Suite, please visit David's blog here, and take this one page survey.

Wednesday, July 16, 2008

WebCast: What’s next for Oracle Application Express?

Want to learn more about what features we're working on for Oracle Application Express 4.0 and get a live demonstration of some tip & tricks for APEX 3.1.1? Then be sure to join our German-language WebCast next Friday, July 25th at 8am EDT / 14:00 CEST. Please visit the German APEX Community page for additional information and dial-in numbers:

http://www.oracle.com/global/de/community/index.html

Please note that this is a German-language WebCast.

Friday, June 20, 2008

Integrating Google Maps

Following up on a discussion on the APEX OTN forum today, here's some additional information on integrating Google Maps. There are different techniques for integrating Google maps, and we actually have a Whitepaper available online, that explains working with Google maps in much detail:

http://www.oracle.com/technology/products/database/application_express/html/doc.html

This Whitepaper explains how to do the geo-coding, i.e. converting an address (Street/City/State/ZIP/Country) into coordinates that can be used to position a Google map. In this example, the PL/SQL package utl_http is used to connect to Google's geocoding service.

An alternative to this approach is to connect to that service from the client. Both techniques have their advantages and disadvantages. One of the advantages of doing it on the client is that the server doesn't need to be able to connect to Google, i.e. there's no need to define any proxies on the server, and as a result, this approach would work on apex.oracle.com, where external network connections are currently not supported.


The first step for any kind of Google map integration is to register for a Google maps key, which can be done here:

http://code.google.com/apis/maps/

After that, it's just a matter of adding some Java Script to your page that communicates with Google and refreshes the area on your APEX page that you have allocated for the map. Here's a link to my sample page:

http://apex.oracle.com/pls/otn/f?p=52790

You can download this application here:

http://www.sewtz.com/GoogleMaps.zip

I added an address region, where you can enter a city or a full address and then click go and have the map move to the address specified. Here's the JavaScript I added to my page. It's pointing the map to my office on first load, and then re-positions the map based on the address you enter:



var geocoder;
var map;
var bounds = new GLatLngBounds();

var myStreet = "540 Madison Ave";
var myCity = "New York";
var myState = "NY";
var myZIP = "10022";
var myCountry = "USA";

var address = myStreet + "," + myCity + "," + myState + "," + myZIP + "," + myCountry;
var addressMarker = myStreet + "<br />" + myCity + ", " + myState + ", " + myZIP + "<br />" + myCountry;

// On page load, call this function

function load()
{
// Create new map object
map = new GMap2(document.getElementById("map"));

// Create new geocoding object
geocoder = new GClientGeocoder();

// Retrieve location information, pass it to addToMap()
geocoder.getLocations(address, addToMap);

}

// This function adds the point to the map

function addToMap(response)
{
// Retrieve the object
place = response.Placemark[0];

// Retrieve the latitude and longitude
point = new GLatLng(place.Point.coordinates[1],
place.Point.coordinates[0]);

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());

// Center the map on this point
bounds.extend(point);
map.setCenter(point, 13);
map.setZoom(14);

// Create our "tiny" marker icon
var oIcon = new GIcon(G_DEFAULT_ICON);
oIcon.image = "#WORKSPACE_IMAGES#opin.png";
oIcon.iconSize = new GSize(32, 40);
oIcon.shadowSize = new GSize(38, 46);

// Set up our GMarkerOptions object
markerOptions = { icon:oIcon };

marker = new GMarker(point, markerOptions);

// Add the marker to map
map.addOverlay(marker);

// Add address information to marker
marker.openInfoWindowHtml(addressMarker);
}

function updateMap() {
myStreet = $v('P1_STREET');
myCity = $v('P1_CITY');
myState = $v('P1_STATE');
myZIP = $v('P1_ZIP');
myCountry = $v('P1_COUNTRY');

address = myStreet + "," + myCity + "," + myState + "," + myZIP + "," + myCountry;
addressMarker = myStreet + "<br />" + myCity + ", " + myState + ", " + myZIP + "<br />" + myCountry;

load();
}