nlOUG Visie najaarseditie oktober 2021

Page 1

ViSIE HERFST 2021 - JAARGANG 27 - NUMMER 2

APEX WORLD 2021 EINDELIJK WEER LIVE!

ORACLE APEX WITH NO STRINGS ATTACHED

HIDDEN GEMS, OOK IN DE ORACLE CLOUD


Where Business Meets IT

We Love Teamwork TECHNOLOGY GROWTH PARTNER

Managed Services Application Development Business Analytics Consulting Oracle Cloud Oracle APEX

Tailored Software Solutions?

MEET THE DOC Tel. +31 (0)85 002 1831 E-mail: info@thedoc.nl Weert - Langbroek


INHOUD

VOORWOORD

Geachte lezer,

We leven in een inclusieve samenleving. Een samenleving waarin iedereen meedoet. Inwoners, verenigingen, ondernemers en maatschappelijke organisaties, op terreinen die van belang zijn voor alle mensen: arbeid, onderwijs, wonen, goederen en diensten, verkeer en vervoer, zorg, ondersteuning, sport, cultuur, vrijetijdsbesteding en uitgaan. Maar ook fysieke, sociale en digitale toegankelijkheid. Zolang dit niet zonder beperkingen mogelijk is, zijn we nog niet waar we willen zijn.

Voorzitter Nederlandse Oracle User Group - nlOUG

3

V

oor jullie ligt de APEX World-editie van de nlOUG Visie. Eindelijk mocht het weer. Een echte in-person conferentie. Wat hebben we daar lang op moeten wachten! Niet meer online, niet meer met videoverbindingen maar gewoon weer live. De coronamaatregelen maakten het niet eenvoudig om deze confe­ rentie als vanouds te laten plaatsvinden. Gelukkig heeft de organisatie, samen met de KNVB, het voor elkaar gekregen om de vereiste controles uit te voeren en iedereen die aan de eisen voldeed binnen te laten. De reacties waren lovend en ik wil dan ook graag iedereen die in welke vorm dan ook betrokken was bij APEX World 2021 ontzettend bedanken voor de geleverde prestatie. TOPPERS. Op naar APEX World 2022! Maar daarmee zijn we wat mij betreft nog niet terug waar we graag willen zijn. Ik wil graag dat iedereen erbij hoort, en dat iedereen aan onze activiteiten kan deelnemen. Omstandigheden kunnen ertoe leiden dat je er wel of niet bij hoort. Ik heb geen Facebook, dat is voor mij een bewuste keuze. Op 4 oktober, toen Facebook voor even niet meer bestond, hoorde ik er helemaal bij. Bij veel mensen over de hele wereld ontstond toen al snel een lichte mate van paniek omdat ze, zonder dat ze er zelf voor hadden gekozen, beperkt werden in het deelnemen aan sociale activiteiten. Een deel van hun dagelijks leven werd volledig in de war gestuurd. Deze situatie is in zekere mate te vergelijken met de situatie waar we ons op dit moment in Nederland in bevinden. Het gaat om keuzes maken binnen de omstandigheden waarin we ons bevinden.

Luc Bors

|

Ik ben me ervan bewust dat de meningen over dit onderwerp sterk uiteen kunnen lopen. Dat betekent naar mijn persoonlijke mening echter niet dat die discussie dus niet gevoerd moet worden. Gelukkig staan er inmiddels ook meet-ups op de nlOUG-agenda waar iedereen zonder beperkingen naar toe kan, en ik hoop dat er nog vele volgen. Tot die tijd blijft het aanpassen aan de omstandigheden en hoop ik dat we binnen de grenzen van het mogelijke onze leden kunnen blijven voorzien van content en waardevolle events.

APEX World 2021 4 Verslag APEX with no strings attached 6 Column Learco Brizzi

9

OCI-nieuws 10 APEX en Redaction, deel 2 13 Column Sandor Nieuwenhuijs

19

Highlights virtuele ODTUG Kscope21 22

Bloedbank Sanquin zet APEX-applicatie in bij bestrijding COVID-19 26

COLOFON REDACTIE Hans Gerritse (hoofdredacteur) Learco Brizzi (Itium BV) Luc Bors (eProseed) Job Oprel, (Qualogy) REDACTIEADRES/ SECRETARIAAT / ADVERTENTIEEXPLOITATIE Nederlandse Oracle User Group Emmaplein 10 1075 AW Amsterdam T +31 30 6997065 E secretariaat@nloug.nl REALISATIE MAT ONTWERP, BNO, Den Haag E maya.timmer@ gmail.com ORGANISATIE / NLOUG-SECRETARIAAT/ ADVERTENTIE-EXPLOITATIE BMO B.V., Amsterdam T +31 30 6997070 E info@bmowerkt.nl BESTUUR NLOUG Luc Bors (voorzitter) eProseed E l.bors@nloug.nl Theo Veltman (penningmeester) E t.veltman@nloug.nl Job Oprel (secretaris) Qualogy E j.oprel@nloug.nl Daan Bakboord E d.bakboord@nloug.nl Yvonne Bakx (kandidaat bestuurslid) iAdvise nlOUG VISIE is een uitgave van de Nederlandse Oracle User Group (nlOUG) en wordt verzonden aan al haar leden en overige abonnees. AANMELDEN voor een abonnement kan via www.nloug.nl. © 2021 nlOUG


4

|

APEX WORLD 2021

DOOR HANS GERRITSE

APEX WORLD 2021 OP KNVB CAMPUS IN ZEIST

APEX WORLD RELOADED! EINDELIJK WEER LIVE Eindelijk weer naar een live event, eindelijk is er weer een APEX World! Aan de deelnemers aan APEX World 2021 was duidelijk te merken dat ze het persoonlijk contact met andere leden van de APEX community en het live kunnen volgen van de keynotes en presentaties van het Oracle APEX-team en andere APEX-specialisten (te) lang hadden gemist. In een ontspannen en ongedwongen sfeer werden contacten hernieuwd en nieuwe contacten gelegd en nieuwe inzichten en kennis opgedaan. Kenmerkend was ook dat alle bezoekers een geldige QR-code konden laten zien en zo – getooid met hun badge aan een oranje KNVB-lint - vrijelijk en zonder verdere controle aan APEX World konden deelnemen.

A

PEX World 2021, dat toepasselijk het thema APEX World Reloaded had meegekregen, werd bij ontstentenis van voorzitter Luc Bors, die wegens persoonlijke omstandigheden was verhinderd, geopend door Yvonne Bakx, kersvers bestuurslid van de nlOUG. Zij stond allereerst samen met de deelnemers stil bij het overlijden van Joel Kallman, de inspirerende aanvoerder van het Oracle APEX Team en geliefd spreker op vele edities van APEX World. Joel Kallman overleed 25 mei op 54-jarige leeftijd aan de gevolgen van COVID-19. Ontwikkelingen APEX

APEX World 2021 werd op 29 en 30 september gehouden in het Trainingscentrum op de KNVB Campus in Zeist. In een aangepaste opzet vanwege de coronaregels en op een andere locatie dan de voorgaande edities, maar met een onveranderd uitgebreid en gevarieerd programma en toongevende sprekers uit binnen- en buitenland (9 landen waaronder de VS). APEX World trok ruim 200 voornamelijk Nederlandse deelnemers; veel buitenlandse bezoekers moesten vanwege de internationale reisbeperkingen verstek laten gaan. De openingskeynote werd verzorgd door Menno Hoogendijk, lid van het Oracle APEX Team. De ontwikkeling van APEX heeft zeker niet stilgestaan, betoogde hij, maar door het ontbreken van aansprekende live Oracle (APEX-)events ViSIE

