SlideShare una empresa de Scribd logo
1 de 32
© OPITZ CONSULTING 2016
 überraschend mehr Möglichkeiten!
© OPITZ CONSULTING 2016
Gerd Volberg + Jan Winkels
OPITZ CONSULTING Deutschland GmbH
Oracle Forms und APEX
© OPITZ CONSULTING 2016 Seite 2
Agenda
1
2
3
4
5
Oracle Forms
APEX
Live-Demos
Known Problems
Resümee
Oracle Forms und APEX
© OPITZ CONSULTING 2016 Seite 3
Oracle Forms
 Wie kann man Forms modernisieren, ohne alles
wegzuschmeissen?
 Wie kann man ohne viel Arbeit an andere
Entwicklungsumgebungen andocken?
 Solche und viele ähnliche Fragen waren die
Grundlage dieses Vortrags
1
Oracle Forms und APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Oracle Forms
 Forms und APEX miteinander zu verheiraten, funktioniert ab Forms 11g.
 Die Live-Demos arbeiten in einer VM mit
 Forms 11g Release 2 (11.1.2.2.0)
 DB 11g Release 2 (11.2.0.4)
 Weblogic Server 11g Release 1 (10.3.6)
 APEX 5 (5.0.4)
 TomCat 8 (8.5.5)
© OPITZ CONSULTING 2016 Seite 5
APEX
 Region-Plugin
 Parameter und Einstellungen
 Browserabhängige Probleme
 Java Probleme
 Java-Script API
2
Oracle Forms und APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Region-Plugin
 Parameter und Einstellungen
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Region-Plugin
 Browserabhängige Probleme
 IE und Firefox integrieren das Java-Plugin für Forms mit unterschiedlichen HTML Tags
http://www.w3schools.com/tags/tag_object.asp
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Region-Plugin
 Lösung
© OPITZ CONSULTING 2016 Seite 9
Live-Demos
 Grundlagen
 APEX steuert Forms
 Forms steuert APEX
 Forms im externen Fenster
3
Oracle Forms und APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Grundlagen - Allgemein
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 11
Grundlagen – Raise Event
 Mittels „raiseEvent“ können Daten von APEX an Forms übergeben werden.
 Die Payload besteht aus einem Datenpaket mit Name und Wert.
 Event_Name => Eindeutiger Name zur Weiterverarbeitung in Forms
 Event_Value => Payload, die dann in Forms genutzt werden kann
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Grundlagen – Raise Event
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 13
Grundlagen – Raise Event
Dynamic Action: OnClick
$("#get_set")[0].raiseEvent($("#P3_EVENT_NAME").val(),$('#P3_EVENT_VALUE').val())
WHEN-CUSTOM-JAVASCRIPT-EVENT :
DECLARE
V_Name varchar2 (300) := :system.javascript_event_name;
V_Value varchar2 (300) := :system.javascript_event_value;
BEGIN
:DOAG.TI_Event_Value := '*** WHEN-CUSTOM-JAVASCRIPT-EVENT ***' || CHR (10) ||
'Event: ' || V_Name || CHR (10) ||
'Value: ' || V_Value;
END;
 APEX
 Forms
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Grundlagen – Daten abfragen (native JavaScript)
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 15
Grundlagen – Daten abfragen (native JavaScript)
WHEN-BUTTON-PRESSED :
BEGIN
:DOAG.TI_Return := web.javascript_eval_function (:DOAG.TI_Get);
END;
 Forms
 APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Grundlagen – Daten abfragen (jQuery)
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 17
Grundlagen – Daten abfragen (jQuery)
WHEN-BUTTON-PRESSED :
BEGIN
:DOAG.TI_Return := web.javascript_eval_function (:DOAG.TI_Get);
END;
 Forms
 APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Grundlagen – Daten senden (native JavaScript)
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 19
Grundlagen – Daten senden (native JavaScript)
WHEN-BUTTON-PRESSED :
BEGIN
web.javascript_eval_expr (:DOAG.TI_Set);
END;
 Forms
 APEX
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 20
Grundlagen – Daten senden (jQuery)
WHEN-BUTTON-PRESSED :
BEGIN
web.javascript_eval_expr (:DOAG.TI_Set);
END;
setValue: function(value){
this.item.value=value;
this.object.change();
}
 Forms
 APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
