Administrations GUI till DIAMONDS databas

Relevanta dokument
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.

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Administrationsmanual ImageBank 2

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Inledande programmering med C# (1DV402) Introduktion till C#

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

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Hämta projektkonfiguration från SharePoint till ett lokalt projekt

Manual för Typo3 version 4.2

Daniel Clarhed

KOM I GÅNG MED DIN HANDBOK STANDARD FRÅN THOLIN & LARSSON

Decentraliserad administration av gästkonton vid Karlstads universitet

Filhanterare med AngularJS

Gränssnitt för FakeGranska. Lars Mattsson

För dig som lärare har vi placerat nya inkomna svar från elever under Följ upp uppgifter medan elev på samma ställer ser alla sina aktiva Uppgifter.

Avancerade Webbteknologier

Grafiska användargränssnitt i Java

Next -> Next -> Finish

Grafisk visualisering av en spårbarhetslösning

Programbeskrivning. Chaos på Web. Version

Administrationsmanual ImageBank 2

Komma igång med Qlikview

Manual för din hemsida

Installationshandbok.

FLEX Personalsystem. Uppdateringsanvisning

1 Översikt Vad är kontokoder? Konto/Mapp uppbyggnad Tillgång till Kontokoder Område Kontokoder...5

I den tidigare filen Manual Editor belystes grunderna för enkel uppdatering samt editorns utformning.

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

Grafiska användargränssnitt i Java

Grundläggande EndNote

Introduktion till MySQL

ALEPH ver. 16 Introduktion

Översikt av kapitlet. Ge databasen ett lösenord. Förhindra ändringar av koden i databasen

Version: Datum: DynaMaster 5 Golf Övergripande manual

ActiveBuilder Användarmanual

Axalon Process Navigator SP Användarhandledning

Axalon Office Connector

Under Kurser visas dina kurser som kort och om där finns nya uppgifter eller anslag visas antalet i kurskortet.

Utbyggnad av Diamond

Logga in på din hemsideadministration genom dina inloggningsuppgifter du fått.

LUVIT LMS Quick Guide Att använda LUVIT Reports

Kortfattad instruktion för Crystal Reports. Kom i gång med Crystal Reports. Instruktion Crystal Reports 2014

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

IT-system. BUP Användarmanual

Nyheter i. Solen ORBIT 6.7

Tele2 Växel. Användarmanual Statistik

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

RELEASE Release 14.1 kommer finnas tillgänglig för er måndagen den 10 mars Allmänt

Manual för Typo3 Site-Admins version 4.04

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Windows Forms Winstrand Development

Användarmanual WebNailer. 19 januari 2004

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Webbprogrammering TDDD52

Sharpdesk V3.5. Installationsguide: produktnyckelversion. Version 1.0

Miljön i Windows Vista

Manual till publiceringsverktyg

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Slutrapport: Informationsvisualisering av släktträd

XtraMatLagning. August Ek och Oscar Johnson. TNM065 Dokumentstrukturer

Kort om World Wide Web (webben)

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Laboration 3 i kursen Produktion för tryckta medier och webb: Webbplatsproduktion med ett publiceringssystem

Innehåll i detta dokument

Manual Skogsappen - Hemkomstkontroll

Manual HSB Webb brf

Förteckning över ikoner i programmet Aliro IP-passerkontroll utan komplikationer

PHOCA GALLERY (v 3.2.3)

Office 365 MB. Innehåll. Inledning / Inställningar Outlook (e-post) Kalender Personer (kontakter)... 5 OneDrive molnet... 5.

Manual för webbpublicering. Enköpings kommun

Förteckning över ikoner i programmet

ANVÄNDARMANUAL, INTERAXO

Slutrapport Get it going contracts

Manual för Readsoft Online Admin användare

16/04/2014. Säljfolder Dokumentation för användare. Olivier Franchaud/Anna Wallsby

Migrering av applikationen AMM till molnet

Användarguide Rapporter. För systemadministratörer

Så här skriver du ditt första program i C++

Ladda upp filer fra n PLC till PC

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Steg för Steg Att använda Statistics explorer med data från SKLs databas

Årsskiftesrutiner i HogiaLön Plus SQL

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

V2.6 VERSIONSINFORMATION

ENTRÉ DOKUMENTHANTERING...

Utveckling av ett grafiskt användargränssnitt

SLUTRAPPORT WEBBPROJEKT 1

SKAPA EN WWW-LÄNK I EN ARTIKELTEXT

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

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

Sharpdesk V3.5. Push - installationsguide: produktnyckelversion. Version 1.0

Systembeskrivning.

(7) Neptune Version release information. Copyright Visma. Med ensamrätt.

Benämning Ansvarig Robert Winbladh Skapat :31 Projekt Senast sparat :42 Revision 1.3 Filnamn CUSTOMER PORTAL

ADMINISTRATÖRSVERKTYG FÖR IOT-ENHETER

Guide för Innehållsleverantörer

Lathund Office online

Användarmanual för Content tool version 7.5

Transkript:

Administrations GUI till DIAMONDS databas Administration GUI for DIAMONDs database Henrik Nilsson Martin Skjaerris Fakulteten för hälsa, natur- och teknikvetenskap Datavetenskap C-Uppsats 15 hp Handledare: Donald F. Ross Examinator: Thijs J Hollebom Oppositionsdatum: 140117

Abstract DIAMOND is a document management system developed by Sogeti and used to generate and distribute reports to predefined destinations. DIAMOND uses a database to store references to the destinations the report will be distributed to and report templates which the report will be based upon. To configure the database Sogeti developed an interface but it is considered difficult to use. Our task was to create a new, more user-friendly interface to the database used by DIAMOND. As the project progressed there was a request for a history feature to be implemented which should display the reports that had been generated Two different design proposals and corresponding prototype systems were developed. In the next step one of the prototypes was used to develop the final product. The final product simplifies the process of creating new references to the report templates and destinations as well as to configure their properties. We have also implemented a help page and the history function that makes it possible to view and search for reports generated by DIAMOND.

Sammanfattning DIAMOND är ett dokumenthanteringssystem som har utvecklats av Sogeti och används för att generera och distribuera rapporter till fördefinierade destinationer. DIAMOND använder sig av en databas för att lagra referenser till de destinationer som rapporten skall hamna på och rapportmallar som rapporten skall generas utefter. För att konfigurera databasen har Sogeti ett gränssnitt men det anses som svåranvänt. Vårt uppdrag var att skapa ett nytt mer lättanvänt gränssnitt till databasen som används av DIAMOND. Under projektets gång kom det även fram önskemål att kunna se historik över de rapporter som genererats av DIAMOND. Vi har gått från att skapa två olika designförslag till att skapa prototyper baserade på dem. Därefter har vi utefter en av prototyperna utvecklat slutgiltiga produkten. Den slutgiltiga produkten förenklar processen att skapa nya referenser till rapportmallar och destinationer samt att konfigurera deras egenskaper. Vi har även implementerat en hjälpsida och historik funktionen som gör det möjligt att se och söka i historiken efter de rapporter som generats av systemet.

Innehållsförteckning 1 Introduktion... 1 1.1 Vårt uppdrag... 1 1.2 Resultatet... 1 1.3 Dispositionen av uppsatsen... 2 2 Bakgrund... 4 2.1 Översikt av Diamond... 4 2.1.1 Diamond processen (Flöde)... 5 2.2 Diamond databasen... 7 2.2.1 Konfiguration av rapportmallar... 8 2.2.2 Konfiguration av distributioner och destinationer... 8 2.2.3 Historik... 8 2.3 Nuvarande gränssnitt... 9 2.3.1 Sogetis gränssnitt... 9 2.3.2 Microsoft SQL Server... 11 2.4 Kapitelsammanfattning... 12 3 Experiment/Implementation... 14 3.1 Kravutredning... 14 3.2 Verktyg för utveckling av mockups, prototyper och implementation... 15 3.2.1 Balsamiq Mockups... 15 3.2.2 Visual studio 2012... 16 3.2.3 C#... 16 3.2.4 ASP.NET... 17 3.2.5 ASP.NET MVC Ramverk... 17 3.2.6 HTML... 17 3.2.7 CSS... 18 3.2.8 JavaScript... 19 3.2.9 jquery... 20 3.2.10 Bootstrap... 21 3.3 Mockups... 22 3.3.1 Mockup A List design... 22

3.3.2 Mockup B Träd design... 24 3.3.4 Slutsats... 25 3.4 Prototyper... 26 3.4.1 Prototyp A List design... 26 3.4.2 Prototyp B Träd design... 27 3.4.3 Val av prototyp... 28 3.5 Implementation... 29 3.5.1 Implementation version 1... 29 3.5.2 Implementation version 2... 31 3.5.3 Implementation version 3... 33 3.5.4 Implementation version 4... 36 3.5.5 Implementation version 5... 38 3.6 Kapitelsammanfattning... 39 4 Resultat... 41 4.1 Kravuppfyllelse... 41 4.2 Jämförelse med existerande gränssnitt... 41 4.3 Användartest... 42 4. 4 Reflektioner över vad som kan förbättras... 42 4.4.1 Drop-down listor... 42 4.4.2 Översättningstabell... 42 4.4.3 Steg för steg guide för att skapa nya flöden... 42 4.4.4 Visa i historiken vilka destinationer en rapport har gått ut på... 43 4.4.5 Anpassa för mobila enheter... 43 4.5 Värdering av projektet... 44 4.6 Projekt hantering... 45 4.7 Kapitelsammanfattning... 46 5 Slutsatser... 47 Referenser... 48 Bilagor... 51 Bilaga A En Diamond XML... 51 Bilaga B En färdig rapport ifrån Diamond... 52

Bilaga C Steg för steg guide over hur man skapar flöden I Sogetis gränssnitt... 53 Bilaga D visar steg för steg guide over hur man skapar flöden I Microsoft SQL Server... 59 Bilaga E Testfall... 66 Bilaga F Steg för steg guide i hur man skapar flöden i det nya gränssnittet... 83

Figurförteckning Figur 1 Överblick över DIAMOND systemet... 1 Figur 2 Dokumentflödet i Diamond... 5 Figur 3 Översikt över Diamond databasen och alla dess tabeller.... 7 Figur 4 Startsidan på det befintliga Diamond gränssnittet... 9 Figur 5 Microsoft SQL Server... 11 Figur 6 Balsamiq Mockups... 15 Figur 7 Visual Studio 2012... 16 Figur 8: Exempel på ett program som är skrivit i C#... 17 Figur 9: Exempel på hur kod skriven i HTML kan se ut... 18 Figur 10: Resultatet när html koden visas i en webbläsare... 18 Figur 11: Exempel på en CSS fil... 18 Figur 12: Html kod med en länk till en CSS fil... 19 Figur 13: Resultatet av en html sida med en css-mall som visas i en webbläsare... 19 Figur 14: Exempel på JavaScript kod... 20 Figur 15: Exempel på hur hemsidan ser ut i hemsidan... 20 Figur 16: Exempel på hur jquery kod kan se ut.... 21 Figur 17 Mockup för list designen... 22 Figur 18: Hur det ser ut när man ändrar en distribution... 23 Figur 19 Mockup för träd design... 25 Figur 20 Prototyp A... 27 Figur 21 Prototyp b... 28 Figur 22 Nod i trädet... 29 Figur 23 Hur en samling ser ut på hemsidan... 30 Figur 24 Exempel på en hjälpruta... 31 Figur 25 Reportingservice reference textfält... 33 Figur 26 Reportinservice reference drop-downlistan stängd... 34 Figur 27 Reporting service reference drop-downlista öppen... 34 Figur 28 Exempel på hur en sökning i distributionsträdet ser ut... 35 Figur 29: Historik... 36 Figur 30 Historik med avancerad sökfunktion... 38 Figur 31 Sidan för rapportmallar... 83 Figur 32 Popup-fönster för att skapa ny samling... 84 Figur 33 En ny samling har skapats och lagts till i trädet... 85 Figur 34 Popup-fönster för att skapa en ny rapportmall... 86 Figur 35 En ny rapportmall har lagts till i trädet... 87 Figur 36 Skapa en ny referens till en SSRS-rapportmall... 88 Figur 37 Popup-fönster för att skapa en ny reportingservice mall... 89 Figur 38 En ny reportingservice mall har lagts till i trädet... 90 Figur 39 Sidan för distributioner... 91 Figur 40 En samlingsnod har öppnats... 92

Figur 41 Popup-fönster för att skapa en ny distribution... 93 Figur 42 En ny distribution har lagts till i trädet... 94 Figur 43 Popup-fönster för att skapa en ny destination... 95 Figur 44 En ny destination har lagts till i trädet... 96 Tabellförteckning Tabell 1 Översättningstabell... 33 Tabell 2 Tidsjämförelse av gränssnitten... 42

1 Introduktion Sogeti är ett internationellt företag som är specialiserade inom IT-konsulttjänster. Sogeti finns idag i 15 länder och har cirka 20000 anställda och av dessa arbetar cirka 1 150 i Sverige [1]. Sogeti har utvecklat ett system som heter DIAMOND [2] (Document Information and Management on Demand). DIAMOND är en så kallad Output-Management lösning som används av företag för att förenkla skapandet och distributionen av dokument och rapporter. Systemet fungerar i korthet att DIAMOND får in data ifrån en fil och utifrån det så skapas en rapport som sedan skickas till en vald destination exempelvis en skrivare (se Figur 1). Figur 1 Överblick över DIAMOND systemet En av de kunder som i dagsläget använder sig utav DIAMOND är BillerudKorsnäs [3] som grundades 2012 i samband med att Billerud AB och Korsnäs AB slogs samman. BillerudKorsnäs är ett svenskt bolag med över 4400 anställda som arbetar inom pappers och skogsindustrin. 1.1 Vårt uppdrag Vi fick i uppdrag från Sogeti att skapa ett nytt användargränssnitt för att underlätta konfigurationen av DIAMOND systemet. Så här skriver Sogeti själva angående uppdraget: Sogeti önskar, genom en intuitiv och lättanvänd design, kunna underlätta för administratörer av DIAMOND genom att förenkla konfigureringssättet av systemet. Konfigurering görs av rapporternas destinationer/skrivare, lagringsplats samt språk etc. Projektet ska levereras med ett fungerande användargränssnitt som acceptanstestas av Sogeti samt en systemdokumentation och en användarmanual. Kravställare på projektet är Sogeti tillsammans med BillerudKorsnäs, Gruvöns bruk. 1.2 Resultatet Vi har i detta projekt skapat ett nytt användargränssnitt för att förenkla konfigurationen av Sogetis DIAMOND system. Det nya gränssnittet är mer lättöverskådligt, har tydligare riktlinjer och bättre hjälpinformation för användaren än de existerande användargränssnitten. Vi har utöver detta även 1