is dat nieuws wellicht een beetje onder de radar gebleven. Hij gaf daarom een kort overzicht van de nieuwe features en uitbreidingen sinds APEX 9.1 in 2019 – het jaar waarin APEX World voor het laatst is gehouden - en de daarop volgende versies 9.2, 20.2 en 21.1, die op 12 mei van dit jaar is verschenen. Als highlights noemde hij onder meer de nadruk op bug fixing in alle versies en de introductie van de APEX GitHub Repository. “Github is here!” APEX 21-2

Vervolgens schakelde Menno over naar Versie 21.2, die Oracle op 20 oktober officieel aankondigt. Uiteraard onder uitdrukkelijke vermelding van het Oracle Safe Harbor Statement behandelde hij in vogelvlucht de belangrijkste nieuwe features van deze major release van APEX. Op de tweede dag van APEX World ging hij in de openingskeynote: APEX 21.2 part one dieper


APEX WORLD 2021

|

5

Yvonne Bakx opent APEX World 2021

in op een aantal van de belangrijkste nieuwe features. In de afsluitende keynote nam Christian Rokitta – op dat moment nog aanstaand maar inmiddels officieel benoemd Oracle APEX Team-lid - het tweede deel voor zijn rekening. Student Tracks

APEX World vond dit jaar voor het eerst plaats op de KNVB Campus in Zeist. Uit de positieve reacties van deelnemers, sprekers en exposanten blijkt dat deze nieuwe locatie unaniem positief is beoordeeld. Ook niet-voetballiefhebbers konden zich prima vinden in de keuze voor deze toch geheel met voetbal doordesemde omgeving. De keynotes werden gehouden op het Oranjeplein, waar de stands van de sponsors langs de zijden waren opgesteld. Dit sfeervolle ‘plein’ was ook het centrale ontmoetingspunt tijdens de pauzes en de netwerkborrels na het diner op de eerste dag en ter afsluiting van APEX World 2021. De parallelsessies werden gehouden in o.a. de Kleedkamer van Oranje en in de Bestuurskamer van de KNVB. In deze bijzondere, Nederlandse voetbalhistorie ademende vergaderruimte vonden ook de Student Tracks plaats. De zeven

deelnemende studenten konden in een intensieve ochtendsessie op de tweede dag kennismaken met de eigenschappen en mogelijkheden van APEX, waarna ze onder begeleiding van Oracle-experts Marti Koppelmans en Pieter van der Broek aan de hand van oefenopdrachten praktische ervaring konden opdoen met de Oracle ontwikkeltool. ’s Middags was er gelegenheid om de sessies van APEX World bij te wonen. n

NIEUWE FEATURES EN UITBREIDINGEN APEX 21.2 1. Smart Filters 2. Declaritive PWA 3. Geocoding and Address Normalization 4. Static File Editor 5. Data Packager 6. REST Data Source Catalogs 7. Custom Positions for Page Components 8. Faceted Search Enhancements 9. Alert and Confirm Dynamic Actions 10. SAML Authentication in the Builder 11. Pagination Support for Simple HTTP REST Sources 12. Include Images in Data Export / Printing 13. Email Template for Send Email Process Type 14. Universal Theme Enhancements 15. SQL Commands supports more than 32k characters 16. Translate APEX into Additional Runtime Languages

ViSIE


6

|

APEX

DOOR DICK DRAL

APEX WITH NO STRINGS ATTACHED APEX is a great tool to build web apps. It heavily depends on connection to the Internet. So, what if there is no connection? Can you still use your APEX app? And what changes do you need to make your APEX app truly off-line? This article dives into this question and will provide you with answers. For more detail you can download the example application from GitHub.

ViSIE


APEX

|

7

Why off-line?

Being a big fan of APEX, I have created a number of mobile APEX apps to support my personal processes. For example, I have an app to track my progress in the gym. In this app I record the weight used with different strength devices. During my exercises I enter the weights I use during the current session. Because this app is built using APEX, it fully depends on a connection with the Internet to retrieve pages and to store the entered data. I have a subscription that lets me visit different gyms. And some gyms are below ground level and have no mobile connection. In that case it is impossible to use the app. A business example of off-line use is the entry of growth data in greenhouses. This process used to be performed by measuring the values on site, writing the values on paper, and entering this data into an application in the office. A few years ago, I created a mobile APEX app to track the growth of tomato plants in green houses. But in many greenhouses, there is no stable Internet connection, so sometimes the app would be unusable. Also here, some off-line capability is desirable. APEX architecture

The APEX architecture relies heavily on the connection with the server. As you can see in the architecture image, the majority of APEX elements are served from the database server. Just a number of static files are served from the web server. In an off-line situation, the various APEX elements should be already available on the client. The solutions for this are caching using service workers and storing the data in local storage. Another big difference is the programming language. In the database we have SQL and PL/

SQL at our disposal. On the client we have only JavaScript. So off-line only JavaScript is available. Which APEX features are usable?

To use the application off-line we need to download and cache the pages. In standard APEX pages the data is part of the downloaded page. In off-line APEX there is a clear division between the page and the data. The page should be a template, in which the data is rendered using JavaScript. All processes – be it pre-rendering or at submit time - cannot be used as they are PL/SQL processes at the load or submit time implemented on the server. Same applies to the Ajax Callback processes. ViSIE


8

|

APEX

Server-side conditions normally are applied on runtime and determine whether an object is rendered. But off-line we need to render all objects and determine at runtime which objects to show/hide using JavaScript. The same thing applies to read-only conditions. Dynamic actions can be used as long as the actions are JavaScript based. Luckily most actions are implemented using JavaScript. Amongst others Execute PL/SQL code, Refresh and Submit page cannot be used.

WITH THIS PROJECT I HAVE DEMONSTRATED THAT IT IS POSSIBLE TO CREATE AN OFFLINE APEX APPLICATION.

Building an off-line app

A simple app is built to show the off-line capabilities of APEX. The app consists of a List View and a form based on the EMP table, both contained in one APEX page. The app will also allow off-line data entry and synchronization thereof to the server. In this article we will further discuss the caching of pages and files, the caching of data and the synchronization of entered data while off-line.

region is displayed. The form region functions as the template as it already contains the items. These items are populated with the data from the selected row. When there is no connection the application will use the data from localStorage, to populate the list view and the form. How is the updated data synchronized? When data in the form is changed and the Save button is pressed, the data is written back to localStorage with the extra property changed=true. Each time the page is reloaded while there is a connection, the changed records are sent to the server in the request to download the data. Before the download the changed data is processed first, so the download will contain the most recent state of the data.

How do we cache pages and files?

For caching pages and files, we use a Service Worker. This is a process that exists independently from the page and application. This process can function as an intermediate between the application and the webserver. If there is a connection the pages and files will be served from the webserver, if not the Service Worker serves those objects from its cache. A special difficulty for applying a Service Worker in APEX is, that it can only affect URL’s from the path of the JavaScript code upward. For APEX that would be the ‘root’ of the application, where also pages are served from. After some hours of experimenting I found a way to serve the JS file through a APEX page URL: a Before Header branch to a PL/SQL procedures which serves the JS content with wpg_docload. download_file while applying the mime type application/javascript. You can find the code on page 12 in the example application.