APEX steuert Forms
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 22
APEX steuert Forms
SQL-Query auf Chart-Region
select 'javascript:$("#emp_dept")[0].raiseEvent(''QUERY_EMP'','||d.deptno||')' LINK,
d.dname LABEL,
Count(e.empno) ANZ_EMP
from emp e
join dept d on (e.deptno=d.deptno)
group by 'javascript:$("#emp_dept")[0].raiseEvent(''QUERY_EMP'','||d.deptno||')',
dname;
WHEN-CUSTOM-JAVASCRIPT-EVENT :
DECLARE
V_Event_Name varchar2 (300) := :system.javascript_event_name;
V_Event_Value varchar2 (300) := :system.javascript_event_value;
BEGIN
IF V_Event_Name = 'QUERY_EMP' THEN
:Parameter.PA_DEPTNO := V_Event_Value;
Go_Block ('EMP');
Execute_Query;
END IF;
END;
 APEX
 Forms
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Forms steuert APEX
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 24
Forms steuert APEX
WHEN-BUTTON-PRESSED :
BEGIN
web.javascript_eval_expr
('frm_apex.getSelectListById(''P6_DEPTNO'').setValue(' || :DEPT.DEPTNO || ')');
END;
Userdefined JavaScript-Function
setValue: function(value){
apex.item(this.item.id).setValue(value);
}
 Forms
 APEX
© OPITZ CONSULTING 2016 Oracle Forms und APEX
APEX / Forms-Synchronisation
APEX-Formular Forms im „separateFrame“
© OPITZ CONSULTING 2016 Oracle Forms und APEX
APEX / Forms-Synchronisation
 Formsmasken, die mit APEX zusammen auf einer HTML-Seite laufen,
können auch im eigenen Fenster arbeiten.
 Mit „separateFrame=true“ lassen sich Legacy-Forms sehr schnell mit APEX-
Funktionalität anreichern.
 Die Live-Demo zeigt, wie in einem APEX-Formular Daten erfasst und
danach in einem externen Fenster in Forms angezeigt werden. Nach
jedem Speichervorgang wird Forms einen Auto-Query starten.
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 27
APEX / Forms-Synchronisation
Dynamic Action: OnClick
$("#emp")[0].raiseEvent("QUERY_EMP","EMP");
WHEN-CUSTOM-JAVASCRIPT-EVENT :
DECLARE
V_Event_Name varchar2 (300) := :system.javascript_event_name;
V_Event_Value varchar2 (300) := :system.javascript_event_value;
BEGIN
IF V_Event_Name = 'QUERY_EMP' THEN
Go_Block (V_Event_Value);
Execute_Query;
END IF;
END;
 APEX
 Forms
© OPITZ CONSULTING 2016 Seite 28
Known Problems
 Unterschiedliche HTML-Templates
 Forms und JavaScript-Aufrufe
 Java
4
Oracle Forms und APEX
© OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 29
Herausforderungen + Known Problems
 Unterschiedliche HTML-Templates
 IE und Firefox reagieren unterschiedlich auf die Java-Plugin-Definition, die im Template
genutzt wird.
 Um jQuery in APEX sinnvoll nutzen zu können, musste eine Browserweiche genutzt
werden.
 Forms und JavaScript-Aufrufe
 Werden in einer Formsmaske mehrere JavaScript-Befehle nacheinander an APEX
übergeben, führt dies zu merkwürdigem Verhalten
 Manchmal läuft Forms in das bekannte Focus-Lost-Problem
 Ab und zu wird der Cursor in andere Felder zurückgesetzt und der zuvor gestartete
