Freitag, 30. Dezember 2011

Forms 11g und Reports 11g im Developer-Mode

Der Aufruf von Reports aus Forms 11g Release 2 im Developer-Mode ist recht einfach, hier nun ein vollständiger Demo - Ablauf:

  • Start des WebLogic Servers:
  • Erstellen eines emp - Demo - Modules im Forms 11g Builder
  • Anlegen eines Reports-Objectes:


Das Report-Object heißt hier 'Report6' und der eigentliche Report ist für den
Developer-Mode mit absoluter Pfadangabe 'D:\Forms11g-Workshop\chk_report.rdf' eingetragen.
  • Erstellen des Demo - Reports im Reports 11g Builder:

  • Test des Reports-Servers:


  • Im rwservlet.properties - File wird der Reports - Server Name ermittelt: D:\oraforms\user_projects\domains\ClassicFxDomain\servers\AdminServer\temp\_WL_user\ reports_11.1.2\90rnjo\configuation\rwservlet.properties :

  • Erstellen der Reports - Procedur im Formsmodul:


  • Test des Report - Startes aus dem Formsmodule mit dem Procedure - Call:

Dieser Ablauf kann ohne Konfigurierung des Forms - bzw. Reports - Servers problemlos nachvollzogen werden.


Viel Erfolg und beste Wünsche für das Neue Jahr
Friedhold

Montag, 26. Dezember 2011

Forms 11g getestet im Chromium Browser

Eine gute Testmöglichkeit ist für Forms 11g mit dem WebKit - Chromium-Browser des Open Source Chromium Projekts gegeben:


Den aktuellsten Projektstand erhält man durch: http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/LATEST

und abhängig vom Ergebnis dann das jeweils aktuelle Projektverzeichnis, z.B.:
http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/5849/

Ich habe mir ein Chromium - Verzeichnis angelegt und entpackte das Zip-File: chrome-win32.zip in den neu angelegten Nummern-Folder: .\Chromium\5849 .

In dem Forms-Developer wird nun der Chromium-WebBrowser eingetragen:

Unter: "Bearbeiten / Voreinstellungen / Laufzeit / Web-Browser-Speicherort:"
D:\Chromium\5849\chrome.exe .

Sinnvoll ist es auch, den FireBug Lite für Chrome zu installieren und die Debugging/Logging Features von FireBug zu verwenden:

Zentriert

Der Chromium-Browser ist schnell, portabel und enthält einen integrierten PDF-Viewer. Sollte irgendwann ein aktuelles Release Probleme bereiten, so setzt man den Web-Browser-Speicherort im Forms-Developer einfach auf ein anderes Release ..

Gruß,
Friedhold

Donnerstag, 15. Dezember 2011

Forms 11g mit Proxy - User

Eine wichtige Neuerung in Forms 11g ist die Möglichkeit des Anmeldens als Proxy - User, ich habe dies in Forms 11g Release 2 (11.1.2.0.0) getestet. Bei dieser Art der Anmeldung muss nur der Proxy - User im LOGON bekannt sein, die jeweiligen Applikations- End User werden sozusagen durchgereicht. Damit kann der Umstellungsaufwand von Client- nach Web- Forms reduziert werden, da die Sicherung der Anmeldung lediglich auf den Proxy - User konzentriert werden muss.

- Anlegen eines Proxy Users:
create user test_proxy identified by test_proxy;

- Freigabe des Proxy- Connects für einen End - User:
alter user scott grant connect through test_proxy;

- Test - Connect:


- Anmeldung im Forms 11gR2 - Developer:


- Implizite Anmeldung im ON-LOGON - Trigger:


- Nachweis des Connect - Status:




D.h. man kann mit get_Application_Property(USERNAME) den Proxy - User Account abfragen, USER liefert nach wie vor den End - User.

Übrigens kann sich der Proxy - User selbst nicht anmelden:


Aus Sicherheitsgründen und besserer, nachhaltiger Wartung sollte ein End - User ohnedies als einziges Recht nur das grant create session erhalten, eigene Objecte wie Synonyme, temporäre Tabellen, Views etc. oder gar PL/SQL - Code sollte er keinesfalls besitzen!
Jegliche Applikationsrechte sollten über Datenbank - Rollen, möglichst nach dem Prinzip der additiven Funktionserweiterung, vergeben werden.