Conclusion

With this project I have demonstrated that it is possible to create an offline APEX application. Personally, I think the effort needed is pretty high, given the simple nature of the application. Maybe it is easier to create a native app with XCode, Eclipse or one of the many mobile frameworks. Point is, that I was able to leverage my APEX and JavaScript skills and I only had to learn about Service Workers. Do it yourself

How is the data cached?

The data is cached using JavaScript localStorage. Each time that the application is loaded from the server, the data is copied to the client and stored into localStorage. The data is displayed in the list view using substitution in a template stored in the hidden template region. Once a row of the list view is clicked the form ViSIE

If you want to dive deeper into these techniques you can download the code of the sample application from GitHub: https://github.com/dickdral/apex_offline. n

Dick Dral is APEX Developer at Nederlandse Voedsel en Warenautoriteit – NVWA. This article is a derived from the presentation Dick has given at APEX World 2021.


COLUMN

|

9

APEX WORLD (RELOADED) 2021

W

Het was weer een erg leuke APEX World! Na lang weggeweest te zijn vanwege de coronapandemie konden we eindelijk weer een fysiek event te organiseren. Ik heb me laten vertellen dat

dit een van de eerste fysieke ICT events is geweest in Nederland na de versoepelingen . Met meer dan 200 bezoekers en zeven deelnemers aan de Student Tracks waren we erg tevreden. Voor ons was de KNVB Campus in Zeist een nieuwe locatie, het ligt een stuk centraler dan de SS Rotterdam en is gemakkelijk te bereiken. We waren door de KNVB erg goed geholpen de afgelopen maanden. Ze stelden

Learco Brizzi

zich zeer flexibel op en dachten goed met ons mee. Dit laatste hadden we hard nodig, gezien de onduidelijkheid qua overheidsregels en aantallen bezoekers die we konden verwachten. Deze onduidelijkheid had ook z’n weerslag op het aantal internationale bezoekers en sprekers. Ik verwacht dat dit volgend jaar weer beter zal zijn. Ik wil op deze plaats ook de spon-

Goed om te zien is ook dat het Oracle ‘nog steeds’ menens is met de (door-) ontwikkeling van APEX.

soren bedanken die in deze aparte tijd met ons hebben meegedacht en ons zijn blijven steunen. Bij een nieuwe locatie is het ook afwachten hoe de faciliteiten geregeld zijn. Persoonlijk waren we op de SS Rotterdam best wel verwend qua catering, dus dat het nu iets minder overdadig zou zijn, vond ik ook wel passen in deze tijd en bij de aangepaste opzet van deze editie. Temeer ook omdat er tijdens de lunches en pauzes en zeker ook bij het diner een gezellige en gemoedelijke sfeer was. Over gezelligheid gesproken, de after party was ook erg geslaagd (zie ook wat foto’s op Twitter) en werd voortgezet in het naburige hotel. Gelukkig voor de meesten dat alles na 12 uur dicht ging… APEX 21.2 Goed om te zien is ook dat het Oracle ‘nog steeds’ menens is met de (door-)ontwikkeling van APEX. Persoonlijk vind ik vooral de toepassingen in de geo-hoek erg interessant. Het gebeurt vaak dat de klant ‘iets’ met kaarten wil en dat grafisch getoond wil hebben. Ook de aankondigingen voor 21.2 beloven weer een hoop uitbreidingen op dat gebied. Jammer alleen dat de laatste versie 21.1 nog (steeds) niet op de Oracle Autonomous Database architectuur beschikbaar is. Belangrijkste sheet tijdens de keynote was de lange lijst met de vele vernieuwingen en uitbreidingen voor versie 21.2. Voor degenen die er niet bij waren, in het verslag van APEX World op pagina 5 vind je een opsomming van alle nieuwe features. De afgevaardigden namens het Oracle APEX Team, dat vertegenwoordigd werd door Menno Hoogendijk en Christian Rokitta, hebben tijdens de keynotes bij de meeste punten uitgebreid stilgestaan. Dit werd gedaan aan de hand van een erg leuke en interessante demo van een Formule 1 voorbeeldapplicatie, die is ontwikkeld samen met het Red Bull Racing Team, dat sinds dit racejaar wordt gesponsord door Oracle. Al met al een zeer geslaagd event. Hopelijk kunnen we dit volgend jaar weer organiseren en zitten we niet in de zoveelste coronagolf. Learco Brizzi

ViSIE


10

|

OCI-NIEUWS

DOOR JOB OPREL

ONTWIKKELINGEN IN EN ROND ORACLE CLOUD INFRASTRUCTURE In deze rubriek OCI-nieuws weer een kleine selectie van een aantal opvallende en minder opvallende ontwikkelingen de afgelopen maanden die direct en soms ook indirect met de cloud te maken hebben. Onder de indirecte valt zeker de aankondiging dat op 2 en 3 november de tweedaagse ‘Oracle Database World’ plaatsvindt. Weliswaar virtueel, maar wel 90 sessies en 24 hands-on labs.

ViSIE


OCI-NIEUWS

|

11

I

n september was er de aankondiging dat tot 31 december 2021 de OCI-trainingen èn certificaten gratis zijn. Een uitgelezen kans om OCI Architect (Associate/ Professional) te worden, of andere certificaten als OCI Foundation of Autonomous database specialist te halen. Let op: er is een nieuw certificaat: ‘Database Cloud Migration and Integration 2021 Specialist’. Data Guard in de cloud – of Cloud Guard zoals Oracle het nu noemt wanneer in combinatie met Autonomous Database - wordt steeds volwassener. CloudGuard heeft een nieuwe release waarbij Data Masking is geïntegreerd en 14 nieuwe ‘OCI Activity Detector’ rules beschikbaar zijn om eventuele problemen te detecteren, evenals nieuwe event-types. Dit geeft aan dat er veel aandacht uitgaat naar beheer en probleem-detectie. Ook nieuw is dat de Autonomous Database nu Data Guard ondersteunt naar een andere Region. Tot nu toe was het alleen mogelijk om een configuratie op te zetten naar een ander datacenter binnen de eigen Region, bijvoorbeeld datacenters binnen Frankfurt. Deze Cross-Region set-up was al langer mogelijk bij het IaaS-platform (bare metal, VM, Exadata). Tevens kan nu ook Maximum Protection and Maximum Availability geconfigureerd worden. Een tijd geleden al aangekondigd en nu beschikbaar: Oracle Cross-Region backup copies via Oracle Cloud Infrastructure Block Volume-service. Waarschijnlijk als antwoord op Azure DevOps is nu OCI DevOps service gelanceerd. Bouwen van CI/CD pipelines voor Compute, Kubernetes-clusters of Functions. Nieuw concept hierbij is Artifact Registry voor het opslaan van de software. Ook voor development : de OCI Bastion Service, aangekondigd in mei 2021. Hiermee kunnen developers - vanaf hun eigen werkstation kubectl -commando’s gebruiken tegen een Kubernetes cluster in de cloud. En hoewel Oracle in het verleden nooit een versie 1.0 heeft gehad, is dat bij Terraform anders, deze is nu aangekomen bij versie 1.0. Deze versie wordt ondersteund door OCI Resource Manager.