implementerat ny funktionalitet där användaren kan söka i en historik efter data, något som tidigare inte har varit möjligt på ett enkelt sätt. 1.3 Dispositionen av uppsatsen I kapitel 2 ger vi en översikt över hur Diamond systemet är uppbyggt samt för och nackdelar med de nuvarande gränssnitten. I kapitel 3 går vi igenom de krav som ställdes på användargränssnittet och de verktyg som användes under utvecklandet av hemsidan samt en beskrivning av de olika faser som arbetet har genomgått. I kapitel 4 redovisar vi resultaten av arbetet och slutligen i kapitel 5 ger vi en kort slutsats av projektet. 2

3

2 Bakgrund I detta kapitel beskrivs Diamond systemet och det befintliga användargränssnitten. I avsnitt 2.1 ger vi en kort översikt över hur Diamond systemet fungerar, här kommer vi ta upp ämnen så som BizTalk [4], Windows Communication Foundation (WCF) [5] och SharePoint. I avsnitt 2.2 beskriver vi hur Diamond databasen är uppbyggd, vad som lagras i den och vilken roll den har i Diamond systemet. Vi ger en kort beskrivning av de befintliga gränssnitten i avsnitt 2.3 och de brister vi har hittat när vi studerat dem. Vi avslutar kapitlet med en kort sammanfattning i avsnitt 2.4. 2.1 Översikt av Diamond Diamond [2] (Document Information and Management on Demand) är en dokumenthanterings [6] lösning från Sogeti som bygger på Microsoft produkter. Det används för att generera rapporter utifrån fördefinierade rapportmallar och få dem skickade till fördefinierade destinationer exempelvis skrivare, Sharepoint eller mejl. Vår uppgift är att skapa ett nytt GUI (Graphical user interface) [7] till databasen som används av andra komponenter i Diamond för att skapa rapporter. I dagsläget finns det ett gränssnitt men det är svårt att använda och det är på Sogetis önskan att vi ska utveckla ett som är enklare att använda. Administratören ska med hjälp av användargränssnittet enkelt kunna skapa nya och kunna ändra på gamla dokument flöden. Ett dokumentflöde är den process som Input dokumentet går igenom Diamond för att bli till en rapport som levereras på en viss destination. Ett input dokument är en flatfil (Textfil i ASCII format) eller XML [8] fil. 4

2.1.1 Diamond processen (Flöde) Här beskrivs ett flöde i Diamond. Figur 2 Dokumentflödet i Diamond 1. En XML eller flatfil läggs i en mapp som Biztalk eller ett liknande system läser av ifrån med jämna mellanrum. 2. I dessa system finns det fördefinierat vilken mapp som systemet ska läsa ifrån samt information för de filer som hamnar i mappen som bara är relevant för Diamond, exempelvis vilken rapportmall som skall användas och vilken destination rapporten skall hamna på. När en ny fil 5

upptäcks kommer systemet att plocka upp filen och generera en XML fil som Diamond förstår utifrån informationen i filen och det som finns lagrat i systemet. 3. Den nya Diamond XML filen består av ett huvud och en kropp. (Se Bilaga A En Diamond XML) I huvudet finns två XML element, ReportTemplateName och DistributionName. Dessa XML taggar motsvarar poster i databasen som administratören ska kunna konfigurera i gränssnittet. ReportTemplateName beskriver var andra komponenter i Diamond kan hitta rapportmallen som Diamond ska genera rapporten efter. DistributionName motsvarar var Diamond kan hitta vilka destinationer som rapporten skall hamna på. Kroppen är den information som skall in i rapporten som Diamond ska generera. Samt inställningar för att konfigurera destinationen som rapporten ska ut på. När Diamond XML filen har skapats skickar systemet filen till Diamonds WCF [5] tjänst. 4. WCF tjänsten är Diamonds hjärta och har hand om att se till att Reporting services [9] får rätt information för att kunna generera en rapport och att distribuera rapporten till destinationerna. 5. WCF tjänsten kopplar upp sig till databasen och sparar undan kroppen från Diamond XML filen och hämtar sedan ID på rapportmallen, ID på rapportdata den precis sparat och information om de olika destinationerna som rapporten distribueras till. 6. WCF tjänsten anropar sedan Reporting service och skickar med båda ID och filformatet på rapporten som skall genereras (TIFF [10] eller PDF [11]). 7. Reporting services tar emot informationen ifrån WCF tjänsten och kopplar upp sig mot databasen och använder de ID som togs emot tidigare för att hämta information om var rapportmallen som skall användas är lagrad och rapportdata som ska hamna i rapporten. 8. När Reporting services har hämtat det den behöver ifrån databasen, genereras rapporten och som sedan skickas av Reporting services till WCF tjänsten. 9. När WCF tjänsten får rapporten ifrån Reporting services kommer WCF tjänsten att distribuera rapporten till de olika destinationerna. (Se Bilaga B En färdig rapport ifrån Diamondför exempel på en färdig rapport) 6

2.2 Diamond databasen Databasen i Diamond (betecknad Diamond databas i Figur 2) används för att spara informationen som ska genereras till rapporten, information om vad för fält samt vilken rapportmall som skall användas och vart den genererade rapporten skall gå till. Diamond databasen är den del av Diamond systemet som vårat administrations GUI kommer arbeta i mot. Diamond databasen kan delas upp i tre delar: Konfiguration av rapportmallar; som har hand om själva rapporten (markerat med rött i figur 3). Historik; där all data som kommer in i Diamond sparas (markerat med blått i figur 3). Konfiguration av distributioner och destinationer; där de olika destinationerna (Se figur 1) som rapporten kan gå ut på finns definierade (markerat med grönt i figur 3). Figur 3 Översikt över Diamond databasen och alla dess tabeller. 7

2.2.1 Konfiguration av rapportmallar Markerat med rött i Figur 3, är den del av databasen som har hand om konfigurationen av rapportmallarna. Här lagras huvudsakligen tre typer av information: 1. Sökvägen till de rapportmallar som användaren har skapat i Visual Studio [12]. 2. Extra information som ska vara med i rapportmallen som t.ex. företagsnamn, logotyper och signaturer. 3. Eventuell metadata ifrån XML-filen som skall hämtas, sparas och användas vid generering av rapporten. 2.2.2 Konfiguration av distributioner och destinationer En distribution är ett samlingsnamn för en eller flera destinationer och används för att BizTalk enkelt ska kunna referera till flera destinationer utan att behöva lista upp varje enskild destination. En destination är den plats där den färdiga rapporten ska skickas, det kan vara SharePoint, skrivare, mejl, image mejl eller spara på disk (se Figur 2). För varje destination finns det ett antal egenskaper som kan specificeras t.ex. för en skrivare så finns egenskaperna antal kopior, skrivarnamn, pappers storlek etc. Konfigurationen av distributioner och destinationer lagras i den del av Diamond databasen som markerats med grönt i figur 3. 2.2.3 Historik Diamond databasen har även en historik (markerat med blått i Figur 3). Här lagras information ifrån de XML filer som Diamond får ifrån BizTalk, när rapporten skapats samt den distribution och rapportmall som angavs i den inkommande XML-filen. Ifall användaren har definierat metadata för rapportmallen som hämtas upp ifrån XML filen kommer värdet, värdetypen och den genererade rapporten att lagras i en separat tabell i historiken. 8

2.3 Nuvarande gränssnitt Målet med examensarbetet är att skapa ett nytt gränssnitt för att hantera konfigurationen av Diamond. I detta delkapitel kommer vi gå igenom de gränssnitt som används just nu för att hantera Diamond för att visa varför det finns ett behov av ett nytt gränssnitt. 2.3.1 Sogetis gränssnitt Gränssnittet som Sogeti själva har utvecklat är svårt att arbeta i eftersom det inte finns några enkla riktlinjer för hur man skapar eller ändrar flöden, utan kräver att användaren har en grundlig förståelse i hur Diamond databasen är uppbyggd för att man ska kunna använda sig utav gränssnittet. När man först öppnar hemsidan för att konfigurera Diamond så möts man utav en lista av alla de tabeller som finns i databasen (se Figur 4 och jämför med Figur 3) och man får därifrån navigera sig framåt för att skapa/ändra flöden. Att hemsidan är uppbyggt utav tabeller gör att det blir svårt att (i) intuitivt veta vilken av tabellerna det är man ska gå in i för att skapa/ändra ett flöde och (ii) snabbt få en överblick över vad som finns lagrat i databasen. Nedan visas en bild på hur det ser ut när användaren går in på Sogetis webbgränssnitt, där konfigurationen av rapportmallar är markerat med rött, historiken är markerat med blått och konfigurationen av destinationer med grönt (Observera att markeringarna inte finns på hemsidan när användaren besöker den). Figur 4 Startsidan på det befintliga Diamond gränssnittet 9

Skapandet av nya flöden Som man ser i Bilaga C Steg för steg guide over hur man skapar flöden I Sogetis gränssnitt så är det en komplex procedur för att kunna skapa nya flöden med Sogetis webbgränssnitt och det finns därmed stor förbättringspotential. De brister vi ser när man skapar ett nytt flöde med gränssnittet är följande: Ingen förklaring vad de olika inmatningsfälten betyder eller vilken funktion de har. Svårt att intuitivt veta var man ska klicka för att gå vidare i skapandet av flödet. Mycket hoppande till olika sidor, vilket gör att det blir förvirrande att veta var man är någonstans. När man lagt till något nytt i databasen så måste man leta upp det manuellt i en lista för att sedan kunna gå vidare, detta gör processen onödigt tidskrävande. Ingen bekräftelse att man är klar med skapandet av flödet. 10

2.3.2 Microsoft SQL Server Istället för att använda sig utav gränssnittet som vi beskrev ovan så arbetar vissa användare direkt mot databasen med hjälp av Microsoft SQL Server [13]. I Microsoft SQL Server kan man skriva egna SQL kommandon och på så sätt kombinera olika tabeller för att få ut mer lätt tillgänglig data. Processen att skapa ett flöde i SQL server är lite enklare eftersom man inte behöver navigera mellan många sidor. Men nackdelen blir istället att man måste skriva SQL frågor för varje enskild ändring som man vill göra i databasen, detta är både komplicerat och tidskrävande och därmed inte ett användarvänligt sätt att skapa flöden på. Figur 5 Microsoft SQL Server 11

Skapandet av nya flöden Proceduren användaren måste gå igenom för att skapa ett nytt flöde (beskrivs i detalj i Bilaga D visar steg för steg guide over hur man skapar flöden I Microsoft SQL Server) i Microsoft SQL är besvärligt, tidskrävande och kräver att användaren har goda kunskaper inom SQL programmering. Några av de punkter vi ser som besvärliga är följande: Användaren är tvungen att skriva in långa SQL kommandon för att göra ändringar i databasen, vilket är tidskrävande och ökar risken för misstag. Svårt för användaren att intuitivt veta vad nästa steg i processen är. Användaren måste leta upp och memorera id nummer från utförda SQL förfrågningar för att kunna använda dem i framtida SQL förfrågningar. Ingen bekräftelse att användaren är klar med skapandet av flödet. 2.4 Kapitelsammanfattning Detta kapitel har gett läsaren en översikt över hur Diamond systemet fungerar; vilka gränssnitt som används just nu för att konfigurera Diamond och de förbättrings möjligheter som finns; samt hur databasen i Diamond är uppbyggd. 12

13

3 Experiment/Implementation I det här kapitlet går vi igenom de olika stegen som projektet har genomgått, från kravutredning till prototyper till färdig implementation. I avsnitt 3.1 går vi igenom vilka krav som kunden och Sogeti har på gränssnittet. I avsnitt 3.2 går vi igenom de verktyg som använts i projektet. Vi fortsätter sedan i avsnitt 3.3 med att visa de olika mockupsen 1 [14] som skapades samt för och nackdelar med varje mockup. Vi ger en kort beskrivning av de två prototyper [15] vi skapat i kapitel 3.4. I avsnitt 3.5 går vi igenom implementationsprocessen av hemsidan. Vi avslutar sedan kapitlet med en kort sammanfattning i kapitel 3.6. 3.1 Kravutredning Arbetet började med att undersöka hur systemet fungerade och att utreda vilka krav som användaren hade på användargränssnittet och utefter det ge förslag på lösningar. De krav som användaren hade var följande: Enklare att se vad som finns lagrat i databasen Man skall kunna skapa samlingar som man kan samla distributioner och tillhörande rapportmallar i. Enkelt att lägga till, ändra och ta bort poster ifrån databasen Ge användaren hjälp om hur man använder gränssnittet Användaren ville gärna att informationen skulle vara listat i en trädstruktur. Förutom kraven från användaren hade Sogeti ett krav på att utreda ifall det gick att utveckla användargränssnittet till att vara responsivt 2 [16]. Eftersom databasen är uppdelad i rapport och destinations delar tyckte vi att det var lämpligt att skilja dem åt i två sidor, en som har hand om rapportmallar och en som har hand om distributioner men eftersom de är väldigt lika så vill vi använda samma design på båda så att användaren känner igen sig. Utefter kraven och förslag från användaren valde vi att gå i två olika designspår, en design som använder sig av listor och en som använder sig av en trädstruktur. 1 Mockups är design skissar på hur hemsidan kommer att se ut. 2 Repsonsivt är att innehållet anpassar sig efter enheten. 14

3.2 Verktyg för utveckling av mockups, prototyper och implementation Detta delkapitel beskriver de verktyg som användes under arbetets gång. Det första verktyget som användes för att skapa de olika mockups [14] (mer om detta i kap 3.3) var Balsamiq Mockups [17] som beskrivs i kap 3.2.1. De resterande verktygen användes till att utveckla prototyper(kap 3.4) och implementationen(kap 3.5). 3.2.1 Balsamiq Mockups Balsamiq mockups används för att skapa mockups eller wireframes [18] till hemsidor. En mockup är en designskiss på hur en hemsida kan se ut när den är färdig. Programmet erbjuder ett antal färdiga komponenter som man kan använda genom att dra in i Balsamiqs rityta kan skissa upp hur hemsidan ska se ut. Figur 6 Balsamiq Mockups 15