Ich hoffe, dass dies weiter hilft.

Friedhold

Montag, 20. Juni 2011

GeoRaptor 3.0 Exportfunktionen - ESRI Shapefiles

Eine sehr nützliche Funktion ist das Exportieren von SDO_GEOMETRIES:


in eines der folgenden Formate:


Dabei muss der SRID natürlich OGC - konform angepasst werden:


Letztendlich wird das Ergebnis gemeldet:


Das erstellte Shapefile konnte ich mit dem OpenSource Desktop-GIS uDig (aktuelle Version: 1.2.2) verifizieren:


Der Layer COUNTIES_GEOM ist unser Shapefile-Layer, COUNTIES ist der MVDEMO.COUNTIES.SDO_GEOMETRY-Layer: Beide Layer sind natürlich deckungsgleich.

Großen Dank an das GeoRaptor Team!

Friedhold

Montag, 13. Juni 2011

GeoRaptor 3.0 für SQL Developer 2.1 u. 3.0

Simon Greener hat im Oracle Spatial Forum die Freigabe des GeoRaptor 3.0 für den SQL Developer 2.1 und 3.0 bekannt gegeben.


Dies ist ein Super - Beispiel, wie ein kommerzielles Produkt durch freie Mitarbeit um sinnvolle Funktionen erweitert werden kann!

Mit besten Wünschen,
Friedhold

Samstag, 11. Juni 2011

Oracle Maps mit Yahoo Maps inklusiv

Neulich hatte ich mir wieder einmal Oracle Maps in der vorletzten Version aus dem MapViewer 11g patch 3 (11.1.1.4.1)angesehen. Aufgefallen ist mir dabei, dass in oraclemaps.js auch für Yahoo Maps die Custom Tiles Anwendung vorbereitet ist. Man braucht nur mit

baseMap = new MVYahooTileLayer();
die Yahoo Base Map definieren, wobei auch bei Yahoo Maps ein Registrierungskey notwendig ist:




Somit erhält man mit der Registrierung und einem Funktionsaufruf die Yahoo Map Tiles als
Base Map in Oracle Maps:



In diesem Demo ist die verschiebliche Oracle Maps Toolbar, mit der auch individuelle Erweiterungen möglich sind, enthalten.

Friedhold

Dienstag, 24. Mai 2011

GeoJSON-Beispiel aus PL/SQL in OpenLayers

Oracle Maps und APEX seit der Version 4.0 verwenden das JSON - Format zum direkten Datenzugriff aus der Datenbank und effizienten Verarbeitung in Javascript. Dieses Format hat sich auf Grund seiner Kompaktheit, guten Lesbarkeit und der direkten Ansprechbarkeit in Javascript als implizite JavaScript-Objektnotation in der WebBrowser-Technologie recht gut durchgesetzt.


Somit ist es auch nahe liegend, dass Geo-Daten in dem JSON-Format als Vector-Layer z.B. in OpenLayers direkt dargestellt werden. Hierfür gibt es eine besondere Spezifikation zur Erstellung von Feature-Informationen: Das GeoJSON - Format. Unter anderem bieten der OGC-Konverter GDAL und der FME-Konverter von Safe die direkte Erstellung dieses Geo-Formates an.
In meinem hier vorgestellten Demo wird die Klick-Koordinate zum Suchen des Country-Polygons verwendet und anschließend das gefundene Polygon im GeoJSON-Format erzeugt:


CREATE OR REPLACE PROCEDURE get_simple_geojson_2 (p_x number, p_y number) IS

l_state varchar2(2);

FUNCTION fnc_get_state(p_x NUMBER, p_y NUMBER )
RETURN varchar2 IS
li_state varchar2(2);
BEGIN

SELECT /*+ ORDERD */
s.STATE_ABRV
into li_state
FROM states s
WHERE SDO_RELATE(s.geom,
SDO_GEOMETRY(2001,
8307,
SDO_POINT_TYPE(p_x, p_y, NULL),
NULL,
NULL),
'mask=CONTAINS') = 'TRUE'
AND ROWNUM<2;
RETURN(li_state);
EXCEPTION
WHEN OTHERS then
RETURN('RI');
END fnc_get_state;

