8.3 Bedrijfsinformatie bij de Vlaamse Overheid via Drupal - V-ict-or

BEDRIJFSINFORMATIE
VLAAMSE OVERHEID
VIA DRUPAL
SHOPT IT - 8 mei 2014
meteen ter zake
www.bestuurszaken.be/bedrijfsinformatie
www.bestuurszaken.be/bedrijfsinformatie/personeelsbestand
www.bestuurszaken.be/bedrijfsinformatie/personeelsbestand
Bedrijfsinformatie VO
Data uit verschillende bronsystemen via ETL in datawarehouse -> authentieke bron
Opgelet: De dataflow die we hier bekijken is de flow zoals
hij in deze case is opgezet maar er zijn verschillende alternatieven mogelijk.
De hier voorgestelde dataflow wordt periodiek uitgevoerd.
Het interval is afhankelijk van de aard van de data.
Dataflow
datawarehouse
ETL
ETL
ETL/BI-tool
genereert
...
csv
ftp
ETL
mount
webserver
Highcharts
Alternatieve dataflow
php-script
genereert
ETL
ETL
...
ETL/BI-tool
ETL
csv
json
xml
ftp
mount
Highcharts
Highcharts haalt data op via een (in dit geval) php-script:
altijd actuele data, geen periodieke dump, geen dure BItools.
FREE FOR NON-COMMERCIAL
COMPATIBLE
HTML5
moderne browsers
mobile/tablets
IE vanaf IE6
gebaseerd op native browser technologie;
geen plugins vereist (flash/silverlight/...)
DYNAMIC, EASY TO USE...
Op de Drupal-website
visualisatie van data via Highcharts
= javascript bibliotheek (pure js of jquery)
--> js via Drupal-theme
MAAR
•Hoe worden deze grafieken opgebouwd?
•Hoe worden deze grafieken gevoed?
Vroeger
Grafieken via:
•iframe gevuld met Cognos (BI-tool) data-visualisatie
•google-charts in combinatie met taxonomie
MAAR problemen met beide systemen:
•iframe: http://www.rwblackburn.com/2012/07/iframe-evil/
•chart-configuratie via Drupal-taxonomie:
•mix van js en php
•moeilijk in onderhoud
•moeilijk uit te breiden; weinig configuratie-opties
Anatomie Highcharts-grafiek
Highcharts is een javascript-bibliotheek
-> javascript-kennis is vereist
=
Monthly Average Temperature
Source: WorldClimate.com
30
25
20
Temperature (°C)
<script type=”text/javascript”>
$(function () {
$(‘#container’).highcharts({
title: {
text: ‘Monthly Average Temperature’,
x: -20 //center
},
subtitle: {
text: ‘Source: WorldClimate.com’,
x: -20
},
xAxis: {
categories: [‘Jan’, ‘Feb’, ‘Mar’, ‘Apr’, ‘May’, ‘Jun’,
‘Jul’, ‘Aug’, ‘Sep’, ‘Oct’, ‘Nov’, ‘Dec’]
},
yAxis: {
title: {
text: ‘Temperature (°C)’
},
plotLines: [{
value: 0,
width: 1,
color: ‘#808080’
}]
},
tooltip: {
valueSuffix: ‘°C’
},
legend: {
layout: ‘vertical’,
align: ‘right’,
verticalAlign: ‘middle’,
borderWidth: 0
},
series: [{
name: ‘Tokyo’,
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: ‘New York’,
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: ‘Berlin’,
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: ‘London’,
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
});
});
Tokyo
New York
Berlin
London
15
10
5
0
-5
Jan
Feb
Mar
Apr
May
JunJ
ul
Aug
Sep
Oct
Nov
Dec
Highcharts.com
Opbouw van grafieken as is
Opbouw van grafieken as is
Invoer van javascript via back-end.
•(te) gevaarlijk voor ‘gewone gebruikers’
•javascript-kennis vereist
•moeilijk te onderhouden
≠ best-practice; javascript invoer door gebruikers moet te
allen tijde vermeden worden
Voeden van grafieken as is
Invoer data via back-end: url of directe input
•via manipulatie van het configuratie javascript
•(te) gevaarlijk voor ‘gewone gebruikers’
•javascript-kennis vereist
•moeilijk te onderhouden
≠ best-practice
Voor verbetering vatbaar
•Tussenkomst van persoon met javascript kennis is
vereist om een grafiek op de website te wijzigen of om
een nieuwe grafiek toe te voegen.
•Grafieken zitten “verspreid” in de content.
•Hergebruik van een grafiek is niet mogelijk.
Oplossing: Easychart
•intuïtieve GUI voor Highcharts
•jQuery-plugin (https://github.com/bestuurszaken/easychart)
gebaseerd op Highcharts API json-optionsstring (http://api.
highcharts.com/highcharts/option/dump.json)
•Drupal-module (https://drupal.org/project/easychart)
•door Departement Bestuurszaken (Thomas Daem) en
Eps&Kaas (Jan-Yves Vanhaverbeke)
Oplossing: Easychart
voordelen:
•intuïtieve GUI voor Highcharts
•geen js-kennis nodig om een grafiek te maken
•geen js-invoer in back-end, geen code meer in content
•alle Highcharts-opties zijn mogelijk
•invoer data of url
•hergebruik grafieken mogelijk
•gemakkelijk in onderhoud
•...
Oplossing: Easychart
nadelen:
•momenteel eerste release: POC herschreven naar
module, nog niet alle opties zijn beschikbaar maar de
basis is wel al gelegd voor verdere uitbreiding
•klein ontwikkel-team
demo: easychart.org