3.2.2 Visual studio 2012 Visual Studio 2012 [12] är en samling av verktyg som används för att underlätta utvecklingen av webb, desktop och mobila applikationer. I Visual Studio ingår bland annat en kod editor, där användaren kan skriva sin kod; kompilatorer, som kompilerar koden användaren har skrivit; debugger, för att underlätta felsökning av koden [19]. Figur 7 Visual Studio 2012 3.2.3 C# C# (uttalat C-Sharp) [20] är ett objektorienterat programspråk som ingår i Visual Studio 2012. Språket är baserat på C++ men har stora likheter med Java. I Figur 8 visas ett exempel på hur ett program skrivet i C# kan se ut. 16

Figur 8: Exempel på ett program som är skrivit i C# 3.2.4 ASP.NET ASP.NET [21] är ett system som gör det möjligt att utveckla hemsidor med hjälp av objekt orienterade programmeringsspråk som t.ex. C# och Visual Basic. Det gör att man enklare kan strukturera upp sina hemsidor och eftersom man har tillgång till.net så kan man använda sig utav alla klasser som ingår i.net biblioteket. 3.2.5 ASP.NET MVC Ramverk ASP.NET MVC [22] (kallat MVC) är ett ramverk som bygger på ASP.NET men med skillnaden att den använder sig utav designmönstret model-view-controller. Vilket innebär att man delar upp programmet i tre separata delar (Model, View och Controller) [23]. Model är data och regler som gäller för dess data. T.ex. i ett webbhandelssystem så kan en Model innehålla information om en viss kund. View är den del som presenterar den data som finns i Model för användaren på ett meningsfullt sätt, detta visas oftast i form av en html sida. Controller har hand om användarinteraktionen och anropar sedan rätt Model och View. Man kan se controller som en länk mellan användaren och systemet och en dirigent mellan Model och View. T.ex. ifall användaren klickar på en länk för att se vilka varor som en webbhandelsida säljer så skickas en förfrågan till Controller som i sin tur hämtar rätt Model som innehåller data om varor och skickar den till rätt View som visar en html sida med information om varorna. 3.2.6 HTML HTML [24] är ett språk som används för att märka upp hur information ska se ut på en hemsida. Man använder sig sedan utav en webbläsare som läser HTML koden och visar sedan informationen på hemsidan med rätt formatering. Exempel på html kod visas i Figur 9 och resultatet i en webbläsare visas i Figur 10. 17

Figur 9: Exempel på hur kod skriven i HTML kan se ut Figur 10: Resultatet när html koden visas i en webbläsare 3.2.7 CSS CSS [25] används för att ändra utseendet och formateringen av ett dokument som är skrivits i ett markup language. Man kan ändra utseendet på ett specifikt element i dokumentet genom att referera till elementets typ, id eller klass (se Figur 11 och Figur 12). Exempel på hur en CSS fil kan se ut visas i Figur 11, länkningen till CSS filen visas i Figur 12 och resultatet av hur HTML sidan ser ut i webbläsaren visas i Figur 13. Figur 11: Exempel på en CSS fil 18

Figur 12: Html kod med en länk till en CSS fil Figur 13: Resultatet av en html sida med en css-mall som visas i en webbläsare 3.2.8 JavaScript JavaScript [26] är ett skriptspråk som körs i användarens webbläsare och används för att dynamiskt ändra innehållet som visas på en hemsida. Exempel på hur JavaScript kod kan se ut visas i Figur 14 och resultatet efter att hemsidan har laddats i webbläsaren visas i Figur 15 (jämförelse kan göras mellan Figur 13 och Figur 15 för att se skillnaden med och utan JavaScript koden). 19

