windows- und java-integration mit oracle forms 10g und 6i · pdf filedoag konferenz 2006...

22
DOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms 6i leben Andreas Leidner

Upload: buibao

Post on 06-Feb-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

DOAG Konferenz 2006

Windows- und Java-Integration mit Oracle Forms 10g und 6i

Oder: In Forms 10g denken, mit Forms 6i leben

Andreas Leidner

Page 2: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Wirkungsfeld

� Entwicklung und Vertrieb der Standard-Software RUBIN (Branchensoftware für die Messe-, Veranstaltungs- und Kongressbranche)

� Organisationsberatung

� 29 Mitarbeiter

� Umsatz RUBIN 2005 > 2,0 Mio. EUR

� ca. 250 Veranstaltungsstätten bzw. Veranstaltungsorganisationen werden mit RUBIN gemanagt

� Mehr als 1500 User in D-A-CH

� Marktführer im deutschsprachigen Raum

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 3: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Motivation und Anwendungsbeispiel

� Bestehendes Produkt RUBIN:

„Forms“ - Anwendung mit ca. 700 ModulenWeitere Produktbestandteile auf Basis anderer

Technologien wie AutoCAD, C/C++, Java, Oracle Business Intelligence, XSLT

� Derzeit in ca. 50 Produktivumgebungen als Client-Server-Anwendung (6i) im Einsatz

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 4: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Motivation und Anwendungsbeispiel

� Zur Zeit 3 Forms 10g-InstallationenVor allem Neukunden

Migrationsbereitschaft, Kosten

� Graphische SitzplanbuchungZiel

Hospitality-Geschäft: Verkauf von Nutzungsrechten auf Sitzplätze für Veranstaltungen an Firmen

• Unterschied zur bekannten Buchung von Sitzplätzen für Konzerte / Musicals / Events

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 5: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Motivation und Anwendungsbeispiel

� Abwicklung mit RUBIN

� Anforderung: Entwicklung eines integrierten graphischen Buchungsmoduls

In Forms 6i Client/Server!

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 6: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Java-Integrationsmöglichkeiten in Forms 10g

� Überblick

Oracle Application Server

Forms Runtime

fmxServer-

Komponenten

JVM

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 7: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Clientseitige Java-Integration

� Pluggable Java Components (PJC)Anpassung vorhandener

Forms Item TypesNeue GUI-Komponenten

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 8: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Pluggable Java Components

� Was ist eine PJC?Java-Klasse, implementiert Interface IView

oder erweitert VBean

(Re-)präsentiert ein Forms Item auf Client-Seite

� Grundregel: Bean gekapselt in Forms-Item

+paint(Zoll g : Graphics)

PjcBeispiel

+getProperty() : ID

+init(Zoll handler : IHandler)

+paint(Zoll g : Graphics)

+setProperty(Zoll id : ID, Zoll value : object)

VBean

Form

Block

Item

Implementation Class = PjcBeispiel

Canvas = Canvas1

Visible = Yes

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 9: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Pluggable Java Components

�Beispiele�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 10: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Pluggable Java Components

� Kommunikation Forms � PJC

Setzen und Abfragen von Properties

Auf Items (alle Instanzen)• set_custom_item_property � setProperty(…)• get_custom_item_property � getProperty()

Auf einzelnen Instanzen• set_custom_property � setProperty(…)• get_custom_property � getProperty()

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 11: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Pluggable Java Components

� Kommunikation PJC � FormsEvent-ModellNach Instanziierung Übergabe eines Handler‘s

durch Forms an die PJCMittels Handler kann ein Event ausgelöst werden

Abarbeitung in Forms über WHEN-CUSTOM-ITEM-EVENT-Trigger

• Event-Name in :SYSTEM.CUSTOM_ITEM_EVENT

• Event-Parameter: get_parameter_attr(:SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS, param-name in varchar2, param-type out number, param-value out varchar2)

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 12: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Pluggable Java Components

� EinschränkungenKeine dynamische Auswahl und ErzeugungAsynchrone Übermittlung von Properties

Synchronisierung nur über synchronize forcierbar (Performance!)

Umsortierung der Übermittlungsreihenfolge bzgl. Properties mehrerer ItemsAus Performancegründen (Komprimierung)Lösung: Synchron und geordnet mittels FBEAN-

PackageProperty Implementation Class nicht für alle

Forms Item Types verfügbarNicht bei Tab Canvases, Alerts, LoVs, Trees, …Lösung: selbst-kreierte Tab Canvases mit Stacked

Canvases à la Forms 4.5; eigenes EWT Look and Feel

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 13: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Pluggable Java Components

