Follow Us on Twitter

APEX 5.1, strakker en beter

Januari 2017 - Sinds 21 december 2016 is de nieuwste versie van Oracle Application Express (APEX) beschikbaar. Versie 5.1 bevat vele verbeteringen op het gebied van functionaliteit, gebruiksvriendelijkheid en weergavemogelijkheden. Een compleet overzicht van de nieuwe features wordt gevonden op de APEX 5.1 site. In dit Whitebook bespreken we een aantal veranderingen die ons zijn opgevallen:

  • Interactive Grid
    • Cascading LOV
    • Dynamic action support
    • Data van de Interactive Grid als JSON variabele
  • Package APEX_ITEM niet meer toepasbaar
  • Oracle JET in APEX 5.1
  • Live template aanpassen
  • Meegeleverde Packaged Apps
  • Maken van master-detail-detail scherm m.b.v. Interactive Grid

Voordat we overgaan tot de nieuwe mogelijkheden, geven we een indruk van de nieuwe versie en laten we zien hoe de upgrade naar versie 5.1 verloopt. Tot slot tonen we hoe een Master-detail-detail-formulier wordt gemaakt met APEX 5.1.

APEX 5.1

Wat als eerste opvalt is het strakke nieuwe design en de lay-out. De contrast en stijlen die zijn gebruikt en de geïntegreerde componentoverzichten, maken het gebruik ervan heel intuïtief en overzichtelijk.

Vele wizards om pagina’s te maken zijn vereenvoudigd en korter gemaakt, en er wordt meer standaard ingevuld. Component types zijn meer consistent gemaakt, waardoor het overal veel eenvoudiger is om aanpassingen te doen.

Dit is de default paginadefinitie van APEX 5.1.  Hier wordt het 3 pane venster getoond waarin elke pane nog subtabs heeft.Dit is de default paginadefinitie van APEX 5.1. Hier wordt het 3 pane venster getoond waarin elke pane nog subtabs heeft.

Er kan gekozen worden tussen een “Two Pane window” en een “Three pane window”. Eventueel is ook nog de oude vertrouwde 4.x component view terug te krijgen (met dank aan Edwin van Meerendonk die dit gevonden had). De tabs kunnen ook gesleept worden zodat de gebruiker zijn eigen lay-out kan creëren.

De gebruiker kan een component (region / items / button) toevoegen aan zijn applicatie op een plek naar keuze via een simpele select en het slepen van de muis.

Een deel van de componenten die gesleept kunnen worden naar de pagina.

Het is tevens mogelijk om eenzelfde property van meerdere kolommen tegelijk aan te passen en elke aangemaakte component laat zien welke verplichte velden nog nodig zijn.

Upgrade naar APEX 5.1

Allereerst moet de oude omgeving geüpdatet worden naar APEX 5.1. Download de laatste zip-versie van APEX 5.1. Na het downloaden en unzippen van het APEX 5.1 bestand in bij voorbeeld C:\.

{Command prompt} C:\apex> sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter Password:SYS_Password

Hier gaan we de applicatie upgraden en de nieuwste image files toevoegen:

SQL> @apexins SYSAUX SYSAUX TEMP /i/
SQL> @apxldimg.sql C:

En als laatste het upgraden van het Application Express wachtwoord:

SQL> @apxchpwd

Interactive Grid

Een hele grote verbetering van APEX 5.1 is de verwerking van tabular forms. Er is een nieuw component toegevoegd, namelijk de Interactive Grid. Dit is een moderne, interactieve multi-row editing component geworden, waarbij alle beschikbare datatypes gebruikt kunnen worden.

Op het grid kan de data snel bewerkt worden en het grid heeft goede toetsenbordondersteuning en usability. Dezelfde filtering die bestaat bij interactive reports kan worden toegepast. Ook de opmaak en visualisatie van de grid-data zijn op diverse manieren verbeterd.

Alle mogelijkheden die bij een Interactive Report beschikbaar zijn, kunnen ook toegepast worden op een Interactive Grid. Tevens kunnen er meerdere grids op één pagina worden getoond.

Voorbeeld van een Interactive Grid.

De maker van het overzicht in APEX heeft met minimale programmering een mooi grid-overzicht samengesteld waar de gebruikers alle data kunnen aanpassen en opslaan. Een aantal andere verbeteringen zijn de cascading LOV, Dynamic action support, 32k rij limiet opgeven en de mogelijkheid van Master > Detail > Detail. Ook is er voor oude rapporten, gemaakt in Tabular Forms en Interactive Reports van 4.x, een upgrade utility beschikbaar.

