Stage Eindwerk Studiegebied Bachelor Afstudeerrichting Academiejaar Student
Handelswetenschappen en Bedrijfskunde Toegepaste Informatica 2007-2008
Maxim Delplace
From backoffice to web publishing
Stageplaats
FVB/FFC 1000 Brussel
FVB/FFC Koningsstraat 45 1000 Brussel Tel. : +32 2 210 03 33
From backoffice to web publishing
Opleiding Academiejaar Student Stagementor Stagebegeleider
Bachelor in de toegepaste informatica 2007-2008 Maxim Delplace Patrick Daulie Corneel Theben Tervile
HOWEST departement Simon Stevin Rijselstraat 5 8200 Brugge Tel. : +32(50) 38 12 77
Woord vooraf Bij deze gelegenheid zou ik zeer graag iedereen binnenin de organisaties FVB/FFC, FBZ/FSE en het NAVB/CNAC bedanken om mij de kans te geven om mijn stage te doen. In het bijzonder zou ik nog enkele personen willen bedanken. Namelijk de medewerkers van Edutec, in het bijzonder Kaatje Haelterman, Isabelle Herteleer, Inge Parys en Kim Dewaele voor de goede medewerking en de gezellige babbels tijdens de sigaret pauzes. Ook zou ik nog de directie van het FVB willen bedanken, met name dhr. Bruno Vandenwijngaert en dhr. Jan Hendrickx. Verder zou ik nog zeer graag enkele collega's van de ICT dienst willen bedanken. Met name Steven Barret voor de vlotte opvolging van het project voor Edutec. Christophe Boulert voor de vlotte opvolging van de stage. Ook wil ik nog Benoit Briffaut, Filip Dezutter en Emannuel Claeys. En last but not least, wil ik nog mijn stagementor dhr. Patrick Daulie en mijn stagebegeleider dhr. Corneel Theben Tervile bedanken voor de opvolging en ondersteuning tijden mijn stage.
Samenvatting Het Fonds voor Vakopleiding in de Bouwnijverheid (FVB) staat in voor het verbeteren van de beroepsopleiding van de actuele en toekomstige bouwvakarbeiders. Het spreekt voor zich dat een vlotte werking van de interne diensten een must is. Om dit te garanderen is zijn goede, structurele oplossingen een must in de ICT van het FVB. Een eerste luik van de stage was een migratie van data, afkomstig van de databaseserver van de backoffice van het FVB, naar de databaseserver van de website van het FVB te voorzien. Een tweede luik van de stage was om op een vlotte en gestructureerde oplossing het opleidingsaanbod van Edutec publiek te maken. Edutec is een organisatie binnenin het FVB die instaat voor het organiseren van opleidingen voor actuele bouwvakarbeiders. In dit eindwerk wordt een vlotte en gestructureerde oplossing aangeboden om het opleidingsaanbod van Edutec publiek te maken en om zo op een vlotte manier inschrijvingen via de website voor bepaalde opleidingen te verzorgen. Het derde en laaste luik van de stage was een oplossing aanreiken voor een group collaboration platform. Om de beroepsopleiding van de actuele en toekomstige bouwvakarbeiders te verbeteren is natuurlijk ook nood aan gespecialiseerde cursussen. Deze cursussen worden opgemaakt door verschillende personen in het werkmilieu. Zodat deze personen vlot samen aan een cursus kunnen werken is er nood aan een group collaboration platform. In dit eindwerk wordt een totaal oplossing aangeboden via het dokeos platform.
Inhoudsopgave Woord vooraf...................................................................................................................................................... 2 Samenvatting....................................................................................................................................................... 3 Inhoudsopgave.................................................................................................................................................... 4 1De stageplaats FVB/FFC................................................................................................................................... 6 1.1Het FVB/FFC............................................................................................................................................ 6 1.2Edutec....................................................................................................................................................... 6 1.3De dienst informatica................................................................................................................................ 6 1.4Schematische voorstelling........................................................................................................................ 7 2Project Business Intelligence voor migratie SQL servers................................................................................. 8 2.1Opdracht: BI voor synchronisatie MSSQL met MySQL server............................................................... 8 2.1.1Huidige situatie................................................................................................................................. 8 2.1.2Gewenste situatie.............................................................................................................................. 8 2.1.3Opdracht............................................................................................................................................ 8 2.2Analyse................................................................................................................................................... 10 2.2.1XML................................................................................................................................................ 10 2.2.2SQL dump file................................................................................................................................. 10 2.2.3Business Intelligence voor MSSQL naar MySQL via linked server in MSSQL server................. 10 2.2.4Business Intelligence via het Pentaho framework.......................................................................... 10 2.2.5Conclusie........................................................................................................................................ 12 2.3Uitwerking.............................................................................................................................................. 13 2.3.1Installatie Pentaho en aanmaken job............................................................................................... 14 2.3.2Objecten in Pentaho........................................................................................................................ 16 2.3.3Automatische synchronisatie van Pentaho job............................................................................... 20 2.4De ontwikkelomgeving........................................................................................................................... 21 2.4.1Gebruikte hardware......................................................................................................................... 21 2.4.2Gebruikte software.......................................................................................................................... 21 2.5Besluit..................................................................................................................................................... 22 3Project Edutec................................................................................................................................................. 23 3.1Opdracht.................................................................................................................................................. 23 3.2Analyse................................................................................................................................................... 23 3.2.1Publiceren van opleidingsaanbod via website................................................................................ 23 3.2.2Inschrijven voor een opleiding....................................................................................................... 25 3.3Uitwerking.............................................................................................................................................. 27 3.3.1Installatie Drupal............................................................................................................................. 27 3.3.2Installatie en configuratie van datasynchronisatie.......................................................................... 28 3.3.3Programmatie custom module opleidingsaanbod Edutec............................................................... 32 3.3.4Toevoegen van extra functionaliteiten............................................................................................ 32 3.3.5Online plaatsen van de website....................................................................................................... 34 3.4Opleiding verzorgen voor eindgebruikers............................................................................................... 34 3.5Gebruikershandleiding www.edutec.be.................................................................................................. 35 3.5.1Algemeen........................................................................................................................................ 35 3.5.2Aanmelden...................................................................................................................................... 36 3.5.3Opleidingen zoeken........................................................................................................................ 36 3.5.4Inschrijven voor een sessie............................................................................................................. 40 3.5.5Inschrijvingen van een sessie raadplegen....................................................................................... 42 3.5.6Inschrijvingen per bedrijf raadplegen............................................................................................. 44 3.6Handleiding nieuwsbrieven www.edutec.be........................................................................................... 45 3.6.1Uitleg over nieuwsbrieven in een drupal omgeving....................................................................... 45 3.6.2Beheren van nieuwsbrieven............................................................................................................ 45 3.7De ontwikkelomgeving........................................................................................................................... 59 3.7.1Gebruikte hardware......................................................................................................................... 59 3.7.2Gebruikte software.......................................................................................................................... 59 3.8Besluit..................................................................................................................................................... 60 4Group collaboration platform.......................................................................................................................... 61
4.1Analyse................................................................................................................................................... 4.1.1Huidige situatie............................................................................................................................... 4.1.2Gewenste situatie............................................................................................................................ 4.1.3Opdracht.......................................................................................................................................... 4.1.4Functionele eisen............................................................................................................................ 4.1.5Niet-functionele eisen..................................................................................................................... 4.2Uitwerking.............................................................................................................................................. 4.2.1Vertaling woordenschat Dokeos..................................................................................................... 4.3Gebruikershandleiding............................................................................................................................ 4.3.1Informatie over het Group Collaboration platform......................................................................... 4.3.2Werken met het Group Collaboration platform.............................................................................. 4.4Beheerdershandleiding............................................................................................................................ 4.4.1Informatie over het Group Collaboration platform......................................................................... 4.4.2Werken met het Group Collaboration platform.............................................................................. 4.5De ontwikkelomgeving........................................................................................................................... 4.5.1Gebruikte hardware......................................................................................................................... 4.5.2Gebruikte software.......................................................................................................................... 4.6Besluit..................................................................................................................................................... 5Helpdesk.......................................................................................................................................................... 5.1Globaal logon script................................................................................................................................ 5.2Automatische handtekening in outlook.................................................................................................. 5.3Invoeren van users uit de Active Directory in mantis............................................................................. 6Kritische reflectie............................................................................................................................................ 6.1Business Intelligence voor migratie SQL servers................................................................................... 6.1.1Open-source.................................................................................................................................... 6.2Edutec..................................................................................................................................................... 6.2.1Inschrijvingen................................................................................................................................. 6.2.2Data migratie................................................................................................................................... 7Goedkeuring eindwerk.................................................................................................................................... 8Bronnen........................................................................................................................................................... 9Bijlagen........................................................................................................................................................... 9.1Globaal logon script................................................................................................................................ 9.2Automatische handtekening in Outlook..................................................................................................
61 61 61 61 61 61 62 62 63 63 64 71 71 72 83 83 83 84 85 85 85 85 86 86 86 87 87 88 89 90 91 91 99
1 De stageplaats FVB/FFC 1.1 Het FVB/FFC Het
FVB
is
een
brug
tussen
de
bedrijven
en
de
opleidingsverstrekkers.
Het doel is het bevorderen van de beroepsopleiding van de actuele en toekomstige bouwvakarbeiders. Het FVB voert volgende activiteiten uit : − − − − −
Detectie opleidingsnoden bedrijven/sectoren; Coördinatie van het aanbod van de opleidingsverstrekkers in functie van de vraag; Informatie van de doelpublieken over de opleidingsmogelijkheden; Beheer van de sectorale opleidingsstelsels; Samenwerking met de scholen om de kwaliteit van het onderwijs te ondersteunen en de doorstroming van de leerlingen naar de bouwsector te bevorderen.
1.2 Edutec De VZW Edutec is geen dienst van het FVB, maar is opgericht door de sociale partners van de bouwsector en is gehuisvest in de gebouwen van het FVB te Brussel. De VZW heeft tot doel nieuwe technologische opleidingen, omscholingen en bijscholingen te verwezenlijken en te bevorderen. Deze organisatie richt zich hoofdzakelijk tot het Vlaamse arbeiderslandschap maar ook tot de leerlingen en leerkrachten van de bouwscholen. De sector ondersteunt de Edutec opleidingen voor arbeiders, leerlingen en leerkrachten. De terugbetaling van de loonkost en een tussenkomst in de opleidingskost is voor elke opleiding mogelijk door de structurele erkenning van het Fonds Voor Vakopleiding in de Bouwnijverheid.
1.3 De dienst informatica Sinds de operationalisering van een gemeenschappelijk server-productiecentrum in de zomer van 2006 is de synergie tussen de ICT-diensten van de verschillende bouwfondsen een onomkeerbaar feit. Dit vertaalt zich ook in veranderingen in de ICT-organisatie. De structuur van de dienst informatica is momenteel dus nog in wording. De synergie vind plaats tussen belangrijke fondsen in de bouwsector : NAVB (Nationaal Actiecomité voor Veiligheid en Hygiëne in het Bouwbedrijf), FBZ (Fonds voor Bestaanszekerheid) en het FVB (Fonds voor Vakopleiding in de Bouwnijverheid). De bedoeling is dat deze drie fondsen een synergie vormen voor de IT afdeling. Enkele voordelen van het werken in synergie voor de IT afdeling: − − − −
Professionalisering; Kosten; Specialisatie; Infrastructuur.
Het FVB/FFC telt een 110 tal gebruikers, totaal van de drie fondsen is een 250 tal gebruikers.
1.4 Schematische voorstelling IT manager Christophe Boulert
Quality
Development Emannuel Claeys
Operation Patrick Daulie
Data management
Security
De stage verliep binnen Operations.
2 Project Business Intelligence voor migratie SQL servers 2.1 Opdracht: BI voor synchronisatie MSSQL met MySQL server 2.1.1 Huidige situatie In de website www.debouw.be draait een applicatie die ervoor zorgt dat alle opleidingscentra met hun opleidingsaanbod zichtbaar is. Omdat alle gegevens betreffende deze opleidingscentra aanwezig zijn in de backoffice van het FVB moeten deze overgezet worden naar de webserver. Dit gebeurt niet automatisch. Bij elke aanpassing op de originele gegevens wordt er handmatig een stored procedure uitgevoerd die dan alle gegevens die nodig zijn voor de webapplicatie reduceert naar vier tabellen. Op zijn beurt worden deze vier tabellen dan overgezet naar de webserver. Deze vier tabellen zijn nodig voor de goede werking van de webapplicatie.
2.1.2 Gewenste situatie Een oplossing zodat alle opleidingscentra iedere dag automatische overgezet worden van de backoffice naar de webserver. Dus een totaal oplossing om de stored procedure automatisch uit te voeren en de vier tabellen automatisch over te zetten naar de webserver.
2.1.3 Opdracht Op de MSSQL productieserver staat alle informatie over alle opleidingen, opleidingscentra, beroepen en regio s. Deze tabellen moeten gereduceerd worden naar vier tabellen. Één tabel voor opleidingen, één voor opleidingscentra, één voor de beroepen en één voor de regio's. De bedoeling is dan dat deze vier tabellen dagelijks gesynchroniseerd kunnen worden met een andere MySQL server die in de DMZ zone (DeMilitarized zone) staat en toegankelijk is voor de webserver die de gegevens naar buitenaf publiceert. Dit proces zou moeten geautomatiseerd worden.
Project Business Intelligence voor migratie SQL servers
10
Construct Database
MSSQL Server
8 tabellen
4 tabellen
WebServer MySQL server
Opleiding_replic Database
Stap 1: Stored procedure
WebServer MSSQL server
Stap 2: Overzetten van tabellen naar doel SQL-servers via Pentaho
Afbeelding 1: Opdrachtomschrijving BI - schema
Project Business Intelligence voor migratie SQL servers
11
2.2 Analyse Om communicatie mogelijk te maken tussen verschillende SQL-servers heeft men een betrouwbaar middel nodig. In dit geval gaat het om communicatie mogelijk te maken tussen een Mircosoft SQL server een MySQL server. Er bestaan genoeg tools om dit mogelijk te maken, maar het probleem is dat deze tools niet gratis zijn. Een tool gebruiken die gratis is, is dus wel aan te raden. Hieronder bespreek ik enkele mogelijkheden die ik heb uitgetest.
2.2.1 XML XML is een nieuwe manier om gegevens op te slaan onder een leesbare vorm voor machine en mens. Deze oplossing was zeer belovend totdat het probleem van de encoding aan te pas kwam. Een xml document is opgemaakt volgens een bepaalde codering, UTF-8. MSSQL server gebruikt de ISO-8859-1 codering. Het spreekt voor zich dat dit bepaalde problemen met zich mee brengt. Normaal zou dit geen probleem zijn aangezien het om platte tekst gaat, maar het FVB/FFC is een tweetalig bedrijf. Al snel bleek dat XML niet de gepaste manier was om dataoverdracht te doen aangezien de conversie van de ISO-8859-1 naar UTF-8 codering niet goed omging met bepaalde speciale karakters zoals accenten en speciale leestekens. Al deze problemen kunnen natuurlijk vlot opgelost worden met wat codeerwerk, maar rekening houdende met de vooropgestelde tijd en de verschillende points-of-failure leek deze oplossing niet geschikt voor de synchronisatie.
2.2.2 SQL dump file Een handige en doeltreffende oplossing is werken met een sql dump file, een document met sql statements om de desbetreffende data van een MSSQL database naar een MySQL database over te brengen. Maar deze oplossing is niet betrouwbaar voor een geautomatiseerde overdracht vanwege de drie points-of-failure. Namelijk het aanmaken van een sql dump file, de overdracht van de ene server naar de andere en het importeren van de sql dump file.
2.2.3 Business Intelligence voor MSSQL naar MySQL via linked server in MSSQL server Een ideale oplossing voor de overdacht van een MSSQL naar een ODBC datasource. Het aanmaken van een linked server in de Microsoft SQL server management studio is zeer eenvoudig. Het spreekt voor zich dat standaard de MSSQL server niet kan communiceren met de MySQL server. Hiervoor dient dus de ODBC driver van MySQL geïnstalleerd te worden zodat de MSSQL server kan communiceren via een ODBC datasource die dan de MySQL server is. Maar vanwege een bug in de ODBC driver is het niet mogelijk om tabellen, met een autonummering in de primaire sleutel van de tabel, te kopiëren.
2.2.4 Business Intelligence via het Pentaho framework Pentaho is een open source business intelligence framework. Zeer eenvoudige installatie en zeer krachtig qua gebruikersgemak en mogelijkheden. Het opzetten van een Job dat voor de overdracht van data tussen twee SQL-servers zorgt, verliep vrij vlot. Pentaho ondersteunt een zeer groot aantal variatie van database, zoals onder andere MSSQL en MySQL. Pentaho voorziet ook een zeer gebruiksvriendelijk interface voor het maken van een stappenplan voor een dataoverdracht.
Project Business Intelligence voor migratie SQL servers
12
Afbeelding 2: Pentaho job: overdracht gegevens Hierboven in Afbeelding 2 ziet u een voorbeeld van een stappenplan in het pentaho framework. Zoals u kan zien zijn er twee soorten lijnen die de verschillende stappen verbinden met elkaar. Een groene lijn wil zeggen dat de voorgaande stap met succes moet verlopen zijn vooraleer men tot de volgende stap over gaat. Deze job maakt eerst de tabel aan op de MySQL databank en kopieert vervolgens de gegevens van de MSSQL tabel naar de desbetreffende MySQL tabel. Indien er een rode lijn staat wil dit zeggen dat men de volgende stap enkel overloopt als de voorgaande stap een fout geeft.
Afbeelding 3: Pentaho job: Overdracht MSSQL naar MySQL Zoals u kan zien in afbeelding 3 kunt u een job in een job verwerken als stap. Hier is de job voor de overdracht van gegevens (zie afbeelding 2) in de totale job van de overdracht van MSSQL naar MySQL verwerkt. Eerst zal men de gegevens overzetten. Vervolgens de oude tabellen met de oude informatie droppen en de zojuist aangemaakte tabellen hernoemen naar de tabellen die gebruikt worden in productie. Zo is de databeschikbaarheid zo hoog mogelijk en indien de overdracht van de gegevens nog zou mislukt zijn, zijn de gegevens nog altijd beschikbaar.
Project Business Intelligence voor migratie SQL servers
13
2.2.5 Conclusie De meest betrouwbare manier voor een geautomatiseerde oplossing voor de overdracht van gegevens van een MSSQL naar een MySQL database is Pentaho. Deze oplossing is dan ook geopteerd om in productie genomen te worden.
Project Business Intelligence voor migratie SQL servers
14
2.3 Uitwerking Er was reeds een stored procedure aanwezig om vier gewenste tabellen aan te maken. Deze stored procedure werd dan ook gebruikt om deze vier tabellen aan te maken. Zie hieronder op afbeelding 4 voor een screenshot van het stappenplan binnenin Pentaho.
Afbeelding 4: Pentaho stappenplan Zoals u kan zien is dit allemaal zeer overzichtelijk opgebouwd in het Pentaho framework. Het spreekt voor zich dat tijdens de synchronisatie van de vier tabellen naar andere SQL servers de downtime van de tabellen op de doel SQL-server zo laag mogelijk moeten zijn en indien er zich een fout voordoet tijdens de synchronisatie dat de data beschikbaar blijft op de doel SQL-server. Om deze downtime zo laag mogelijk te houden gebeurt de synchronisatie eerst naar een tijdelijke tabel op de doel SQL-server en wanneer deze synchronisatie vlot verlopen is wordt de oude tabel vervangen door de tijdelijk tabel. De gemeten downtime is minder dan 5 seconden.
Project Business Intelligence voor migratie SQL servers
15
2.3.1 Installatie Pentaho en aanmaken job De installatie van het Pentaho framework is zeer eenvoudig. Via http://www.pentaho.org/download/ kiest u het onderdeel 'Kettle' die nodig om de datamigratie mogelijk te maken. Eenmaal het zip bestand gedownload is, unzip je de bestanden en plaats je ze eender waar je wilt. De installatie is zonder exe, enkel de bestanden uit de zip zijn nodig. Om Kettle op te starten, dubbelklik je gewoon op het bestand spoon.bat . Bij het welkomstscherm kan u kiezen om in een bepaalde repository te werken. Dit is handig eenmaal je zeer veel jobs hebt lopen tussen verschillende servers. In dit geval is dit niet en kiest u best om te werken zonder repository. Hierna komt u in het hoofdvenster van Kettle. Bij file-new kunt u een nieuwe job aanmaken.
Afbeelding 5: Pentaho - New job Het spreekt voor zich dat u nog de connecties naar de SQL-server zal moeten aanmaken. In de linkerbalk onder het item Main Tree kan men een database connectie aanmaken.
Project Business Intelligence voor migratie SQL servers
16
Afbeelding 6: Pentaho - New database connection Na het aanmaken van de connecties kan u beginnen met het aanmaken van objecten die uitgevoerd moeten worden tijdens de job. In 2.2.8 worden de objecten beschreven die gebruikt worden voor de uitwerking van de opdracht.
Project Business Intelligence voor migratie SQL servers
17
2.3.2 Objecten in Pentaho 2.3.2.1 Stap 1: Run stored procedure Deze stap zorgt ervoor dat de stored procedure, die de vier tabellen aanmaakt en vult, uitgevoerd wordt.
Afbeelding 7: Pentaho - Run stored procedure 2.3.2.2 Stap 2: Create table Deze stap maakt een tijdelijke tabel aan.
Afbeelding 8: Pentaho - Create table Project Business Intelligence voor migratie SQL servers
18
2.3.2.3 Stap 3: Copy data Deze stap zorgt voor het effectief kopiëren van de data van de ene tabel naar de andere. Dit gebeurt onder het masker van een transformation in Pentaho. Hieronder een afbeelding van een transformation in Pentaho.
Afbeelding 9: Pentaho - Copy data 2.3.2.4 Stap 4: Drop and rename Deze stap verwijdert de oude tabellen en hernoemt de tijdelijke tabellen naar de tabellen die gebruikt worden in productie.
Afbeelding 10: Pentaho - Drop and rename
Project Business Intelligence voor migratie SQL servers
19
2.3.2.5 Stap 5: Succes mail Als alle vorige stappen met succes zijn overlopen wordt een e-mail verstuurd met de log file erbij, zodat u een overzicht heeft van welke stappen gelukt zijn.
Afbeelding 11: Pentaho - Succes mail
Project Business Intelligence voor migratie SQL servers
20
2.3.2.6 Error: error mail Deze stap wordt enkel uitgevoerd indien één van de voorgaande stappen niet gelukt is. Bij het uitvoeren van deze stap wordt een e-mail gezonden naar de betrokken persoon met een gedetailleerde log erbij van wat er fout gelopen is.
Afbeelding 12: Pentaho - Error mail
Project Business Intelligence voor migratie SQL servers
21
2.3.3 Automatische synchronisatie van Pentaho job Bij het opslaan van uw 'job' onder Pentaho bekomt u een kjb bestand. Dit kjb bestand bevat de gegevens van de volledig 'job'. Indien u deze job wilt uitvoeren met het Pentaho framework dient u deze te openen met het bestand 'kitchen.bat' en het kjb bestand als parameter meegeven. Het bestand kitchen.bat zorgt er dus voor dat u een kjb bestand kan uitvoeren. Concreet wil dit zeggen dat wanneer u een Pentaho job automatisch wilt laten uitvoeren, u dit eenvoudigweg in een .bat bestand plaatst en dat .bat bestand laat lopen bij de geplande taken van de server. Hieronder ziet u een voorbeeld van een .bat bestand om deze automatisch te laten uitvoeren met kitchen.bat. cd "C:\Program Files\Kettle" Kitchen.bat /file:"C:\Program Files\Kettle\Jobs\ssqlbuc_opleiding_to_extern3.kjb"
Project Business Intelligence voor migratie SQL servers
22
2.4 De ontwikkelomgeving 2.4.1 Gebruikte hardware Voor de ontwikkeling van dit project kreeg ik volgende hardware ter beschikking: −
Computer: Dell optiplex 740 DT
−
HP iPAQ hx 2100
2.4.2 Gebruikte software −
Microsoft Windows XP Professional;
−
Microsoft Office 2003;
−
Pentaho;
−
Micorsoft SQL Server 2000 & 2005;
−
Kladblok;
−
Scite.
Project Business Intelligence voor migratie SQL servers
23
2.5 Besluit De opdracht op zich was niet groot, maar wel zeer leerrijk gezien uit het standpunt van datamigratie. Want de dag van vandaag zullen er meer en meer problemen komen betreffende migratie van data van en naar verschillende SQL servers. Dit komt vooral door het feit dat meer en meer bedrijven een frontoffice willen implementeren. Dataopslag is altijd al een zeer belangrijk, kritiek en gevaarlijk aspect in een bedrijf. Het pentaho framework maakt het beheren van alle data en het migreren van de verschillenden manieren van dataopslag binnenin het bedrijf zeer eenvoudig. Tenslotte wil ik ook nog vermelden dat alle gebruikte software open-source is zodat ook dit voor het bedrijf een zeer lage kost betekent, hierbij kan dan ook meer geïnvesteerd worden in betere hardware bijvoorbeeld.
Project Business Intelligence voor migratie SQL servers
24
3 Project Edutec 3.1 Opdracht Edutec is een onderneming die opleidingen aanbiedt gericht naar de bouwvakarbeiders en het bouwonderwijs. De opdracht bestaat uit twee delen. Het eerste deel van de opdracht is het maken van een website die hun opleidingsaanbod volledige automatisch publiceert. Het eerste deel van de opdracht is dus voornamelijk zorgen dat alle opleidingen van hun core-business application automatisch op een website gepubliceerd worden. Op deze website moet het ook nog mogelijk zijn om deze aan te passen en uit te breiden naar believen. Standaard werd gevraagd om al de nodige pagina's aan te maken. Zoals een pagina over het bedrijf, een contactpagina, ... Ook werd gevraagd om een systeem te voorzien om nieuwsbrieven te beheren. Het spreekt voor zich dat deze website ook open moet staan om zeer eenvoudig nieuwe functionaliteit toe te voegen. Pas na het maken van het eerste deel van de opdracht, kan het tweede deel gemaakt worden. Het tweede deel zou het mogelijk moeten maken om inschrijvingen voor opleidingen te kunnen beheren. Het moet mogelijk zijn dat een regiomedewerker, bedrijf, extern persoon, ... een inschrijving kan toevoegen voor een bepaalde opleiding. Zodat Edutec deze inschrijving eenvoudig kan verwerken in hun core-business application. Samengevat wil dit dus zeggen dat er een geheel nieuwe website gemaakt wordt die de nieuwe font-end van Edutec zal worden.
3.2 Analyse 3.2.1 Publiceren van opleidingsaanbod via website 3.2.1.1 Huidige situatie Momenteel gebruikt Edutec het CMS systeem Drupal. Dit is een open-source CMS systeem dat wereldwijd zeer goed ondersteund wordt. Via dit CMS systeem kan Edutec zeer eenvoudig een pagina aanmaken op de website. Edutec heeft natuurlijk een zeer groot aantal opleidingen die zij aanbieden. Deze opleidingen worden uiteraard allemaal digitaal bijgehouden in hun core-business applicatie. Bij het toevoegen van een nieuwe opleiding moet men deze zowel toevoegen in de core-business application en deze aanmaken op de website. Edutec zou ook zeer graag de mogelijk hebben om op een eenvoudigere manier nieuwsbrieven te versturen. Momenteel wordt een lijst bijgehouden in Excel en iedere maand wordt dan een e-mail gemaakt via Outlook waar ze dan alle ontvangers in kopiëren en zo dan versturen. Dit is uiteraard niet de meest praktische manier om nieuwsbrieven te versturen.
Project Edutec
25
3.2.1.2 Gewenste situatie Het spreekt voor zich dat wanneer de opleiding wordt aangemaakt in de core-business application deze automatisch dient gepubliceerd te worden. Er zal een datasynchronisatie opgezet moeten worden om alle gegevens betreffende het opleidingsaanbod te publiceren naar de databaseserver van de website. De reden hierom is veiligheid. De veiligheid van alle data in de core-business application komt anders in gedrang indien de website rechtstreeks op de database van de core-business application zou werken. Mede is het ook niet mogelijk omdat de databank van de corebusiness application en de database van de webserver niet rechtstreeks in staat zijn om te communiceren met elkaar wegens veiligheidsbelangen. Het versturen en beheren van de nieuwsbrieven zou ook via de website mogelijk moeten zijn, zodat iedereen zich via de website kan inschrijven voor een nieuwsbrief.
3.2.1.3 Functionele eisen De Functionele eisen voor het publiceren van het opleidingsaanbod zijn volgende: − − −
Een nieuwe en eenvoudig te beheren website; Versturen en beheren van nieuwsbrieven; Automatisch publiceren van het opleidingsaanbod op de website.
3.2.1.4 Niet-functionele eisen − − − −
Gebruik maken van het Drupal CMS systeem; Geen extra kosten voor licenties; Aparte database voor de website; Eenvoudig toevoegen van extra functionaliteit.
Project Edutec
26
3.2.2 Inschrijven voor een opleiding 3.2.2.1 Huidige situatie Het spreekt voor zich dat wanneer men een opleidingsaanbod publiceert dat het ook mogelijk is om zich voor een opleiding in te schrijven. Momenteel gebeurt dit op een nogal omslachtelijke manier. Wanneer een nieuwe opleiding wordt georganiseerd, maakt Edutec een nieuw Excel bestand aan met daarin alle data en informatie waar de opleiding doorgaat. Vervolgens kunnen alle regiomederwerkers van het FVB/FFC in dat Excel bestand inschrijvingen plaatsen voor verschillende bedrijven die zich wensen in te schrijven voor deze opleiding. Hierna licthen de regiomedewerkers Edutec in van de gedane inschrijving. Na goekeuring voert Edutec deze inschrijving in hun core-business applicatie in. Hieronder een schematische voorstelling.
Nieuwe inschrijving
Excel
E-mail naar regiomedewerker
Contacteer Edutec
Nee Goedkeuring Ja
Inschrijving invoeren Tekening 1: Huige situatie Edutec Project Edutec
27
3.2.2.2 Gewenste situatie Het moet mogelijk zijn om in te loggen in de nieuwe website en zo als gebruiker een inschrijving voor een opleiding toe te voegen, zodat de medewerkers van Edutec weten wie de inschrijving voor welk bedrijf heeft ingevoerd. Gewenst scenario: 1. 2. 3. 4.
Gebruiker (regiomedewerker, bedrijf, medewerkers confederatie bouw) logt in op de website; Gaat naar een specifieke opleiding; Schrijft zich in deze opleiding (voor een bepaald aantal personen); Edutec medewerkers zien de verschillende inschrijvingen en verwerken deze in hun core-business application.
3.2.2.3 Functionele eisen − −
Inschrijvingen toevoegen voor bedrijven; Beheren (bekijken verwijderen) van inschrijvingen door Edutec medewerkers.
3.2.2.4 Niet-functionele eisen −
Integreren in het opleidingsaanbod voor de nieuwe website.
Project Edutec
28
3.3 Uitwerking De uitwerking van het uiteindelijke project is in verschillende stappen verlopen. − − − − −
Installatie van een Drupal CMS systeem; Installatie en configuratie van een data-synchronisatie tussen de database van de core-business application en de database van de website; Programmeren van een module om het opleidingsaanbod en inschrijvingen mogelijk te maken via het Drupal CMS systeem; Toevoegen van extra functionaliteiten aan het Drupal CMS systeem met modules geschreven door de Drupal community; Website publiceren op het internet.
3.3.1 Installatie Drupal De installatie van een Drupal CMS systeem gebeurt bij voorkeur onder een LAMP (Linux-Apache-MySQLPHP) configuratie. In dit geval zal het gebeuren onder een WIMP (Windows-IIS-MySQL-PHP) configuratie. Onder een WIMP configuratie moet u toch met enkele punten rekening houden zodat het Drupal CMS systeem vlot kan draaien. De installatie en configuratie van een Drupal CMS systeem is onderverdeeld in verschillende stappen: − − −
Installatie WIMP; Installatie Drupal; Configuratie Drupal;
3.3.1.1 Installatie WIMP De installatie van een WIMP webserver gaat als volgt: − − −
Installeer IIS; Installeer MySQL; Installeer PHP.
Na de installatie van IIS, MySQL en PHP is het installatie proces nog niet af. Onder IIS moet nog een plugin geïnstalleerd worden zodat IIS clean URL's ondersteunt. Dit is mogelijk met een ISAPI module (http://www.helicontech.com/download.htm). Een ISAPI module binnenin IIS zorgt ervoor dat u bepaalde filters en extensies kan toepassen bij het laden van een pagina. Activeer deze module in uw IIS server.
3.3.1.2 Installatie Drupal Na de installatie van uw WIMP server gaan we dus over naar het installatie proces van een Drupal CMS systeem. Hieronder een opsomming van de te ondernemen stappen: − − −
Downloaden van Drupal; Database aanmaken; Installatie script uitvoeren.
Project Edutec
29
Downloaden van Drupal Drupal is te vinden op deze locatie (http://ftp.drupal.org/files/projects/drupal-5.2.tar.gz). U gebruikt best WinRar of 7-zip voor het uitpakken van deze bestanden. Als alles uitgepakt is staat dit allemaal in 1 map Drupal5.x . Deze map zet u onder de root directory van uw webserver. Je mag deze map hernoemen naar de naam waarmee u de site wenst mee aan te roepen. Dus als u de map testdrupal noemt, zal de link naar uw webserver waar de drupal installatie opstaat er als volgt uitzien http://webserver/testdrupal/ .
Database aanmaken In deze stap maken we een database aan in MySQL en een betrokken user met de nodige rechten. Drupal heeft een eigen database nodig. U maakt deze aan in MySQL met volgende commando: mysqladmin -u username -p create databasename Hierna moet u de betrokken gebruiker de nodige rechten geven op de database, dit doet u met volgende commando: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON databasename.* TO username @ localhost IDENTIFIED BY password ;
Installatie script uitvoeren Om het installatie script uit te voeren gaat u gewoon naar de basisurl van uw website. Dan krijgt u een scherm waar u de database, gebruikersnaam en paswoord zal moeten ingeven. Hierna klikt u op de knop volgende en verschijnt een scherm met het resultaat van het installatie script.
3.3.2 Installatie en configuratie van datasynchronisatie Voor de de datasynchronisatie tussen de database van de core-business application en de database van de webserver zullen we dus wederom gebruik maken van het pentaho framework. De synchronisatie zal gebeuren op basis van een view aangemaakt in de database van de core-business application van Edutec (een MSSQL-server). Deze view zal dan worden doorgestuurd naar de database van de webserver (een MySQL server).
3.3.2.1 Aanmaken view De view is gebaseerd op de bestaande databank van de core business application van Edutec, Edgard.
Project Edutec
30
3.3.2.2 Installatie en configuratie van Pentaho Voor de installatie van Pentaho zie project BI voor migratie SQL servers. De job die nu zal moeten draaien in Pentaho zal er iets anders uitzien als die beschreven staat in het project van BI voor migratie SQL servers. In dit geval zal de job er uitzien als in de figuur hieronder.
Afbeelding 13: Pentaho - Job Edutec Het proces van de synchronisatie tussen de MSSQL-view en de MySQL tabel is verdeeld in drie stappen.
Project Edutec
31
Stap 1: Aanmaken van een dump tabel voor de sessies in de MySQL database.
Afbeelding 14: Pentaho - Create table sessies
Project Edutec
32
Stap 2: Kopiëren van de view naar de dump tabel in de MySQL database. Dit gebeurt via een transformation.
Afbeelding 15: Pentaho - Transformation view to table Stap 3: Drop table in MySQL en hernoem de dump table.
Afbeelding 16: Pentaho - Drop and rename Indien al deze stappen gelukt zijn wordt een succes e-mail verzonden, indien 1 faalt stopt het proces en wordt er een error e-mail verzonden met de nodige uitleg erbij wat is foutgelopen.
Project Edutec
33
3.3.3 Programmatie custom module opleidingsaanbod Edutec 3.3.3.1 Het Drupal framework Het Drupal CMS systeem is een modulair opgebouwd systeem, Zodat het zeer eenvoudig wordt om voor verschillende gebruikers het volledige systeem aan te passen naar eigen wensen. Een module in Drupal is regels code in PHP programmeertaal. Wanneer de module uitgevoerd wordt, wordt het uitgevoerd in de kern van het CMS systeem. Dit betekent dat een module alle functies, variabelen en structuren van het CMS systeem kan aanpassen. Het idee achter een module in Drupal is, dat het op bepaalde voorgedefinieerde plaatsen code kan toevoegen met als doel de functionaliteit uit te breiden. Die voorgedefinieerde plaatsen in Drupal noemt men hooks . De reden waarom men dit hooks noemt is zeer duidelijk aangezien uw code letterlijk in de code gaat komen. Bijvoorbeeld, indien u zelf een module wenst te maken die ervoor zorgt dat u een extra menu-item aan het menu wenst toe te voegen. U kan dit zeer eenvoudig door de hookfunctie hook_menu in uw module op te nemen. Naast de 'hooks' stelt Drupal ook nog verschillende API's (Application Programming Inferface) voor. Met behulp van deze API's kunt u zeer eenvoudig een uniformiteit opstellen om bepaalde items op een pagina in Drupal weer te geven. Indien u bijvoorbeeld gebruikt maakt van de forms API, kunt u zeer eenvoudig een formulier maken die mee varieert met uw gekozen thema, zo kunt u dan ook uw formulier valideren en verwerken.
3.3.3.2 Custom module De custom module is volledig via het Drupal framework geprogrammeerd. Dit om enige foutieve weergave te vermijden. Alsook om de kracht van de aanpasbaarheid van Drupal niet te verminderen.
3.3.4 Toevoegen van extra functionaliteiten Natuurlijk wenst Edutec meer dan enkel hun opleidingsaanbod en de mogelijkheid om in te schrijven voor de opleidingen op hun website. Evenals binnen Drupal is het ook aangeraden om enkele functionaliteiten toe te voegen zodat de website wat vlotter draait. Want een Drupal CMS systeem zonder extra modules is wat kaal. Hieronder een opsomming van de toegevoegde modules: − − −
Image galleries; Pathauto; Simplenews.
Project Edutec
34
3.3.4.1 Image galleries Er werd gevraagd of het mogelijk was om een willekeurige foto te laten weergeven op de website. Uiteraard is dit niet een standaard optie in een CMS systeem. Om dit te kunnen verwezenlijken was er dus nood aan een extra module. Er werd gekozen om hiervoor een module te implementeren die door de Drupal community gemaakt is. De module 'Image galleries' zorgt ervoor dat men foto's (images) kan uploaden naar het CMS systeem. Eenmaal de foto aanwezig is in het systeem kan je er allerhande bewerkingen mee doen. Zoals de foto toevoegen op een pagina, in een galerij (foto album) plaatsen, ... Met de hulp van deze module was het mogelijk om op de linkerbalk van de website een blok te maken die het mogelijk maakte om bij het laden een willekeurige foto weer te geven.
3.3.4.2 Pathauto Dit is een zeer kleine, maar krachtige module voor het Drupal CMS systeem. Het doet in principe zeer weinig maar is zeer handig. Het maakt de URL's bovenaan de pagina meer leesbaar. Standaard heeft een pagina een node nummer. Bijvoorbeeld de pagina 'over het bedrijf' heeft als node nummer 12, dan zal de URL om deze pagina aan te roepen er als volgt uitzien: http://uwdrupalwebsite/node/12. Dit is allesbehalve leesbaar. De pathauto module zorgt ervoor dat de pagina een URL krijgt als http://uwdrupalwebsite/over-hetbedrijf. Dit is alvast een stuk leesbaarder.
3.3.4.3 Simplenews Zoals eerder beschreven in de opdracht was er de vraag of het mogelijk was om ook nieuwsbrieven via de website te versturen. De module Simplenews maakt het mogelijk om op een zeer eenvoudige manier nieuwsbrieven te beheren. Onder nieuwsbrieven beheren verstaan we: −
Nieuwsbrieven versturen aan de hand van voorgedefinieerde sjablonen;
−
Verzendlijsten beheren;
−
Allerhande opties zoals het afzenderadres, onderwerp, ... aanpassen per nieuwsbrief.
Project Edutec
35
3.3.5 Online plaatsen van de website Na het configureren, programmeren en testen van de nieuwe website is het dan ook tijd om de website voor het grote publiek toegankelijk te maken. De webserver voor de website van Edutec is een server die intern in het bedrijf staat. Wat op zich al een zeer groot voordeel is. Het online plaatsen van de website was op zich enkel maar een DNS record in de server aanpassen, maar een grote aanpassing voor de regiomedewerkers van het FVB/FFC, de Edutec medewerkers en de confederatie Bouw.
3.4 Opleiding verzorgen voor eindgebruikers Het spreekt voor zich dat wanneer men een project van begin tot einde maakt, men ook moet instaan voor het overbrengen van de werking van het project naar de eindgebruikers toe. Het schrijven van een handleiding is hierbij de eerste stap. De tweede stap is het 'lesgeven'. Er werd dus opleiding/cursus voorzien voor de eindgebruikers. Ook werd een opvolger, de persoon die het project zal opvolgen na mijn stage, aangeduid die ik dan vervolgens ook wegwijs moest maken in de Drupal omgeving, de geprogrammeerde module, de datasynchronisatie, ...
Project Edutec
36
3.5 Gebruikershandleiding www.edutec.be Deze handleiding maakt u wegwijs in de website van Edutec. Deze handleiding behandelt volgende punten. − − − −
Opleidingen zoeken; Inschrijven voor een sessie; Inschrijvingen van een sessie raadplegen; Inschrijvingen per bedrijf raadplegen.
3.5.1 Algemeen
Afbeelding 17: Algemeen - pagina overzicht
Project Edutec
37
Zoals u kan zien in afbeelding 17 is de pagina in vier delen opgedeeld: − − − −
Balk bovenaan; Linker zijbalk; Rechter zijbalk; Inhoud of het middenstuk.
De linker zijbalk bevat de navigatie, nieuwsbrief blok en het loginkader.
3.5.2 Aanmelden Aanmelden kan u door uw login gegevens in te vullen in de linker zijbalk onderaan (zie afbeelding 18).
Afbeelding 18: Gebruikershandleiding - Aanmelden
3.5.3 Opleidingen zoeken Opleidingen kan u zoeken op verschillende manieren. Dit kan met behulp van de wizard of met behulp van de ingebouwde zoekfunctie. Eerst en vooral klikt u in de linker zijbalk, in het navigatieblok op 'Opleidingsaanbod' (zie afbeelding 19).
Project Edutec
38
Afbeelding 19: Gebruikershandleiding - Opleidingen zoeken navigatieblok Vervolgens komt u terecht op de hoofdpagina van het opleidingsaanbod. Hier kunt u de keuze maken om gebruik te maken van de wizard of de zoekfunctie (zie afbeelding 20).
Afbeelding 20: Gebruikershandleiding - Opleidingsaanbod Hoofdpagina 3.5.3.1 Wizard Indien u kiest voor de wizard te gebruiken komt u terecht in een stappenplan die u helpt zoeken naar een gepaste opleiding.
Project Edutec
39
Stap 1
Afbeelding 21: Opleidingen zoeken - wizard stap 1 Bij stap 1 kiest u de categorie waarin u wenst te zoeken. Eenmaal een categorie geselecteerd is klikt u op 'Stap 2'.
Stap 2
Afbeelding 22: Opleidingen zoeken - wizard stap 2
Project Edutec
40
Stap 3
Afbeelding 23: Opleidingen zoeken - wizard stap 3 Overzicht sessies Na het selecteren van een programma klikt u op toon en ziet u alle sessies betreffende deze opleiding.
Afbeelding 24: Opleidingen zoeken - overzicht sessies Bij het overzicht van de sessies ziet u eerst een beknopte uitleg betreffende dit programma. Indien u meer naar beneden 'scrolt' ziet u alle sessies gesorteerd op datum (eerstkomende sessies bovenaan).
Project Edutec
41
Afbeelding 25: Opleidingen zoeken - sessie
3.5.4 Inschrijven voor een sessie Inschrijven voor een sessie is zeer eenvoudig. U gaat naar een sessie zoals in hoofdstuk opleidingen zoeken besproken. U klikt gewoon op de daarvoor voorziene link bij de sessie Klik hier om u in te schrijven voor deze sessie .
Afbeelding 26: Inschrijven voor een sessie - link Na het klikken op de link, komt u op de inschrijvingspagina terecht. Deze ziet er als volgt uit.
Project Edutec
42
Afbeelding 27: Inschrijven voor een sessie - inschrijvingsformulier Project Edutec
43
Vul dit formulier in, klik op de knop Schrijf in en de inschrijven is doorgestuurd naar een Edutec medewerker.
3.5.5 Inschrijvingen van een sessie raadplegen Ga eerst naar een sessie (beschreven in hoofdstuk zoeken naar opleidingen). Indien er al inschrijvingen ingevoerd zijn voor deze sessie zal er in het blok van de sessie een link staan met als tekst 'Klik hier om een lijst van de inschrijvingen te zien'.
Afbeelding 28: Inschrijvingen raadplegen - toon inschrijvingen Klik vervolgens op de link om de lijst met de inschrijvingen te zien. Hierna komt u terecht op een overzichtspagina van de inschrijven voor de desbetreffende sessie (zie afbeelding 29).
Afbeelding 29: Inschrijvingen van een een sessie - overzicht
Project Edutec
44
Indien u klikt op 'toon' krijgt u een pagina met een gedetailleerd overzicht over de inschrijving (zie afbeelding 30).
Afbeelding 30: Inschrijvingen van een sessie - inschrijving
Project Edutec
45
3.5.6 Inschrijvingen per bedrijf raadplegen In het navigatieblok in de linker zijbalk klikt u op 'Inschrijvingen voor bedrijven'. U kiest het bedrijf uit de keuze lijst, klik op filter en u ziet alle inschrijvingen betreffende het gekozen bedrijf.
Afbeelding 31: Inschrijving per bedrijf Tevens kunt u ook wederom op de link 'toon' klikken om een pagina met een gedetailleerd overzicht van de inschrijving te bekijken.
Project Edutec
46
3.6 Handleiding nieuwsbrieven www.edutec.be 3.6.1 Uitleg over nieuwsbrieven in een drupal omgeving Nieuwsbrieven worden tegenwoordig meer en meer gebruikt om op de hoogte gebracht te worden van nieuwe wijzigingen of de laatste nieuwtjes binnenin een organisatie. Daarvoor achtte men het ook nodig dat deze functionaliteit aanwezig was in de nieuwe website van Edutec. De nieuwe website van Edutec is ontwikkeld in een drupal omgeving. In deze handleiding zal dan ook uitgebreid worden uitgelegd hoe u de nieuwsbrieven kan beheren in de nieuwe website van Edutec.
3.6.2 Beheren van nieuwsbrieven Een nieuwsbrief bestaat uit twee onderdelen. Het eerste onderdeel is een newsletter, dit is te vergelijken met een sjabloon voor de nieuwsbrief. Het tweede onderdeel is een newsletter issue, dit is de nieuwsbrief die u daadwerkelijk zal versturen. Om tot het beheer gedeelte van de nieuwsbrieven module te komen logt u in eerste instantie in, klikt u op de link 'beheren' in het linkermenu, vervolgens gaat u naar inhoudelijk beheer en klik je op 'Newsletters'.
Afbeelding 32: Beheren nieuwsbrieven Let op: de module voor nieuwsbrieven is volledig in het engels, dus van nu af aan zullen alle termen betreffende nieuwsbrieven in het engels voorkomen.
Project Edutec
47
Een voorbeeld om alles te verduidelijken: − − − −
U maakt een newsletter aan voor de arbeiders; U koppelt deze arbeiders aan de subscription list voor de desbetreffende newsletter; U maakt maandelijks een newsletter issue aan op basis van de newsletter arbeiders; Tenslotte verzendt u de newsletter issue aan de subscription list voor de desbetreffende newsletter.
Het beheren van de nieuwsbrieven kan men onderdelen in verschillende bewerkingen: − − − −
Maken van een newsletter; Aanpassen van instellingen voor een newsletter; Subscriber koppelen aan de newsletter; Maken en versturen van een newsletter issue.
3.6.2.1 Aanmaken van een newsletter Om een newsletter aan te maken klikt u bovenaan in het beheerdersgedeelte van de module newsletters op 'Newsletters'. Hier zie je alle newsletters die al reeds zijn aangemaakt.
Afbeelding 33: Newsletters - list newsletters Vervolgens klikt u op 'Add newsletter' om een nieuwe newsletter aan te maken.
Project Edutec
48
Afbeelding 34: Newsletters - add newsletter Hier kunt u de newsletter een naam en beschrijving geven. Om de newsletter toe te voegen klikt u op 'Indienen'. En de nieuwsbrief is toegevoegd aan de lijst.
Project Edutec
49
3.6.2.2 Aanpassen van instellingen voor een newsletter Het spreekt voor zich dat enkel een naam een beschrijving niet genoeg is voor het aanmaken en werken van een newsletter. Om alle instellingen betreffende de zojuist aangemaakte newsletter aan te passen gaat u in het menu bovenaan naar 'Instellingen'.
Afbeelding 35: Newsletters - instellingen - general In het menu bovenaan ziet u nu 'General', 'Edutec nieuwsbrief' en 'sjabloon voor arbeiders' staan. De link naar 'Edutec nieuwsbrief' en 'sjabloon voor arbeiders' zijn de instellingen voor de newsletter met de desbetreffende naam. Maar eerst en vooral wat uitleg geven over de algemene instellingen (General). − − − − −
Default newsletter options; Test addresses option; Sender information; Initial send time (n.v.t.); Cron throttle (n.v.t.).
Project Edutec
50
Default newsletter options
Afbeelding 36: Newsletters - instellingen - default Deze instellingen hebben effect op het aanmaken van een newsletter issue. Hier kunt u de standaardwaarden instellen die standaard ingevuld zullen zijn bij het aanmaken van een newsletter issue.
Test Addresses option Dit onderdeel is enkel bedoelt om het test-email adres op te geven. Dit is het e-mail adres waar alle test newsletters naar gezonden zullen worden.
Afbeelding 37: Newsletters - instellingen - test addresses option Sender information Dit is het staandaard e-mail adres en naam vanwaar de nieuwsbrief zal worden gezonden. Natuurlijk spreekt het voor zich dat u dit kan aanpassen voor elke newsletter.
Project Edutec
51
Afbeelding 38: Newsletters - instellingen - sender information 3.6.2.3 Newsletter specifieke instellingen Per newsletter kunt u newsletter specifieke instellingen aanpassen.
Afbeelding 39: Newsletters - newsletter specifieke instellingen Hieronder een opsomming van de verschillende instellingen: − − − − − −
Kop (de hoofding van de newsletter); Footer (de voettekst van de newsletter); Style (specifieke stijl voor de newsletter); Block options (de opties voor een blok te tonen op de pagina); Sender information; HTML to text conversion (n.v.t.).
Project Edutec
52
Kop en footer Hierin komt de hoofding van de newsletter in terecht. U kunt per newsletter een voorgedefinieerde hoofding instellen. Zodat telkens u een newsletter issue verstuurt zal deze hoofding meegezonden worden. Hetzelfde geldt voor de footer, maar deze zal dan iedere keer onderaan de newsletter issue terecht komen.
Afbeelding 40: Newsletters - newsletter specifieke instellingen - kop Zoals u kunt zien in afbeelding 40 kunt u alles betreffende lay-out hier naar wensen aanpassen. Het is uiteraard ook mogelijk om afbeeldingen toe te voegen en dergelijke.
Project Edutec
53
Style Per newsletter kunt u een andere style (stijl) instellen. Dit betekent dat u bijvoorbeeld voor de arbeiders alles in het blauw kan weergeven en voor de andere newsletter alles in het rood.
Afbeelding 41: Newsletters - newsletter specifieke instellingen - style
Project Edutec
54
Block options Een Block is een blok die zichtbaar is op de website van Edutec. U kunt per newsletter een Block voorzien op de website zodat mensen zich kunnen inschrijven voor uw newsletter.
Afbeeld ing 42: Newsletters - newsletter specifieke instellingen - block Natuurlijk spreekt het voor zich dat u ook nog het Block moet plaatsen op de pagina van de website. U kunt het Block voor iedere newsletter activeren door naar de beheer pagina te gaan en dan op Blokken te klikken. Dan kom u op volgende pagina terecht.
Afbeeldi ng 43: Beheer - blokken
Project Edutec
55
Onderaan deze pagina ziet u dan volgende tabel.
Afbeelding 44: Beheer - blokken tabel Hier kunt u alle blokken activeren en kiezen waar u ze wilt weergeven. Zo zie je bij de rubriek Uitgeschakeld het blok voor de newsletter sjabloon voor arbeiders , naast deze tekst ziet u een keuzelijst staan, kies daar in de gewenste locatie van het blok (bij voorkeur in de linker zijbalk).
Project Edutec
56
Sender information Informatie betreffende de zender van de newsletter.
Afbeelding 45: Newsletters - newsletter specifieke instellingen - sender information 3.6.2.4 Subscriber koppelen aan de newsletter Per subscriber kunt u instellen aan welke newsletter u deze subscriber wenst te koppelen. De lijst van subscribers kunt u terugvinden onder Subscriptions in het menu bovenaan bij het beheren van de newsletters.
Afbeelding 46: Newsletters - subscriptions - list Hier ziet u dus een volledige lijst met alle subscribers. U kunt subscribers bewerken, verwijderen en op inactief plaatsen.
Project Edutec
57
Bij het bewerken van een gebruiker kunt u aanduiden welke newsletters hij mag ontvangen en welke niet.
Afbeelding 47: Newsletters - subscriptions - bewerk subscriber
Project Edutec
58
3.6.2.5 Maken en versturen van een newsletter issue Eenmaal alle sjablonen gemaakt zijn voor de verschillende newsletters is het tijd om een newsletter issue aan te maken. Dus eigenlijk komt het erop neer dat u eerst de nodige newsletters aanmaakt, deze instelt naar wensen (lay-out aanpassen, subscribers toevoegen,& ) en dan kan u newsletter issues versturen naar believen. Om een newsletter issue aan te maken gaat u naar Inhoud aanmaken in het linkermenu. Hierna kiest u Newsletter issue .
Afbeeldin g 48: Newsletters - nieuwe nieuwsbrief
Project Edutec
59
Zoals u kunt zien op afbeelding 48 zijn er heel wat velden die u kan invullen voor het verzenden van een nieuwe nieuwsbrief. Enkele belangrijke en nodige velden zijn titel, beschrijving, newsletter (sjabloon waarvan uw nieuwe nieuwsbrief onder zal vallen) en de opties om de nieuwsbrief te verzenden. Indien u alles heeft ingevuld klikt u op 'Indienen' en de nieuwsbrief is verzonden.
Project Edutec
60
3.7 De ontwikkelomgeving 3.7.1 Gebruikte hardware Voor de ontwikkeling van dit project kreeg ik volgende hardware ter beschikking: −
Computer: Dell optiplex 740 DT
−
HP iPAQ hx 2100
3.7.2 Gebruikte software −
Microsoft Windows XP Professional;
−
Microsoft Office 2003;
−
Pentaho;
−
XAMMP (Apache, MySQL, PHP);
−
Microsoft Windows Server 2000 & 2003;
−
Microsoft SQL Server 2005:
−
Scite.
Project Edutec
61
3.8 Besluit Deze opdracht was zeker en vast de meest leerrijke opdracht. Hier moest ik een project verwezenlijken van begin tot einde. Eerst een analyse van het project opstellen, een gepast oplossing zoeken, uitwerken van de oplossing en tenslotte het opleiden van de eindgebruikers en opvolger. Een project waar ook veel van de vakken van de opleiding aan bod kwamen. Zoals databankbeheer om de migratie van de core-business application database naar de database van de webserver over te plaatsen. Voor het gemoduleerd programmeren in het Drupal framework kwamen de lessen van objectgeoriënteerde analyse zeker aan te pas. En natuurlijk ook het programmeren in php zelf niet vergeten. Kortom een project waar je een heleboel vakkennis op kan toepassen. Ook de eindgebruikers waren zeer tevreden van het resultaat, dus dit geeft dan toch ook wel een zeker voldoening. Mede ook door het feit dat het project daadwerkelijk in productie staat en intensief wordt gebruikt geeft ook wel een zekere voldoening.
Project Edutec
62
4 Group collaboration platform 4.1 Analyse 4.1.1 Huidige situatie Momenteel huurt het FVB een platform om Group collaboration mogelijk te maken. Dit is nodig zodat verschillende personen samen kunnen werken aan een document. Zodat het mogelijk is met verschillende externe personen (leerkrachten van scholen, vakspecialisten, & ) een handleiding, handboek te maken voor een opleiding. Deze applicatie wordt momenteel gehost bij het bedrijf VIADESK.
4.1.2 Gewenste situatie Het huren van deze webapplicatie kost het FVB een som geld. De bedoeling van deze opdracht is dat de webapplicatie die men momenteel gebruikt wordt nagemaakt, zodat deze intern kan worden gehost. De kosten zouden hiervoor dus nihil zijn.
4.1.3 Opdracht Het maken van een group collaboration platform die evenwaardig is als het huidige met zeer lage kost. Er zijn twee pistes die kunnen bewandeld worden. Als eerste piste kan men zelf een group collaboration platform programmeren met de gewenste functionaliteit. Of als twee piste kan men een open-source platform zoals dokeos opzetten en configureren, met als extra troef dat, indien gewenst, extra functionaliteit eenvoudig kan toegevoegd worden.
4.1.4 Functionele eisen − −
−
−
Onderverdeling in groepen Per groep documentenbeheer − Documenten toevoegen; − Mappen toevoegen; − Nieuwe versie van document toevoegen. Agenda per groep − Afspraken maken met meerdere gebruikers; − Afspraken overzicht. Communicatie (vergelijkend met een mailbox) − Communicatie verzenden naar meerdere gebruikers; − Communicatie verzenden betreffende een document en afspraak.
4.1.5 Niet-functionele eisen − − −
Geen vaste onderhoudskosten; Eenvoudig te onderhouden; Intern gehoste applicatie bij voorkeur.
Group collaboration platform
63
4.2 Uitwerking Voor de uitwerking van een group collaboration platform waren er dus twee pistes die gekozen konden worden. Ofwel het zelf programmeren van een group collaboration platform of gebruik maken van een opensource platform. Na gesprekken met de eindgebruikers kreeg ik al snel de indruk dat het group collaboration platform niet echt veel functionaliteit nodig had en dat het enkel maar gebruikt wordt om documenten naar verschillende personen te verspreiden en verbeteringen toe te passen. Het schrijven van een nieuw platform was dus nogal overbodig en te veel werk voor de belangrijkheid van het project. Bij deze werd dus maar geopteerd om een open-source platform te gebruiker en zo te configureren naar believen. Er werd gekozen om het Dokeos platform te gebruiken. Dokeos is een online open-source e-learning platform, gericht naar onderwijsinstellingen. Dokeos wordt onder andere gebruikt door Hogeschool Gent en Hogeschool West-Vlaanderen. Dokeos biedt alle functionaliteit die een group-collaboration platform kan bieden.
4.2.1 Vertaling woordenschat Dokeos Om het Dokeos platform toe te passen op deze opdracht was er enkel nog nood aan het vertalen van het platform. Momenteel is alle woordenschat in het Dokeos platform gericht voor een student lector. Het spreekt voor zich dat dit zeker en vast zal moeten worden aangepast voor het group collaboration project. Het aanpassen van de woordenschat was op zich niet moeilijk. De woordenschat die het Dokeos platform gebruikt staat in aparte bestanden. Deze bestanden zijn terug te vinden via volgende mappen structuur. rootmap van webserver / dokeos / main / lang / dutch In deze map staan een 50tal bestanden, met in ieder bestand de woordenschat voor die bepaalde pagina. Met een programma die op tekst zoekt in bestanden kunt u zeer eenvoudig alle woordenschat voor alle bestanden aanpassen. In dit geval werd geopteerd om het woord cursus te vervangen door werkgroep, lesgever door werkgroepbeheerder, ...
Group collaboration platform
64
4.3 Gebruikershandleiding 4.3.1 Informatie over het Group Collaboration platform 4.3.1.1 Wat is een group collaboration platform http://groupcollaboration.debouw.be is een group collaboration platform die het mogelijk maakt om documenten uit te wisselen tussen verschillende gebruikers om op een zo efficiënt mogelijke manier een handleiding samen te stellen. Via dit platform is het mogelijk om in verschillende werkgroepen te werken aan verschillende handleidingen. Per werkgroep is een verantwoordelijke aangesteld, de werkgroepbeheerder. Deze persoon controleert welke documenten opgenomen zullen worden in de handleiding en welke niet.
4.3.1.2 Wat is de functionaliteit van het Group Collaboration platform De functionaliteit van het Group Collaboration platform is kort samen te vatten in volgende puntjes: −
−
Documenten − Beheerders kunnen documenten publiek maken zodat iedereen in de werkgroep deze kan zien; − Deelnemers kunnen documenten indienen ter nalezing van beheerders (dropbox). Agenda − Per werkgroep is een agenda voorzien, waar werkgroepbeheerders afspraken kunnen toevoegen, bewerken en verwijderen; − De werkgroepagenda is zichtbaar voor iedereen die lid is van de werkgroep.
4.3.1.3 Wat kan ik als deelnemer? Als deelnemer heb je standaard volgende rechten in een werkgroep: − − − −
Document indienen (dropbox); Bekijken van documenten in de werkgroep; Agenda items bekijken; Gebruikerslijst raadplegen.
Group collaboration platform
65
4.3.2 Werken met het Group Collaboration platform 4.3.2.1 Inloggen Open Internet Explorer en typ bovenaan in de adresbalk http://www.groupcollaboration.debouw.be in. Vervolgens komt u op de startpagina van het Group Collaboration platform terecht.
Afbeelding 49: Group collaboration - Inlogscherm In de rechterbalk van de hoofdpagina kan u inloggen door middel van het opgeven van een gebruikersnaam en wachtwoord. U logt in met uw persoonlijke gebruikersnaam en wachtwoord. Na het invullen van de velden klikt u op de knop 'OK'.
Group collaboration platform
66
4.3.2.2 Mijn werkgroepen Na het inloggen komt u terecht op de pagina 'mijn werkgroepen'. Deze pagina geeft u een overzicht van alle werkgroepen waarvoor u bent ingeschreven.
Afbeelding 50: Group collaboration - mijn werkgroepen Bij dit overzicht klikt u op de gewenste werkgroep om naar de hoofdpagina van deze werkgroep te gaan.
Group collaboration platform
67
4.3.2.3 Overzicht werkgroep Bij dit onderdeel leggen we u uit hoe de verschillende onderdelen van een werkgroep in elkaar zitten.
Afbeelding 51: Group collaboration - overzicht werkgroep Zoals u kunt zien is het overzicht van een werkgroep opgedeeld in 5 onderdelen: − − − − −
Werkgroepbeschrijving; Documenten; Gebruikers; Agenda; Dropbox.
4.3.2.4 Werkgroepbeschrijving Dit onderdeel vereist niet zoveel uitleg aangezien dit onderdeel niets van functionaliteit beschikt. In dit onderdeel vindt u een uitgebreide omschrijving betreffende de werkgroep terug.
4.3.2.5 Documenten De hele bedoeling van dit Group Collaboration platform is het beheren van de documenten die ervoor dienen dat een handleiding voor een beroep ontstaat. Het spreekt dus voor zich dat in dit onderdeel alle documenten betreffende de werkgroep terug te vinden zijn.
Group collaboration platform
68
Afbeelding 52: Group collaboration - overzicht documenten Indien u hier een document wenst te downloaden naar uw pc, klikt u simpelweg op de afbeelding van een diskette ter hoogt van het gewenste document. Ook is het mogelijk om alle documenten van de werkgroep in 1 bestand af te halen. Dit kunt u doen door op de knop, bovenaan de pagina waar staat 'Opslaan (ZIP)', te klikken.
4.3.2.6 Gebruikers Het onderdeel gebruikers geeft u een lijst met alle gebruikers van deze werkgroep. Indien u meer wenst te weten over deze gebruiker klikt u op het persoon icoontje helemaal rechts ter hoogte van de desbetreffende persoon in de lijst.
Afbeelding 53: Group collaboration - overzicht gebruikers
Group collaboration platform
69
4.3.2.7 Agenda Per werkgroep is een agenda met alles betreffende de afspraken van deze werkgroep. Hier kunt u alle geplande vergadering zien betreffende de werkgroep.
Afbeelding 54: Group collaboration - overzicht agenda 4.3.2.8 Dropbox De dropbox is waarschijnlijk het meest vitale, belangrijkste onderdeel voor een deelnemer. In dit onderdeel is het mogelijk om een bestand te sturen naar de werkgroepbeheerder zodat die het document kan nalezen en in de documenten lijst van de werkgroep kan plaatsen. Een dropbox werkt als het ware als een box waar u documenten naar andere personen kan sturen, maw u kunt bestanden naar andere personen in de werkgroep versturen en zij kunnen ook bestanden naar u sturen.
Group collaboration platform
70
Afbeelding 55: Group collaboration - ontvangen bestanden In afbeelding 55 ziet u een overzicht van alle bestanden die deelnemers van de werkgroep naar u gezonden hebben. U kunt deze documenten dowloaden door op het diskette icoontje te klikken ter hoogte van het gewenste document. Het is ook mogelijk om op het desbetreffende document feedback te geven naar de zender.
Afbeelding 56: Group collaboration - verstuurde bestanden In afbeelding 56 ziet u een overzicht van alle bestanden die u al binnen deze werkgroep naar andere deelnemers/beheerders verstuurd heeft. Om een nieuw documenten naar een beheerder/deelnemer te sturen gaat u dus naar verstuurde bestanden en klikt u linksboven op Nieuw bestand versturen . Vervolgens ziet u volgend scherm.
Group collaboration platform
71
Afbeelding 57: Group collaboration - nieuw document versturen In de lijst 'Verzend naar:' kan u dus kiezen naar welke betrokken personen u het wenst te versturen, meestal zal dit de werkgroepbeheer zijn. Nadat u een document heeft gekozen en een persoon heeft geselecteerd, drukt u op de knop 'OK' en het document wordt verstuurd naar de betrokken persoon.
Group collaboration platform
72
4.4 Beheerdershandleiding 4.4.1 Informatie over het Group Collaboration platform 4.4.1.1 Wat is een group collaboration platform http://groupcollaboration.debouw.be is een group collaboration platform die het mogelijk maakt om documenten uit te wisselen tussen verschillende gebruikers om op een zo efficiënt mogelijke manier een handleiding samen te stellen. Via dit platform is het mogelijk om in verschillende werkgroepen te werken aan verschillende handleidingen. Per werkgroep is een verantwoordelijke aangesteld, de werkgroepbeheerder. Deze persoon controleert welke documenten opgenomen zullen worden in de handleiding en welke niet.
4.4.1.2 Wat is de functionaliteit van het Group Collaboration platform De functionaliteit van het Group Collaboration platform is kort samen te vatten in volgende puntjes: −
−
Documenten − Beheerders kunnen documenten publiek maken zodat iedereen ze kan zien; − Deelnemers kunnen documenten indienen ter nalezing van beheerders (dropbox). Agenda − Per werkgroep is een agenda voorzien, waar werkgroepbeheerders afspraken kunnen toevoegen, bewerken en verwijderen; − De werkgroepagenda is zichtbaar voor iedereen die lid is van de werkgroep.
4.4.1.3 Wat kan ik als beheerder? Als beheerder van een werkgroep kan je: -
Documenten in de werkgroepmap plaatsen; Agenda items toevoegen; Gebruikers toevoegen aan uw werkgroep; Gebruikers aanpassen; Nieuwe werkgroep maken.
Group collaboration platform
73
4.4.2 Werken met het Group Collaboration platform 4.4.2.1 Inloggen Open Internet Explorer en typ bovenaan in de adresbalk http://www.groupcollaboration.debouw.be in. Vervolgens komt u op de startpagina van het Group Collaboration platform terecht.
Afbeelding 58: Group collaboration - inlogscherm In de rechterbalk van de hoofdpagina kan u inloggen door middel van het opgeven van een gebruikersnaam en wachtwoord. U logt in met uw persoonlijke gebruikersnaam en wachtwoord. Na het invullen van de velden klikt u op de knop 'OK'.
Group collaboration platform
74
4.4.2.2 Mijn werkgroepen Na het inloggen komt u terecht op de pagina 'mijn werkgroepen'. Deze pagina geeft u een overzicht van alle werkgroepen waarvoor u bent ingeschreven. Het icoontje dat voor de werkgroep staat geeft aan als u beheerder bent van deze groep of niet.
Afbeelding 59: Group collaboration - mijn werkgroepen Bij dit overzicht klikt u op de gewenste werkgroep om naar de hoofdpagina van de werkgroep te gaan.
Group collaboration platform
75
4.4.2.3 Overzicht werkgroep Bij dit onderdeel leggen we u uit hoe als beheerder de verschillende onderdelen van een werkgroep in elkaar zitten.
Afbeelding 60: Group collaboration - overzicht werkgroep Zoals u kan zien is het overzicht van een werkgroep opgedeeld in verschillende onderdelen: −
−
Opstellen − Werkgroepomschrijving; − Documenten; − Leerpad (n.v.t.); − Links (n.v.t.); − Oefeningen (n.v.t.). Interactie − Agenda; − Aankondigingen (n.v.t.); − Forums (n.v.t.); − Dropbox; − Gebruikers; − Groepen (n.v.t.); − Chat (n.v.t.); − Assignments (n.v.t.).
Group collaboration platform
76
−
Administratie − Beheer van blogs (n.v.t.); − Statistieken (n.v.t.); − Werkgroepeigenschappen; − Enquêtes (n.v.t.); − Werkgroepbeheer.
4.4.2.4 Werkgroepbeschrijving Dit onderdeel vereist niet zoveel uitleg aangezien dit onderdeel niets van functionaliteit beschikt. In dit onderdeel kunt u een uitgebreide beschrijving van de werkgroep aanmaken met de hieronder vermelde categorieën .
Afbeelding 61: Group collaboration - werkgroepbeschrijving 4.4.2.5 Documenten De hele bedoeling van dit Group Collaboration platform is het beheren van de documenten die ervoor dienen dat een handleiding voor een beroep ontstaat. Het spreekt dus voor zich dat in dit onderdeel alle documenten betreffende de werkgroep terug te vinden zijn.
Group collaboration platform
77
Afbeelding 62: Group collaboration - overzicht documenten Bovenaan ziet u verschillende acties die u kan ondernemen: − − − −
Nieuw documenten Bij voorkeur dit niet gebruiken want dit maakt enkel een html pagina aan op de website. Document uploaden Hier kunt u documenten uploaden. Nieuwe map Aanmaken van een nieuwe map in de huidige map. Opslaan Hiermee kunt u alle documenten van de huidige map opslaan in een zip bestand.
Acties op documenten: -
Bewerken ( ); Verwijderen ( );
-
Verplaatsen (
-
Zichtbaar of onzichtbaar maken (
);
Group collaboration platform
).
78
4.4.2.6 Gebruikers Het onderdeel gebruikers geeft u een lijst met alle gebruikers van deze werkgroep.
Afbeelding 63: Group collaboration - overzicht gebruikers Zoals u kunt zien in dit overzicht ziet u bovenaan volgende acties die u kan ondernemen: − − − −
−
Exporteer als CSV-bestand Hiermee exporteert u de gebruikerslijst van deze werkgroep als een CSV-bestand. Schrijf gebruikers in in uw werkgroep; Schrijf gebruikers in deze werkgroep in als groepsbeheerder; Groepenbeheer (n.v.t.); Indien u wilt groepen maken in de gebruikerslijst van de werkgroep, vb. de groep grafische, vakspecialisten, leerkrachten& Klassen (n.v.t.).
Per gebruiker zijn volgende acties mogelijk: −
Gedetailleerdere informatie betreffende deze gebruiker (
−
Statistieken van deze gebruiker bekijken (
−
Gebruiker bewerken (
−
Gebruiker uit de werkgroep verwijderen (
);
);
); ).
Gebruikers toevoegen aan werkgroep Bij het overzicht van alle gebruikers klikt op 'Schrijf gebruikers in in uw werkgroep'. Hierna komt u op volgende pagina terecht.
Group collaboration platform
79
Afbeelding 64: Group collaboration - gebruikers toevoegen aan werkgroep In dit overzicht ziet u alle gebruikers, aanwezig op het Group Collaboration platform, die nog niet in uw werkgroep zijn ingeschreven. U vinkt links de gebruikers aan die u wenst toe te voegen aan uw werkgroep en klik op de knop 'OK'.
Gebruiker bewerken U kan een gebruiker een rol geven en/of werkgroepbeheerder maken bij dit onderdeel.
Afbeelding 65: Group collaboration - gebruiker bewerken Indien u de gebruiker werkgroepbeheerder wenst te maken vinkt u het vakje aan ter hoogte van werkgroepbeheerder en klik op de knop 'Ok'.
Group collaboration platform
80
4.4.2.7 Agenda Per werkgroep is een agenda met alles betreffende de afspraken van deze werkgroep. Hier kunt u alle geplande vergadering zien betreffende de werkgroep.
Afbeelding 66: Group collaboration - overzicht agenda Als beheerder kunt u agenda-items toevoegen en bewerken.
Agenda-item toevoegen Om een agenda-item toe te voegen klinkt u op de knop volgende pagina terecht.
Group collaboration platform
. Hierna komt u op
81
Afbeelding 67: Group collaboration - agenda-item toevoegen Let op: bovenaan de pagina ziet u staan 'Wijzig de lijst van ontvangers'. Standaard is het agenda-item zichtbaar voor iedereen, maar indien u dit zichtbaar wenst te maken voor enkel bepaalde personen van de werkgroep klikt u op de link 'Wijzig de lijst van ontvangers'. Dan ziet u volgend scherm.
Afbeelding 68: Group collaboration - agenda - lijst van ontvangers Vervolgens voegt u het agenda-item toe door onderaan de pagina op 'OK' te klikken.
4.4.2.8 Dropbox De dropbox is de enige manier waarop de deelnemers documenten naar u kunnen zenden zodat u deze kan downloaden om te corrigeren of bij de documenten lijst te plaatsen.
Group collaboration platform
82
Afbeelding 69: Group collaboration - overzicht dropbox - ontvangen bestanden In afbeelding 69 ziet u een overzicht van alle bestanden die deelnemers van de werkgroep naar u gezonden hebben. Door op het diskette icoontje te klikken kunt u het bestand downloaden. Het is ook mogelijk om op het desbetreffende document feedback te geven naar de zender.
Afbeelding 70: Group collaboration - overzicht dropbox - verstuurde bestanden In afbeelding 70 ziet u een overzicht van alle bestanden die u al binnen deze werkgroep naar andere deelnemers/beheerders verstuurd heeft. Om een nieuw documenten naar een beheerder/deelnemer te sturen gaat u dus naar verstuurde bestanden en klikt u linksboven op 'Nieuw bestand versturen'. Vervolgens ziet u volgend scherm.
Group collaboration platform
83
Afbeelding 71: Group collaboration - overzicht dropbox - nieuw document versturen In de lijst 'Verzend naar:' kan u dus kiezen naar welke betrokken personen u het document wenst te versturen. Nadat u een document heeft gekozen en een persoon heeft geselecteerd, drukt u op de knop 'OK' en het document wordt verstuurd naar de betrokken persoon.
Group collaboration platform
84
4.5 De ontwikkelomgeving 4.5.1 Gebruikte hardware Voor de ontwikkeling van dit project kreeg ik volgende hardware ter beschikking: −
Computer: Dell optiplex 740 DT
−
HP iPAQ hx 2100
4.5.2 Gebruikte software −
Microsoft Windows XP Professional;
−
Microsoft Office 2003;
−
XAMMP (Apache, MySQL, PHP);
−
Scite.
Group collaboration platform
85
4.6 Besluit Meer en meer worden projecten waar meerdere mensen, verspreid over verschillende locaties, aan samenwerken opgestart. Hierbij komt een group collaboration platform zeker aan te pas. De opdracht was zeker en vast een zeer leerrijk project. Het Dokeos platform is zeer krachtig open-source platform die zich spijtig genoeg niet genoeg toespitst op de commerciële wereld. Het Dokeos platform spitst zich namelijk enkel toe naar onderwijsinstellingen. Indien het Dokeos platform zich meer zou openstellen naar de commerciële wereld denk ik dat dit een zeer grote doorbraak zou kennen op het gebied van een group collaboration platform.
Group collaboration platform
86
5 Helpdesk Tijdens de stage werd mij ook gevraagd om hier en daar wat helpdesk taken uit te voeren, om zo ook wat de feeling van het onderhoud van de informatica van een bedrijf te ervaren. Hieronder een opsomming van enkele helpdesk taken: − − − −
Maken van een globaal logon script: Automatische handtekening in outlook; Invoeren van users uit de AD in mantis; ...
5.1 Globaal logon script Er werd gevraagd om een globaal logon script te maken voor alle users van het FVB/FFC. Zodat er maar 1 logon script wordt gebruikt voor alle users. Natuurlijk moest dit script zodanig gemaakt zijn dat makkelijk een aanpassing kan gebeuren op groep en user niveau. Ook moet er rekening gehouden worden met het feit dat er verschillende regio's zijn. Zie bijlage voor de code van het script.
5.2 Automatische handtekening in outlook Iedereen maakt zijn eigen handtekening aan in outlook, natuurlijk zou dit veel mooier en professioneler zijn indien dit een globale handtekening is, gemaakt naar de gebruikte huisstijl. Zie bijlage voor de code van het script.
5.3 Invoeren van users uit de Active Directory in mantis Mantis een open-source platform dat gebruikt wordt om bugs door de geven. Een soort helpdesk systeem als het ware. Een systeem waar users hun bug, probleem, invullen en dan kan de dienst informatica dit doorverwijzen naar de betrokken persoon en deze kan daar dan de verder opvolging voor verzorgen. Sinds de fusie van de informatica afdelingen van de drie fondsen voor de bouw (NAVB, FSE/FBZ en FVB/FFC) moeten de gebruikers van het NAVB en FSE/FBZ hier ook in aangemaakt worden. Aangezien dit gaat over iets meer dan 200 gebruikers is dit nogal veel werk om dit manueel toe te voegen. Er werd dus gevraagd of een manier bestaat om de users uit de active directory te halen en zo via sql statements in de database van mantis te plaatsen. De oplossing was zeer eenvoudig. Er werd gebruik gemaakt van het programma 'LDAP exporter'. Een zeer handige tool om zo users uit de active directory te halen en hierop een filter, sortering toe te passen en zo de lijst in Excel weergeven. Eenmaal in Excel is het zeer eenvoudig om hier een SQL statement van de maken.
Helpdesk
87
6 Kritische reflectie 6.1 Business Intelligence voor migratie SQL servers Bij de aanvang van het business intelligence - project is geopteerd om bij voorkeur open-source software te gebruiken. Op vlak van business intelligence zijn er verschillende mogelijkheden en oplossingen. Er bestaan zowel commerciële als open source toepassingen. In aankoop en op gebied van licenties is open source goedkoper. Maar is open source wel altijd een goede keuze? Men dient rekening te houden met een aantal punten wanneer men naar open-source toepassingen gaat zoeken.
6.1.1 Open-source Bij het overstappen naar een open-source toepassing moet men toch eerst enkele vragen stellen: – – – – –
Is er voldoende ondersteuning in de community die de software ontwikkelt?; Is de software voldoende stabiel om in productie gezet te worden?; Gebruiksvriendelijkheid?; Is het gebruik voldoende gedocumenteerd?; TCO?.
Wanneer men wil overstappen naar een open-source toepassing moet men zeker rekening houden met het feit of er voldoende ondersteuning is in de community. Indien amper een handvol programmeurs werkt aan de ontwikkeling is de toekomst van de software niet bepaald gegarandeerd. Wat indien er nog bugs zitten in de software? Indien er een gemotiveerde en georganiseerde community het project drijft vormt dit meestal geen probleem en worden bugs redelijk snel opgelost. Is de software al voldoende getest om in productie genomen te worden? Het gebeurt veelal dat de software al te vinden is maar deze nog in de kinderschoenen staat. Hierbij is het zeker niet aan te raden om deze dan te gebruiken. Open-source software is gemaakt door programmeurs en die hebben een andere visie op de software als de eindgebruiker. Dus kan het vaak zo zijn dat een open-source toepassing minder gebruiksvriendelijk is als een commerciële toepassing. Zeker moet men rekening houden met de TCO (Total Cost of Ownership). Je moet inderdaad geen licenties betalen voor de software, maar dit wil daarom niet zeggen dat je er daar dan ook geen kosten aan hebt. Het werk om de uitbreidingen te maken en de opleiding die je er dan meestal moet insteken komt vaak duurder uit dan een commerciële toepassing.
Kritische reflectie
88
6.2 Edutec Het project van Edutec was een zeer leerrijk project. Het project verliep van het toepassen van data migratie van de backoffice naar een frontoffice tot het programmeren en onderhouden van de frontoffice. Als frontoffice is gekozen voor het alom bekende Drupal platform. Deze keuze lag al vast voor het begin van de stage. Na terugblik op die keuze, kan ik niet komen op een betere keuze van platform voor deze opdracht. Na grondig testen en leren omgaan met het Drupal platform heb ik de kracht van het Drupal platform ontdekt. In het begin was ik eerder wat sceptisch over het Drupal platform. Dit kwam mede door het feit dat ik vroeger nooit echt een goede ervaring met een cms systeem heb gekend. In het derde semester kwamen we even in aanraking met een CMS systeem, exponent cms. Maar op dat moment was het nog geen stabiel CMS systeem met vele uitbreidingsmogelijkheden. Maar al snel bleek dat het Drupal CMS een ideale oplossing is voor een eenvoudig te onderhouden website met veel mogelijkheden voor uitbreiding. Bovendien is het een open-source platform en gratis in gebruik. Als server om het Drupal platform te hosten is gekozen voor een Windows 2000 server met IIS. Niet bepaald de aangeraden configuratie voor een Drupal platform. De aangeraden configuratie om een Drupal platform op te hosten is een LAMP configuratie. Vanwege het feit dat het Drupal platform geschreven is in PHP en MySQL, twee open-source toepassingen die, in eerste instantie, gemaakt zijn om op een Unix bases systeem te draaien. Ook staat op de website van Drupal dat een aangeraden configuratie een LAMP configuratie is. Het voorstel om een LAMP server te installeren en configureren werd verworpen, wegens de geringe kennis binnenin de ICT afdeling van Unix based systemen.
6.2.1 Inschrijvingen Zoals eerder vermeld in het project van Edutec is het dus mogelijk om inschrijvingen voor een opleiding via de website te registreren. De inschrijvingen via de website zijn echter enkel zichtbaar op de website. Er is dus als het ware geen direct link terug naar de backoffice om de inschrijvingen daar te registreren. Concreet, als een inschrijving via de website gebeurt voert Edutec, na goedkeuring, deze inschrijving in de backoffice in. Tijdens de stage is dit probleem besproken, maar Edutec vond het echter niet nodig om een direct link terug naar de backoffice te leggen. Zodat de controle door een Edutec medewerker altijd zal plaatsvinden. Ook zou dit een aanpassing betekenen in de backoffice. De backoffice is echter gemaakt door een extern ICT bedrijf, wat dus een extra kost zou betekenen indien met dit wenst. Indien dit echter wel nodig zou geweest zijn, kon dit probleem zeer eenvoudig met het Pentaho framework opgelost worden. Een data migratie opzetten tussen de databaseserver van de webapplicatie en de databaseserver van de backoffice zodat de inschrijvingen automatisch in een tijdelijke inschrijvingstabel komen in de backoffice. Hierna kan de Edutec medewerker dan in de webapplicatie de gewenste inschrijving goedkeuren en zo deze dan verwerken in de backoffice.
Kritische reflectie
89
6.2.2 Data migratie De data synchronisatie die is opgezet voor dit project speelt een zeer grote rol in de business van Edutec. Meer en meer eist de klant een online interface zodat deze alle bedrijfsgegevens kan raadplegen. Dit is uiteindelijk een win win situatie voor zowel het bedrijf al de klant. Vooral de kost om de klant te informeren over hun bedrijfsgegevens vermindert aanzienlijk. Ook voor de klant is dit zeer handig omdat deze dan niet meer moet bellen, e-mail of brief moet sturen om gegevens te weten te komen. Neem nu het voorbeeld van de inschrijvingen voor Edutec. Nu de inschrijvingen via de website gebeuren betekent dit minder werk voor de Edutec medewerkers. Alles gebeurt automatisch, geen telefoonkosten, lange gesprekken met de klant om hun inschrijving te bevestigen... En uit het standpunt van de klant bekeken is dit ook een zeer groot voordeel. De klant kan nu zelf de inschrijving invoeren en versturen.
Kritische reflectie
90
7 Goedkeuring eindwerk
Gelezen en goedgekeurd
Stagementor
Goedkeuring eindwerk
Stagebegeleider
91
8 Bronnen −
Pro Drupal development
−
http://www.drupal.org
−
http://www.dokeos.org
−
http://www.google.be
Bronnen
John K, Van Dyk
92
9 Bijlagen 9.1 Globaal logon script '|=======================================| '| VBScript:
| '| Author: Maxim Delplace | '| Contact Info: [email protected] | '| Version: 0.2 | '| Date: 11/12/2007 | '| Description: Logon script FVB/FFC | '|=======================================| 'On Error Resume Next '======================================= ' VARIABLES '======================================= dim objShell, objNetwork set objShell = WScript.CreateObject("WScript.Shell") set objNetwork = WScript.CreateObject("WScript.Network") 'Const variables groups Const GROUP_ICT = "cn=rg_fvbffc_informatica" Const GROUP_ANTWERPEN = "cn=rg_fvbffc_antwerpen" Const GROUP_BOEKHOUDING = "cn=rg_fvbffc_boekhouding" Const GROUP_VLBRABANT = "cn=rg_fvbffc_bru_vl_brabant" Const GROUP_ADMIN = "cn=rg_fvbffc_cao_cct" Const GROUP_CONSTRUTEC = "cn=rg_fvbffc_construtec" Const GROUP_DIENSTHOOFDEN = "cn=rg_fvbffc_diensthoofden" Const GROUP_DIRECTIE = "cn=rg_fvbffc_directie" Const GROUP_DOCU = "cn=rg_fvbffc_docu" Const GROUP_EDUTEC = "cn=rg_fvbffc_edutec" Const GROUP_GENT = "cn=rg_fvbffc_gent" Const GROUP_HASSELT = "cn=rg_fvbffc_hasselt" Const GROUP_KORTRIJK = "cn=rg_fvbffc_kortrijk" Const GROUP_LIEGE = "cn=rg_fvbffc_liege" Const GROUP_LOGISTIEK = "cn=rg_fvbffc_logist" Const GROUP_MANAGER_FR = "cn=rg_fvbffc_manager_fr" Const GROUP_MANAGER_NL = "cn=rg_fvbffc_manager_nl" Const GROUP_MECA = "cn=rg_fvbffc_meca" Const GROUP_MONS = "cn=rg_fvbffc_mons" Const GROUP_NAMUR = "cn=rg_fvbffc_namur" Const GROUP_HRM = "cn=rg_fvbffc_personeel_admin" Const GROUP_SECRETARIAAT = "cn=rg_fvbffc_secret" Const GROUP_STUDIE = "cn=rg_fvbffc_studie" 'Const variables regions Const REGION_CONSTRUTEC = "172.21.137.10" Const REGION_ANTWERPEN = "172.21.130.10" Const REGION_KORTRIJK = "172.21.133.10" Const REGION_MONS = "172.21.135.10" Const REGION_GENT = "172.21.132.10" Bijlagen
93
Const REGION_HASSELT Const REGION_LUIK Const REGION_NAMEN Const REGION_BRUSSEL 'Const variables location Const PG_ANTWERPEN_3 Const PG_ANTWERPEN_4 Const PG_BRUSSEL_0 Const PG_BRUSSEL_4 Const PG_BRUSSEL_5 Const PG_BRUSSEL_6
= "172.21.131.10" = "172.21.134.10" = "172.21.136.10" = "192.168.100.80" = "pg_fvbffc_antwerpen_4_verdiep" = "pg_fvbffc_antwerpen_4_verdiep" = "pg_fvbffc_brussel_0_verdiep" = "pg_fvbffc_brussel_4_verdiep" = "pg_fvbffc_brussel_5_verdiep" = "pg_fvbffc_brussel_6_verdiep"
'======================================= ' MAIN '======================================= 'Get user info from AD Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf)) 'Get DHCP server computer strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration") strDHCPServer = "leeg" For Each objItem in colItems If strDHCPServer = "leeg" Then strDHCPServer = objItem.DHCPServer End If Next 'First of all remove all mappings removeAllMappings() createMappingsDefault() 'Create mappings depending on the groups the user is in If strGroups <> "" Then If instr(strGroups,GROUP_ICT) Then 'Wscript.Echo "case ict" createMappingsICT() End If If instr(strGroups,GROUP_ANTWERPEN) > 0 Then 'Wscript.Echo "case antwerpen" createMappingsAntwerpen() End If If instr(strGroups,GROUP_BOEKHOUDING) > 0 Then createMappingsBoekhouding() End If If instr(strGroups,GROUP_VLBRABANT) > 0 Then createMappingsVlBrabant() End If Bijlagen
94
If instr(strGroups,GROUP_ADMIN) > 0 Then createMappingsAdministration() End If If instr(strGroups,GROUP_CONSTRUTEC) > 0 Then createMappingsConstrutec() End If If instr(strGroups,GROUP_DIENSTHOOFDEN) > 0 Then createMappingsDiensthoofden() End If If instr(strGroups,GROUP_DIRECTIE) > 0 Then createMappingsDirectie() End If If instr(strGroups,GROUP_DOCU) > 0 Then createMappingsDocu() End If If instr(strGroups,GROUP_EDUTEC) > 0 Then createMappingsEdutec() End If If instr(strGroups,GROUP_GENT) > 0 Then createMappingsGent() End If If instr(strGroups,GROUP_HASSELT) > 0 Then createMappingsHasselt() End If If instr(strGroups,GROUP_KORTRIJK) > 0 Then createMappingsKortrijk() End If If instr(strGroups,GROUP_LIEGE) > 0 Then createMappingsLiege() End If If instr(strGroups,GROUP_LOGISTIEK) > 0 Then createMappingsLogistiek() End If If instr(strGroups,GROUP_MANAGER_FR) > 0 Then createMappingsManagerFr() End If If instr(strGroups,GROUP_MANAGER_NL) > 0 Then createMappingsManagerNl() End If If instr(strGroups,GROUP_MECA) > 0 Then createMappingsMeca() End If If instr(strGroups,GROUP_MONS) > 0 Then createMappingsMons() End If If instr(strGroups,GROUP_NAMUR) > 0 Then createMappingsNamur() End If If instr(strGroups,GROUP_HRM) > 0 Then createMappingsHRM() End If If instr(strGroups,GROUP_SECRETARIAAT) > 0 Then Bijlagen
95
createMappingsSecretariaat() End If If instr(strGroups,GROUP_STUDIE) > 0 Then createMappingsStudie() End If End If 'Remove all printers removeAllPrinters() 'Create printers depending on the location of the computer the user is loggin on to Select Case strDHCPServer Case REGION_BRUSSEL createPrintersBrussel() Case REGION_CONSTRUTEC createPrintersConstrutec() Case REGION_ANTWERPEN createPrintersAntwerpen() Case REGION_KORTRIJK createPrintersKortrijk() Case REGION_MONS createPrintersMons() Case REGION_GENT createPrintersGent() Case REGION_HASSELT createPrintersHasselt() Case REGION_LUIK createPrintersLuik() Case REGION_NAMEN createPrintersNamen() End Select '======================================= ' FUNCTIONS MAPPINGS '======================================= 'Remove all mappings Sub removeAllMappings() Set oDrives = objNetwork.EnumNetworkDrives For i = 0 to oDrives.Count - 1 Step 2 If oDrives.Item(i) <> "" Then objNetwork.RemoveNetworkDrive oDrives.Item(i) End If Next End Sub 'Create mappings for ICT users Sub createMappingsICT() objNetwork.MapNetworkDrive "S:", "\\infonlxp04\test4" End Sub 'Create mapping for users Antwerp Sub createMappingsAntwerpen() objNetwork.MapNetworkDrive "I:", "\\FVB-ANTWERPEN\REGIO" End Sub 'Create mapping for users Boekhouding Bijlagen
96
Sub createMappingsBoekhouding() objNetwork.MapNetworkDrive "X:", "\\VFILE01\BOEKHOUDING" End Sub 'Create mapping for users Vlaams Brabant Sub createMappingsVlBrabant() objNetwork.MapNetworkDrive "U:", "\\VFILE01\VLBRA" End Sub 'Create mapping for users Administration Sub createMappingsAdministration() objNetwork.MapNetworkDrive "T:", "\\infonlxp04\test4" End Sub 'Create mapping for users Construtec Sub createMappingsConstrutec() objNetwork.MapNetworkDrive "P:", "\\VFILE01\CONSTRUTEC" End Sub 'Create mapping for users Diensthoofden Sub createMappingsDiensthoofden() objNetwork.MapNetworkDrive "T:", "\\infonlxp04\test4" End Sub 'Create mapping for users Directie Sub createMappingsDirectie() objNetwork.MapNetworkDrive "S:", "\\VFILE01\DIRECT" objNetwork.MapNetworkDrive "R:", "\\VFILE01\SECRET" End Sub 'Create mapping for users Docu Sub createMappingsDocu() objNetwork.MapNetworkDrive "T:", "\\infonlxp04\test4" End Sub 'Create mapping for users Edutec Sub createMappingsEdutec() objNetwork.MapNetworkDrive "T:", "\\VFILE01\EDUTECPPW" End Sub 'Create mapping for users Gent Sub createMappingsGent() objNetwork.MapNetworkDrive "G:", "\\FVB-GENT\REGIO" End Sub 'Create mapping for users Hasselt Sub createMappingsHasselt() objNetwork.MapNetworkDrive "H:", "\\FVB-LIMBURG\REGIO4" End Sub 'Create mapping for users Kortrijk Sub createMappingsKortrijk() objNetwork.MapNetworkDrive "K:", "\\FVB-KORTRIJK\REGIO" End Sub 'Create mapping for users Liege Sub createMappingsLiege() objNetwork.MapNetworkDrive "L:", "\\FVB-LIEGE\REGIO" End Sub 'Create mapping for users Logistiek Sub createMappingsLogistiek() objNetwork.MapNetworkDrive "Z:", "\\VFILE01\LOGIST" End Sub Bijlagen
97
'Create mapping for users Managers Fr Sub createMappingsManagerFr() objNetwork.MapNetworkDrive "T:", "\\infonlxp04\test4" End Sub 'Create mapping for users Managers Nl Sub createMappingsManagerNl() objNetwork.MapNetworkDrive "T:", "\\VFILE01\LOGIST" End Sub 'Create mapping for users Meca Sub createMappingsMeca() objNetwork.MapNetworkDrive "O:", "\\VFILE01\MECA" End Sub 'Create mapping for users Mons Sub createMappingsMons() objNetwork.MapNetworkDrive "M:", "\\FVB-MONS\REGIO" End Sub 'Create mapping for users Namur Sub createMappingsNamur() objNetwork.MapNetworkDrive "J:", "\\FVB-NAMUR\REGIO" End Sub 'Create mapping for users HRM Sub createMappingsHRM() 'objNetwork.MapNetworkDrive "X:", "\\VFILE01\BOEKHOUDING" End Sub 'Create mapping for users Secretariaat Sub createMappingsSecretariaat() objNetwork.MapNetworkDrive "R:", "\\VFILE01\SECRET" End Sub 'Create mapping for users Studie Sub createMappingsStudie() objNetwork.MapNetworkDrive "Q:", "\\VFILE01\STUDIE" End Sub 'Create default mappings Sub createMappingsDefault() objNetwork.MapNetworkDrive "N:", "\\VFILE01\FVBFFC-CENTCLASS" objNetwork.MapNetworkDrive "T:", "\\VFILE01\FVBFFC-TRANSIT" End Sub '======================================= ' FUNCTIONS PRINTERS '======================================= 'remove all printers Sub removeAllPrinters() Set oPrinters = objNetwork.EnumPrinterConnections For i = 0 to oPrinters.Count - 1 Step 2 If instr(oPrinters.Item(i+1), "\\") > 0 Then objNetwork.RemovePrinterConnection oPrinters.Item(i+1) End If Next End Sub 'Create printers for ICT users Bijlagen
98
Sub createPrintersICT() objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR2870_PS3_Biblio" End Sub 'Create printers for region Antwerp Sub createPrintersAntwerpen() Wscript.Echo "create printers antwerpen" objNetwork.AddWindowsPrinterConnection "\\fvb-antwerpen\CANONANT" objNetwork.AddWindowsPrinterConnection "\\fvb-antwerpen\DELLANTw" objNetwork.AddWindowsPrinterConnection "\\fvb-antwerpen\HP5N_ANT" objNetwork.AddWindowsPrinterConnection "\\fvb-antwerpen\dell1720" Select Case True Case instr(strGroups,PG_ANTWERPEN_3) > 0 objNetwork.SetDefaultPrinter "\\fvb-antwerpen\CANONANT" Case instr(strGroups,PG_ANTWERPEN_4) > 0 objNetwork.SetDefaultPrinter "\\fvb-antwerpen\CANONANT" End Select End Sub 'Create printers for region Gent Sub createPrintersGent() objNetwork.AddWindowsPrinterConnection "\\fvb-gent\CANONGEN" End Sub 'Create printers for region Kortrijk Sub createPrintersKortrijk() objNetwork.AddWindowsPrinterConnection "\\fvb-kortrijk\dellKORT" objNetwork.AddWindowsPrinterConnection "\\fvb-kortrijk\canonkor" End Sub 'Create printers for region Mons Sub createPrintersMons() objNetwork.AddWindowsPrinterConnection "\\fvb-mons\CANONMON" objNetwork.AddWindowsPrinterConnection "\\fvb-mons\DELLMONS" End Sub 'Create printers for region Hasselt Sub createPrintersHasselt() objNetwork.AddWindowsPrinterConnection "\\fvb-limburg\CANONLIM" objNetwork.AddWindowsPrinterConnection "\\fvb-limburg\DELLHASS" End Sub 'Create printers for region Luik Sub createPrintersLuik() objNetwork.AddWindowsPrinterConnection "\\fvb-liege\CANONLIE" objNetwork.AddWindowsPrinterConnection "\\fvb-namur\CANONNAM" End Sub 'Create printers for region Namen Sub createPrintersNamen() objNetwork.AddWindowsPrinterConnection "\\fvb-namur\CANONNAM" objNetwork.AddWindowsPrinterConnection "\\fvb-namur\DELLNAMU" End Sub 'Create printers for region Brussel Sub createPrintersBrussel() objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR2870_FVB_Biblio" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR2870_PS3_Biblio" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR7105_Drukkerij" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_FVB_4e" Bijlagen
99
objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_FVB_5e" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_FVB_6e" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_FVB_Druk" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_PS3_FVB_4e" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_PS3_FVB_5e" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_PS3_FVB_6e" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iR8070_PS3_FVB_Druk" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iRC4580_FVB_Druk" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iRC4580_FVB_Druk2" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iRC4580_PS3_FVB_Druk" objNetwork.AddWindowsPrinterConnection "\\SDC01\Canon_iRC4580_PS3_FVB_Druk2" objNetwork.AddWindowsPrinterConnection "\\SDC01\Dell_5110_Edutec" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELL_JG" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELL_JG-PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\Delldir" objNetwork.AddWindowsPrinterConnection "\\SDC01\Delldir-PS3" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB73" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB73PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB74" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB74PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB75" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB75PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB76" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB76PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB77" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB77PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB78" objNetwork.AddWindowsPrinterConnection "\\SDC01\DELLFVB78PS" objNetwork.AddWindowsPrinterConnection "\\SDC01\HP4000N_56" objNetwork.AddWindowsPrinterConnection "\\SDC01\HP4050N_bru" objNetwork.AddWindowsPrinterConnection "\\SDC01\HP4050TN_52" objNetwork.AddWindowsPrinterConnection "\\SDC01\HP5N_Studie" objNetwork.AddWindowsPrinterConnection "\\SDC01\HP_2100_F" objNetwork.AddWindowsPrinterConnection "\\SDC01\HP_Laserjet4050_Dactylo" objNetwork.AddWindowsPrinterConnection "\\SDC01\Kyo_Edu1" objNetwork.AddWindowsPrinterConnection "\\SDC01\Kyo_Edu_lade2" objNetwork.AddWindowsPrinterConnection "\\SDC01\Kyo_meca" Select Case True Case instr(strGroups,PG_BRUSSEL_0) > 0 objNetwork.SetDefaultPrinter "\\SDC01\Canon_iR8070_FVB_Druk" Case instr(strGroups,PG_BRUSSEL_4) > 0 objNetwork.SetDefaultPrinter "\\SDC01\Canon_iR8070_FVB_4e" Case instr(strGroups,PG_BRUSSEL_5) > 0 objNetwork.SetDefaultPrinter "\\SDC01\Canon_iR8070_FVB_5e" Case instr(strGroups,PG_BRUSSEL_6) > 0 objNetwork.SetDefaultPrinter "\\SDC01\Canon_iR8070_FVB_6e" End Select End Sub 'Create printers for region Construtec Sub createPrintersConstrutec() objNetwork.AddWindowsPrinterConnection "\\fvb-construtec\HPCONSTR" End Sub Bijlagen
100
9.2 Automatische handtekening in Outlook '==================== ' ' VBScript: ' AUTHOR: Maxim Delplace ' Contact Info: [email protected] ' Date: 08/12/2007 ' '==================== 'Option Explicit On Error Resume Next Dim qQuery, objSysInfo, objuser Dim FullName, EMail, Title, PhoneNumber, MobileNumber, FaxNumber, OfficeLocation, Department Dim web_address, FolderLocation, HTMFileString, StreetAddress, Town, State, Company Dim ZipCode, PostOfficeBox, UserDataPath Set objSysInfo = CreateObject("ADSystemInfo") objSysInfo.RefreshSchemaCache qQuery = "LDAP://" & objSysInfo.Username Set objuser = GetObject(qQuery) FullName = objuser.displayname EMail = objuser.mail Company = objuser.Company Title = objuser.title PhoneNumber = objuser.TelephoneNumber FaxNumber = objuser.FaxNumber OfficeLocation = objuser.physicalDeliveryOfficeName StreetAddress = objuser.streetaddress PostofficeBox = objuser.postofficebox Department = objUser.Department ZipCode = objuser.postalcode Town = objuser.l MobileNumber = objuser.TelephoneMobile strName = objUser.FullName strFirstName = InputBox("Voornaam:","",objuser.givenName) strLastName = InputBox("Achternaam:","",objuser.sn) strTitle = InputBox("Functie:","",objUser.Title) strDepartment = objUser.Department strCompany = objUser.Company strPhone = InputBox("Tél (vb: (02)209.6x.xx):","",objUser.telephoneNumber) strFax = Inputbox("Fax (vb: (02)209.6x.xx):","","(02)209.6x.xx") strMobilePhone = InputBox("GSM (vb: 0123/12.34.56):","",objUser.mobile) strMail = objuser.mail strLocation = objuser.physicalDeliveryOfficeName strWeb = objuser.wWWHomePage strLogo = "\\vfile01\Scripts\Outlook\Signatures FSEFBZ\fbz.jpg"
Bijlagen
101
Dim objShell, RegKey, RegKeyParm Set objShell = CreateObject("WScript.Shell") RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\General" RegKey = RegKey & "\Signatures" objShell.RegWrite RegKey , "Handtekeningen" UserDataPath = ObjShell.ExpandEnvironmentStrings("%appdata%") FolderLocation = UserDataPath &"\Microsoft\Handtekeningen\" HTMFileString = FolderLocation & "L1-Handtekening.htm" objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\MailSettings\NewSignature" , "L1Handtekening" objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\MailSettings\ReplySignature" , "L1Handtekening" objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail\EnableLogging" , "0", "REG_DWORD" Dim objFS1 Set objFS1 = CreateObject("Scripting.FileSystemObject") If (objFS1.FolderExists(FolderLocation)) Then Else Call objFS1.CreateFolder(FolderLocation) End if Dim objFSO Dim objFile,afile Dim aQuote aQuote = chr(34)
Set objFSO = CreateObject("Scripting.FileSystemObject") Set AFile = objFSO.GetFile(Folderlocation&"L1-Handtekening.rtf") aFile.Delete Set AFile = objFSO.GetFile(Folderlocation&"L1-Handtekening.txt") aFile.Delete Set objFile = objFSO.CreateTextFile(HTMFileString,True) objFile.Close Set objFile = objFSO.OpenTextFile(HTMFileString, 2) objfile.write "" & vbCrLf objfile.write "<TITLE>Microsoft Office Outlook Signature" & vbCrLf objfile.write "<META http-equiv=Content-Type content=" & aQuote & "text/html; charset=windows-1252" & aQuote & ">" & vbCrLf objfile.write "<META content=" & aQuote & "MSHTML 6.00.3790.186" & aQuote & " name=GENERATOR>" & vbCrLf objfile.write "
" objfile.write "" Bijlagen
102
objfile.write "" objfile.write "
" objfile.write "Koningsstraat, 132 bus 1, 1000 Brussel Rue Royale, 132 boîte 1, 1000 Bruxelles" objfile.write " | " objfile.write " | | | " objfile.write ""& strFirstName &" "& strLastName &"" objfile.write " " objfile.write ""& strTitle & "" objfile.write " " objfile.write "Tel: " & strPhone & " " & "Fax: " & strFax & " " & "GSM: " & strMobilePhone & "" objfile.write " | " objfile.write "
" objfile.write "
" objfile.write "" & vbCrLf & vbCrLf & vbCrLf objFile.Close Call SetDefaultSignature("L1-Handtekening","") Sub SetDefaultSignature(strSigName, strProfile) Const HKEY_CURRENT_USER = &H80000001 strComputer = "." If Not IsOutlookRunning Then Set objreg = GetObject("winmgmts:" & _ "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Windows NT\" & _ "CurrentVersion\Windows " & _ "Messaging Subsystem\Profiles\" If strProfile = "" Then objreg.GetStringValue HKEY_CURRENT_USER, _ strKeyPath, "DefaultProfile", strProfile End If myArray = StringToByteArray(strSigName, True) strKeyPath = strKeyPath & strProfile & _ "\9375CFF0413111d3B88A00104B2A6676" objreg.EnumKey HKEY_CURRENT_USER, strKeyPath, _ arrProfileKeys For Each subkey In arrProfileKeys strsubkeypath = strKeyPath & "\" & subkey objreg.SetBinaryValue HKEY_CURRENT_USER, _ strsubkeypath, "New Signature", myArray objreg.SetBinaryValue HKEY_CURRENT_USER, _ strsubkeypath, "Reply-Forward Signature", myArray Next Bijlagen
103
Else strMsg = "Please shut down Outlook before " & _ "running this script." MsgBox strMsg, vbExclamation, "SetDefaultSignature" End If End Sub Function IsOutlookRunning() strComputer = "." strQuery = "Select * from Win32_Process " & _ "Where Name = 'Outlook.exe'" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery(strQuery) For Each objProcess In colProcesses If UCase(objProcess.Name) = "OUTLOOK.EXE" Then IsOutlookRunning = True Else IsOutlookRunning = False End If Next End Function Public Function StringToByteArray _ (Data, NeedNullTerminator) Dim strAll strAll = StringToHex4(Data) If NeedNullTerminator Then strAll = strAll & "0000" End If intLen = Len(strAll) \ 2 ReDim arr(intLen - 1) For i = 1 To Len(strAll) \ 2 arr(i - 1) = CByte _ ("&H" & Mid(strAll, (2 * i) - 1, 2)) Next StringToByteArray = arr End Function Public Function StringToHex4(Data) Dim strAll For i = 1 To Len(Data) strChar = Mid(Data, i, 1) strTemp = Right("00" & Hex(AscW(strChar)), 4) strAll = strAll & Right(strTemp, 2) & Left(strTemp, 2) Next StringToHex4 = strAll End Function
Bijlagen
104