� EinschränkungenJInitiator implementiert Java 1.3Integration in Forms Builder unvollständig

Eingeschränkte Anzeige, keine InteraktionKeine Integration der Custom Properties in die Property

Palette

Keine Javadoc-Dokumentation!Spärliche Dokumentation in der Forms-Onlinehilfe

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 14: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Anwendungsbeispiel

� VorführungGraphische Sitzplanbuchung

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 15: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

JInitiator / Java Plugin OC4J / Application Server

infoteamSolutions Integration in Forms 6i Client/Server

� Architektur-Überblick für Forms 10g�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Forms-Modul(FMB)

Graphische Belegung(PJC / Java)

Item Graphische Belegung(Bean Area)

VBean(Oracle PJC)

Form

sR

untimeHandler

Page 16: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Integration in Forms 6i Client/Server

� Notwendige KompatibilitätsschichtenErsatz für den HandlerErsatz für den Item Type Bean AreaDer „glue“ dazwischen

10g Built-InsEvent-Modell

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 17: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Integration in Forms 6i Client/Server

� Ersatz für den Handler und Java PluginJava-Kompatibilitätsschicht

Funktionen:Laden einer PJC zur LaufzeitSetzen und Abfragen von Properties der PJCWeiterleiten von Events an Forms

Oracle Packagestruktur und Klassenhierarchievon VBean muss nachgebildet werdenoracle.forms.ui.VBean � LWContainer

• oracle.forms.ui.VBean � JPanelNur notwendig, falls PJCs vollständig kompatibel

zu 10g sein sollen

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 18: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Integration in Forms 6i Client/Server

� Ersatz für den Item Type Bean AreaItem Type OCXGenerisches ActiveX-Control

Lädt Java Laufzeitumgebung per InvocationInterface

Ändert auf dem Handler-Objekt das Window-Handle (HWND)

• Ermöglicht der PJC das Zeichnen im Bereich des OCX Items

Stellt ein COM Interface bereit• Setzen und Abfragen von Properties• Events

– InitializedJavaEvent– PjcLoadedEvent– CustomItemEvent(eventName, eventParams)

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 19: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Integration in Forms 6i Client/Server

� Der “glue” dazwischenForms-KompatibilitätsschichtEmulation der 10g-Built-ins

Package forms10gemuProzedur set_custom_item_property etc.

implementiert durch COM-Aufrufe auf dem OCX Item

Behandlung von EventsForms ruft bei COM-Events die entsprechende

importierte Prozedur aufVerwenden eines WHEN-CUSTOM-ITEM-EVENT-

Triggers auf Form-Ebene

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 20: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Integration in Forms 6i Client/Server

� Zu umgehende ProblemeProblem bei Code zur Event-Abarbeitung

� Timer

Namensauflösung für DLLs bei ActiveX und JNI unterschiedlichModule ist zweimal geladen mit unterschiedlichen

Speicherbereichen� Eigene Namensauflösung bei JNI (analog zu

ActiveX über die COM-Komponentenregistrierung)

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 21: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

infoteamSolutions Integration in Forms 6i Client/Server

� Schließlich: Migration nach 10gMinimaler AufwandFMBs und PLLs konvertieren mit Oracle Forms

10g Migration AssistentGgf. Anwendung eigener MigrationstoolsJava-Komponenten für 6i und 10g identisch –

keine Migration notwendigSofort einsatzbereit

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g

Page 22: Windows- und Java-Integration mit Oracle Forms 10g und 6i · PDF fileDOAG Konferenz 2006 Windows- und Java-Integration mit Oracle Forms 10g und 6i Oder: In Forms 10g denken, mit Forms

infoteam GmbH Berlin

DOAG Konferenz 2006

Kontakt:

[email protected]@leidner-net.de

infoteam GmbH BerlinKönigsberger Straße 1412207 Berlin

030-7733000

Vielen Dank für die Aufmerksamkeit!

Fragen ...

Überblick und weitere Details zur Java-Integration in Forms 10g:

Vortrag bei der DOAG SIG Development, 15.09.2005, Andreas Leidner, Lutz Döhler

�� infoteaminfoteam

�� MotivationMotivation

�� JavaJava--IntegrationsmIntegrationsmööglichkeitenglichkeiten

�� ClientseitigClientseitig PJCsPJCs

BeispieleBeispiele

DesignDesign

�� AnwendungsbeispielAnwendungsbeispiel

�� Integration Forms 6i C/SIntegration Forms 6i C/S

�� Migration Migration nachnach 10g10g