Managen en patchen van OCI-instances door OS Management service wordt steeds meer verbeterd, nu worden ook Apache en Tomcat ondersteund. OCI ondersteunt nu ook het upgraden van Oracle Linux 7 naar 8 via Leapp, een Linux Community framework voor updaten van O.S.en. Dat kan behoorlijk veel tijd en geld schelen. Oracle zet behoorlijk in op de zogenoemde ARM-(Advanced RISC Machine) based processor shapes binnen OCI, waarvan gebruik gemaakt kan worden in de ‘free tier’ met een instance van 4 OCPU’s en 24GB aan memory. En dan iets basics... Tot voor kort moest je na provisioning van een Pluggable database via de Database Cloud Service andere activiteiten (creatie, verwijderen, klonen) zelf uitvoeren. Nu kan dit via API’s of via de console. Qua management (OCI Observability and Management) nog meer nieuws. Met Java Management Service kunnen installaties van Java applicaties on-premises of in ‘any cloud’ worden geinventariseerd. OCI database management for Oracle Databases, ook onderdeel van de OCI Observability en Management Platform wordt gestaag uitgebreid. Er kunnen nu eigen SQL en PL/SQL scripts worden gescheduled tegen een database of een groep van databases. En die databases zijn nu niet meer exclusief Autonomous databases, maar ook ‘gewone’ OCI databases op VM of Baremetal. Een laatste bijzonderheid is dat MySQL niet vergeten wordt, en met name de ‘Heatwave’ Service (parallel, in-memory, high-performance), die meer machine-learning-functionaliteit heeft gekregen. Heatwave wordt als goedkopere, snellere concurrent neergezet tegenover Amazon Redshift, Snowflake en Amazon Aurora. n ViSIE


SMART4Solutions The Oracle APEX family of the Netherlands • • • •

PREMIUM MOBILE & APP DEVELOPMENT

ORACLE FORMS MODERNISATION

TAILOR MADE SOFTWARE (AS A SERVICE)

The knowledge of Oracle APEX solutions is in our DNA. For more than 25 years. As The Oracle APEX family of the Netherlands, we relieve organizations in various industries with IT solutions through an optimal customer-oriented approach. We understand that business, business prosesses and IT must go hand in hand to achieve optimum success. With our flexibly deployable development team, you get up-to-date APEX low-code knowledge and strong Soft Skills qualities to help build your success. Are you curious about your development opportunities and possibilities? Make an appointment with Sergei Martens +31 85 400 80 80 or go to www.smart4solutions.nl

IT’s in our nature •


DOOR ALEX NUIJTEN

APEX EN REDACTION

|

13

APEX EN REDACTION DEEL 2: WIJZIGEN VAN DATA

Er zijn situaties waarbij je gevoelige informatie wil verbergen voor bepaalde gebruikers, niet iedereen die gebruik maakt van een applicatie hoeft inzage te hebben in bijvoorbeeld creditcardgegevens. Soms is het wenselijk om deze gegevens deels te verbergen. Wanneer je het verbergen overlaat aan de database, dan hoef je slechts op één plaats deze functionaliteit te implementeren.

I

n het vorige artikel over dit onderwerp heb ik laten zien hoe je dit kunt toepassen in een APEX-applicatie. Door gebruik te maken van de DBMS_REDACT package kun je regels opstellen op een data-object (tabel of een view) zodat het verbergen van gegevens transparant is voor de gebruiker van de data. Mocht je dat artikel gemist hebben, dan kun je dat lezen in het vorige nummer van nlOUG Visie, te downloaden van de nlOUG website: www.nloug.nl. In dat artikel stond het (deels) tonen van gegevens centraal. In dit artikel gaan we verder waar we gebleven waren, nu ligt de focus op het wijzigen van gegevens en hoe je dit in een APEX-applicatie kunt toepassen. De regel die we verder gaan uitbreiden is: ‘Alleen medewerkers van de afdeling Accounting mogen Credit Card gegevens zien en/of wijzigen’. Omdat er in het eerste artikel de basis voor deze regel al is uitgelegd gaan we hier niet verder op in, maar in het kort komt het hier op neer: • De Redaction Policy die gekoppeld is aan de Customers-tabel zorgt ervoor dat nummers in de Credit Card-kolom worden vervangen door een ‘X’. Het aantal ‘X’-en is gelijk aan het aantal cijfers in de Credit Card-kolom. ViSIE


14

|

APEX EN REDACTION

De conditie die gebruikt wordt in de Redaction Policy is de volgende: sys_context(‘demo_redact_ctx’, ‘deptno’) != 10