FUNCTION get_XY (p_state varchar2) RETURN VARCHAR2 IS
l_coords varchar2(32767);
BEGIN
for l_xy in (SELECT t.X, t.Y
FROM states s,
TABLE(SDO_UTIL.GETVERTICES(s.geom)) t
WHERE s. STATE_ABRV = p_state
) loop
l_coords:= l_coords || '['|| l_xy.X ||','|| l_xy.Y ||'],';
end loop;
RETURN( substr(l_coords, 1, length(l_coords)-1) );
END get_XY;

BEGIN

l_state := fnc_get_state(p_x, p_y);

htp.p('
{
"type": "FeatureCollection",
"features": [
{"type":"Feature", "id":"OpenLayers.Feature.Vector_1489", "properties":{},
"geometry":{ "type":"Polygon",
"coordinates":[['
|| get_XY( l_state ) ||
']] },'||
'"crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}
}'||
']
}
'
);

end get_simple_geojson_2;
/

Die Verifizierung dieser GeoJSON-Polygone habe ich OpenLayers mit der entsprechenden Darstellung überlassen:
function handleMapClick(e)
{
var lonlat = map.getLonLatFromViewPortPx(e.xy);

var newgeojson = new OpenLayers.Layer.GML("My GeoJSON Layer",
'http://localhost:8089/mvdemo/get_simple_geojson_2?p_x='+lonlat.lon+'&p_y='+lonlat.lat,
{format: OpenLayers.Format.GeoJSON});

map.addLayer(newgeojson);
}

Sonntag, 15. Mai 2011

Oracle Embedded PL/SQL Gateway einrichten

Das Embedded PL/SQL Gateway ist ein 'interner' HTTP Listener der Oracle XMLDB und kann für die Entwicklung von PL/SQL - Web Toolkit Applikationen, z.B. mit Oracle Spatialfunktionen, sehr nützlich sein. Dabei wird die Konfigurierung des PL/SQL-DAD's mit der DBMS_EPG - Package verwendet. Entsprechend der hier gefundenen Beschreibung habe ich diesen Ablauf hier mit Erfolg getestet.

Test: http://localhost:8089/mvdemo/testPage


Nun könnten wir über dieses Embedded PL/SQL-Gateway auf die mvdemo - Geodaten zugreifen. Diese hier vorgestellte Konfigurierung sollte jedoch nur für Entwicklungszwecke dienen, für einen sicheren Betrieb müßte die Access Control List (ACL) entsprechend konfiguriert werden.


Friedhold

Donnerstag, 28. April 2011

SQL*PLUS für Windows in einer Oracle 11g DB Installation einrichten

Nach der Installation einer 11g Datenbank und eines 11g Clients suchte ich vergeblich das gewohnte SQL*PLUS für Windows (bin\sqlplusw.exe) !

Ganz so schnell geht der Umstieg auf DOS - sqlplus und SQLDeveloper, inzwischen in der Version 3.0 erschienen, nun doch nicht. Insbesondere haben sich in den Jahren Batch - Abläufe angesammelt, die lauffähige Statement-TODO's darstellen und demzufolge recht gern in SQL*PLUS angewendet werden. (Man denke nur an den zu protokollierenden Abgleich zwischen einer Test- und Produktionsdatenbank.)

Im Oracle Forum hatte ich den Hinweis zu einer Nachinstallation erhalten. Vorausgesetzt, es ist noch eine SQL*PLUS Installation vorhanden , kann man wie folgt vorgehen:
  1. Kopie der CLIENT_10g\bin\sqlplusw.exe in das ORACLE_11gDB\bin - Verzeichnis
  2. Kopie der ORACLE_HOME\bin\oraclient11.dll in ORACLE_11gDB\bin\Kopie-oraclient11.dll
  3. Umbenennung der Kopie-oraclient11.dll in oraclient10.dll
  4. Kopie der spwd.msd & spwus.msb aus dem CLIENT_10g\slqplus\msg - Verzeichnis in das ORACLE_11gDB\sqlplus\msg - Verzeichnis.
Ich habe mir auf dem Desktop den Link zum SQL*PLUS angelegt :-)

Hoffentlich hilft es Jemandem.
Friedhold