Cascading LOV

Een verbetering is Cascading LOV’s binnen een grid. De gebruiker kan binnen elke rij van het grid een afhankelijkheid van een LOV definiëren op basis van de waarde van een andere LOV (denk bijvoorbeeld aan een LOV van namen van een stad waarbij alleen de namen te zien krijgt van de provincie die er bij een eerdere LOV gekozen is).

Dynamic action support

Het gebruik van rijen binnen een grid lijkt nu heel erg op die van een overzicht in SQL Developer. De gebruiker kan een rij toevoegen, dupliceren, verwijderen en ook wijzigingen kunnen worden teruggedraaid. Dit maakt het heel gebruiksvriendelijk.

Data van de Interactive Grid als JSON variabele

Vroeger werden alle form input velden van een tabular form opgeslagen als variabele met cryptische namen als p_t001-200 en p_v001-200. Nu wordt dit in een JSON document opgeslagen. Een voordeel hiervan is een verminderde server load en een zeer snelle gebruikerservaring.

De data van de tabel is veel toegankelijker geworden voor de site builder, en kan dus gemakkelijker mee gewerkt worden. Als de source van een gemaakte pagina met Interactive Grid bekeken wordt, is te zien dat alle waarden van de tabel als JSON data zijn opgeslagen (hier data aangemaakt vanuit de DEMO_CUSTOMERS tabel).

De data van de Interactive Grid opgeslagen als JSON data in de source van de pagina.

Zorg wel dat per Region de static Id invuld is . Hier is die “test_grid” benoemd. Via een hele eenvoudige manier is deze data te benaderen:

alert ('json:'+gIgtest_gridData.values[0][1]); 

Dit levert de naam “Eugene” op in de alert.

Package APEX_ITEM niet meer toepasbaar

De functionaliteit van de package APEX_ITEM is niet meer toepasbaar binnen 5.1. Waar eerder in APEX 4.x een checkbox kon worden toegevoegd aan het report door met bijvoorbeeld in de query APEX_item.checkbox ( p_idx => 10 ) toe te voegen, en daarna een Standaard Report Column te maken, is dit binnen APEX 5.1 niet mogelijk.

Bovengenoemde lijkt ook niet meer te werken bij Interactieve Report, Interactive Grid en Standaard Report. Dit kan flinke gevolgen hebben bij het migreren van een 4.x applicatie naar 5.1.

Oracle JET in APEX 5.1

Het maken van de datavisualisatie binnen APEX wordt nu gedaan met Oracle JET (JavaScript Extension Toolkit) charts. In mijn Whitebook Oracle JET - JavaScript-applicatieontwikkeling van Oracle heb ik geschreven over de mogelijkheden van JET en ik ben heel blij met wat APEX heeft omarmt.

Binnen APEX kunnen nu met Oracle JET grafieken gemaakt worden die mooi, snel, aanpasbaar, interactief en responsive zijn. De mogelijke visualisaties zijn onder andere: bar, line, area, range, combination, scatter, bubble, polar, radar, pie, funnel, en stock grafieken.

Ook hier is een migratietool beschikbaar om de oude grafieken over te zetten naar de nieuwe Oracle Jet grafieken. De grafieken zijn volledig HTML5 en werken op elke moderne browser, ongeacht het platform of de schermgrootte.

Net zoals bij Interactive Reports kunnen deze grafieken ook gemaakt worden bij een Interactive Grid. De gebruikers kunnen ook hier zelf een grafiek naar keuze maken omtrent de data op het scherm.

De wizard die bij APEX 4.x voor het maken van een chart region bestond, ontbreekt in APEX 5.1. Er moet handmatig een chart region aangemaakt worden, en de gebruiker moet zelf het juiste attribuut vinden en dan de juiste grafieksoort selecteren, wat in mijn opinie een verslechtering is. Wij hopen dat dit in de toekomstige releases nog opgepakt wordt.

Daarentegen hebben zij bij APEX 5.1 een Packaged App meegeleverd waarin alle grafrieken met voorbeelden beschreven zijn. Dus de gebruiker kan zien hoe de grafieken worden weergegeven en hoe ze in de code opgebouwd moeten worden.

Een overzicht van voorbeeldgrafieken die verkregen wordt bij de Packaged App meegeleverd by APEX 5.1.

Live template aanpassen