De conditie zorgt ervoor dat er alleen een redactie plaats vindt als de waarde die in de Context staat bij ‘deptno’ iets anders is dan 10 (wat niet geheel toevallig de Accounting afdeling is) • Applicatie Items: AI_DEPTNO en AI_DEPARTMENT Na het inloggen (Post-Authentication) in de APEX applicatie bepalen we voor welke afdeling de gebruiker werkt. Dit plaatsen we in de respectieve Applicatie Items. Eigenlijk hebben we voor dit voorbeeld alleen AI_DEPTNO nodig, omdat deze gebruikt wordt in de Redaction Policy functie, maar om gemakkelijk te tonen voor welke afdeling iemand werkt nemen we de naam van de afdeling ook mee. • Context : DEMO_REDACT_CTX Iedere keer als er een verbinding met de database wordt gemaakt moet duidelijk zijn of de redactie moet worden toegepast of niet. In de context plaatsen we name-value-pairs om gegevens in te zetten die we kunnen uitlezen wanneer de Redaction-policy wordt uitgevoerd op het data-object. De waarden uit de Context kunnen we in de database code gebruiken. • Package AUTH_PKG In deze package zitten procedures om het afdelingsnummer in de context DEMO_REDACT_ CTX te plaatsen of om deze juist te legen. Er is altijd een stored procedure nodig om gegevens in een Context te manipuleren. • Met het opzetten van de database verbinding is het noodzakelijk om de Context met de juiste waarden te vullen. Dit doen we door vanuit APEX een aanroep te doen naar de eerder genoemde package. De aanroep naar deze package vind je terug bij Application Properties > Security > Database Session ‘Initialization PL/SQL Code’ en ‘Cleanup PL/SQL Code’ Bij de ‘Initialization PL/SQL Code’ plaats je auth_pkg.set_deptno (p_deptno => to_number (:AI_DEPTNO);

Bij ‘Cleanup PL/SQL Code’ zet je: auth_pkg.clear_deptno;

HOE WERKT EEN UPDATE VANUIT APEX? Om te begrijpen welke aanpassingen we moeten doen om gegevens te kunnen wijzigen, moeten we eerst begrijpen hoe APEX normaliter een wijziging uitvoert. Laten we eerst via de applicatie een wijziging doorvoeren van gegevens van de klant, bijvoorbeeld een naamswijziging. In de schermafdruk zie je de wijziging van de naam van BLAKE naar BLAKEs, en je ziet dat op de Form het Credit Card-nummer afgeschermd is met een heleboel ‘X’. Als deze wijziging wordt opgeslagen, wordt het overzichtsrapport weer getoond. De naam is veranderd, maar de Credit Card-kolom voor BLAKEs is nu leeg. Hoe is dat nu mogelijk?

ViSIE


APEX EN REDACTION

|

15

Blijkbaar heeft de wijziging van de naam ook iets gedaan met de Credit Card, de vraag is alleen wat? Laten we eerst de gegevens in de Customers tabel eens inspecteren. Op dit moment zou het heel handig zijn om de gegevens te zien zonder dat de Redaction Policy een rol speelt. Gelukkig is dit mogelijk, er is een privilege ‘EXEMPT REDACTION POLICY’ die het mogelijk maakt om de Redaction te omzeilen. Als we een database connectie maken met SYS, dan kunnen we de gegevens van de Customers tabel zien zonder dat er een Redaction Policy op wordt losgelaten. SQL> conn sys/Oracle18@//localhost:1521/XEPDB1 as sysdba Connected. SQL> select * 2 3

from demo.customers / CUSTNO CUSTNAME

SHOPDATE CREDIT_CARD

---------- ---------- -------- -------------------7839 KING

17-11-81 5270426764505516

7698 BLAKEs

01-05-81 XXXXXXXXXXXXXXXX

7782 CLARK

09-06-81 4916976652406147

7566 JONES

02-04-81 5180380736798221

7788 SCOTT

19-04-87 4929381332664295

7902 FORD

03-12-81 345389698201044

7369 SMITH

17-12-80 30204861594838

7499 ALLEN

20-02-81 4916481158148111

7521 WARD

22-02-81 5218014427039266

7654 MARTIN

28-09-81 4916403492698783

7844 TURNER

08-09-81 4532175360711112

7876 ADAMS

23-05-87 4539538574255825

7900 JAMES

03-12-81 5325325695196624

7934 MILLER

23-01-82 4532422069229909

14 rows selected.

Het Credit Card-nummer voor BLAKEs bestaat nu volledig uit ‘X’-en, het originele nummer is verdwenen. In dit simpele voorbeeld is het niet nodig om het EXEMP REDACTION POLICY privilege te hebben, iedere gebruiker die op de database inlogt kan de gegevens zonder Redaction zien. De conditie op de Redaction Policy controleert de waarde die in de Context staat. Aangezien deze alleen vanuit de APEX-applicatie wordt gezet is de Context leeg en wordt de Redaction dus niet toegepast. Het wijzigen van het Credit Card-nummer wordt veroorzaakt door de manier waarop APEX een wijziging doorvoert. Alle items die op de Form-pagina worden getoond zijn onderdeel van de Update die wordt gedaan, vergelijkbaar met onderstaand voorbeeld: update customers set custname

= :CUSTNAME

,shopdate

= :SHOPDATE

,credit_card = :CREDIT_CARD where custno = :CUSTNO

Uiteraard zit er wel een mechanisme om dit statement heen die rekening houdt met een ‘Lost ViSIE


16

|

APEX EN REDACTION

Update’. Wanneer de Form-pagina wordt getoond om BLAKE te gaan wijzigen, dan is de waarde van :CREDIT_CARD een string met een heleboel ‘X’en. Als de update wordt uitgevoerd dan wordt het originele Credit Card-nummer hiermee overschreven. Dat verklaart de gegevens die in de database staan. Maar waarom wordt er dan geen Credit Card getoond in het overzichtsrapport? De Redaction Policy die op de Customers tabel staat vervangt ieder cijfer door een ‘X’. Aangezien het nieuwe Credit Card-nummer geen enkel cijfer meer heeft wordt het getoond als NULL.

SOURCE: QUERY ONLY Nu duidelijk is hoe APEX met wijzigingen omgaat, en waarom er ‘opeens’ geen gegevens meer worden getoond in het overzichtsrapport, hoe kun je dan wel wijzigingen doorvoeren zonder dat het Credit Card-nummer opnieuw verdwijnt? Het is mogelijk om op de Form-pagina bij het item te definiëren dat het item niet moet worden gebruikt bij een wijziging. Het gaat om het attribuut ‘Query Only’. Dit attribuut is te vinden in de property-pallet onder ‘Source’. Als dit attribuut ‘aan’ staat, zoals in de schermafbeelding, dan wordt het item buiten beschouwing gelaten bij DML. Nu kun je dus met een gerust hart de naam van een Customer veranderen zonder dat het Credit Card-nummer beïnvloed wordt. Helaas is dit voor ons doel te grof; nu kan ook een medewerker van de Accounting afdeling ook geen wijzigingen meer maken ook al zou deze dat wel moeten kunnen. Om conditioneel een wijziging te kunnen doorvoeren zijn er extra wijzigingen nodig. Allereerst moeten we een vervanging hebben voor het proces om de gegevens te wijzigen van een specifieke klant. Het belangrijkste uit deze code is het uitvragen van de Context (DEMO_REDACT_ CTX) en welke waarde er voor DEPTNO in staat. Als deze waarde 10 is (de Accounting afdeling) dan mag het Credit Card-nummer worden overschreven (ook al blijft deze gelijk). Als deze waarde iets anders is dan 10, dan wordt deze gewijzigd naar de bestaande waarde uit de kolom (gewijzigd naar zichzelf ). procedure upd (p_custno

in customers.custno%type

,p_custname

in customers.custname%type

,p_shopdate

in customers.shopdate%type

,p_credit_card in customers.credit_card%type ) is begin update customers set custname = p_custname ,shopdate = p_shopdate ,credit_card = case when sys_context (‘demo_redact_ctx’ , ‘deptno’) != 10 then credit_card else p_credit_card end where custno = p_custno; end upd;

ViSIE


APEX EN REDACTION

|

17

Vanuit APEX moet deze code worden aangeroepen in plaats van de gegenereerde code. Op de Processing-tab van de Navigator is een Process te vinden dat vergelijkbaar is met ‘Process Form Customer’. Als je een Form-region hebt gecreëerd om de klantgegevens te bewerken dan zal DML altijd op de Region Source worden uitgevoerd. Dit willen we echter niet doen. Vervang het Target Type van ‘Region Source’ naar ‘PL/SQL Code’ en zet daar de aanroep in naar de UPD-procedure van hierboven. redact_pkg.upd (p_custno

=> to_number (:CUSTNO)

,p_custname

=> :CUSTNAME

,p_shopdate

=> to_date (:SHOPDATE, :APP_NLS_DATE_FORMAT)

,p_credit_card => :CREDIT_CARD );

Nu zal de wijziging van de Credit Card gedaan worden aan de hand van de waarde die in de Context staat.

NETJES AFRONDEN

Het is natuurlijk raar alsof het lijkt dat je een item mag wijzigen, maar dat er in de praktijk helemaal niets gebeurt. De laatste stap, want het oog wil ook wat, is het conditioneel Read Only maken van het item. Dit kan je realiseren door de conditie van Read Only te laten afhangen van de waarde die in het Application Item AI_DEPTNO staat. In dit artikel heb ik beschreven hoe je om kan gaan met een Update als er een Redaction Policy op een tabel aanwezig is. Om de Insert ook te kunnen ondersteunen is een vergelijkbare functionaliteit nodig. Hopelijk heb je nu voldoende kennis opgedaan om dit zelf te implementeren. n

APEX World werd mede mogelijk gemaakt door onze sponsoren: Diamond SMART4Solutions Gold Silver

Qualogy, The Doc, Conspect ICT, iAdvise Transfer Solutions, United Codes

Bronze

FOEX GmbH, Oritech

ViSIE


18

|

OOK

ViSIE ONTVANGEN?

Wilt u ook op de hoogte blijven van actuele ontwikkelingen en nieuws en achtergronden over Oracle en Oracle-producten, de Oracle-community en de activiteiten van de Nederlandse Oracle User Group?

Abonneer u dan op het gratis e-magazine

ViSIE Inschrijving via de website www.nloug.nl

Printing and Exporting Made Easy www.apexofficeprint.com

Transform multimedia in the Oracle Database and Oracle APEX www.apexmediaextension.com

Professional, Native and Supported Oracle APEX Plug-ins www.plug-ins-pro.com

Insight into your APEX applications www.apexprojecteye.com

ViSIE


COLUMN

|

19

‘ HIDDEN GEMS’, OOK IN DE ORACLE CLOUD

J

aren geleden toen de nlOUG nog de OGH heette, opperde ik om een serie artikelen in het – toen nog papieren – tijdschrift OGh Visie te schrijven met als thema ‘Hidden Gems in de Oracle Database’, een reeks uiteenzettingen over relatief onbekende

mogelijkheden binnen de Oracle Database. Als ik me goed herinner bleef dit toen helaas beperkt tot slechts één artikel, maar het idee blijft kriebelen. De term ‘Hidden Gems’, in goed Nederlands ‘Verborgen Juwelen’, doet me denken aan een heel ander begrip: ‘Vergeten Groenten’, groenten zoals pastinaak, aardpeer of koolraap, die in vergetelheid zijn geraakt. Over smaak valt niet te twisten, maar een bekende cabaretier zei ooit hierover: “Er is een

Sandor Nieuwenhuijs

reden dat die groenten vergeten zijn…” Echter dit geldt niet voor die juweeltjes binnen het Oracle productportfolio, niet in vergetelheid geraakt maar gewoon relatief onbekend. En dat is jammer, omdat ze veelal krachtige mogelijkheden bieden, zonder additionele kosten. Dit jaar heeft gelukkig APEX World weer fysiek plaatsgevonden, verhuisd van een stoomschip in Rotterdam naar het voetbal-walhalla van de KNVB Campus in Zeist. En juist APEX

Nu kijken we met z’n allen naar de Cloud. Sommigen doen schoor­ voetend de eerste stapjes, anderen gaan met grote stappen recht op hun doel af.

was jaren geleden een prachtig voorbeeld van zo’n verborgen juweel, hoewel de laatste tijd door het grote succes de term ‘verborgen’ niet meer helemaal de lading dekt. Als je zelfs je eigen tweedaagse evenement hebt, valt er niet veel meer te verbergen. Veel van de verborgen juwelen zijn gerelateerd aan de ondersteuning van andere, niet relationele datastructuren, initieel gelanceerd in Oracle versie 7.3 (maart 1996), omgedoopt tot Oracle Universal Server. In eerste instantie vanuit een inplugbare cartridge-gedachte, later gewoon geïntegreerd onderdeel van de architectuur. Inmiddels is de lijst van datastructuren behoorlijk gegroeid, en omvat naast geo-datatypes, medical imaging (DICOM), graphs, semantische structuren, XML en JSON nog veel meer andere structuren en operatoren. Toch zijn er bedrijven die een complete, robuuste Oracle omgeving hebben ingericht en daarnaast voor bijvoorbeeld hun JSON-objecten een apart product opslaan. Wellicht niet bekend met de verborgen juwelen? En wie kent er nog de term Multiversion Read-consistency (al sinds versie 6), en meer recent Edition Based Redefinition, elk op zich parels voor de experts! En nu de Cloud. Daar kijken we met z’n allen naar, sommigen doen schoorvoetend de eerste stapjes, anderen gaan met grote stappen recht op hun doel af. En ook daar zien we vergelijkbare juweeltjes. Niet zo verborgen, zelfs zeer opzienbarend zijn de Autonomous-oplossingen zoals Autonomous Data Warehouse en -Transaction Processing, en – geheel in het thema van APEX World: Autonomous APEX. Maar minder bekend, recent is ook de Autonomous JSON-dienst beschikbaar gekomen. Bereikbaar met een paar clicks en een Oracle Cloud account. En Oracle heeft niet slechts één database, er zijn er zelfs meer. Denk aan Oracle MySQL en Oracle NoSQL, beide beschikbaar als kant-en-klare clouddienst. En gecombineerd met de HeatWave technologie krijg je een buitengewoon krachtig MySQL gebaseerd platform. Niet alleen technologische hoogstandjes, ook de mogelijkheden die geboden worden om jarenlange investeringen in Oracle licenties en support optimaal te benutten in de Cloud zijn voor velen onbekend terrein. Wist u dat door inzet van bestaande licenties, de korting op Oracle Cloud services kan oplopen tot 80% op basis van het BYOL-to-PaaS-programma?

Sandor Nieuwenhuis is

Met daarbovenop het recent aangekondigde Support Rewards programma wordt het wel

licentie-adviseur binnen

heel aantrekkelijk, niet alleen door de technische juweeltjes maar ook de financiële voordelen

het SIA (Software

van die Oracle Cloud.

Investment Advisory)-

Kort samengevat: de juweeltjes zijn er nog steeds, meer dan u denkt, en in de Oracle Cloud

team van Oracle

is het nog makkelijker om hiermee kennis te maken – denk ook eens aan de Always Free

wereldwijd.

Oracle Cloud services!

ViSIE


Leuk maakt alles beter!


DBA-DAG

|

21

DBA-DAG

8 DECEMBER – SS ROTTERDAM*)