Figur 14: Exempel på JavaScript kod Figur 15: Exempel på hur hemsidan ser ut i hemsidan 3.2.9 jquery jquery [27] är ett JavaScripts bibliotek som används för att förenkla manipulationen av HTML sidor. För att kunna använda sig utav jquery måste man först ladda ner biblioteket från deras hemsida (http://jquery.com/download) och sedan länka till jquery biblioteket i HTML koden. I Figur 16 visas ett exempel på hur jquery kod kan se ut (jämför med Figur 14 för att se skillnaden mellan vanlig JavaScript och jquery). 20

Figur 16: Exempel på hur jquery kod kan se ut. 3.2.10 Bootstrap Twitter bootstrap [28] är ett ramverk innehållande flera verktyg som man lätt kan använda för att utveckla hemsidor. Ramverktyget består av ett typsnittspaket, ett antal javascript filer, ett antal CSS filer och komponmenter som är anpassade för att utveckla responsiva hemsidor. 21

3.3 Mockups Vi använde Balsamiq mockups för att skapa mockups. Mockups är designskissar på hur hemsidan kommer att se ut. Mockupsen användes för att dels visa kunden hur det kan tänkas se ut och dels för att ge en riklinje att utveckla prototyperna utefter. Vi valde att bara skapa mockups för distribution delen av databasen med åtanke att samma design ska kunna användas på report templates delen. 3.3.1 Mockup A List design Ett ursprungskrav var att gränssnittet skulle fungera bra på mobila enheter. Eftersom mobila enheter har begränsad skärmstorlek så vill man helst undvika att användaren måste skrolla i sidled för att visa mer information, detta är för att det är både tidskrävande och irriterande för användaren. Lösningen blev därför att göra ett gränssnitt som växer vertikalt istället för horisontellt. Mockup A blev därför en design som består utav listor. Tanken är att när användaren klickar i en lista så visas ytterligare information i listan under den lista som användaren klickade på. Exempel på det visas i Figur 17 där användaren har klickat på en distribution (PDFGDISK) i den översta listrutan så visas alla destinationer (Sharepoint, Email) som hör till den distributionen i den undre listrutan. Figur 17 Mockup för list designen 22

Till höger om varje post i listorna så finns två knappar Edit och Remove, dessa knappar används för att ändra respektive ta bort en vald post. Exempel på det visas i Figur 18 där användaren har klickat på Edit knappen på en distribution och en ny ruta visas på hemsidan där användaren har möjlighet att enkelt ändra namn på distributionen. Figur 18: Hur det ser ut när man ändrar en distribution 3.3.2 Fördelar och nackdelar med Mockup A Fördelar med den här designen är följande: Gränssnittet fungerar bra på mobila enheter eftersom användaren inte behöver skrolla i sidled för att visa mer information. Finns gott om utrymme att skriva förklaringar vad de olika listorna innehåller och vad de har för betydelse i systemet. Till skillnad mot Sogetis gränssnitt (se kapitel 2.3.1) där det är svårt för användaren att veta var man ska klicka för att gå vidare så har det här gränssnittet tydligare riktlinjer eftersom användaren börjar från toppen av sidan och går sedan nedåt för att skapa/ändra ett flöde. Detta gör att det här gränssnittet blir mer intuitivt att använda. 23

Nackdelarna med designen är följande: Svårt för användaren att få en snabb översikt över all information som finns lagrat. Finns ingen möjlighet att jämföra olika distributioner vilket gör att användaren måste klicka fram och tillbaka mellan de olika distributionerna för att kunna jämföra. 3.3.2 Mockup B Träd design Mockup B följer användarens förslag på att använda ett träd för att visa upp alla objekt i en trädstruktur. Trädet består av de här nivåerna: Rot nivån i trädet är samlingar. Varje samlings nod lagrar ett antal distributioner. Distributionsnoden visar de destinationstyper för de destinationer som finns lagrade i distributionen. Har en distribution inga skrivare kommer inte skrivare noden att visas. Se distribution 3 i Figur 19 som inte har några skrivare. Samlingar Distributioner Destinationstyper Destinationer Värden för destinationen I destinationstyp noderna visas alla de olika destinationsnoderna som distributionen har för den specifika destinationstypen. Inuti destinationsnoderna finns eventuella egenskaper som användaren ställt in på destinationerna. Till höger om varje öppen nod fanns ett antal knappar som står för skapa en barnnod, ändra en nod och ta bort en nod. När man klickar på dessa knappar får man upp samma dialogrutor som finns i design A. 24

Figur 19 Mockup för träd design 3.3.3 Fördelar och nackdelar med mockup B Fördelar: Designen är väldigt överskådlig och man kan lätt se vad som finns i systemet. Det blir lätt att jämföra olika värden i träden eftersom man kan ha flera olika noder öppna samtidigt. Är det kunden efterfrågar. Nackdelar: Mindre lämpad för mobila enheter eftersom trädet växer på bredden. 3.3.4 Slutsats Båda mockupsen har sina för och nackdelar. Kunden kunde inte bestämma sig vilken design som passade bäst så vi valde därför att gå vidare i projektet med att skapa prototyper utifrån de två mockups vi skapat. Detta gjordes för att kunden på ett interaktivt sätt skulle kunna se hur den färdiga hemsidan skulle kunna fungera och därmed ge en bättre bild över den slutgiltiga produkten. 25

3.4 Prototyper Prototyper [15] används för underlätta visualisering och förmedling av idéer. I vårt projekt skapade vi två prototyper som baserades på de mockups som vi beskrev i det föregående kapitlet. Prototyperna är hemsidor med begränsad funktionalitet som användes för att kunden skulle få en bättre känsla över hur det färdiga gränssnittet kommer att fungera och se ut. 3.4.1 Prototyp A List design Utseendemässigt är prototyp A och mockup A väldigt lika och det enda som skiljer är att Edit och Remove texterna byttes ut mot ikoner och att ikonerna endast dyker upp när användaren håller muspekaren över ett element i listan, detta gjordes för att skapa ett mer stilrent gränssnitt. Resultatet av Prototyp A visas i Figur 20. 26

Figur 20 Prototyp A 3.4.2 Prototyp B Träd design Utveckling av mockup B ledde till skapandet av prototyp B som visas i Figur 21. Figur 21 Prototyp b Till skillnad ifrån mockup B togs vissa av knapparna i trädet bort och funktionaliteten packades in i andra knappar istället. Tanken var att istället för att lägga till/ändra/ta bort värden på en skrivare kunde man göra det genom att klicka på skrivarens ändra knapp istället för att ha knappar på varje nod. Noderna färgades också så att man skulle kunna skilja värdena i trädet ifrån de andra nivåerna i trädet för att kunna se vad som är vad. Detta blev dock problem eftersom man fortfarande inte visste vad som var en destination eller distribution. Det stod inte heller någonstans vad de olika färgerna betydde. 27

Färgvalet kunde också förbättras eftersom texten blev svårt att läsa. Ett annat problem är att det är svårt att se för vilken nod knapparna till höger gäller för. Figur 21 Prototyp b 3.4.3 Val av prototyp Båda prototyperna fick bra respons men i slutändan valde vi att använda träddesignen till implementationen. Den främsta orsaken till valet av träddesignen är att kunden velat ha det. Nackdelen med att sidan inte ser bra ut på en mobil enhet är inget att oroa sig för eftersom kunden inte kommer att använda sig av en mobil enhet för att nå sidan. 28

3.5 Implementation Efter att ha valt vilket av designspåren vi ska arbeta efter började vi implementera allting ifrån grunden. Det här delkapitlet handlar om de olika versionerna av implementationen som vi skapat. 3.5.1 Implementation version 1 Målet med denna implementationen var att återskapa träden ifrån prototypen med data ifrån databasen, att ge träden ett snyggt utseende och att lägga upp sidan på Windows Azure [29] för att kunden skulle kunna följa arbetsprocessen. Windows Azure är Microsofts molnplattformtjänst som erbjuder olika tjänster för att bygga och hosta webbapplikationer. 3.5.1.1 Design I den förra designen var det tänkt att värdena i trädet skulle skilja sig ifrån de andra noderna i trädet men man kunde inte se skillnad på destination eller distribution. Färgerna på noderna gjorde det svårt att läsa texten, istället för att färgkoda hela noden valde vi att bara färgkoda vänster delen av noden och att öka storleken på noden för att texten skulle bli lättare att läsa. Figur 22 Nod i trädet 3.5.1.2 Samlingar Ett önskemål från kunden var att man ska kunna lägga distributioner och rapportmallar i samlingar. Detta är för att kunden ska kunna gruppera distributioner och rapportmallar i kategorier för att få bättre ordning och översikt över det som finns lagrat. Detta löstes genom att skapa två databastabeller där den första tabellen har hand om namnen på de olika samlingarna och den andra tabellen har hand om länkningen mellan vilka distributioner/rapportmallar som hör till vilken samling. Exempel på hur en samling ser ut på hemsidan visas i Figur 23. 29

Figur 23 Hur en samling ser ut på hemsidan För att hjälpa användaren med att förstå vad varje färg betyder skapades en rad med klossar som visar de olika färgerna som finns med i trädet och vilken nod de motsvarar. 3.5.1.3 Azure Att lägga upp hemsidan på Windows Azure gick väldigt fort, det enda som behövdes göra var att lägga upp databasen på Sogetis Azure konto och sedan klicka publish i Visual studio. 30

3.5.2 Implementation version 2 Målet med version 2 var att ändra sidan utefter feedback på implementation 1, byta ut databasen mot kundens databas, skapa en sida för globala egenskaper och olika funktioner för hjälp och användning av hemsidan. 3.5.2.1 Global egenskaper Kunden ville ha ett sätt att kunna administrera globala egenskaper. Globala egenskaper är egenskaper som skall finnas med på alla rapporter som genereras. Som exempel företagets logotyp eller adress. Implementationen av globala egenskaper blev i form av en ny webbsida där de globala egenskaper som finns visas i en lista med två kolumner. Den första kolumnen innehåller namnet på den globala egenskapen och den andra kolumnen innehåller värdet. Användaren kan sedan klicka på knapparna ändra eller ta bort för att kunna ändra/ta bort en specifik global egenskap. Högst upp på sidan så skapade även en knapp för att kunna lägga till nya globala egenskaper. 3.5.2.2 Hjälprutor Vi använde oss utav hjälprutor för att förklara för användaren vad de olika fälten på hemsidan betyder. Det finns redan inbyggt stöd för hjälprutor i Bootstrap ramverket så det enda vi behövde göra var att skapa en databas tabell som innehåller alla textsträngar för de olika hjälprutorna och sedan hämta rätt textsträng för rätt hjälpruta. Exempel på hur en hjälpruta kan se ut visas i Figur 24. Figur 24 Exempel på en hjälpruta 31

3.5.2.3 Hjälpsida För att hjälpa nya användare av systemet så skapade vi en hjälpsida. Sidan förklarar vad en rapportmall, distribution, samling, verktygslåda, globala egenskaper och hjälprutor är för något och hur de används. Användaren får också information om hur man skapar nya rapportmallar, distributioner, globala egenskaper och hjälprutor. 3.5.2.4 Ajax Ett problem som vi tidigt märkte av var att varje gång användaren skapade, ändrade eller tog bort en nod i trädstrukturen så laddades hemsidan om, detta gjorde att användaren fick öppna alla noder på nytt. Vi löstes detta genom att använda oss utav Ajax [30] vilket innebär att webbläsaren dynamiskt hämtar information ifrån servern för att sedan lägga till, ändra eller ta bort noder direkt i trädet utan att behöva göra en siduppdatering. Vi använde oss även utav Ajax när användaren först besöker hemsidan. Så istället för att hämta alla noder direkt, så utnyttjar vi Ajax för att hämta noder allt eftersom användaren efterfrågar de. Fördelen är att hemsidan visas snabbare men nackdelen blir istället att det blir en kort fördröjning varje gång nya noder hämtas och visas på hemsidan. 32

3.5.3 Implementation version 3 Målet med version 3 var att ändra sidan utefter feedback på implementation 2. Vi skulle försvenska sidan, koppla reporting services till servern så att man kunde hämta referenser till rapportmallarna, lägga till en sökfunktion till träden och autentisering för användare av systemet. 3.5.3.1 Försvenska sidan Den främsta kritiken av version 2 vi fick av vår handledare på Sogeti var att språket var en blandning mellan svenska och engelska. Tillsammans med handledaren kom vi överens om vilka delar som skulle vara i svenska och vilka som skulle vara i engelska. Vi kom också överens om översättningen av orden. Tabell 1 Översättningstabell Engelska Properties Report template Global properties Tooltip Unassigned collection Reporting service template Toolbox Svenska Egenskaper Rapportmall Globala egenskaper Hjälpruta Ej tilldelade distributioner/rapportmallar SSRS-rapporter verktygslåda De enda delar som inte översattes var de fält som ska fyllas i som motsvarar tabeller i databasen därför så att man skulle kunna känna igen sig något när man byter verktyg. 3.5.3.2 Koppla Reporting services till hemsidan När reporting services skall generera en rapport hämtar reporting service vilken referensen till rapportmallen som skall användas genom att anropa databasen. Denna referens var man tvungen att skriva in för hand vilket krävde viss kunskap om var rapport mallarna låg lagrade. Figur 25 Reportingservice reference textfält Istället för att manuellt skriva in referensen gjorde vi att servern hämtar referenserna genom att anropa reporting services och sedan visar upp dem i en drop-down lista. 33

Figur 26 Reportinservice reference drop-downlistan stängd Figur 27 Reporting service reference drop-downlista öppen 3.5.3.3 Sökning i distributioner och rapportmallar Istället för att användaren manuellt ska behöva gå in i varje nod i distributionsträdet eller rapportträdet för att hitta den information han/hon är intresserad av så implementerade vi en sökfunktion. Sökfunktionen ger användaren möjlighet att via fritext söka efter data i träden och där varje sökträff gör att föräldranoderna blir markerade med en starkare färg. 34

Figur 28 Exempel på hur en sökning i distributionsträdet ser ut 3.5.3.4 Autentisering För att förhindra att obehöriga får tillgång till gränssnittet så gjorde vi så att det krävs att användaren tillhör en specifik grupp i Windows Active Directory [31]. Det finns två grupper som användaren av systemet kan befinna sig i, administrator och user. Administrator har tillgång till att visa, skapa, ändra och ta bort i databasen medan user endast har tillgång till att visa data från databasen. 3.5.3.5 Testdokument För att man enkelt via en steg för steg guide ska kunna verifiera att alla funktioner på hemsidan fungerar som de ska så skapade vi ett testdokument. Dokumentet innehåller totalt 140st individuella tester som verifierar att startsidan, distributionsträdet, rapportträdet, globala egenskaper, hjälpsidan och hjälprutorna fungerar korrekt. Se Bilaga E Testfallför testfallen. 35

3.5.4 Implementation version 4 Målet med version 4 var att bygga på gränssnittet med en historik sida så användaren enkelt kan se data som kommer in och ut ifrån Diamond systemet. 3.5.4.1 Rapport historik Ett önskemål från kunden var att man via gränssnittet ska kunna se en historik över all data som kommer in i Diamond systemet. Vi implementerade därmed en historik sida där användaren har möjlighet att visa XML filen som kommer in i Diamond och se den färdiga rapporten som genererats utifrån XML filen. För att underlätta ytterligare så skapade vi även möjligheten att filtrera historiken efter distribution, rapportmall och tidsintervall. Resultatet av historik sidan visas i Figur 29. Figur 29: Historik 36

3.5.4.2 Undersökning av möjlighet till avancerad sökfunktion av rapporter På önskemål från vår handledare på Sogeti skulle vi i samband med implementation av historiksidan undersöka möjligheten att skapa en avancerad sökfunktion. Sökfunktionen skulle användas till att hitta alla rapporter som genererats utefter en viss destinationsegenskap och ett värde. T.ex. skulle man kunna söka efter ett skrivarnamn och få tillbaka alla rapporter som skrivits ut på den skrivaren. Vi kom fram till att det inte skulle gå att skapa en helt pålitlig sökfunktion då Diamond bara sparar vilken distribution och rapportmall som använts samt metadata som hämtats ifrån XML-filen som rapporten genererats utefter. De egenskaper som distributionen har kan ha ändrats sedan utskriften skett däremot den data som finns lagrad i ReportMetadata kommer alltid att stämma. Vi föreslog att om man skulle skapa en sökfunktion skulle man kunna i förstahand leta efter de rapporter där metadata sparats, eftersom Diamond i förstahand alltid går efter vad som finns i XML-filen. Dessa resultat kommer att vara helt pålitliga. För de resterande rapporterna skulle man titta på dess distributioner och hitta de där destinationsegenskapen samt värdet stämde överens. Dessa resultat kommer att vara mer eller mindre pålitliga beroende på hur ofta användaren har ändrat på destinationsegenskapen. Handledaren tyckte att denna lösning var bra så länge som vi tydligt markerade varifrån resultatet hade hämtats. 37

3.5.5 Implementation version 5 Hela den här sprinten arbetade vi med att implementera sökfunktionen som vi undersökte tidigare. Vi skapade en meny med två drop-down listor där man kan välja destinationstyp och dess egenskap samt ett textfält för värdet man vill leta efter. För att skilja på om resultatet hittats i metadata eller ifrån en distribution la vi till en kolumn data från för sökresultaten (se figur 26). Varje rapport har antingen värdet XML som betyder att värdet har hittats i XML data eller distribution vilket betyder att värdet har hittats i distributionen som användes för att generera rapporten. Figur 30 Historik med avancerad sökfunktion 38

3.6 Kapitelsammanfattning I det här kapitlet har vi gått igenom den process som projektet har genomgått. Vi började med att gå igenom vilka krav som ställdes på gränssnittet följt av vilka verktyg som användes. Sedan gick vi vidare med att beskriva de olika mockupsen och prototyperna som skapades under projektets gång. Kapitlet avslutades med att gå igenom implementationen av det slutgiltiga gränssnittet. I nästa kapitel kommer vi jämföra det nya gränssnittet mot de befintliga gränssnitten (se kapitel 2.3), för att se ifall det nya gränssnittet har underlättat arbetet för användaren. 39

40

4 Resultat I detta kapitel kommer vi gå igenom resultatet av vårt projektarbete. Vi börjar med att i avsnitt 4.1 gå igenom de krav och önskemål som kunden och Sogeti ställde på användargränssnittet och huruvida vi uppfyllde dessa. I avsnitt 4.2 så gör vi en jämförelse mellan det nya och de existerande gränssnitten. I avsnitt 4.3 visar vi de synpunkter som kunden på Gruvöns bruk har angående användargränssnittet. I Avsnitt 4.4 beskriver de förbättringsmöjligheter som finns för att få ett bättre användargränssnitt. Slutligen så avslutar vi kapitlet i avsnitt 4.5 med en kort sammanfattning. 4.1 Kravuppfyllelse Vi anser att vi har uppfyllt alla de krav som kunden har haft på gränssnittet (se kapitel 3.1). Det krav som Sogeti ställde på att användargränssnittet skulle vara responsivt uppfylldes dock inte, detta krav togs bort i samråd mellan oss, kunden och Sogeti då vi kom överens om att det är bättre att spendera tiden på att implementera viktigare funktioner och att det i dagsläget inte finns något behov av att använda gränssnittet på mobila enheter. Utöver de krav som ställdes på projektet så har vi även tillgodosett flera önskemål som kunden och Sogeti har haft på gränssnittet. Ett av önskemålen har varit att ha en dedikerad historik sida där användaren kan se vilka rapportermallar som har skrivits ut och filtrera dessa baserat på tid, rapportmallsnamn och distributionsnamn. Kunden önskade även att vi skulle implementera autentisering på sidan för att förhindra att obehöriga användare kan använda sidan. Vi anser att vi i projektet även har uppfyllt dessa önskemål. 4.2 Jämförelse med existerande gränssnitt De förbättringar som vi ser med det nya gränssnitt jämfört med existerande gränssnitt är att det finns mer hjälp och förklaringar för användaren och att det är ett mer lätt navigerat gränssnitt. I det gamla gränssnittet så har användaren fått navigera sig bland databas tabeller för att kunna ändra distributioner och rapportmallar, detta har gjort att man som användare har haft svårt att se relationerna mellan de olika tabellerna. I det nya gränssnittet så har vi istället infört en trädstruktur vilket medför att det finns tydligare riktlinjer och bättre översikt över all data och dess relationer. Detta blev enligt oss en mer intuitiv lösning. De gamla gränssnitten har heller inte någon förklaring om hur man använder sig utav gränssnittet eller vad de olika inmatningsfälten i gränssnittet betyder. Detta har vi löst med hjälp av hjälprutor som finns vid varje inmatningsfält och en dedikerad hjälpsida som förklarar hur gränssnittet fungerar. Detta gör att det blir enklare för nya användare av systemet att förstå sig på hur gränssnittet fungerar. För att ytterligare visa skillnaden mellan det nya gränssnitt och existerande gränssnitt så valde vi att räkna antalet musklick och tiden som det tar att skapa ett nytt flöde. Resultatet visade att det blev en 41

tidsminskning på 69 procent och antalet musklick minskade med 39 procent vid användandet av det nya gränssnittet jämfört med Sogetis gränssnitt. Tabell 2 Tidsjämförelse av gränssnitten Gränssnitt Antal Klickningar Tid Sogetis gränssnitt 28 2 minuter och 22 sekunder Microsoft SQL Server Management Studio 62 5 minuter och 7 sekunder * Nya gränssnittet 17 44 sekunder * Tiden för att skriva in SQL satserna räknades inte med (SQL satserna kopierades och klistrades in, endast parametrarna skrevs in manuellt) 4.3 Användartest I skrivande stund har gränssnittet installerats på Gruvöns testmiljö, responsen som vi har fått var inte detaljerad men positiv. 4. 4 Reflektioner över vad som kan förbättras I de kommande avsnitten så går vi igenom olika förbättringsmöjligheter som man i framtiden skulle kunna implementera för att göra gränssnittet mer användarvänligt. 4.4.1 Drop-down listor Använda sig utav en drop-down lista som innehåller de olika egenskaperna som är möjliga för en destinationsegenskap. Just nu så är det en fritextruta där användaren kan skriva in vad som helst och ingen validering görs i programmet om det användaren har skrivit in är giltigt. En bättre lösning hade varit att användaren får upp en lista med de olika alternativen som går att välja. Detta skulle göra det enklare för användaren eftersom det skulle eliminera risken att användaren anger ett ogiltigt värde. 4.4.2 Översättningstabell Gränssnittet är skrivet på Svenska och för att ändra till ett annat språk så kräver det att man ändrar i källkoden. Ett bättre sätt vore att skapa en översättningstabell som man enkelt kan lägga till nya språk i. I dagsläget så finns det inget behov av flera språk än Svenska eftersom Diamond endast används i Sverige, men ifall Sogeti väljer att sälja systemet internationellt så kan det komma att bli viktigt att anpassa gränssnittet för flera språk. 4.4.3 Steg för steg guide för att skapa nya flöden En steg för steg guide som hjälper användaren att skapa ett komplett flöde (distribution och rapportmall). Detta skulle vara speciellt bra för nya användare av systemet eftersom man skulle kunna visa mer detaljerad hjälpinformation som beskriver vad som ska matas in och vad det har för effekt i Diamond systemet. 42

4.4.4 Visa i historiken vilka destinationer en rapport har gått ut på Historik sidan visar enbart vilka distributioner och rapportmallar som har använts, användaren måste själv gå in i distributionen och kolla vilka destinationer som rapportmallen har skickats till. Ett bättre sätt vore att destinationerna visas direkt i historiken. 4.4.5 Anpassa för mobila enheter Gränssnittet är just nu inte anpassat för mobila enheter. En framtida lösning vore att konvertera trädstrukturen till listor som är mer anpassat för mobil enheter och att göra det responsivt. 43

4.5 Värdering av projektet Arbetsflödet i projektet har varit som följande: 1. Kravspecifikation och Inlärning av systemet 2. Design 3. Prototyp 4. Implementation Den största delen (cirka 66 %) av tiden har gått till implementationen. De första fyra veckorna ägnades åt förarbete innan vi satte oss ner och kodade. Det första vi gjorde var att ha ett möte om hur vi skulle lägga upp projektet och hur vi skulle arbeta under projektet. Vi kom överens om att vi skulle arbeta med SCRUM [32] med dagliga standups 3 och två veckors sprintar. För att enklare planera sprintarna, hålla koll på tiden och de uppgifter vi hade använde vi oss utav Microsoft Team Foundation Server (TFS) [33]. Vi har tidigare arbetat med SCRUM i vår utbildning och fungerade för det här projektet jättebra. Under denna tid var det väldigt mycket nytt som vi inte fått arbeta med tidigare som t.ex. att ha möte med kunden och försöka hitta krav som vi kunde få ner till en kravspecifikation. Samtidigt skulle vi lära oss ett helt nytt system, hur det fungerar och hur alla komponenter hänger ihop. Det fanns ingen dokumentation över hur DIAMOND fungerade mer än det som står på Sogetis hemsida [3]. Men med god hjälp utav personalen på Sogeti lyckades vi till slut få tillräcklig kunskap om systemet för att fullfölja projektet. Utifrån kravspecifikationen fick vi fram att kunden ville enkelt kunna ändra inställningar på systemet och skapa nya destinationer och rapportmallar. Efter att vi hade börjat med implementationen och förstått lite mera om systemet kom vi även fram till att det vore bra om man kunde se någon typ av historik på utskrifterna. Det skulle nog ha hjälpt oss om vi väntat med kravspecifikationen tills att vi förstått hur systemet fungerade och hur man skriver en bra kravspecifikation innan vi besökte kunden. Då skulle vi förmodligen ha kunnat komma med förslag på fler funktioner som vi skulle kunnat lägga till. Med kravspecifikationen klar började vi designa hur implementationen av hanteringen av destinationerna skulle kunna se ut. Här valde vi att arbeta med två olika designspår vilket resulterade i en design som tänkte använda sig av listor(se kapitel 3.3.1) och en av ett träd (se kapitel 3.3.2) för att visa upp de olika destinationerna. När vi visade upp resultaten för kunden fick vi bra respons men kunden kunde inte välja vilken av dem som vi skulle fortsätta på vilket ledde oss till att gå vidare och utveckla två prototyper. Här skulle vi kanske redan bestämt oss för en design så skulle vi ha undvikit att spendera tid i onödan på att utveckla en prototyp som inte skulle komma till användning. 3 Kort möte där man går igenom vad man arbetar på just nu och eventuella problem som har inträffat. 44

När vi valt vilken prototyp som vi skulle använda började vi med implantationen. Implementationen gick relativt smärtfritt och de problem som uppstod kunde vi oftast lösa själva eller så kunde vi få hjälp av någon på Sogetis kontor. Det vi ser att vi skulle ha gjort annorlunda nu i efterhand är att lägga mindre tid på utvecklingen av prototyperna och istället lägga mer tid på att sätta oss in i hur DIAMOND systemet fungerar. Enligt oss så gjorde vi prototyperna lite väl seriösa och mycket av det vi gjorde gav ingen direkt nytta när vi visade upp de för kunden. Det vi istället borde ha gjort var att spendera mindre tid på prototyperna och istället lägga mer tid på att förstå hur DIAMOND systemet fungerar och hur kunden använder sig utav systemet, det skulle göra att vi snabbare skulle komma fram till den lösning som kunden önskade. Sammanfattningsvis så var det väldigt mycket nytt i början av projektet som vi borde spenderat mer tid på att lära oss innan vi började jobba vilket hade förenklat förarbetet. Men när vi väl började med implementationen blev arbetet mycket enklare och mer rutinerat. 4.6 Projekt hantering Under projektets gång så har vi haft en aktiv kundkontakt via personliga möten och e-post. Kunden har även haft tillgång till användargränssnittet via Microsofts molntjänst Azure vilket har gjort att kunden har kunnat se hur projektet har utvecklats. Varannan vecka så har vi haft ett större möte med handledarna på Sogeti och ibland även kunden från Gruvöns bruk. Varje möte började med en demonstration av vad som har gjorts under de senaste två veckorna och utifrån det så har vi fått feedback på vad som är bra och vad som behöver ändras. Dessa korta två veckors iterationer har gjort det möjligt att snabbt kunna ändra ny funktionalitet utefter kundens önskemål, vilket har gjort att utvecklingen av projektet har blivit mer flexibelt. Varje dag har vi haft fem till tio minuters långa möten med handledaren på Sogeti där vi gått igenom hur vi ligger till i planeringen och ifall det är några problem eller funderingar som har dykt upp. Detta har varit bra eftersom det har gjort att vi har kunnat visa upp ny funktionalitet som är under utveckling och därmed få snabb feedback om vad som behöver ändras, istället för att vänta två veckor på att få feedback när det är demonstration. Vi har under projektets gång använt oss utav Microsoft Team Foundation Server (TFS) [33]. Det gav oss möjligheten att enkelt planera vilka funktioner som ska implementeras i gränssnittet och prioritera dessa efter vilka som var viktigast. TFS har också inbyggt stöd för versionshantering vilket har gjort att vi kunnat programmera var för sig och synkronisera våra ändringar med varandra på ett enkelt sätt, detta har sparat oss mycket tid eftersom det eliminerar att man manuellt måste sammanfoga ändringarna. Det svåraste i projektet har varit att förstå sig på hur DIAMOND systemet fungerar och hur alla komponenter hänger ihop. Det fanns ingen dokumentation över hur DIAMOND fungerade mer än det som står på Sogetis hemsida [2]. Men med god hjälp utav personalen på Sogeti lyckades vi till slut få tillräcklig kunskap om systemet för att fullfölja projektet. 45

4.7 Kapitelsammanfattning I det här kapitlet har vi gått igenom huruvida vi har uppfyllt de krav och önskemål som kunden på Gruvöns bruk och Sogeti har haft på användargränssnittet. Vi fortsatte sedan med att jämföra de existerande användargränssnitten mot det nya gränssnittet. Slutligen så visade vi kommentarer som kunden har på användargränssnittet och reflekterade över vilka förbättringsmöjligheter som finns i användargränssnittet. 46

5 Slutsatser Vi har i detta examensarbete utvecklat ett nytt användargränssnitt för att underlätta konfiguration av DIAMOND. Gränssnittet har fått väldigt positiv respons ifrån både kunden och Sogeti. Med hjälp av gränssnitt kan användaren enkelt skapa, ändra och ta bort distributioner och rapportmallar samt se historik över all data som kommer in i Diamond systemet. Enligt våra resultat så tar det 44 sekunder och 17st musklick att skapa ett nytt flöde med det nya gränssnittet jämfört med 2 minuter och 22 sekunder och 28st musklick med det nuvarande gränssnittet. Detta påvisar att det nya gränssnittet som vi skapat är ett effektivare verktyg än de existerande gränssnitten. Som i många andra projekt så finns det alltid rum för förbättringar. I det här projektet så finns det några punkter som vi ser skulle kunna förbättras. Just nu så är användargränssnittet skriven på svenska och vi anser att det skulle vara bra ifall hemsidan har översättningar till flera språk för att det ska vara möjligt att sälja systemet internationellt. Användargränssnittet är just nu inte anpassat för små skärmar vilket skulle kunna vara en bra förbättring med tanke på den ökande mobila marknaden. Själva arbetet med projektet har flutit på väldigt bra och vi har inte haft särskilt många problem. Om vi skulle gjort någonting annorlunda skulle det varit att vi skulle bestämt oss mycket tidigare för vilken väg design mässigt som vi skulle gått. Istället för att utveckla två prototyper utefter två designer borde vi ha valt en design redan från början. Vi skulle också börjat med fokusera mer på att gå igenom systemet till en början och haft en genomgång av systemet innan vi började med kravspecifikationen. Sogeti har kommenterat vårt arbete på följande sätt: Martin och Henrik har tillsammans åstadkommit ett användarvänligt och modernt gränssnitt där användaren sätts i centrum. De har fått en rejäl utmaning i att göra allt från att ta fram ett lösningsförslag till att bygga en färdig lösning som godkänns av en av Sogetis befintliga kunder. Resultatet är utmärkt, väl genomfört och genomtänkt. De har genomfört projektet agilt utifrån metodiken inom scrum. Ett mycket bra utfört arbete. Vi tycker att detta examensarbete har varit mycket givande och lärorikt. Vår utbildning på Karlstads Universitet har varit en bra grund att utgå ifrån i vårt arbete. Kunskaperna som vi fått inom programmering och databas hantering har kommit till god användning i projektet. Under arbetet har vi arbetat enligt SCRUM metoden som vi känner till sedan utbildningen men här fick vi chansen att arbeta i Microsoft Team Foundation Server (TFS) [33] vilket var ett nytt verktyg för oss. Det här är det första arbetet vi har gjort där vi gått från designförslag till prototyp till färdig produkt, vilket har gett oss kunskaper inom områden som vi annars inte har arbetat inom, som exempelvis design. Under arbetets gång så har vi haft en aktiv kundkontakt via e-post och personliga möten. Det har lärt oss hur man sätter kunden i fokus och utvecklar ett system utefter kundens önskemål. Vi har under hela arbetet varit på Sogetis kontor i Karlstad, vilket har gett oss goda insikter i hur det är att arbeta som systemutvecklare i IT-branschen och för det vill vi tacka Sogeti. 47

Referenser [1] Företags presentation, Sogeti, [Online]. Available: http://www.sogeti.se/om- Sogeti/Foretagspresentation/. [Använd 13 12 2013]. [2] DIAMOND, sogeti, [Online]. Available: http://www.sogeti.se/diamond. [3] BillerudKörsnääs, Wikipedia, [Online]. Available: http://sv.wikipedia.org/wiki/billerudkorsn%c3%a4s. [Använd 13 12 2013]. [4] Microsoft, What is biztalk, Microsoft, [Online]. Available: http://www.microsoft.com/enus/biztalk/what-is-biztalk.aspx. [Använd 24 09 2013]. [5] Wikipedia, Windows Communication Foundation, 13 09 2013. [Online]. Available: en.wikipedia.org/wiki/windows_communication_foundation. [Använd 24 09 2013]. [6] Wikipedia, Dokumenthanteringssystem, 13 3 2013. [Online]. Available: http://sv.wikipedia.org/wiki/dokumenthanteringssystem. [Använd 3 10 2013]. [7] Wikipedia, GUI, 8 3 2013. [Online]. Available: http://sv.wikipedia.org/wiki/grafiskt_anv%c3%a4ndargr%c3%a4nssnitt. [Använd 10 10 2013]. [8] w3schools, What is xml, w3schools, [Online]. Available: http://www.w3schools.com/xml/xml_whatis.asp. [Använd 24 09 2013]. [9] Wikipedia, Reporting services, Microsoft, 23 9 2013. [Online]. Available: http://en.wikipedia.org/wiki/sql_server_reporting_services. [Använd 03 10 2013]. [10] Wikipedia, TIFF, 24 09 2013. [Online]. Available: http://en.wikipedia.org/wiki/tagged_image_file_format. [Använd 3 10 2013]. [11] Adobe, About Adobe PDF, [Online]. Available: http://www.adobe.com/products/acrobat/adobepdf.html. [Använd 03 10 2013]. [12] Introducing Visual Studio, Microsoft, [Online]. Available: http://msdn.microsoft.com/enus/library/fx6bk1f4(v=vs.90).aspx. [Använd 10 10 2013]. [13] Wikipedia, SQL, 23 09 2013. [Online]. Available: http://en.wikipedia.org/wiki/sql. [Använd 24 09 2013]. [14] http://en.wikipedia.org/wiki/mockup, [Online]. Available: http://en.wikipedia.org/wiki/mockup. [Använd 17 10 2013]. 48

[15] Prototyper, Wikipedia, [Online]. Available: http://sv.wikipedia.org/wiki/prototyper. [Använd 10 10 2013]. [16] Wikipedia, Respnsive web design, 8 1 2014. [Online]. Available: http://en.wikipedia.org/wiki/responsive_web_design. [Använd 9 1 2014]. [17] B. Studios, Balsamiq, Balsamiq Studios, [Online]. Available: http://balsamiq.com/. [Använd 17 10 2013]. [18] wikipedia, [Online]. Available: http://en.wikipedia.org/wiki/website_wireframe. [Använd 17 10 2013]. [19] Microsoft Visual Studio, Wikipedia, [Online]. Available: http://en.wikipedia.org/wiki/microsoft_visual_studio. [Använd 17 10 2013]. [20] C-sharp, Wikipedia, [Online]. Available: http://sv.wikipedia.org/wiki/c-sharp. [Använd 17 10 2013]. [21] What is ASP.net?, [Online]. Available: http://www.javascriptkit.com/howto/aspnet.shtml. [Använd 17 10 2013]. [22] ASP.NET MVC Framework, [Online]. Available: http://en.wikipedia.org/wiki/asp.net_mvc_framework. [Använd 17 10 2013]. [23] MVC for Noobs, [Online]. Available: http://net.tutsplus.com/tutorials/other/mvc-for-noobs/. [Använd 17 10 2013]. [24] What is HTML, [Online]. Available: http://webdesign.about.com/od/htmlxhtmltutorials/a/whatis-html.htm. [Använd 17 10 2013]. [25] Cascading Style Sheets, [Online]. Available: http://en.wikipedia.org/wiki/cascading_style_sheets. [Använd 17 10 2013]. [26] Javascript, Wikipedia, [Online]. Available: http://sv.wikipedia.org/wiki/javascript. [Använd 18 10 2013]. [27] jquery, Wikipedia, [Online]. Available: http://en.wikipedia.org/wiki/jquery. [Använd 18 10 2013]. [28] Twitter, Bootrap, Twitter, [Online]. Available: http://getbootstrap.com/. [Använd 18 10 2013]. [29] Microsoft, Microsoft Azure, Microsoft, [Online]. Available: http://www.windowsazure.com/enus/. [Använd 17 10 2013]. 49

[30] AJAX, Wikipedia, [Online]. Available: http://sv.wikipedia.org/wiki/ajax. [Använd 13 12 2013]. [31] Active Directory, Wikipedia, [Online]. Available: http://en.wikipedia.org/wiki/active_directory. [Använd 13 12 2013]. [32] Scrum, Wikipedia, [Online]. Available: http://sv.wikipedia.org/wiki/scrum. [Använd 13 12 2013]. [33] Team Foundation Server, Wikipedia, [Online]. Available: http://en.wikipedia.org/wiki/team_foundation_server. [Använd 13 12 2013]. 50

Bilagor Bilaga A En Diamond XML 51

Bilaga B En färdig rapport ifrån Diamond 52

Bilaga C Steg för steg guide over hur man skapar flöden I Sogetis gränssnitt Skapandet av ett nytt flöde består av två steg. Första steget är att skapa en ny rapportmall och andra steget är att skapa nya destinationer till dit den genererade rapporten skall gå till. Steg 1: Skapandet av rapporten 1. Skapandet av ett nytt flöde börjar med att man lägger till en ny rapportmall, det görs genom att gå in i tabellen ReportTemplates och klicka på Insert new item. Figur C - 1: Alla rapportmallar som finns i databasen och var man ska klicka för att skapa en ny rapportmall. 2. I den nya sidan som dyker upp så fyller man i namnet på rapportmallen och det språk rapporten är skriven på och klickar sedan på knappen Insert. Figur C - 2: Hur det ser ut när man skapar en ny rapportmall 53

3. Man kommer nu tillbaka till ReportTemplates sidan och ska nu i listan som finns på sidan leta upp den nya mallen som skapats. När man hittat mallen så klickar man på länken View ReportingServicesTemplates och sen Insert new item. Figur C - 3: Hur det ser ut när man skapat en ny rapportmall. Figur C - 4: Alla service mallar som finns i den rapportmall som nyss skapats. Bilden visar också vart man ska klicka för att skapa en ny service mall. 4. Här möts man av tre fält: TargetDocument, ReportingServicesReference och OrderingNumber. TargetDocument används inte utav Diamond och fältet kan därmed lämnas tom. ReportingServicesReference är sökvägen till vart rapportmallen som man vill använda, finns i systemet. OrderingNumber är i vilken ordning dokumentet ska skrivas ut i. När man fyllt i de båda fälten så går man vidare genom att klicka på länken Insert. 54

Figur C - 5: Hur det ser ut när man skapar en ny service mall. 5. Nu är skapandet av rapporten klar och man går nu tillbaka till huvudsidan för att lägga till en destination för rapporten. Steg 2: Skapandet av destinationer 1. För att skapa en ny destination så börjar man med att skapa en distribution. Detta gör man genom att gå in på huvudsidan följt av att man går in i tabellen Distributions och klickar på Insert new item. I den nya sidan som kommer upp så skriver man in ett namn på distributionen som man vill skapa, när man är klar så klickar man på Insert. Figur C - 6: Bilden visar hur det ser ut när man skapar en ny distribution. 2. Nu kommer man tillbaka till sidan Distributions och får nu leta upp den nya distribution i listan som finns på sidan. När man hittat sin distribution så går man vidare genom att klicka på View DistributionDestinations och sen Insert new item. 55

Figur C - 7: Bilden visar hur det ser ut när man skapat en ny distribution. Figur C - 8: Bilden visar alla destinationer som finns i den distribution som nyss skapades (det visas inga destinationer just nu i listan eftersom ingen destination har lagts till än). 3. I den nya sidan som dyker upp så fyller man i ett namn på sin destination och vilken typ av destination det är (Skrivare, SharePoint, mejl etc) och sist klickar man på Insert för att skapa destinationen. Figur C - 9: Bilden visar hur det ser ut när man skapar en ny destination till sin distribution. 4. Nu kommer man tillbaka till sidan DistributionDestinations. I listan som finns på sidan så letar man upp den destination som skapades i föregående steg och klickar sen på länken View DestinationProperty. 56

Figur C - 10: Hur det ser ut när man skapat en ny destination. 5. I DestinationProperty så ska man lägga till egenskaper för sin destination. Det gör man genom att klicka på Insert new item, följt av att man väljer den egenskap som man vill lägga till och värdet på egenskapen. Figur C - 11: Alla egenskaper för den valda destinationen (eftersom destinationen nyss blev skapad så finns det inga egenskaper i listan). Figur C - 12: Hur det ser ut när man skapar en ny egenskap till sin destination. 57

Figur C - 13: Bilden visar hur det ser ut när man skapat en ny egenskap för destinationen. 6. När man har lagt till alla egenskaper för sin destination så är man klar med processen och har därmed skapat ett nytt flöde som sparats i Diamond databasen. 58

Bilaga D visar steg för steg guide over hur man skapar flöden I Microsoft SQL Server Skapandet av ett nytt flöde består av två steg. Första steget är att skapa en ny rapportmall och andra steget är att skapa nya destinationer till dit den genererade rapporten skall gå till. Steg 1: Skapandet av rapporten 1. Skapandet av ett nytt flöde börjar med att man lägger till en ny rapportmall, det gör man genom att klicka på New Query längst upp i Microsoft SQL fönstret. I rutan som kommer upp i mitten av fönstret skriver man sedan in följande (och byter ut $namn mot namnet på rapporten, $språk mot språket rapporten är skriven på, $användare mot användarens namn) INSERT INTO [Diamond].[dbo].[ReportTemplate] ([Name], [Language], [Created], [CreatedBy]) VALUES ('$namn', '$språk', SYSDATETIME(), '$användare') Figur D - 1: Bilden visar resultatet efter man har skapat en ny rapportmall. 2. Nu är man klar med skapandet av rapporten och man går vidare genom att höger klicka på tabellen ReportTemplate i listan till vänster och väljer Show Top 1000 Rows. Man får nu upp 59

en tabell över alla rapportmallar som finns i databasen, man bläddrar sen längst ner i tabellen och memorerar värdet som står i kolumnen ReportTemplateId (se Figur D 1). 3. Nu ska man skapa en service mall, det görs på liknande sätt som i steg 1. Genom att man klickar på New Query och skriver in följande (och byter ut: $reporttemplateid mot det värde du fick i steg 2, $reportingservicereference mot den sökväg till rapportmallen du vill använda, $orderingnumber mot den ordning rapporten skall skrivas ut i, $användare mot användarens namn)(se figur D 2) INSERT INTO [Diamond].[dbo].[ReportingServicesTemplate] ([ReportTemplateId], [ReportingServicesReference], [OrderingNumber], [Created], [CreatedBy]) VALUES ($reporttemplateid, '$reportingservicereference', '$orderingnumber', SYSDATETIME(), '$användare') Figur D - 2: Bilden visar resultatet efter man skapat en ny service mall. 4. Nu är man klar med skapandet av rapportmallen. Steg 2: Skapandet av destinationer 60

För att skapa en ny destination så börjar man med att skapa en distribution. Skapandet av en distribution görs genom att klicka på New Query och skriva in följande (samt byta ut $namn mot distributionens namn och $användare mot användarens namn) INSERT INTO [Diamond].[dbo].[Distribution] ([Name],[Created],[CreatedBy]) VALUES ('$namn', SYSDATETIME(), '$användare') Figur D - 3: Bilden visar resultatet efter man skapat en ny distribution. När man har skapat en ny distribution så ska man leta upp id numret för distributionen. Det görs på samma sätt som i steg 2 men med skillnaden att man höger klickar på Distribution istället för ReportTemplate och memorerar värdet på kolumnen DistributionId (se figur D 3). För att kunna skapa en ny destination till sin distribution så måste man hämta värdet på DestinationTypeId, det gör man på samma sätt som i steg 2, genom att gå in i tabellen DestinationType och hämtar id numret på den destinations typ man vill ha (se figur D 4). 61

Figur D - 4: Bilden visar resultatet efter man klickat på Select Top 1000 Rows på tabellen DestinationType. Nu ska man skapa sin destination och det gör man genom att klicka på New Query och skriver in följande (samt byter ut: $distributionid mot det värde man fick i steg 6, $destinationtypeid mot värdet i steg 7, $namn mot namnet på destinationen och $användare mot användarens namn) INSERT INTO [Diamond].[dbo].[DistributionDestination] ([DistributionId], [DestinationTypeId], [Name], [Created], [CreatedBy]) VALUES ('$distributionid', '$destinationtypeid', '$namn', SYSDATETIME(), '$användare') 62

Figur D - 5: Bilden visar resultatet efter att man skapat en ny destination. När man skapat sin destination så letar man upp id numret för den destinationen genom att öppna tabellen DistributionDestination och memorera värdet i kolumnen DistributionDestinationId (se figur D - 5). Nu ska man skapa egenskaper för sin destination men först måste man hämta id numret för egenskapen, det gör man på samma sätt som i steg 7 fast att man går in i tabellen DestinationProperty och hämtar id numret för den egenskap man vill ha (se figur D 6). 63

Figur D - 6: Bilden visar resultatet efter man klickat på Select Top 1000 Rows i tabellen PropertyType. För att skapa en destinations egenskap så klickar man på New Query och skriver in följande (samt byter: $destinationid mot det värde i steg 9, $propertytypeid mot värdet i steg 10, $värde mot det värde man vill ha på sin egenskap och $användare mot användarens namn)(se bilaga D 7) INSERT INTO [Diamond].[dbo].[DestinationProperty] ([DistributionDestinationId], [PropertyTypeId], [Value], [Created], [CreatedBy]) VALUES ('$destinationid', '$propertytypeid', '$värde, SYSDATETIME(), '$användare') 64

Figur D - 7: Bilden visar hur det ser ut efter man skapat en ny egenskap för sin valda destination. Nu är man klar med processen och har därmed skapat ett nytt flöde. 65

Bilaga E Testfall Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N Startsida 1.1 Öppna upp sidan i webbläsaren Startsidan visas Distribution 2.1 Öppna sidan för distributioner Sidan för distributioner visas. Alla samlingar samt inte tilldelade visas. 2.2 Klicka på skapa en ny samling Dialog rutan för att skapa en ny samling dyker upp. 2.3 Tryck på skapa knappen i dialog rutan. 2.4 Fyll i ett namn på samlingen och tryck på skapa 2.5 Öppna sidan rapportmallar och kontrollera att samlingen även skapades där. 2.6 Öppna sidan för distributioner och klicka på den nya samlingen. 2.7 Klicka på skapa en ny distribution 2.8 Tryck på skapa knappen i dialog rutan. 2.9 Fyll i ett namn och tryck skapa. 2.10 Klicka på den nya distributionens samling. Felmeddelande om att man måste fylla i namn dyker upp. Dialog rutan stängs och en ny samling dyker upp i trädet. Sidan för rapportmallar visas och en samling med samma namn har skapats. Sidan för distributioner öppnas, när man klickar ska en spinner visas i färgfältet på noden medan informationen hämtas. När informationen har hämtats öppnas samlingen, den enda noden i samlingen är skapa ny distributions nod. Dialog rutan för att skapa en ny distribution dyker upp. Felmeddelande om att man måste fylla i namn dyker upp. Dialog rutan stängs, sidan laddas om och den nya distributionen dyker upp i trädet. Samlingen stängs och den nya distributionen försvinner. 2.11 Klicka på samlingen igen. Samlingen öppnas och den distributionen visas igen. 2.12 Klicka på distributionen. Distributionens nod öppnas och en nod skapa en ny destination visas. 2.13 Klicka på noden skapa en ny Dialog rutan för att skapa en destination. ny destination dyker upp. 2.14 Tryck på skapa knappen i Felmeddelande om att man dialog rutan. måste fylla i namn och välja destinationstyp dyker upp. 2.15 Välj en destinationstyp. Dialogrutan expanderas och egenskaper för 66 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N destinationstypen visas. 2.16 Välj en annan destinationstyp Egenskaperna ändras till den nya destinationstypen. 2.17 Välj den tomma Alla egenskaper försvinner destinationstypen 2.18 Fyll i ett namn, välj en destinationstyp och klicka på skapa. 2.19 Stäng och öppna distributionsnoden. Dialogrutan stängs och en ny nod med den valda destinationstypen dyker upp. Noden med destinationstypen försvinner när distributionen stängs och dyker upp igen när den öppnas. Den nya destinationens nod visas. En text inga noden tillgängliga dyker upp. Verktygslådan dyker upp till höger om noden. En dialogruta för att ändra en destination dyker upp. Ett felmeddelande dyker upp. Dialogrutan stängs, Destinationsnoden stängs och namnet har uppdaterats. 2.20 Öppna noden för destinationstypen. 2.21 Klicka på den nya destinationens nod. 2.22 Håll musen över destinationsnoden. 2.23 Klicka på ändra knappen(kugghjulet). 2.24 Ta bort namnet på noden och klicka spara. 2.25 Skriv in ett nytt namn och något utav värdena för destinationstypen. Klicka spara. 2.26 Öppna upp destinationsnoden Noden öppnas och värdet på egenskapen för destinationstypen visas. 2.27 Håll musen över distributionen som skapats tidigare. Klicka på ändra knappen(kugghjulet) i verktygslådan som dyker upp. 2.28 Ta bort namnet på noden och klicka spara. 2.29 Ändra namnet på distributionen och klicka spara. 2.30 Öppna upp alla undernoder till distributionen och verifiera att all data är samma 2.31 Håll musen över samlingen som skapats tidigare. Klicka på ändra knappen(kugghjulet) i verktygslådan som dyker upp. 2.32 Ta bort namnet på noden och klicka spara. Verktygslådan visas och en dialogruta för att ändra en distribution dyker upp när man klickar på kugghjulet. I namn fältet och samlings fältet finns distributionens värden. Ett felmeddelande dyker upp. Alla under noder till distributionen stängs och namnet på distributionen uppdateras. All data i undernoderna är samma. Verktygslådan visas och en dialogruta för att ändra en samling dyker upp när man klickar på kugghjulet. Ett felmeddelande dyker upp. 67 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N 2.33 Skriv in ett nytt namn på samlingen. Klicka spara. 2.34 Verifiera att namnet på samlingen även har ändrats i rapportmallar. 2.35 Öppna upp samlingen Ej samlade distributioner 2.36 Skapa en ny distribution i Ej samlade distributioner. 2.37 Håll musen över den nya distributionen, klicka på kugghjulet i verktygslådan 2.38 Välj en samling och klicka på spara. 2.39 Öppna upp den valda samlingen och verifiera att distributionen ligger där. 2.40 Öppna upp distributionens ändra ruta igen och välj den tomma samlingen under samling. Klicka spara 2.41 Öppna upp Ej samlade distributioner och verifiera att distributionen ligger där. 2.42 Håll musen över den nya distributionen, klicka på krysset i verktygslådan Alla under noder till samlingen stängs och namnet på samlingen uppdateras. Namnet på samlingen har ändrats i rapportmallar också. Samlingen ej samlade distributioner öppnas. En ny distribution skapas i Ej samlade distributioner. Verktygslådan visas och en dialogruta för att ändra en distribution dyker upp när man klickar på kugghjulet. I namn fältet står distributionens namn, samling fältet är tomt. Dialogrutan stängs, Distributionen försvinner ifrån Ej samlade distributioner. Om den valda samlingen var öppen stängs den. Distributionen har flyttats från Ej samlade distributioner till den nya samlingen. Dialogrutan stängs. Distributionen försvinner ifrån samlingen. Om Ej samlade distributioner var öppen stängs den. Distributionen har flyttats till Ej samlade distributioner. Verktygslådan visas och en dialogruta för att ta bort en distribution dyker upp när man klickar på kugghjulet. I namn fältet står distributionens namn, samling fältet är tomt. 2.43 Klicka på ja i dialogrutan. Dialogrutan stängs. Distributionsnoden tas bort ur Ej samlade distributioner. 2.44 Öppna upp samlingen som skapats tidigare. Öppna upp dens distribution och öppna destinationstypen. Håll musen över Noderna öppnas, verktygslådan visas och en dialogruta för att ta bort en destination dyker upp. 68 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N destinationsnoden och klicka på krysset i verktygslådan som dyker upp. 2.45 Klicka på ja i dialogrutan. Dialogrutan stängs. Destinationsnoden och destinationstyp noden försvinner. 2.46 Skapa två nya destinationer Endast en destinationstyp med samma destinationstyp. nod dyker upp. 2.47 Öppna upp destinationstyp noden och ta bort en av destinationerna. 2.48 Ta bort distributionen med destinationen. 2.49 Markera samlingen och klicka ta bort. Det ligger två destinations noder i destinationstypen. Noden som tas bort försvinner. Distributionen och destinationen försvinner ifrån samlingen. En dialogruta för att ta bort samlingen dyker upp. Samlingens distribution lista är tom. Samlingens namn står i namnfältet. En av radioknapparna är i kryssad. 2.50 Klicka ja i dialogrutan. Dialogrutan stängs och samlingen tas bort. 2.51 Verifiera att samlingen har Samlingen har tagits bort tagits bort i rapportmallar. ifrån rapportmallar. 2.52 Skapa en ny samling med en Samlingen med en distribution. distributions skapas och tas Markera samlingen och klicka bort. Distributionen har inte ta bort. I dialogrutan välj ta hamnat i Ej samlade bort alla noder. distributioner. Verifiera att distributionen inte hamnat i Ej samlade distributioner 2.53 Skapa en ny samling med flera distributioner. Markera samlingen och klicka ta bort. I dialogrutan välj ta bort alla noder. Verifiera att distributionerna inte hamnat i Ej samlade distributioner Samlingen med flera distributioner skapas och tas bort. Distributionerna har inte hamnat i Ej samlade distributioner. Rapportmallar 3.1 Öppna sidan för rapportmallar Sidan för rapportmallar visas. Alla samlingar samt inte tilldelade visas. 3.2 Klicka på skapa en ny samling Dialogrutan för att skapa en ny samling dyker upp. 3.3 Tryck på skapa knappen i dialog rutan Felmeddelande om att man måste fylla i namn dyker upp. 3.4 Fyll i ett namn på samlingen Dialog rutan stängs och en 69 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N och tryck på skapa 3.5 Öppna sidan Distributioner och kontroller att samlingen även skapades där. 3.6 Öppna sidan för rapportmallar och klicka på den nya samlingen. 3.7 Klicka på skapa en ny rapportmall 3.8 Tryck på skapa knappen i dialog rutan. 3.9 Fyll i namn och språk och tryck skapa. 3.10 Klicka på den nya rapportmallen som skapades 3.11 Klicka på Rapportmalls egenskaper noden 3.12 Tryck på Skapa en ny egenskap 3.13 Klicka på Skapa knappen i dialog rutan 3.14 Fyll i namn och värde och tryck på skapa 3.15 Klicka på SSRS-rapportmallar noden 3.16 Tryck på Skapa en ny referens till en SSRS-rapportmall ny samling dyker upp i trädet. Sidan för Distributioner visas och en samling med samma namn har skapats. Sidan för rapportmallar öppnas, när man klickar ska en spinner visas i färgfältet på noden medan informationen hämtas. När informationen har hämtats öppnas samlingen, den enda noden i samlingen är skapa ny rapportmalls nod. Dialog rutan för att skapa en ny rapportmall dyker upp. Felmeddelande om att man måste fylla i namn och språk dyker upp. Dialog rutan stängs och en ny rapportmalls nod dyker upp i trädet Tre stycken noder ska dyka upp i rapportmallen: Language, Rapportmalls egenskaper, SSRSrapportmallar. En spinner visas i nodens färgfält medans informationen hämtas. När informationen har hämtats öppnas Rapportmalls egenskaper. Den enda noden som visas är Skapa en ny egenskap Dialog rutan för att skapa en ny egenskap dyker upp. Felmeddelande om att man måste fylla i namn och värde dyker upp. En ny egenskaps nod har lagts till i trädet. En spinner visas i nodens färgfält medans informationen hämtas. När informationen har hämtats öppnas SSRS-rapportmallar och en nod Skapa en ny SSRS-rapportmall visas i trädet. En ny dialog ruta för att skapa en ny SSRSrapportmall dyker upp 70 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N 3.17 Klicka på skapa i dialog rutan Felmeddelandet En SSRSmall måste ha en referens visas. 3.18 Välj en service referens i listan En ny SSRS-rapportmalls och klicka på skapa nod har lagts till i trädet 3.19 Klicka på SSRS-rapportmallen En spinner visas i nodens färgfält medans informationen hämtas. När informationen har hämtats så öppnas SSRSrapportmallen. De noder som visas är: TargetDocument, OrderingNumber och Skapa ny metadata 3.20 Tryck på skapa ny metadata Dialog rutan för att skapa ny metadata dyker upp. 3.21 Klicka på skapa i dialog rutan Felmeddelande om att man måste fylla i XPathExpression och PropertyType visas. 3.22 Skriv i ett XPathExpression och välj en destinations typ och PropertyType och klicka på skapa 3.23 Klicka på metadata noden som skapades 3.24 Håll musen över metadata noden som du skapade tidigare En ny metadata nod har skapats och lagts till i trädet. En spinner visas i nodens färgfält medans informationen hämtas. När informationen har hämtats öppnas metadata noden och noderna FieldName och XPathExpression visas. En verktygslåda dyker upp till höger om noden, med knappar för att ändra och ta bort. En dialogruta för att ändra metadata visas 3.25 Klicka på ikonen ändra i verktygslådan 3.26 Tryck på spara i dialogrutan Dialogrutan försvinner och metadata noden visar samma värde som förut 3.27 Tryck på ikonen ändra igen och ta bort alla värden i dialogrutan och klicka på spara 3.28 Fyll i andra värden på XPathExpression och PropertyType än det som användes förut 3.29 Klicka på ikonen ta bort i verktygslådan bredvid metadata noden Felmeddelande om att man måste fylla i XPathExpression och PropertyType visas Dialogrutan försvinner och metadata noden uppdateras med de nya värdena En bekräftelse dialogruta visas 3.30 Tryck på Ja i dialog rutan Dialog rutan försvinner och metadata noden tas bort. 71 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N 3.31 Håll musen över SSRSrapportmallen du skapade tidigare En verktygslåda dyker upp till höger om noden med knappar för att ändra och ta bort. En dialogruta för att ändra SSRS-rapportmallen visas. 3.32 Klicka på ikonen ändra i verktygslådan 3.33 Tryck på spara i dialogrutan Dialogrutan försvinner och SSRS-rapportmallsnoden visar samma värde som förut. 3.34 Klicka på ikonen ändra igen och ta bort alla värden i dialogrutan och klicka på spara 3.35 Fyll i ett annat värde på ReportingServicesReference och OrderingNumber än det som användes förut och klicka på spara. 3.36 Klicka på ikonen ta bort i verktygslådan Felmeddelandena En SSRSmall måste ha ett ordernummer och En SSRS-mall måste ha en referens visas. Dialogrutan försvinner och SSRS-rapportmallsnoden uppdateras med det nya värdet. En bekräftelse dialogruta visas. 3.37 Tryck på Ja i dialogrutan Dialogrutan försvinner och SSRS-rapportmallen tas bort. 3.38 Håll musen över Rapportmall egenskapen du skapade tidigare 3.39 Klicka på ikonen Ändra i verktygslådan En verktygslåda dyker upp till höger om noden, med knappar för att ändra och ta bort. En dialogruta för att ändra rapportmallsegenskapen visas 3.40 Tryck på spara i dialogrutan Dialogrutan försvinner och rapportmallegenskapsnoden visar samma värde som förut 3.41 Klicka på ikonen ändra igen och ta bort alla värden i dialogrutan och klicka på spara Felmeddelande om att man måste fylla i ett namn och värde visas Loggning Observerat/Felr apport 3.42 Fyll i ett annat värde på namn och värde än det som användes förut och klicka på spara. 3.43 Klicka på ikonen ta bort i verktygslådan Dialogrutan försvinner och rapportmallegenskapsnoden har uppdaterats med det nya värdet. En bekräftelse dialogruta visas. 3.44 Tryck på Ja i dialogrutan Dialogrutan försvinner och Rapportmallsegenskapen tas bort. 3.45 Håll musen över rapportmallen du skapade tidigare En verktygslåda dyker upp till höger om noden med 72

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N knappar för att ändra och ta bort. 3.46 Klicka på ikonen ändra i verktygslådan En dialogruta för att ändra rapportmallen visas 3.47 Tryck på spara i dialogrutan Dialogrutan försvinner och rapportmallsnoden visar samma värde som förut. 3.48 Klicka på ikonen ändra igen Felmeddelande om att man och ta bort alla värden i måste fylla i namn och språk dialogrutan och klicka på visas spara 3.49 Fyll i ett annat värde på namn och språk än det som användes förut och klicka på spara 3.50 Klicka på ikonen ta bort i verktygslådan Dialogrutan försvinner och rapportmallsnoden har uppdaterats med det nya värdet. En bekräftelse dialogruta visas. 3.51 Tryck på Ja i dialogrutan Dialogrutan försvinner och rapportmallen tas bort. 3.52 Håll musen över samlingen du En verktygslåda visas till skapade tidigare höger om noden med knappar för att ändra och ta bort. 3.53 Klicka på ikonen Ändra i En dialogruta för att ändra verktygslådan samlingen visas 3.54 Tryck på spara i dialogrutan Dialogrutan försvinner och samlingen visar samma värde som förut. 3.55 Klicka på ikonen ändra igen och ta bort alla värden i dialogrutan och klicka på spara 3.56 Fyll i ett annat namn på samlingen än det som användes förut och klicka på spara. 3.57 Klicka på ikonen ta bort i verktygslådan 3.58 Markera alternativet Ta bort noderna och klicka på Ja i dialogrutan Distribution/Rapportmallar 4.1 Öppna sidan för rapportmallar, skapa en ny samling (med valfritt namn), Skapa en rapportmall i samlingen (med valfria värden) 4.2 Öppna sidan för distributioner, klicka på samlingen som skapades i föregående steg, skapa en ny distribution (med valfria värden) Felmeddelande om att man måste fylla i ett namn på samlingen visas Dialogrutan försvinner och samlingsnoden har uppdaterats med det nya värdet. En bekräftelse dialogruta visas. Dialogrutan försvinner och samlingen tas bort. En samling innehållandes en rapportmall har skapats i rapportmallsträdet. En samling har också skapats i distributionsträdet. En distribution har skapats i samlingsnoden. 4.3 Håll muspekaren över Samlingsnoden har tagits 73 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N samlingsnoden i distributionsträdet och klicka på ikonen ta bort och i dialogrutan som kommer upp markera Flytta noder till ej tilldelade, klicka sedan på knappen Ja 4.4 Gör steg 4.1 och 4.2 igen. Håll sedan muspekaren över samlingsnoden i distributionsträdet och klicka på ikonen ta bort och i dialogrutan som kommer upp markera Ta bort noder. Klicka sedan på knappen Ja Globala egenskaper 5.1 Öppna sidan för globala egenskaper. bort ifrån trädet och distributionsnoden har flyttats till samlingen Ej samlade distributioner. I rapportträdet så har rapportmallsnoden som skapats i steg? flyttats till Ej samlade rapportmallar. Samling och distributionsnoden har tagits bort ifrån distributionsträdet. I rapportträdet så har den samling och rapportmall tagits bort som skapades i föregående steg. Sidan för Globala egenskaper öppnas. Informationen med globala egenskaper i databasen visas. Loggning Observerat/Felr apport 5.2 Tryck på knappen Skapa en ny global egenskap. 5.3 Tryck på skapa knappen i dialog rutan. 5.4 Fyll i ett namn och värde och tryck skapa. 5.5 Tryck på ändra knappen (kugghjulet) för den nya egenskapen. Dialogrutan för att skapa en ny global egenskap dyker upp. Felmeddelande om att man måste fylla i namn och värde dyker upp. Dialog rutan stängs, sidan laddas om och den nya egenskapen dyker upp i tabellen. Dialog rutan för att ändra en global egenskap dyker upp. 5.6 Tryck på spara i dialogrutan. Dialogrutan stängs och sidan har laddats om men inget värde har ändrats. 5.7 Öppna upp ändra rutan för egenskapen igen. Ta bort värdena för namn och värde. Tryck spara. 5.8 Fyll i ett annat namn och värde än det som användes tidigare och tryck spara. 5.9 Tryck på ta bort knappen (kugghjulet) för den nya globala egenskapen. Felmeddelande om att man måste fylla i namn och värde dyker upp. Dialog rutan stängs, sidan laddas om och den globala egenskapen har uppdateras med de nya värdena. Dialogrutan för att ta bort en hjälpruta dyker upp. 5.10 Klicka på ja i dialogrutan. Dialogrutan stängs, sidan laddas om och den global 74

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N egenskapen har tagits bort ifrån listan. Hjälprutor 6.1 Öppna sidan för hjälprutor. Sidan för hjälprutor öppnas. Informationen med hjälprutor i databasen visas. 6.2 Tryck på knappen Skapa en Dialogrutan för att skapa en ny hjälpruta. ny hjälpruta dyker upp. 6.3 Tryck på skapa knappen i dialogrutan. 6.4 Fyll i ett namn och värde och tryck skapa. 6.5 Tryck på ändra knappen (kugghjulet) för den nya hjälprutan. Felmeddelande om att man måste fylla i namn och värde dyker upp. Dialogrutan stängs, sidan laddas om och den nya hjälprutan dyker upp i tabellen. Dialogrutan för att ändra en hjälpruta dyker upp. 6.6 Tryck på spara i dialogrutan. Dialogrutan stängs och sidan har laddats om men inget värde har ändrats. 6.7 Öppna upp ändra rutan för hjälprutan igen. Ta bort värdena för namn och värde. Tryck spara. 6.8 Fyll i ett annat namn och värde än det som användes tidigare och tryck spara. 6.9 Tryck på ta bort knappen (kugghjulet) för den nya hjälprutan. Felmeddelande om att man måste fylla i namn och värde dyker upp. Dialogrutan stängs, sidan laddas om och hjälprutan har uppdateras med de nya värdena. Dialogrutan för att ta bort en hjälpruta dyker upp. 6.10 Klicka på ja i dialogrutan. Dialogrutan stängs, sidan laddas om och hjälprutan har tagits bort ifrån listan. Om 7.1 Öppna upp om sidan Om sidan visas Loggning Observerat/Felr apport 7.2 Klicka på samlingar i menyn Sidan hoppar till delen som handlar om samlingar 7.3 Klicka på om den här sidan i Sidan hoppar till delen som menyn handlar om hemsidan 7.4 Klicka på distributioner i Sidan hoppar till delen som menyn handlar om distributioner 7.5 Klicka på rapportmallar i Sidan hoppar till delen som menyn handlar om rapportmallar 7.6 Klicka på verktygslåda i Sidan hoppar till delen som menyn handlar om verktygslådan 7.7 Klicka på globala egenskaper i Sidan hoppar till delen som menyn handlar om globala egenskaper 75

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N 7.8 Klicka på Hjälprutor i menyn Sidan hoppar till delen som handlar om hjälprutor 7.9 Öppna distributioner sidan och Om sidan öppnas och delen klicka på hjälp knappen som handlar om bredvid distributioner distributioner visas 7.10 Öppna Rapportmallar sidan och klicka på hjälp knappen bredvid rapportmallar 7.11 Öppna globala egenskaper sidan och klicka på hjälp knappen bredvid distributioner 7.12 Öppna hjälprutor sidan och klicka på hjälp knappen bredvid hjälprutor Om sidan öppnas och delen som handlar om rapportmallar visas Om sidan öppnas och delen som handlar om globala egenskaper visas Om sidan öppnas och delen som handlar om hjälprutor visas 7.13 Klicka på Historik i menyn Sidan hoppar till delen som handlar om historik 7.14 Klicka på avancerad sökning i Sidan hoppar till delen som menyn handlar om avancerad sökning 7.15 Öppna historik sidan och klicka på hjälp knappen bredvid Historik Om sidan öppnas och delen som handlar om historik visas Historik 8.1 Öppna sidan för historik Sidan för historik visas. De data som visas på sidan är sorterat med senaste skapade högst upp. 8.2 Tryck på >> knappen längst ner på sidan 8.3 Tryck på << knappen längst ner på sidan 8.4 Tryck på en av sifferknapparna förutom 1 längst ner på sidan. 8.5 Välj en distribution som inte har rapportdata i drop-down menyn. 8.6 Välj en distribution som har rapportdata i drop-down menyn. 8.7 Rensa tidigare valen. Välj en rapportmall som har Sidan laddas om. De data som skapades först visas. << knappen är blå och >> knappen är grå. Sidan laddas om. De data som visas är de senaste 100. << knappen är grå och >> knappen är blå. Sidan laddas om. De data som visas på sidan har ändrats. Både << och >> knappen är blåa. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning Inga nummer skall finnas med i sidvisaren och knapparna << >> är gråa. Rapportdata för distributionen skall visas sorterade efter datum med senaste högst upp. Rapportdata för rapportmallen skall visas 76 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N rapportdata i drop-down menyn. sorterade efter datum med senaste högst upp. 8.8 Rensa tidigare valen. De senaste rapporterna efter Välj ett från datum med mindre än 100 rapporter. det datum som angetts visas, sorterade efter datum med senaste högst upp. Det finns endast en sida i sidväljaren och << >> knapparna är gråa. 8.9 Rensa tidigare valen. De senaste rapporterna efter Välj ett från datum med mer än 100 rapporter. det datum som angetts visas, sorterade efter datum med senaste högst upp. Det finns flera sidor i sidväljaren, sida 1 är markerad och >> knapparna är blå. 8.10 Rensa tidigare valen. De senaste rapporterna upp Välj ett till datum med mindre än 100 rapporter till det datum som angetts visas, sorterade efter datum med senaste högst upp. Det finns endast en sida i sidväljaren och << >> knapparna är gråa. 8.11 Rensa tidigare valen. De senaste rapporterna Välj ett till datum med mer än 100 rapporter. innan det datum som angetts visas, sorterade efter datum med senaste högst upp. Det finns flera sidor i sidväljaren, sida 1 är markerad och >> knapparna är blå. 8.12 Rensa tidigare valen. Sidan laddas om. De data som visas är de senaste 100. << knappen är grå och >> knappen är blå. 8.12 Välj en distribution och en rapportmall som tillsammans har rapport data. De data som visas är filtrerat på rapportmallen och distributionen. Sorterat efter datum med senaste högst upp. Loggning Observerat/Felr apport 8.13 Välj en distribution, en rapportmall och en från tid som tillsammans har rapport data. 8.13 Välj en distribution, en rapportmall och en till tid som tillsammans har rapport data. De data som visas är filtrerat på rapportmallen, distributionen och från tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på rapportmallen, distributionen, till tiden och 77

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N till tiden. Sorterat efter datum med senaste högst upp. Loggning Observerat/Felr apport 8.14 Välj en distribution, en rapportmall, en från tid och en till tid som tillsammans har rapport data. 8.15 Välj en distribution, en från tid och en till tid som tillsammans har rapport data. 8.16 Välj en distribution, och en till tid som tillsammans har rapport data. 8.17 Välj en distribution, och en från tid som tillsammans har rapport data. 8.18 Välj en rapportmall, och en från tid som tillsammans har rapport data. 8.19 Välj en rapportmall, och en till tid som tillsammans har rapport data. 8.20 Välj en rapportmall, en från tid och en till tid som tillsammans har rapport data. 8.21 Välj en från tid och en till tid som tillsammans har rapport data. De data som visas är filtrerat på rapportmallen, distributionen, från tiden och till tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på distributionen, från tiden och till tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på distributionen och till tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på distributionen och från tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på rapportmallen och från tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på rapportmallen och till tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på rapportmallen, från tiden och till tiden. Sorterat efter datum med senaste högst upp. De data som visas är filtrerat på från tiden och till tiden. Sorterat efter datum med senaste högst upp. 8.22 Välj en från tid och en till tid Inga rapportdata visas, på 78

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N där fråntiden ligger efter till tiden. sidan skall det stå Inga sökresultat matchade din sökning. Loggning Observerat/Felr apport 8.23 Välj en distribution och en rapportmall som tillsammans inte har rapport data. 8.24 Välj en distribution, en rapportmall och en från tid som tillsammans inte har rapport data. 8.25 Välj en distribution, en rapportmall och en till tid som tillsammans inte har rapport data. 8.26 Välj en distribution, en rapportmall, en från tid och en till tid som tillsammans inte har rapport data. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. 8.27 Välj en distribution, en från tid och en till tid som tillsammans inte har rapport data. 8.28 Välj en distribution, och en till tid som tillsammans inte har rapport data. 8.29 Välj en distribution, och en från tid som tillsammans inte har rapport data. 8.30 Välj en rapportmall, och en från tid som tillsammans inte har rapport data. 8.31 Välj en rapportmall, och en till tid som tillsammans inte har rapport data. 8.32 Välj en rapportmall, en från tid och en till tid som tillsammans inte har rapport data. 8.33 Välj en från tid och en till tid som tillsammans har inte rapport data. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. Inga rapportdata visas, på sidan skall det stå Inga sökresultat matchade din sökning. 8.34 Rensa valen. Alla resultat visas. 79

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N Tryck på Visa XML för en rapport data. En dialogruta med XML data för rapport data visas. 8.35 Stäng dialogrutan. Tryck på Visa PDF för en rapport data. Dialogrutan stängs Ett pdf dokument med den genererade rapporten visas. 8.36 Tryck på texten "Visa Sökmenyn expanderas och avancerad sökning en drop-down lista för destinationer visas. 8.37 Välj en destinationstyp En drop-down lista med destinations egenskaper ska dyka upp med egenskaper för den valda destinationstypen 8.38 Välj en property typ En textbox för value dyker upp, sidan laddar alla rapporter som har den valda property typen. 8.39 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. 8.40 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distribution men inte via XML data. 8.41 Skriv in ett värde på destinationstyp där rapportdata har gått ut via XML data men inte en distribution. 8.42 Skriv in ett värde på destinationstyp där rapportdata inte gått ut via XML data eller en distribution. 8.43 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Byt till sida 2 via sidväljaren längst ner på sidan. 8.43 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på distribution. 8.43 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på Rapportmall. En sökning görs. Alla rapportdata som gått ut via en distribution med den valda destinationstypen och via XML data visas. En sökning görs. Alla rapportdata som gått ut via en distribution med den valda destinationstypen visas. En sökning görs. Alla rapportdata som gått ut via XML data med den valda destinationstypen visas. En sökning görs. Sidan visar Inga sökresultat matchade din sökning. En sökning görs. Nästa 100 rapportdata som gått ut via en distribution med den valda destinationstypen och via XML data visas. En sökning görs. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen och via XML data visas filtrerade på den valda distributionen. En sökning görs. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på den valda 80 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N 8.44 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på Rapportmall och distribution. 8.45 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på start tid. 8.46 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på slut tid. 8.47 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på start och slut tid. 8.48 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på Rapportmall, start och slut tid. 8.49 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på distribution, start och slut tid. 8.50 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på Rapportmall, distribution, start och slut tid. 8.51 Skriv in ett värde på destinationstyp där rapportdata har gått ut via distributionen och XML data. Filtrera på Rapportmall, distribution, start och slut tid. Byt till sida 2. rapportmallen. En sökning görs. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på den valda rapportmallen och distributionen. En sökning görs.. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på start tiden. En sökning görs.. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på slut tiden. En sökning görs. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på start och slut tiden. En sökning görs.. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på den valda rapportmallen start och slut tid. En sökning görs. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på den valda distributionen, start och slut tid. En sökning. De första 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på den valda Rapportmallen, distributionen, start och slut tid. En sökning görs. Nästa 100 rapportdata som gått ut via en distribution med den valda destinationstypen visas filtrerade på den valda Rapportmallen, distributionen, start och slut 81 Loggning Observerat/Felr apport

Steg Ref. till krav Åtgärd/indata Förväntat resultat/utdata / N tid. 8.52 Ta bort all filtrering. En sökning görs. De första 100 rapportdata visas. Loggning Observerat/Felr apport 82

Bilaga F Steg för steg guide i hur man skapar flöden i det nya gränssnittet Steg 1: Skapandet av rapporten 1. Processen för att konfigurera en ny rapportmall börjar med att man klickar på fliken Rapportmallar i menyn längst upp på sidan. Sidan för rapportmallar visas (se Figur 31). Figur 31 Sidan för rapportmallar 83

2. I det här exemplet utgår vi ifrån att man skapar en ny samling, annars öppna en tidigare skapad samling och forsätt med steg 4. Klicka på skapa en ny samling. I popup-fönstret som dyker upp skriv in ett namn på samlingen och klicka skapa (se Figur 32). Figur 32 Popup-fönster för att skapa ny samling 84

3. En ny samling har nu skapats och dykt upp i trädet, klicka på samlingen för att öppna den (se Figur 33). Figur 33 En ny samling har skapats och lagts till i trädet 85

4. Klicka på skapa en ny rapportmall, i popup-fönstret som dyker upp fyll i namn och språk för rapportmallen och klicka skapa (se Figur 34). Figur 34 Popup-fönster för att skapa en ny rapportmall 86

5. En ny rapportmall har nu skapats och lagts till i samlingen (se Figur 35). Figur 35 En ny rapportmall har lagts till i trädet 87

6. Klicka på den nya rapportmallen och klicka sedan på SSRS-rapportmallar (se Figur 36). Figur 36 Skapa en ny referens till en SSRS-rapportmall 88

7. Klicka på skapa en ny referens till en SSRS-rapportmall, i popup-fönstret som dyker upp välj en reporting services reference, fyll i ett orderingnumber och klicka skapa (se Figur 37). Figur 37 Popup-fönster för att skapa en ny reportingservice mall 89

8. En ny referens till en reporting service mall har skapats och dyker upp i trädet (se Figur 38). Figur 38 En ny reportingservice mall har lagts till i trädet 90

Steg 1: Skapandet av distributionen 1. Processen för att skapa en ny distribution börjar med att man klickar på fliken Distributioner i menyn längst upp på hemsidan (se Figur 39). Figur 39 Sidan för distributioner 91

2. I det här exemplet så använder vi oss utav samma samling som vi skapade i steg 1. Klicka på samlingen och sedan på Skapa en ny distribution (se Figur 40). Figur 40 En samlingsnod har öppnats 92

3. Fyll i ett namn på den nya distributionen och klicka sedan på skapa (se Figur 41). Figur 41 Popup-fönster för att skapa en ny distribution 93

4. En ny distribution har nu lagts till i samlingen (se Figur 42). Figur 42 En ny distribution har lagts till i trädet 94

5. Klicka på Skapa en ny destination, i den nya rutan som dyker upp fyll i namnet på destinationen och välj en destinations typ (exempelvis Mail ). Klicka sedan på knappen Skapa (se Figur 43). Figur 43 Popup-fönster för att skapa en ny destination 95