APEX 5.1 heeft nu de mogelijkheid om direct de aanpassingen, die de gebruiker aan de template component aanbrengt, op het scherm te laten zien. Met Theme Roller maakt de gebruiker precies zoals gewenst snel de UI interface. Het is volgens Oracle nu ook mogelijk om per gebruiker een thema te definiëren.

Een voorbeeld hoe de template aangepast wordt m.b.v. de Theme Roller.

Meegeleverde Packaged Apps

Bij APEX 5.1 zijn vele Packaged Apps meegeleverd. Packaged Apps zijn APEX implementaties die een voorbeeld laten zien hoe er een dynamisch actie, REST Service of Data Loading gemaakt wordt. Maar er zijn ook complete Incident Tracking, Project Management, Customer Tracker of Data Reporter applicaties.

Met een paar clicks is de applicatie te installeren en te bekijken.

Alle Apps zijn geüpgraded tot versie 5.1, dus bouwers kunnen veel leren over hoe de APEX 5.1 functionaliteit moet worden gebouwd.
Een aantal van de beschikbare packaged Apps dat meegeleverd worden met APEX 5.1.

Maken van master-detail-detail scherm m.b.v. Interactive Grid

Een van de nieuwe features is de verbeterde master detail in de schermen. We gaan dat testen via de aanwezig DEMO_CUSTOMERS / DEMO_ORDERS / DEMO_ORDER_ITEMS tabellen m.b.v. een Interactive Grid.

    Start
  • Begin op de startpagina van de applicatie en kies voor “Create Page”
    Selecteer het Page Type 'Form'
    en daarne “Single Page Master Detail"
  • Vul dan het page number, page_name en houd Page Mode op Normal
  • Druk op de Next knop en daarna druk nog een keer op de Next Knop
    Master Source scherm
  • Vul Master Region Title in
  • Selecteer de tabel DEMO_CUSTOMERS met CUSTOMER_ID als primary key
  • Druk op Next knop

De Master Source Scherm, hier wordt de hoofd tabel gedefinieerd.

 

    Master Detail scherm
  • Hier komen we bij het detail scherm, vul de title in
    Selecter tabel DEMO_ORDERS met primary key ORDERS_ID en
    Selecteer bij de Master Detail Foreign Key de link tussen DEMO_CUSTOMERS en DEMO_ORDERS
  • De Master Detail Scherm, hier wordt de link vastgelegd.

     

  • Druk op Create Knop
  • Bij de REGION van Orders kun jij bij de propertie Master Detail van deze Region zien dat de Master Region Customers is
  • Bij het (hidden) veld CUSTOMER_ID ( kolom van REGION Orders ) kan bij de kolom property “Master Detail” gezien worden wat de master detail is.
    We zien dat de DEMO_ORDERS.CUSTOMER_ID column kijkt naar de DEMO_CUSTOMER.CUSTOMER_ID


De property Master Column wijst naar kolom CUSTOMER_ID.

    Nu gaan we de order items toevoegen als kind van de orders
  • Maak een nieuwe Region aan
  • Title: Order items.
    Type: interactive Report
    SQL Query: select * from demo_order_items
    Master Region: Orders
  • Druk op Save knop
  • Zet de nieuwe kolommen ORDER_ITEM_ID en ORDER_ID op type hidden
  • Zet bij kolom ORDER_ID de property Master Column op ORDER_ID.
  • Zet bij Region Customers en Region Orders bij kolom APEX$ROW_SELECTOR de “Enable Multi Select” op NO.
  • Start het scherm, we kunnen nu per Customer zien wat zijn Orders zijn en wat hij per order heeft besteld als de radiobutton gebruikt wordt.

Conclusie

APEX 5.1 is qua vormgeving en gebruik een flinke verbetering ten opzicht van de 4.x reeks. De nieuwe mogelijkheden zoals Interactive Grid, Oracle JET grafieken en live template aanpassingen zorgen ervoor dat APEX steeds professioneler en gebruiksvriendelijker wordt. De Interactive Grid biedt gebruikers flexibiliteit van data aanpassing met alle mogelijkheden van de Interactive Reports. Tevens was de keuze om de data van de Interactive Grid op te slaan als een JSON variabele, een geschenk voor de programmeur en gebruiker van de pagina. De programmeur krijgt eenvoudig toegang tot de data van het grid en de gebruiker wint met opbouw snelheid van de pagina. Voor de huidige 4.x omgevingen kan een migratie een probleem zijn, indien er veel gebruik is gemaakt van APEX_ITEM functionaliteit omdat 5.1 deze niet meer blijkt te ondersteunen.

Links:

Waardering:
 
Tags:

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.