Oracle Forms und APEX

266 Aufrufe

Veröffentlicht am

www.opitz-consulting.com

Oracle Application Express, kurz APEX, wird in der IT zunehmend beliebter. Demzufolge wird es immer wichtiger, APEX in eigene Forms-Landschaften zu integrieren und so das Beste aus beiden Welten zu nutzen.

Dieser Vortrag begann mit der Fragestellung, wie man in einem Browserfenster gleichzeitig Forms und APEX laufen lässt. Danach wurden vielfältigen Möglichkeiten vorgestellt, wie Forms und APEX Daten austauschen können, ohne den Umweg über die Datenbank gehen zu müssen. Für diese Kommunikation hatten die Referenten Best Practices parat.

Javascript-API zur bidirektionalen Kommunikation vs. Advanced Queuing vs. DB-Tabellen zum Datenaustausch sind Themen, die in diesem Zusammenhang untersucht wurden. Alle Vor- und Nachteile dieser Techniken wurden vorgestellt und bewertet, sowie alle hierfür erforderlichen Sourcecodes, gezeigt und live demonstriert.

Unserer Experten Gerd Volberg und Jan Winkels hielten diesen Vortrag am 15.11.2016 bei der DOAG Konferenz in Nürnberg.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
266
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
0
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Oracle Forms und APEX

  1. 1. © OPITZ CONSULTING 2016  überraschend mehr Möglichkeiten! © OPITZ CONSULTING 2016 Gerd Volberg + Jan Winkels OPITZ CONSULTING Deutschland GmbH Oracle Forms und APEX
  2. 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. 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. 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. 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. 6. © OPITZ CONSULTING 2016 Oracle Forms und APEX Region-Plugin  Parameter und Einstellungen
  7. 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. 8. © OPITZ CONSULTING 2016 Oracle Forms und APEX Region-Plugin  Lösung
  9. 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. 10. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen - Allgemein
  11. 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. 12. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Raise Event
  13. 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. 14. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Daten abfragen (native JavaScript)
  15. 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. 16. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Daten abfragen (jQuery)
  17. 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. 18. © OPITZ CONSULTING 2016 Oracle Forms und APEX Grundlagen – Daten senden (native JavaScript)
  19. 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. 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. 21. © OPITZ CONSULTING 2016 Oracle Forms und APEX APEX steuert Forms
  22. 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. 23. © OPITZ CONSULTING 2016 Oracle Forms und APEX Forms steuert APEX
  24. 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. 25. © OPITZ CONSULTING 2016 Oracle Forms und APEX APEX / Forms-Synchronisation APEX-Formular Forms im „separateFrame“
  26. 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. 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. 28. © OPITZ CONSULTING 2016 Seite 28 Known Problems  Unterschiedliche HTML-Templates  Forms und JavaScript-Aufrufe  Java 4 Oracle Forms und APEX
  29. 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. 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. 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. 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

×