EXAMENSARBETE. Mari Nilsson och Lena Jonsson HÖGSKOLEINGENJÖRSPROGRAMMET DATATEKNIK. Institutionen i Skellefteå/Institutionen för Systemteknik



Relevanta dokument
1 Installationsinstruktioner

1 Installationsinstruktioner

Hemsideutveckling för Anjool AB

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Webbservrar, severskript & webbproduktion

Att använda ELSA. Vad behövs för att använda ELSA?. Felrapportering och support

Elsmart Användarmanual Nätanmälan för Installatörer

Instruktion. Datum (12) Coverage Dokument id Rev Status? Godkänd. Tillhör objekt -

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

TIS-Web startguide 3.6. TIS-Web Startguide

Visma Proceedo. Att logga in - Manual. Version 1.3 /

Fraktjakt manual för registrering av Transportföretag och användare

Decentraliserad administration av gästkonton vid Karlstads universitet

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Introduktion till. CDB Internet

Instruktion för Betanias Kundportal

Guide till Elektronisk Följesedel

INSTALLATIONSINSTRUKTIONER FÖR VIDA INNEHÅLL

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet

EXAMENSARBETE. Rickard Larsson HÖGSKOLEINGENJÖRSPROGRAMMET DATATEKNIK. Institutionen i Skellefteå

Elsmart Användarmanual Nätanmälan för Installatörer

Vi hjälper allt från små företag till stora koncerner att ta hand om och effektivisera de ekonomiska processerna från beställning till betalning.

Manual för din hemsida

ALEPH ver. 16 Introduktion

Kom igång med TIS-Office

Kom igång med LUPP 6.1

lokalnytt.se Manual kundadministration

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Storegate Pro Backup. Innehåll

Skapa din egen MediaWiki

Lathund Blanketthotell Komma igång

Manual Attestering av fakturor på webb

Installationsanvisningar

Användarhandledning för RSV:s Elektroniska brevlåda

Quick Start CABAS. Generella systemkrav CABAS / CAB Plan. Kommunikation. Säkerhet

AVCAD 4.0 för Windows

Twisted Scissors. Ett projekt i kursen tnm /2007. Björn Gustafsson bjogu419@student.liu.se. Mats Wedell matwe812@student.liu.

Compose Connect. Hosted Exchange

FIRSTCLASS. Innehåll:

Introduktion till MySQL

Manual Attestering av fakturor på webb

ANVÄNDAR HANDLEDNING FÖR ADVITUMS KUNDPORTAL

Visma Proceedo. Att logga in - Manual. Version Version /

Instruktioner för att installera och använda SpeedFeed. 1. Installation direkt på din dator.

Visma Proceedo Version Visma Proceedo Användarhandbok Lokala administratör Administrera

Utredningsrapport Gemensam bokningsplattform och anläggningsregister för Umeå regionen.

FDT WebbVerktyg. Copyright FDT AB Köpmangatan LULEÅ. Försäljning Support Fax

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

FLEX Personalsystem. Uppdateringsanvisning

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

DGC IT Manual Citrix Desktop - Fjärrskrivbord

Creo Customization. Lars Björs

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Användarmanual - OVK. Användarmanual OVK Version 1.5 Daterad:

Malmator Systembeskrivning Sidan 1 av

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Handbok Hogia PBM - Personal Business Manager

SIE4-läsaren En applikation utvecklad i Excel som läser SIE4 filer

Installation xvis besökssystem, Koncern

Visma Proceedo. Att logga in - Manual. Version 1.4. Version 1.4 /

LUVIT LMS Quick Guide Att använda LUVIT Reports

Installationsanvisningar

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Manual Attestering av fakturor på webb

Installationsanvisning för LUQSUS version 2.0

Aon Hewitt. Användarmanual. Risk. Reinsurance. Human Resources.

1DV411 Webbprojekt I Slutrapport

Autogiro Online för betalningsmottagare Webbtjänst för dig som erbjuder dina kunder Autogiro

Användarmanual medium

Lathund skriva reseräkning. Tur och Retur (T&R)

DOTPROJECT Manual. Projektledare och administratör har tillgång till fler funktioner och mer information än andra roller i det webbaserade systemet.

FDT Kundportal. Copyright FDT AB Köpmangatan LULEÅ. Försäljning Support Fax

Manual Utgåva 1.2. Sidan 1

Vidareutveckling av lokalbokningssystem

IT-system. BUP Användarmanual

Projekt Foreläsning VI

Examensarbeten på dataingenjörsprogrammet

Välkommen till nästa generations internetbutik! ; 1

Installationsguide, Marvin Midi Server

Användarhandbok. version sida 1 av 15

Beställning till Husfoto. Handledning

Innehåll. Förändringar i v6.0

Webbprogrammering, grundkurs 725G54

Version /10. Xerox ColorQube 9301/9302/9303 Internettjänster

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Manual för Typo3 version 4.2

Program för skrivarhantering

Räkneprogram för stomiartiklar HANDLEDNING

Åtkomst Du kommer till ditt system via en webblänk som erhålles från oss. Via denna länk ges tillgång till sökning i bibliotekets katalog.

LUVIT Utbildningsadministration Manual