Ook dit jaar organiseert de nlOUG weer een dedicated DBA-Dag. Een live(!) event met als vanouds veel diepgang en hoogwaardige content en volop gelegenheid om te sparren met je vakgenoten.

*) datum en locatie onder voorbehoud

Houd de nlOUG-website in de gaten voor de definitieve datum en locatie en het programma www.nloug.nl

BUSINESS IS HUMAN APEX | Cloud | Education Managed Services | Data Driveness Application Development

Transfer Solutions | Dokter Reilinghplein 2 | 4141 DB Leerdam | 0345 616 888 | www.transfer-solutions.com

ViSIE


22

|

KSCOPE21

DOOR GILIAM BREEMS

HIGHLIGHTS VIRTUELE ODTUG KSCOPE21 Kscope is van oudsher hèt event voor Oracle ontwikkelaars over de hele wereld. Kscope wordt jaarlijks georganiseerd door de ODTUG, de Oracle User Group Community die zich richt op educatie. Kscope staat internationaal bekend om de innovatieve content, de gerenommeerde sprekers die vanuit alle uithoeken van de wereld aanwezig zijn, de vele mogelijkheden om te netwerken en, niet onbelangrijk, de ‘fun events’ die tijdens het meerdaagse evenement worden gehouden.

N

a anderhalf jaar COVID-19 weten we dat de keynotes en presentaties prima gedigitaliseerd en op afstand kunnen plaatsvinden, maar ODTUG heeft het voor elkaar gekregen om ook het netwerken en de fun events op aangename wijze toe te voegen aan dit digitale evenement. Is de ervaring dan hetzelfde als face-to-face en kunnen we in-person conferenties voortaan net zo goed op afstand doen? Nee, maar in tijden waarin lockdown en afstand houden de norm zijn, was dit wat ons betreft een erg welkom alternatief.