Sourcecode erneut ausgeführt (kann sogar zu Endlosschleifen führen)
© OPITZ CONSULTING 2016 Oracle Forms und APEX
Herausforderungen + Known Problems
Offene Frage: Gibt es eine server-
seitige Lösung für das Problem?
 Java
 Lösung
© OPITZ CONSULTING 2016 Seite 31
Resümee
 Viele Probleme können durch Workarounds
behoben werden.
 jQuery ermöglicht eine einfache Integration in
APEX.
5
Oracle Forms und APEX
Forms + APEX !
Forms vs. APEX ?
© OPITZ CONSULTING 2016
 überraschend mehr Möglichkeiten!
@OC_WIRE OPITZCONSULTING opitzconsultingWWW.OPITZ-CONSULTING.COM
OC Powerpoint CI 2017 V 0.91 Seite 32
Q & A
Gerd Volberg
Solution Architect
Kirchstraße 6
51647 Gummersbach
gerd.volberg@opitz-consulting.com
+49 2261 6001 0
Jan Winkels
Consultant
Kirchstraße 6
51647 Gummersbach
jan.winkels@opitz-consulting.com
+49 2261 6001 0

Más contenido relacionado

Destacado

Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenenpit GmbH & Co. KG
 
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles EntwicklungswerkzeugeChoice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeugeenpit GmbH & Co. KG
 
Die 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-ModernisierungDie 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-Modernisierungenpit GmbH & Co. KG
 
Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?enpit GmbH & Co. KG
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?enpit GmbH & Co. KG
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demoenpit GmbH & Co. KG
 

Destacado (11)

Forms Microsoft and more
Forms Microsoft and moreForms Microsoft and more
Forms Microsoft and more
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Modernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesenModernisierung in Zeiten wie diesen
Modernisierung in Zeiten wie diesen
 
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles EntwicklungswerkzeugeChoice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
Choice-o-mat - Entscheidungshilfe für Oracles Entwicklungswerkzeuge
 
Die 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-ModernisierungDie 5 Mythen der Forms-Modernisierung
Die 5 Mythen der Forms-Modernisierung
 
Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?Agilität und Microservices als Chance für Modernisierung?
Agilität und Microservices als Chance für Modernisierung?
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
 
Forms 12c und der Oracle SB
Forms 12c und der Oracle SBForms 12c und der Oracle SB
Forms 12c und der Oracle SB
 
Cloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, DemoCloud-native Apps – Architektur, Implementierung, Demo
Cloud-native Apps – Architektur, Implementierung, Demo
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 

Más de OPITZ CONSULTING Deutschland

Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 

Más de OPITZ CONSULTING Deutschland (20)

OC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle LizenzierungOC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle Lizenzierung
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 