Internets historia Tillämpningar

LUVIT Utbildningsadministration Manual

Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET

EXFLOW DYNAMICS NAV ELEKTRONISK FAKTURAHANTERING

Användarbeskrivning ARBETSGIVARINTYG. för Sveriges alla arbetsgivare. arbetsgivarintyg.nu. En ingång för alla användare. Innehåll. Version 1.

Användardokumentation för CuMaP-PC. Fleranvändarsystem och behörigheter

Transkript:

2002:013 HIP EXAMENSARBETE Flödesstyrt Ärendehanteringssystem Mari Nilsson och Lena Jonsson HÖGSKOLEINGENJÖRSPROGRAMMET DATATEKNIK Institutionen i Skellefteå/Institutionen för Systemteknik 2002: 013 HIP ISSN: 1404-5494 ISRN:LTU - HIP - EX -- 02/013 --SE

Sammanfattning Denna rapport beskriver vårt examensarbete som ingår som en del i Dataingenjörsprogrammet vid Luleå tekniska universitet. Uppgiften har varit att utveckla ett webbaserat och flödesstyrt ärendehanteringssystem och är utfört åt Data Ductus AB i Skellefteå. Detta system kommer att ingå som en del i företagets supportorganisation. På marknaden finns många system för detta ändamål, men dessa kräver ofta att organisationen är anpassad därefter, medan tanken med denna utveckling är att systemet skall anpassas efter organisationen och arbetssättet på företaget.

Abstract This thesis is part of a bachelor s degree in computer engineering at Luleå Technical University. The project has been to develop an application controlled by flow of events and is run on the web. It has been developed for Data Ductus AB in Skellefteå. This application will be a part of the company s support organisation. On the market there exists many systems for this purpose, but these often demand that the company s organisation is adapted to the system. The philosophy of this system is that it shall adapt to the organisation and work procedures at the company.

Innehållsförteckning 1. FÖRORD...1 2. INLEDNING...2 2.1 BAKGRUND...2 2.2 SYFTE...2 2.3 MÅL...2 2.4 INGÅNGSVÄRDEN...3 2.4 AVGRÄNSNINGAR...3 3. FÖRUTSÄTTNINGAR...4 3.1 PLATTFORM...4 3.2 PROGRAMMERINGSSPRÅK...4 4. EGET ARBETE...5 4.1 ANALYS...5 4.2 DESIGN...6 4.2.1 Databasdesign...6 4.2.2 Systemdesign...6 4.2.3 Funktioner i webbapplikationen...7 4.2.4 Webblayout...9 4.2.5 Design av överföringsprogrammet...10 4.3 IMPLEMENTATION...11 4.3.1 Informationsinsamlig...11 4.3.2 Webbapplikation...11 4.3.3 Överföringsprogram...11 4.4 TESTNING...12 4.5 ÖVERLÄMNADE...12 5. EGNA KOMMENTARER...13 5.1 PROBLEM...13 5.2 POSITIVA ERFARENHETER...13 5.3 VIDAREUTVECKLING...14 5.4 ÖVRIGA KOMMENTARER...14 6. REFERENSER...15 6.1 BÖCKER...15 6.2 ELEKTRONISKA DOKUMENT...15 6.3 RAPPORTER...16 BILAGOR 1. WEBBLAYOUT 2. FLÖDEN

1. Förord Detta examensarbete, som ingår i det treåriga dataingenjörsprogrammet vid Luleå Tekniska Universitet, har utförts vid Data Ductus i Skellefteå under perioden 20010319-20010608. Arbetet är utfört via Akademiker i företag projektet och Uminova Center AB. Det har bestått i att utveckla ett webbaserat och flödesstyrt ärendehanteringssystem för registrering, hantering och uppföljning av supportärenden. Detta system ska i första hand användas internt av företaget men det finns även efterfrågan på ett sådant system från Data Ductus kunder. Vi vill rikta ett stort tack till vår handledare Mikael Grahn och alla andra på Data Ductus för att dom tagit sig tid att hjälpa oss med de problem som vi har stött på under arbetets gång. Vi vill också tacka våra examinatorer Per-Erik Björk, Luleå och Staffan Nilsson, Skellefteå. Skellefteå, Juni 2001 Lena Jonsson Mari Nilsson 1

2. Inledning 2.1 Bakgrund Data Ductus har levererat IT-lösningar till många kunder. I och med att företagets verksamhet har vuxit har behovet av en supportorganisation ökat. Detta för att få struktur på supportärenden och för att debitera dessa korrekt. 2.2 Syfte För att underlätta för företagets kunder då det gäller support av levererade lösningar och tjänster vill företaget ha ett system för registrering, hantering och uppföljning av supportärenden. Detta system ska vara en del av en ny supportorganisation hos företaget. Det är även tänkt att kunden själv ska kunna rapportera och registrera sina supportärenden via Internet och därefter kunna följa arbetet med ärendet. 2.3 Mål Examensarbetet går ut på att bygga ett registreringssystem med flödeshantering av ärenden. Man skall kunna definiera flöden för ärenden i Microsoft Visio 2000. Sedan skall kod som implementerar flödet genereras och exporteras till registreringssystemet. Systemet ska vara flexibelt och kunna anpassas efter olika organisationers arbetsflöden. Vidare finns önskemål att systemet ska ersätta det idag komplexa systemet för uppläggning och debitering av tjänster (t.ex.: e-post, brandvägg, webb). I denna funktion ska även hantering för avtalsregistrering finnas. 2