HIGHLIGHTS

Carsten Czarski

Kscope21 vond dit jaar digitaal plaats van 21 juni tot 1 juli. Er waren diverse content-tracks beschikbaar, waaronder Analytics, Emerging Technologies, EPM, Essbase, Financial Close en Modern App Development. In dit verslag komen voornamelijk de highlights APEX- en de Database-track aan bod. De eerste sessies werden ingevuld door Oracle zelf. Ditmaal was het Carsten Czarski (Oracle APEX-team) die de deelnemers meenam in de wereld van de nieuwe Map Region Type. Wanneer je locatie-gebaseerde data wilt weergeven in

een Google Maps-achtige omgeving, dan zou dit wel eens een mooie oplossing kunnen bieden. Onze eigen Menno Hoogendijk (Oracle APEX team) vertelde over de nieuwe report exportmogelijkheden, zoals het native exporteren van report regions in HTML, PDF, Excel of CSV formaat en de bijbehorende API’s die beschikbaar zijn gesteld om dit aan te sturen. Carsten Czarski sloot de dag af met een presentatie over APEX Automations, het antwoord op dbms_scheduler binnen APEX, en REST


KSCOPE21

Synchronizations. Stuk voor stuk splinternieuwe functionaliteiten die beschikbaar zijn gekomen in de twee meest recente APEX releases.

Dimitri Gielis

|

23

Denk hierbij bijvoorbeeld ook aan het gebruik van Liquibase en/of FlexDeploy voor de uitrol van databasewijzigingen.

KSCOPE SESSIONS

TIJD VOOR ONTSPANNING

Op de tweede dag ging Dimitri Gielis ging in zijn presentatie ‘Building Automations in APEX 20.2’ dieper in op de materie en liet zien wat APEX Automations nu werkelijk inhoudt, welke mogelijkheden er zijn en hoe Automations op de achtergrond samenwerkt met de DBMS_ SCHEDULER. Timothy St. Hilaire gaf zijn visie op het gebruik van de Oracle Database en APEX in combinatie met een version control system en de complexiteit waar developers tegenaan kunnen lopen.

In een wereld zonder COVID-19, zou Kscope21 plaats hebben gevonden in Nashville, Tennessee (VS). Om de sfeer van deze bijzondere muziekstad naar voren te laten komen tijdens dit digitale event, konden de deelnemers genieten van een besloten live concert van Dawn Beyer. Wat een dijk van een stem! Genieten en even bijkomen voordat de laatste sessies van de dag beginnen. Een spreker die ik persoonlijk niet snel zou overslaan is Tyson Jouglet. Hij weet altijd op leuke wijze te boeien, wanneer hij zijn kennis

Timothy St. Hilaire

Tyson Jouglet

ViSIE



KSCOPE21

over JavaScript en CSS in relatie tot APEX deelt. Ditmaal ging het over CSS Block Element Modifier (BEM), CSS variabelen, cascading values en selector specifity. Ik ga in elk geval weer tijd vrijmaken om ermee te spelen en wat dingen verder uit te zoeken. Jackie McKillroy beschreef uitvoerig alle Shared Components binnen APEX en ook al ben ik hier redelijk in thuis, er zijn altijd interessante weetjes die ik nog niet kende. Wist je bijvoorbeeld dat je de Build Options in APEX kunt sturen met APEX_UTIL.SET_BUILD_OPTION en dat je door hier een APEX Page bovenop te bouwen dit kunt gebruiken om de functionaliteiten aan/uit te zetten alvorens de release export te maken? Je moet dan wel de Build Option goed inrichten en consequent gebruiken. Kim Berg Hansen heeft naam gemaakt door zijn enorme gedetailleerde kennis op het gebied van SQL en door zijn missie om dit met vele geïnteresseerden te delen. Deze conferentie verzorgde hij onder andere twee uitgebreide hands-on labs binnen zijn vakgebied, Analytic Functions en Pattern Matching. Een aanrader voor de beginner op dit gebied of voor degenen die op zoek zijn naar valkuilen of tips-en-trucs, want deze spreker weet werkelijk alles op dit vlak. Wil je hier meer van weten, de trainingen zijn terug te vinden op https://livesql.oracle.com/, directe links: Tutorial: Analytic Functions en Tutorial: Row Pattern Matching. APEX op mobile device Een andere zeer interessante sessie werd verzorgd door Martin D’Souza. Hij heeft zich ditmaal verdiept in het ontwikkelen van een APEX-applicatie, maar dan volledig gericht met het gebruik op een mobile device. Sinds de komst van Universal Theme en Responsive Design binnen APEX, is een APEX applicatie standaard al te gebruiken op zowel een desktop als mobile device.

Jackie McKillroy

Anton Nielsen

Martin D’Souza

|

25

Deze sessie ging in op de benodigde configuratie en aanpassingen, waardoor de applicatie er ook echt als een native mobile app uit komt te zien. Denk hierbij aan het gebruik van de al aanwezige responsive css classes, het uitzetten van auto-zoom on double-click, het tonen van enkel een numeriek toetsenbord op numerieke velden, template settings die ervoor zorgen dat een cancel/save button altijd onderaan in beeld komen te staan, ook tijdens het scrollen. Allemaal zaken die wij als vanzelfsprekend zijn gaan vinden bij het gebruik van een app op een mobile device. Tot slot wil ik de sessie van Anton Nielsen (Insum Solutions) nog naar voren halen. Hij heeft de nieuwe data-generator API’s (APEX_DG) die aanwezig zijn sinds APEX 21.1 grondig doorgenomen en liet zien wat de mogelijkheden zijn en wat we hiermee kunnen. Definieer bijvoorbeeld een tabel met naam en contactgegevens en deze API genereert zinvolle testdata met naam, adres, woonplaats, telefoonnummers, etc. Testdata nodig voor productgegevens? Ook dat kan met deze data generator. Bekijk de sessie terug om alle mogelijkheden te zien, ik was in elk geval onder de indruk van de vele mogelijkheden en het maatwerk wat je kunt instellen om de juiste data voor je gegenereerd te krijgen met deze nieuwe tool. Mocht je geïnteresseerd zijn in de hier genoemde of willen weten welke andere sessies er nog meer geweest zijn? Als lid van ODTUG zijn deze onbeperkt terug te kijken, inclusief de sessies van alle voorgaande jaren. Een lidmaatschap kost $ 99,- en biedt je tevens korting op het Kscope22 event dat in Grapevine, Dallas, TX plaats zal vinden. Wellicht zien we elkaar zelfs daar. n

Giliam Breems is Oracle APEX consultant bij Conspect Consulting & ICT

ViSIE


26

|

CUSTOMER CASE

LOGISTIEK ROND BLOEDVOORZIENING EN GROOTSCHALIG PCR-TESTEN

SANQUIN ZET APEX-APPLICATIE IN BIJ BESTRIJDING COVID-19

Het Nationaal Screeningslaboratorium van Sanquin heeft een IT-systeem in gebruik genomen voor zowel het beheren en plannen van de logistiek rond het doneren van bloed (jaarlijks 800.000 donaties) en het monitoren van donoren als van de grootschalige PCR-testen die worden uitgevoerd voor de GGD corona teststraten. De APEX-oplossing draait in de Oracle Cloud en is in korte tijd ontwikkeld door Transfer Solutions, in samenwerking met Sanquin Diagnostiek