Oracle Forms und APEX

  • 1. © OPITZ CONSULTING 2016  überraschend mehr Möglichkeiten! © OPITZ CONSULTING 2016 Gerd Volberg + Jan Winkels OPITZ CONSULTING Deutschland GmbH Oracle Forms und APEX
  • 2. © OPITZ CONSULTING 2016 Seite 2 Agenda 1 2 3 4 5 Oracle Forms APEX Live-Demos Known Problems Resümee Oracle Forms und APEX
  • 3. © OPITZ CONSULTING 2016 Seite 3 Oracle Forms  Wie kann man Forms modernisieren, ohne alles wegzuschmeissen?  Wie kann man ohne viel Arbeit an andere Entwicklungsumgebungen andocken?  Solche und viele ähnliche Fragen waren die Grundlage dieses Vortrags 1 Oracle Forms und APEX
  • 4. © OPITZ CONSULTING 2016 Oracle Forms und APEX Oracle Forms  Forms und APEX miteinander zu verheiraten, funktioniert ab Forms 11g.  Die Live-Demos arbeiten in einer VM mit  Forms 11g Release 2 (11.1.2.2.0)  DB 11g Release 2 (11.2.0.4)  Weblogic Server 11g Release 1 (10.3.6)  APEX 5 (5.0.4)  TomCat 8 (8.5.5)
  • 5. © OPITZ CONSULTING 2016 Seite 5 APEX  Region-Plugin  Parameter und Einstellungen  Browserabhängige Probleme  Java Probleme  Java-Script API 2 Oracle Forms und APEX
  • 6. © OPITZ CONSULTING 2016 Oracle Forms und APEX Region-Plugin  Parameter und Einstellungen
  • 7. © OPITZ CONSULTING 2016 Oracle Forms und APEX Region-Plugin  Browserabhängige Probleme  IE und Firefox integrieren das Java-Plugin für Forms mit unterschiedlichen HTML Tags http://www.w3schools.com/tags/tag_object.asp
  • 8. © OPITZ CONSULTING 2016 Oracle Forms und APEX Region-Plugin  Lösung
  • 9. © OPITZ CONSULTING 2016 Seite 9 Live-Demos  Grundlagen  APEX steuert Forms  Forms steuert APEX  Forms im externen Fenster 3 Oracle Forms und APEX
  • 10. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen - Allgemein
  • 11. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 11 Grundlagen – Raise Event  Mittels „raiseEvent“ können Daten von APEX an Forms übergeben werden.  Die Payload besteht aus einem Datenpaket mit Name und Wert.  Event_Name => Eindeutiger Name zur Weiterverarbeitung in Forms  Event_Value => Payload, die dann in Forms genutzt werden kann
  • 12. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Raise Event
  • 13. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 13 Grundlagen – Raise Event Dynamic Action: OnClick $("#get_set")[0].raiseEvent($("#P3_EVENT_NAME").val(),$('#P3_EVENT_VALUE').val()) WHEN-CUSTOM-JAVASCRIPT-EVENT : DECLARE V_Name varchar2 (300) := :system.javascript_event_name; V_Value varchar2 (300) := :system.javascript_event_value; BEGIN :DOAG.TI_Event_Value := '*** WHEN-CUSTOM-JAVASCRIPT-EVENT ***' || CHR (10) || 'Event: ' || V_Name || CHR (10) || 'Value: ' || V_Value; END;  APEX  Forms
  • 14. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Daten abfragen (native JavaScript)
  • 15. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 15 Grundlagen – Daten abfragen (native JavaScript) WHEN-BUTTON-PRESSED : BEGIN :DOAG.TI_Return := web.javascript_eval_function (:DOAG.TI_Get); END;  Forms  APEX
  • 16. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Daten abfragen (jQuery)
  • 17. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 17 Grundlagen – Daten abfragen (jQuery) WHEN-BUTTON-PRESSED : BEGIN :DOAG.TI_Return := web.javascript_eval_function (:DOAG.TI_Get); END;  Forms  APEX
  • 18. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Daten senden (native JavaScript)
  • 19. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 19 Grundlagen – Daten senden (native JavaScript) WHEN-BUTTON-PRESSED : BEGIN web.javascript_eval_expr (:DOAG.TI_Set); END;  Forms  APEX
  • 20. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 20 Grundlagen – Daten senden (jQuery) WHEN-BUTTON-PRESSED : BEGIN web.javascript_eval_expr (:DOAG.TI_Set); END; setValue: function(value){ this.item.value=value; this.object.change(); }  Forms  APEX
  • 21. © OPITZ CONSULTING 2016 Oracle Forms und APEX APEX steuert Forms
  • 22. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 22 APEX steuert Forms SQL-Query auf Chart-Region select 'javascript:$("#emp_dept")[0].raiseEvent(''QUERY_EMP'','||d.deptno||')' LINK, d.dname LABEL, Count(e.empno) ANZ_EMP from emp e join dept d on (e.deptno=d.deptno) group by 'javascript:$("#emp_dept")[0].raiseEvent(''QUERY_EMP'','||d.deptno||')', dname; WHEN-CUSTOM-JAVASCRIPT-EVENT : DECLARE V_Event_Name varchar2 (300) := :system.javascript_event_name; V_Event_Value varchar2 (300) := :system.javascript_event_value; BEGIN IF V_Event_Name = 'QUERY_EMP' THEN :Parameter.PA_DEPTNO := V_Event_Value; Go_Block ('EMP'); Execute_Query; END IF; END;  APEX  Forms
  • 23. © OPITZ CONSULTING 2016 Oracle Forms und APEX Forms steuert APEX
  • 24. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 24 Forms steuert APEX WHEN-BUTTON-PRESSED : BEGIN web.javascript_eval_expr ('frm_apex.getSelectListById(''P6_DEPTNO'').setValue(' || :DEPT.DEPTNO || ')'); END; Userdefined JavaScript-Function setValue: function(value){ apex.item(this.item.id).setValue(value); }  Forms  APEX
  • 25. © OPITZ CONSULTING 2016 Oracle Forms und APEX APEX / Forms-Synchronisation APEX-Formular Forms im „separateFrame“
  • 26. © OPITZ CONSULTING 2016 Oracle Forms und APEX APEX / Forms-Synchronisation  Formsmasken, die mit APEX zusammen auf einer HTML-Seite laufen, können auch im eigenen Fenster arbeiten.  Mit „separateFrame=true“ lassen sich Legacy-Forms sehr schnell mit APEX- Funktionalität anreichern.  Die Live-Demo zeigt, wie in einem APEX-Formular Daten erfasst und danach in einem externen Fenster in Forms angezeigt werden. Nach jedem Speichervorgang wird Forms einen Auto-Query starten.
  • 27. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 27 APEX / Forms-Synchronisation Dynamic Action: OnClick $("#emp")[0].raiseEvent("QUERY_EMP","EMP"); WHEN-CUSTOM-JAVASCRIPT-EVENT : DECLARE V_Event_Name varchar2 (300) := :system.javascript_event_name; V_Event_Value varchar2 (300) := :system.javascript_event_value; BEGIN IF V_Event_Name = 'QUERY_EMP' THEN Go_Block (V_Event_Value); Execute_Query; END IF; END;  APEX  Forms
  • 28. © OPITZ CONSULTING 2016 Seite 28 Known Problems  Unterschiedliche HTML-Templates  Forms und JavaScript-Aufrufe  Java 4 Oracle Forms und APEX
  • 29. © OPITZ CONSULTING 2016 OC Powerpoint CI 2017 V 0.91 Seite 29 Herausforderungen + Known Problems  Unterschiedliche HTML-Templates  IE und Firefox reagieren unterschiedlich auf die Java-Plugin-Definition, die im Template genutzt wird.  Um jQuery in APEX sinnvoll nutzen zu können, musste eine Browserweiche genutzt werden.  Forms und JavaScript-Aufrufe  Werden in einer Formsmaske mehrere JavaScript-Befehle nacheinander an APEX übergeben, führt dies zu merkwürdigem Verhalten  Manchmal läuft Forms in das bekannte Focus-Lost-Problem  Ab und zu wird der Cursor in andere Felder zurückgesetzt und der zuvor gestartete Sourcecode erneut ausgeführt (kann sogar zu Endlosschleifen führen)
  • 30. © OPITZ CONSULTING 2016 Oracle Forms und APEX Herausforderungen + Known Problems Offene Frage: Gibt es eine server- seitige Lösung für das Problem?  Java  Lösung
  • 31. © OPITZ CONSULTING 2016 Seite 31 Resümee  Viele Probleme können durch Workarounds behoben werden.  jQuery ermöglicht eine einfache Integration in APEX. 5 Oracle Forms und APEX Forms + APEX ! Forms vs. APEX ?
  • 32. © OPITZ CONSULTING 2016  überraschend mehr Möglichkeiten! @OC_WIRE OPITZCONSULTING opitzconsultingWWW.OPITZ-CONSULTING.COM OC Powerpoint CI 2017 V 0.91 Seite 32 Q & A Gerd Volberg Solution Architect Kirchstraße 6 51647 Gummersbach gerd.volberg@opitz-consulting.com +49 2261 6001 0 Jan Winkels Consultant Kirchstraße 6 51647 Gummersbach jan.winkels@opitz-consulting.com +49 2261 6001 0