2.4 Ingångsvärden Som ingångsvärden fick vi flödet för de olika ärendetyperna felanmälan, ändringsbegäran och förfrågan (Bilaga 2). Vidare fick vi källkoden till det befintliga systemet Keystone 1, samt ett förslag på en databas innehållande kunduppgifter och ett utkast till ett användargränssnitt för systemet. 2.4 Avgränsningar I början av arbetet upprättades en prioriteringsordning över funktioner i systemet. Viktigast var att följande implementerades: Support ska kunna registrera nya ärenden. System ska följa de definierade flödena. Påminnelse ska skickas ut automatiskt när ärenden ej är åtgärdade. Överföringsrutin för utläsning av data från ekonomisystemet. I mån av tid kommer även dessa funktioner att implementeras: Webbapplikation för kunder. Debiteringsunderlag för fakturering av tjänster. Registrering av avtal. Registrering av företagets tjänster hos kund. 1 http://keystone.whitepj.net 3

3. Förutsättningar 3.1 Plattform Arbetet kommer att utföras i Windows-miljö. Det befintliga registreringsprogrammet är skrivet i PHP. Microsoft Visio 2000 kommer att användas för att definiera flöde på ärenden och för att generera kod. All data, det vill säga såväl ärenden som flöden, skall lagras i en databas. I detta fall skall databashanteraren Microsoft SQL-7 användas. Den slutliga produkten kommer att vara webbaserad. Som serverplattform skall en Microsoft IIS server användas. 3.2 Programmeringsspråk För implementation av webbapplikationen kommer PHP att användas. PHP är officiellt en förkortning som står för PHP: Hypertext Preprocessor. PHP är en fri opensource-motsvarighet till Microsofts ASP (Active Server Pages). Det är ett skriptspråk för att enkelt skapa dynamiska webbsidor, det vill säga webbsidor som med hjälp av programkod byggs upp i samma stund som de hämtas av besökaren. PHP-koden skrivs tillsammans med HTML-koden i samma fil.(figur 1) HTTP fråga (http://webbsida) Webb server Hämtar sidan <HTML> <?PHP echo "<B>Hej!</B>";?> </HTML> PHP-koden tolkas Svar från server <HTML> <B>Hej!</B> </HTML> Klient Browsern genererar webbsidan Hej! Figur 1 Exempel: PHP, HTML 4

4. Eget arbete 4.1 Analys Efter att ha tittat på den givna applikationen beslöt vi att införa en rak struktur på vårt system vilket Keystone saknade. Enligt den ursprungliga förutsättningen skulle vi förändra Keystone så den passade företaget, men efter att ha analyserat Keystone beslöt vi att skrota idén att förändra den. Istället har vi designat en helt ny applikation. Under analysen framkom att en del uppgifter som behövdes i applikationen fanns i ekonomisystemet. Uppgifterna i ekonomisystemet får inte ändras av andra än ekonomisystemet själv. Detta ledde till att en del tabeller måste kopieras. Samtidigt måste dessa uppgifter kunna kompletteras med information. En ytterligare orsak till att skapa egna snarlika tabeller är i det fallet applikationen säljs vidare till kund, då måste den vara komplett. I analysarbetet ingick även att utreda vilket data systemet kräver för att fungera. Detta ledde till en databasdesign. Databasen består av tre olika grupper av data. Information hämtat ur ekonomisystemet. Information om uppdragen. Information som applikationen använder, t.ex. droplistor och flöden för systemet. 5

4.2 Design 4.2.1 Databasdesign Eftersom vår version av PHP inte fungerar med direkta SQL-anrop till MSSQLdatabaser, servern låstes vid anrop av till databasen, beslöts det att vi skulle använda oss av en MySqldatabas istället. Den totala designen över databasen består av tjugo tabeller, nedan återfinns en datasbasmodell över de huvudsakliga tabellerna (figur 2). Resterande tabeller innehåller uppgifter om flöden, värden till droplistor och tjänster tillhörande kunderna. Funktionen över tjänstehanteringen har vi inte implementerat, därför väljer vi att inte beskriva databasmodellen över detta. Kundnr Kontaktpersoner Kundnr Kund Kundnr Anstnr Uppdrag Kundnr Projektnr Projekt Anstnr Personal Projektnr Anstnr Projektmedlemmar Figur 2 Databasmodell 4.2.2 Systemdesign Till vår webbapplikation har vi skapat en databas (MySql) där all information kring systemet finns lagrad. Till denna databas görs en utläsning ur ekonomisystemet (access) varje natt via ett C++-program. I ekonomisystemet finns lagrat uppgifter om kunder, projekt, anställda och tjänster/artiklar.(figur 3) Applikation Överföring från Access till MySQL, samt kontrollerar och sänder mail om något ärende inte är behandlat i tid. Databasen Innehåller samtliga tabeller som applikationen använder Ekonomisystemet kunder, projekt, anställda, tjänster(artiklar) Figur 3 Design 6

4.2.3 Funktioner i webbapplikationen 4.2.3.1 Databasen För att underlätta för administratören av applikationen finns en funktion där man till viss del kan uppdatera, ta bort och lägga till poster i databasens olika tabeller. Denna funktion kan endast nås av användare med särskild behörighet. Den är implementerad på ett sätt, så att vidareutveckling är möjlig. För att administrera hela databasen finns det till MySql ett webbgränssnitt utvecklat av MySql. 4.2.3.2 Bifoga fil Till varje uppdrag finns det möjlighet att bifoga filer t.ex. mail eller loggfiler. Dessa filer lagras på servern i en katalog för kundfiler. Om det inte finns någon katalog för kunden och för det uppdrag som filen hör till, skapas dessa. När användaren senare vill titta på ett uppdrag eller arbeta med det hämtas namnen på de bifogade filerna och visas som nedladdningsbara länkar på den aktuella sidan. 4.2.3.3 LDAP-utläsning I tabellen för personaluppgifter i ekonomisystemet finns inte uppgifter om e- postadress och användarnamn. Dessa uppgifter behövs i vårt system, därför har vi gjort en funktion som läser ut denna information från LDAP 2 -servern. Administratören av systemet kan sedan välja att förändra dessa uppgifter i vårt system med det som läsningen gav. 4.2.3.4 Mail Från webbapplikationen genereras det mail automatiskt vid två tillfällen. Det första tillfället är vid registrering av ett nytt uppdrag, då går det ut ett meddelande till den person som blivit satt som ägare av uppdraget. Det andra tillfället är när man arbetar med uppdraget och väljer att skicka det vidare till någon annan person. I mailet finns information om kundnamn, rapporteringstyp och beskrivning av uppdraget. 4.2.3.5 Rapporter Denna funktion ger möjlighet att skapa rapporter med olika innehåll. Alla rapporter baseras på den information som finns lagrade om uppdragen. Det finns t.ex., möjlighet att få veta tiden nedlagd på uppdragen eller vilka ärenden en viss kund har rapporterat in till systemet. Ingångsvärdet för denna funktion är en tidsperiod, från den första i månaden till och med dagens datum. Detta går dock att ändra efter önskemål. Rapporten som sparas på servern är tabseparerad för att lätt kunna användas i Excel. För att inte ta upp onödigt mycket plats på servern har vi valt att endast spara den senaste versionen. Det finns dock möjlighet att skriva ut rapporten direkt från sidan eller att hämta den från servern. 2 Lightweight Directory Access Protocol (LDAP) 7

4.2.3.6 Länkar Enligt önskemål från företaget, skulle samtliga projekt med tillhörande information presenteras i systemet under samma bild som kunduppgifterna. Då detta innebär en stor mängd information valde vi att skapa klickbara länkar innehållande denna extra information. I bilden där kundens uppgifter presenteras finns nu en förteckning med projektnummer och rubriken för projektet som länkar. Länkarna leder till ett popup fönster där all information om projektet finns och vilka som har arbetat med projektet. 4.2.3.7 Flödet Ett av kraven för systemet var att det skulle vara möjligt att på ett smidigt sätt ändra flödet av uppdragen i systemet(bilaga 2). Vi valde att implementera de tre olika flödena i var sin tabell i databasen. Detta gör det lätt att lägga till flöden för nya rapporteringstyper. Nackdelen med detta är att det måste läggas till tabeller i databasen för nya flöden. Alternativet till denna lösning hade varit att i koden styra flödet men detta hade blivit både svårt att överblicka och komplicerat att ändra. I tabellerna för de olika flödena finns en vektor som beskriver vilket flöde varje tillstånd är tillåtet att ta. När användaren arbetar med ett uppdrag kontrolleras statusen för uppdraget och därefter hämtas vektorn med de tillåtna nästa tillstånden. Detta gör det alltså omöjligt för användaren att ändra statusen för ett uppdrag till ett felaktigt tillstånd i kedjan. 8

4.2.4 Webblayout För att det ska vara lätt att navigera genom applikationen valde vi en så rak design som möjligt. Från menyn kan man komma direkt till varje funktion. Det går också att byta funktion om man valt fel, eftersom menyn är synlig hela tiden. Se figur 4. Meny Nytt uppdrag Söksida Kundtabell Kunduppgifter och rapporteringssida Visa projekt Välj fil Lägg till kundkontakt Meddelande om uppdatering Visa uppdrag Tabell uppdrag Visar valt uppdrag Arbeta med uppdrag Tabell med egna uppdrag Arbetsbild för uppdrag Skicka fil Registrera Komplettera kunduppgift Söksida Kundtabell Kundkort med inmatningsfält Meddelande om uppdatering Uppdatera kundkontakter Söksida Kundtabell Kundbild med kontaktpersoner Registreringsbild Skapa rapport Söksida Presentation av rapport Databasunderhåll Söksida Behörighet saknas Tabell innehåll Meddelande om uppdatering Uppdatera användare Välj användare Resultat från LDAP-sökning Meddelande om uppdatering Registreringsbild Meddelande om uppdatering Figur 4 Trädstruktur över webbapplikationen För en mer detaljerad beskrivning av webblayouten, se bilaga 1. 9

4.2.5 Design av överföringsprogrammet Vid analysen konstaterades det att systemet behövde tillgång till uppgifter lagrat i företagets ekonomisystem, som t.ex. kunduppgifter, personalregister, projekt kopplat till kunden, mm. Ekonomisystemet för företaget finns lagrad i Access databaser. Webbapplikationens uppgifter lagras i MySQL. Vid design beslöts att överföringsprogrammet skulle skrivas i C++ för att kunna exekveras varje natt, vilket inte är möjligt i PHP. Överföring av uppgifter från Access till MySQL sker via ODBC-kopplingar. Uppgifterna som överförs från ekonomisystemet skall inte kunna gå att uppdatera i webbapplikationen, eftersom det inte är tillåtet att uppdatera ekonomisystemet från applikationen. 10

4.3 Implementation 4.3.1 Informationsinsamlig Eftersom vi inte tidigare arbetat så mycket med webbutveckling har vi gjort litteraturstudier under hela arbetet inom berörda områden. Vi har funnit det nödvändigt att lära oss mer om HTML, PHP, SQL,C++ och ODBC för att kunna utveckla applikationen. 4.3.2 Webbapplikation Webbapplikationen är skriven i HTML och PHP. Grundtanken var att vi skulle utgå från ett befintligt supportsystem som heter Keystone och är en open-source applikation. På grund av att detta system saknade flera av de funktioner som vi ville ha med i applikationen valde vi att inte använda oss av den givna koden. Istället har vi skrivit all kod från grunden. För att snabbt generera ett användargränssnitt använde vi oss av Microsoft Frontpage. Tyngdpunkten har legat på att få alla funktioner att fungera så vi valde att inte koncentrera oss på det grafiska utseendet. Det finns dock ett litet utrymme att ändra grafiken genom att byta värden i stilmallen 3 för sidorna. För att ytterligare ge möjlighet för användaren att konfigurera applikationen finns det en konfigurationsfil för alla rubriker på de olika sidorna. I databasen finns ett antal tabeller som lagrar värden vilka används som text i droplister. Vi gjorde på detta sätt för att det ska vara enkelt att ändra dessa texter utan att gå in i koden till applikationen. För att underlätta ett byte av databasen till applikationen har vi implementerat alla funktionskoder som härrör till den i en separat fil som därefter inkluderas i alla dokument. Om det blir aktuellt att byta databas är det bara att skriva om denna fil och byta ut de fördefinierade PHP-funktionerna mot de PHP-funktioner som gäller för den nya databasen. I denna kod finns även alla andra funktioner definierade. 4.3.3 Överföringsprogram Överföringsprogrammet är skrivet Microsoft Visual 6.0 C++ MFC. Programmet använder sig av ODBC-kopplingar för läsning av och skrivning till tabellerna. Transaktioner kan inte förekomma i nuvarande version av MySQL, men kommer att finnas med i nästa version. Detta medför att transaktionhantering inte är införd i programmet, men skulle någon databasläsning/uppdatering misslyckas, så sänds ett mail till supporten om detta, en utskrift sker och programmet avbryts. Det vill säga att alla uppdateringar fram till avbrottet har genomförts. Efter att alla tabeller är överförda, kontrollerar programmet om det finns några ärenden som ej är behandlade inom den tidsram som är satt på ärendet. Är tiden överskriden skickas ett mail till ägaren av ärendet och en kopia till supporten. 3 CSS, Cascading Style Sheets 11

4.4 Testning Vi har under hela arbetets gång testat de olika delarna i systemet. Webbapplikationen har hela tiden varit tillgänglig för alla på Data Ductus, detta har gjort att vi har fått hjälp med testningen. Vårt examensarbete registrerades som kund i systemet och systemets olika funktioner lades in som ärenden. Detta gjorde det möjligt att rapportera fel och ändringar som behövde åtgärdas direkt i systemet. 4.5 Överlämnade Arbetet avslutades med att flytta systemet från utvecklingsmiljön till den rätta servern. Det visades sig att MySql inte fanns installerat på någon annan IIS-server än den som används vid utveckling, så den slutliga destinationen för applikationen blev på en Apache-server. Detta ställde till lite problem som vi inte hade upptäckt vid testningen. I samband med flytten till produktionsmiljön, sattes en NT-inloggning på applikationen. Med inloggningen styrs vem som har administrationsbehörighet. För att underlätta flyttning eller installation av databasen skrev vi ett laddunderlag för databasen. Vi har även dokumenterat hela databasens struktur och även gjort en översikt över all kod för att underlätta för framtida utveckling. Alla filer har också registrerats i CVS 4. När vi lämnade företaget hade de redan börjat registrera uppdrag i applikationen. 4 Concurrent Versions System 12

5. Egna kommentarer 5.1 Problem Under arbetets gång har vi stött på följande problem. Den version av PHP vi hade gick inte att konfigurera till att klara av MSSQLfunktioner. Vi provade med olika versioner av PHP och kom till slutsatsen att det är en kombination av att PHP och MSSQL s drivrutiner inte är fullt kompatibla. Detta innebar att vi beslöt oss för att använda oss av MySql istället vilket inte medförde några problem tillsammans med PHP. Ett problem med PHP/HTML är att nästan inga felmeddelande anges vid exekveringen av sidan. Detta gjorde att mycket tid gick åt till att felsöka kod. I värsta fall fick vi endast en blank sida när ett fel inträffade, och i bästa fall en hänvisning till en närliggande rad i koden. Vi letade och prövade olika PHP-editorer, men kunde inte hitta någon som vi tyckte var tillfredsställande. I vår slutliga version förekommer det några varningsmeddelande gällande Javascripten vi var tvungen att använda oss av. Javascripten behövdes för implementation av direktutskrivning av sidor och för att byta innehåll i droplistor under exekveringen. Dessa Javascripts fel är välkända och dokumenterade men vi har inte lyckats hitta hur man undviker dem. Vid produktionssättningen visades det sig att det var lite problem med att sätta de rätta behörigheterna på databasen. Vi fick dock god vägledning i MySqls egna dokumentation. Ett kvarvarande problem, när vi lämnade företaget var behörighet för överföringsprogrammet att läsa/skriva i tabellerna i databasen via Remote access. Programmet exekveras på en annan server än den där databasen finns, vilket skiljer sig från utvecklingsmiljön. 5.2 Positiva erfarenheter När vi började fick vi beställa boken Professional PHP Program till företaget. Den visade sig vara väldigt bra uppbyggt med många exempel på tillämpningar. Vi kunde nästan uteslutande använda den för att hitta lösningar på våra problem, men vi tyckte att php.net var ett bra komplement till boken. Så fort vi fick problem, eller hade en frågeställning kunde vi vända oss till de anställda på företaget. Samtliga vi kontaktade visade stort engagemang för att hitta en lösning till våra problem. Eftersom det vi har utvecklat har varit en beställning av företaget, har det varit en positiv erfarenhet att uppgiften har haft verklighetsanknytning. 13

5.3 Vidareutveckling Det som kvarstår att utveckla är applikationen sedd från kundens sida. Tanken är att kunden själv ska kunna registrera sina egna uppdrag och därefter följa arbetet med dessa. Vid utveckling av denna funktion kommer det att ställas högre krav på säkerheten vid dataöverföring. Kundfunktionen behöver en ny webbapplikation, men samma databas kan användas. Dagens applikation körs endast på intranätet inom företaget. I nuvarande version används det svenska språket, önskemål finns om att kunna välja språk. Det innebär att samtliga ledtexter och rubriker läggs upp i flera version, ett i varje tillgängligt språk. 5.4 Övriga kommentarer Den uppsatta tidsplanen höll bra. Det enda som blev stressigt var flytten till produktionsmiljön, när vi fick veta att det inte var samma typ av miljö som vi utvecklat på. Under vårt examensarbete har vi fått kännedom om mycket., bland annat HTML, PHP, Javascript, MSSQL, MySQL, IIS- och Apache-servrar. Innan vi påbörjade arbetet var våra kunskaper inom dessa områden väldigt begränsade. Syftet med examensarbetet har uppnåtts. De viktigaste funktionerna angivna, se sektion 2.4 Avgränsningar, har implementerats och fungerar tillfredsställande. De återstående funktionerna har vi analyserat och förberett för, men ej implementerat, tiden räckte ej för detta. Under analysen av de återstående funktionerna fann vi att det skulle behövas många veckor till att åstadkomma en bra och fungerande lösning, eftersom detta ska användas som debiteringsunderlag för fakturering. 14

6. Referenser 6.1 Böcker Castagnetto, J. m. fl.(2000). Professional PHP Programming. Wrox Press Ltd. ISBN 1-86100-296-3 Fogel, K.(1999). Open Source Development with CVS. Coriolis. ISBN 1-57610-490-7 Stephens, R K. Plew,R R.(2000). Lär dig SQL på 3 veckor. 3:e uppl. Pagina Förlags AB. ISBN91-636-0599-6 6.2 Elektroniska dokument PHP: PHP Manual Quick Referens http://www.php.net/manual-lookup.php [Internetworld]Webbskola http://internetworld.idg.se/webbskolan Webmonkey JavaScript Index http://hotwired.lycos.com/webmonkey/programming/javascript irt.org JavaScript FAQ Knowledgebase http://developer.irt.org/script/script.htm Lär dig frågespråket SQL http://www.pellesoft.nu/learn/sql/ WinCvs.org http://www.wincvs.org/ WinCvs daily use guide http://www.computas.com/pub/wincvs-howto/ PHP coder The PHP IDE http://www.phpide.de PHP Builder The Resource For PHP Developers http://www.phpbuilder.com/ Zend / Where PHP meetd ebusiness http://www.zend.org/ Hipstream Internet Development http://www.hipstream.force9.co.uk/ 15

MFC DAO and MFC Classes: Which do I use? http://www.microsoft.com/technet/sql/technote/dat406ef.asp?a=printable Stonekeep Consulting http://www.stonekeep.com/ CodeGuru http://www.codeguru.com/index.shtml Microsoft Support Knowledge Base http://search.support.microsoft.com/kb/c.asp?lng=eng&sa=msdn&spr=vcc Progar http://www.progar.com/index.shtml PJ Naughter s Home Page http://www.naughter.com/ MySql http://www.mysql.com/ 6.3 Rapporter Kerstin Frenckner, 1998, Exjobbsrapporten, Stockholm, Numerisk analys och datalogi Kungliga Tekniska högskola 16

Bilaga 1, webblayout Innehållsförteckning 1. NYTT UPPDRAG...1 2. VISA UPPDRAG...2 3. ARBETA MED UPPDRAG...3 4. KOMPLETTERA KUNDUPPGIFTER...4 5. UPPDATERA KUNDKONTAKTER...5 6. SKAPA RAPPORTER...6 7. DATABASUNDERHÅLL...7 8. UPPDATERA ANVÄNDARE...8 9. SCREENSHOTS AV NYTT UPPDRAG...9

Bilaga 1, webblayout 1. Nytt uppdrag För att använda funktionen Nytt uppdrag görs först en sökning i kunddatabasen. Resultatet av sökningen visas i en kundtabell. Från denna tabell navigerar man sig vidare via klickbara länkar till nästa moment. Följande sida visar kunduppgifter och en rapporteringssida. Från denna kan man välja att titta på den information som finns lagrad om kundens tjänster och projekt, denna information visas i ett litet popupfönster. Vidare kan man välja att bifoga filer. Det finns även möjlighet att lägga till kontaktpersoner till kunden. Efter att alla uppgifter angående ärendet är ifyllda bekräftats dessa med en knapptryckning. På nästa bild ges information om att ärendet har registrerats. Om ingen mottagare har angivits kommer man automatsikt tillbaka till föregående steg. (Figur 1) Nytt uppdrag Nytt uppdrag Visa uppdrag Arbeta med uppdrag Söksida Komplettera kunduppgifter Startsida Meny Uppdatera kundkontakter Resultat av sökning kundtabell Visa projekt/tjänster (popup-fönster) Skapa rapporter Databasunderhåll Uppdatera användare Felmeddelande om mottagare ej angivits Kunduppgifter och rapporteringssida Bläddra Dialog för att välja fil Registrera Ny kontakt Lägga till kundkontakt (popup-fönster) Meddelande om att kunduppgifterna har uppdaterats Om popup-fönster öppnats på föregående sida stängs dessa nu. Figur 1 Nytt uppdrag 1

Bilaga 1, webblayout 2. Visa uppdrag Vid användande av funktionen Visa uppdrag görs först en sökning bland de registrerade uppdragen i kunddatabasen. Resultatet från sökningen visas i en tabell med klickbara länkar. Nästa bild visar den information som finns lagrad kring det valda uppdraget, denna information kan därefter skrivas ut. (Figur 2) Nytt uppdrag Visa uppdrag Visa uppdrag Arbeta med uppdrag Komplettera kunduppgifter Tabell Uppdrag Startsida Meny Uppdatera kundkontakter Skapa rapporter Bild med information om valt uppdrag Databasunderhåll Uppdatera användare Skriv ut Figur 2 Visa uppdrag 2

Bilaga 1, webblayout 3. Arbeta med uppdrag Denna funktion används när man som användare ska arbeta med ett uppdrag. I tabellen visas endast de uppdrag som är registrerade på den inloggade användaren. Denna tabell består av klickbara länkar, dessa länkar leder till en arbetsbild för uppdragen. Arbetsbilden består av ett formulär som fylls i av användaren, som även har möjlighet att bifoga filer. Därefter registreras uppgifterna genom knapptryckning och nästa bild talar om att uppdraget har uppdaterats. (Figur 3) Nytt uppdrag Arbeta med uppdrag Visa uppdrag Arbeta med uppdrag Komplettera kunduppgifter Tabell Mina uppdrag Startsida Meny Uppdatera kundkontakter Skapa rapporter Arbetsbild för uppdrag Bläddra Dialog för att välja fil Databasunderhåll Uppdatera användare Registrera Meddelande om att uppdraget uppdaterats Figur 3 Arbeta med uppdrag 3

Bilaga 1, webblayout 4. Komplettera kunduppgifter För att använda funktionen Komplettera kunduppgift görs en sökning ur kunddatadasen efter de kunduppgifter som finns lagrade där. Resultatet från denna sökning visas i en tabell med klickbara länkar. Nästa sida består av ett formulär där de nya kunduppgifterna ska anges. För att registrera de nya uppgifterna trycker man på en knapp och ett meddelande visas att uppgifterna har registrerats. (Figur 4) Nytt uppdrag Komplettera kunduppgift Visa uppdrag Arbeta med uppdrag Söksida Komplettera kunduppgifter Startsida Meny Uppdatera kundkontakter Resultat av sökning kundtabell Skapa rapporter Databasunderhåll Uppdatera användare Kundkort med inmatningsfält Registrera Meddelande om att kunduppgifterna har uppdaterats Figur 4 Komplettera kunduppgift 4

Bilaga 1, webblayout 5. Uppdatera kundkontakter För att använda funktionen Uppdatera kundkontakter utförs först en sökning i kunddatabasen. Resultatet från denna sökning presenteras i en tabell med länkar. Nästa bild visar de kontaktpersoner som finns registrerade för den aktuella kunden. Från denna bild kan man välja att lägga till en ny kontakt, ta bort en kontaktperson eller bara visa informationen som finns lagrad om den valda kontaktpersonen. Nästa sida innehåller ett formulär för registrering av uppgifter. Dessa uppgifter kan därefter antingen registreras i eller tas bort ur databasen. Därefter visas ett meddelande om att databasen har uppdaterats. (Figur 5) Nytt uppdrag Uppdatera kundkontakter Visa uppdrag Arbeta med uppdrag Söksida Komplettera kunduppgifter Startsida Meny Uppdatera kundkontakter Resultat av sökning kundtabell Skapa rapporter Databasunderhåll Kundbild med kontaktpersoner Uppdatera användare Ny kontakt Visa Ta bort Registreringsbild kundkontakt Registrera alt. Ta bort Registreringsbild kundkontakt Figur 5 Uppdatera kundkontakt 5

Bilaga 1, webblayout 6. Skapa rapporter Med denna funktion kan man skapa ett flertal olika typer av rapporter. Som första moment görs en sökning. I denna sökning väljs t ex vilken tidsperiod rapporten avser och rapporttyp. Genom knapptryckning skapas rapporten, som nu finns lagrad på servern. Nästa bild visar rapporten, denna information kan antingen skrivas ut direkt från sidan eller hämtas från servern. (Figur 6) Nytt uppdrag Skapa rapporter Visa uppdrag Arbeta med uppdrag Utsökning för rapport Komplettera kunduppgifter Startsida Meny Uppdatera kundkontakter Skriv till fil Skapa rapporter Databasunderhåll Presentation av resultatet från utsökningen Uppdatera användare Skriv ut Länk för att hämta ner filen Figur 6 Skapa rapporter 6

Bilaga 1, webblayout 7. Databasunderhåll Funktionen Databasunderhåll är endast tillgänglig för användare med särskild behörighet. I den första bilden väljer användaren vilken tabell som ska modifieras. Genom knapptryckning kommer man till nästa steg, har visas antingen ett meddelande om att tabellen inte får uppdateras eller så presenteras den aktuella tabellens innehåll. Därefter väljer användaren om en post ska tas bort eller uppdateras, även nya poster kan registreras. Därefter visas ett meddelande om att databasen har uppdaterats. (Figur 7) Nytt uppdrag Databasunderhåll Visa uppdrag Arbeta med uppdrag Komplettera kunduppgifter Val av tabell Startsida Meny Uppdatera kundkontakter Vidare Skapa rapporter Databasunderhåll Tabellinnehåll Meddelande att tabellen inte får uppdateras Uppdatera användare Registrera alt. Uppdatera alt. Ta bort Meddelande om att tabellen har uppdaterats Figur 7 Databasunderhåll 7

Bilaga 1, webblayout 8. Uppdatera användare Med denna funktion kan användare med särskilt behörighet uppdatera informationen som finns lagrad kring systemets användare. Som första moment väljs vilken användares uppgifter som ska uppdateras. Därefter görs en sökning i LDAP och resultatet visas på nästa bild. Från denna bild kan man antingen välja att lägga till de uppgifter som sökningen gav eller ändra de i LDAP registrerade uppgifterna. Om man väljer Lägg till visas ett meddelande om att uppgifterna har registrerats. Vid val av Ändra visas istället ett formulär som fylls i och registreras, därefter visas meddelande om att uppgifterna har uppdaterats. (Figur 8) Nytt uppdrag Uppdatera användare Visa uppdrag Arbeta med uppdrag Välj användare Komplettera kunduppgifter Startsida Meny Sök Uppdatera kundkontakter Skapa rapporter Resultat från LDAP-sökning Databasunderhåll Lägg till Ändra Uppdatera användare Meddelande om att tabellen har uppdaterats Registreringsbild för ändring Registrera Meddelande om att tabellen har uppdaterats Figur 8 Uppdatera användare 8

Bilaga 1, webblayout 9. Screenshots av Nytt uppdrag Figur 9 Arbetsbild för sökfunktion Figur 10 Resultat efter sökning. Tabellen innehåller klickbara länkar som leder till nästa moment. 9

Bilaga 1, webblayout Figur 11 Arbetsbild för registrering av ett nytt uppdrag. Vänstra halvan av bilden visar företags-uppgifter. De högra delen av bilden är ett formulär som fylls i av mottagaren av ärendet (supporten). Figur 12 Visar att uppdraget har registrerats och att meddelande har skickats till den som blivit satt som ägare av uppdraget. 10

Bilaga 2, flöden Innehållsförteckning 1. FLÖDE FÖR ÄNDRINGSBEGÄRAN OCH FELANMÄLAN...1 2. FLÖDE FÖR FÖRFRÅGAN...2

Bilaga 2, flöden 1. Flöde för ändringsbegäran och felanmälan Ny Utredning Åtgärd Test/verifiering Klar Avslutad På is 1

Bilaga 2, flöden 2. Flöde för förfrågan Ny Utredning Klar Avslutad 2