B

loedbank Sanquin is een non-profit organisatie die de bloedvoorziening in Nederland verzorgt, maar ook met verschillende andere producten, diensten, technologieën en doelgerichte medicatie bijdraagt aan de kwaliteit van leven van veel mensen. Naar schatting redt Sanquin zo’n 25.000 mensenlevens per jaar. Sanquin Diagnostiek is bovendien nauw betrokken bij het uitvoeren van corona PCR-testen voor de Nederlandse overheid. Anton van Weert is verantwoordelijk voor het Nationaal Screeningslaboratorium van Sanquin. “In het afgelopen jaar hebben wij onder meer PCR-testen uitgevoerd voor de GGD corona-teststraten. Maar ook hebben wij binnen

ViSIE

Sanquin duizenden donoren gemonitord op hun antistoffen, plasma ingezameld voor de productie van medicijnen en hebben we onderzoek gedaan naar het gedrag van donoren rondom COVID-19. Heel recent nog hebben wij de testen opgezet ten behoeve van de diagnose van ernstige bijwerkingen bij mensen nadat zij gevaccineerd zijn tegen corona.” LOGISTIEK UITDAGING

Een van de belangrijkste uitdagingen bij grootschalig testen is logistiek. Het Nationaal Screeningslaboratorium verwerkt jaarlijks zo’n 800.000 donaties en om deze snel vrij te kunnen geven, moet het laboratorium efficiënt werken. “IT, logistiek en de kwaliteit daaromheen zijn dan van groot belang”, zegt Van Weert. Al langere tijd was er de ambitie om een IT-systeem te ontwikkelen om de logistiek rondom doneren en testen te plannen en te beheersen, zo vertelt hij. “Maar heel concreet werd het toen ons het afgelopen jaar werd gevraagd om op te schalen voor de corona PCR testen. In principe kunnen we dit, maar om naar tienduizenden testen per dag te kunnen gaan is het voor de doorlooptijd van testen nodig precies te weten waar alle


CUSTOMER CASE

|

27

De keuze bleek een schot in de roos: binnen een week was er een eerste prototype, dat vervolgens in drie weken werd uitgewerkt tot een productieklaar systeem dat naadloos aansloot op de bestaande (Oracle-)cloud-omgeving van Sanquin. SNEL GEGAAN

bloedmonsters zijn en wat er op welk moment aan gaat komen.” In eerste instantie wilde Sanquin een applicatie ontwikkelen specifiek voor de coronatesten. “Door meerdere testen te gaan poolen, bijvoorbeeld het testen van monsters in groepen van zes, kunnen we een enorme bijdrage leveren aan de hoeveelheid testen die afgenomen kunnen worden. Voor de bestrijding van corona is dat een groot voordeel. Het probleem is echter wel dat poolen de logistiek rondom het testen een stuk complexer maakt. We hadden dus een systeem nodig om dat bij te houden. Zoiets bestond nog niet, niet rondom het testen op corona, maar ook niet in de bloedvoorziening. Door dit nu te ontwikkelen, slaan we twee vliegen in één klap.” SNEL SCHAKELEN

De applicatie is door Transfer Solutions gebouwd. “Het was belangrijk om snel te schakelen, omdat de nood op dat moment heel hoog was”, zegt Arjan van der Palen, Business Unit Manager Transfer Solutions. “De oplossing moest zowel in het laboratorium als voor de transportmedewerkers onderweg bruikbaar zijn. Daarom wilden wij een webapplicatie maken die zowel op mobiele devices als op pc’s kon werken. Belangrijk ook was de schaalbaarheid en de functionaliteit die onder alle omstandigheden betrouwbaar en stabiel werkte. Daarbij kwam het idee vanuit Sanquin om met barcodescanners te werken, omdat dit de foutgevoeligheid in het proces verlaagt, de privacy van (persoons)gegevens borgt en hiermee meteen de track-and-trace van monsters op orde is.” Met de keuze voor Oracle werd snel besloten om de applicatie in een cloud-omgeving te ontwikkelen, met voldoende mogelijkheden om op te schalen. “Klein beginnen en eenvoudig uitbreiden als het een succes blijkt te zijn, dat is een belangrijk voordeel”, zegt Van der Palen. “Daarnaast biedt Oracle de APEX low-code-oplossing, waarmee we heel snel tot de juiste applicatie konden komen met een goede performance en hoge mate van security.”

Dat het proces snel is gegaan bevestigt Van Weert. “Het heeft enorm veel energie gegeven aan alle betrokkenen. Met een kleine groep mensen hebben wij voortdurend nauw contact gehad. Vanuit onze organisatie heeft Albert ten Oever als informatiemanager daarbij een belangrijke rol gespeeld, omdat hij goed kon overbrengen wat wij nodig hadden en dit ook kon vertalen naar technische en functionele eisen. En vanuit Transfer Solutions werkte een team van twee ontwikkelaars en een analist aan het project.” Het proces vond plaats in een hectische tijd. “Allebei onze organisaties stonden onder druk als gevolg van de coronacrisis”, blikt Van Weert terug. “Dat maakt dit project extra bijzonder. Beide partijen hebben oog gehad voor de maatschappelijke urgentie ervan en tijdens de verschillende fases in de ontwikkeling zijn we steeds goed met elkaar in overleg gebleven. Gecombineerd met de technologie van Oracle hebben we zo de applicatie samen gerealiseerd.” BREED INZETBAAR

De komende periode zal de applicatie zijn waarde bewijzen bij het afnemen van testen in samenwerking met de GGD. Ook start een pilot met de bloedbank van Sanquin, om de bruikbaarheid van de applicatie in deze processen te meten. “Het aardige van het systeem is dat het niet alleen voor de bestrijding van COVID-19 is ontworpen. We kunnen het ook gaan toepassen voor de screening van donors of de afname van 24-weeks testen voor zwangere vrouwen.” Buiten Sanquin is inmiddels eveneens interesse getoond in het product, vertelt Van Weert. Vanuit het Ministerie van VWS is enthousiast gereageerd. Op het virtuele ISBT-congres (International Society of Blood Transfusion) in december heeft Van Weert een eerste inkijk gepresenteerd aan de internationale gemeenschap voor de bloedvoorziening. “Ook daar hebben we gemerkt dat veel partijen het heel interessant vinden wat we samen hebben gemaakt.” n De Sanquin case is gepresenteerd tijdens APEX World 21.

ViSIE


28

|

RUBRIEK

Quality in Information Technology Al 23 jaar bieden wij u één aanspreek-

Onze Oracle-expertise

punt voor Oracle’s complete dienst-

• Oracle APEX

verlening. Werkt u met ons, dan kunt

• Oracle Databases

u rekenen op betrokken mensen die

• Oracle Fusion Middleware

hun kennis delen binnen en buiten

• Oracle Cloud Infrastructure

Qualogy. Door met lef en creativiteit

• Oracle Applicaties: EBS,

naar complexe vraagstukken te kijken,

ERP-cloud, HCM-cloud

komen we tot de beste oplossingen.

• Oracle Integration Cloud

Benieuwd wat wij te bieden

• Oracle Analytics

hebben? Kom met ons in contact en laat u inspireren!

De Bruyn Kopsstraat 9 | 2288 EC Rijswijk (ZH) 070 319 50 00 | info@qualogy.com

Q UA LO GY.CO M