• No results found

Design and implementation of client to SIMbase

N/A
N/A
Protected

Academic year: 2021

Share "Design and implementation of client to SIMbase"

Copied!
51
0
0

Loading.... (view fulltext now)

Full text

(1)

LiU-ITN-TEK-A--10/011--SE

Design och implementering av

klient till SIMbase

Anna Chung

Micael Löfving

(2)

LiU-ITN-TEK-A--10/011--SE

Design och implementering av

klient till SIMbase

Examensarbete utfört i medieteknik

vid Tekniska Högskolan vid

Linköpings universitet

Anna Chung

Micael Löfving

Examinator Ivan Rankin

Norrköping 2010-02-25

(3)

Upphovsrätt

Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –

under en längre tid från publiceringsdatum under förutsättning att inga

extra-ordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner,

skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för

ickekommersiell forskning och för undervisning. Överföring av upphovsrätten

vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av

dokumentet kräver upphovsmannens medgivande. För att garantera äktheten,

säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ

art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i

den omfattning som god sed kräver vid användning av dokumentet på ovan

beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan

form eller i sådant sammanhang som är kränkande för upphovsmannens litterära

eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se

förlagets hemsida

http://www.ep.liu.se/

Copyright

The publishers will keep this document online on the Internet - or its possible

replacement - for a considerable time from the date of publication barring

exceptional circumstances.

The online availability of the document implies a permanent permission for

anyone to read, to download, to print out single copies for your own use and to

use it unchanged for any non-commercial research and educational purpose.

Subsequent transfers of copyright cannot revoke this permission. All other uses

of the document are conditional on the consent of the copyright owner. The

publisher has taken technical and administrative measures to assure authenticity,

security and accessibility.

According to intellectual property law the author has the right to be

mentioned when his/her work is accessed as described above and to be protected

against infringement.

For additional information about the Linköping University Electronic Press

and its procedures for publication and for assurance of document integrity,

please refer to its WWW home page:

http://www.ep.liu.se/

(4)

Sammanfattning 

 

Företaget Tieto önskar en applikation som kan modellera upp funktionssekvenser och översätta  dessa till systemtabeller i databasen.  Projektet döptes till SIMPro och de olika delarna är SIMPro  Visio (editor), SIMPro Compiler (kompilator) och SIMPro Viewer (viewer i TelSIMS).   Med SIMPro Visio skapas funktionssekvenser som sedan tolkas om i SIMPro Compiler.  Kompilatorn laddar upp Visio‐ritningen och funktionssekvenserna i systemtabeller. Ritningen  kan skådas med SIMPro Visio.  Projektgruppen har tidigare haft erfarenheter av agil utveckling och eftersom examensarbetet  äger plats hos kunden (Tieto), arbetar gruppen enligt en agil systemutvecklings metodik vid  namn Scrum.   

(5)

Innehållsföteckning 

Sammanfattning ...1  Inledning ...4  Bakgrund ...4  Syfte ...4  Frågeställning ...5  Tidsplanering ...5  Ordlista ...6  Förstudie ...7  Systemet på Tieto ...7  Funktionssekvenser ...7  Uppdrag ...8  Tillvägagångssätt ...8  Förstudiens resultat och slutsats ...8  Begränsningar i tekniken ...9  SIMPro Visio... 10  Shape Stencil ... 10  External Data ... 10  Events ... 11  Makro ... 11  SIMPro Compiler ... 12  Inläsning från Visio ... 12  Lager ... 13  Kontroll av funktionssekvensen ... 13  Visio Viewer i TelSIMS ... 14  Design ... 14  Arbetsmetodik ... 15  Agil systemutveckling ... 15  Scrum ... 15  Burndown‐kurva ... 16  Sprint 2 ... 17  Sprint 3 ... 18  Sprint 4 ... 19  Resultat ... 20  SIMPro ... 20  Jämförelse mot kravspecifikation ... 20  Överlämning ... 20  Användning ... 20  Diskussion ... 21  Arbetsmetodik ... 21  Förstudie ... 21 

(6)

Containervariabler ... 21  Subsekvenser ... 21  Användartester ... 21  Bilaga A ‐ Kravspecifikation ... 23  Bilaga B – Kravspecifikation uppdaterad ... 24  Bilaga C ‐ Förstudie ... 26  Bilaga D – SIMPro User Manual ... 30  Bilaga E – SIMPro Developer’s Guide ... 37  Bilaga F – SIMPro Installation Manual ... 43     

 

(7)

Inledning      

Bakgrund 

Sedan 1995 har Tieto utvecklat och förvaltat systemet SIMbase med den tillhörande klienten  TelSIMS åt Telia. Systemet sköter trafik som skickas internt inom Telia och externt till dess  underleverantörer/entreprenörer. Processen är automatiserad och följer fördefinierade  funktionssekvenser, dessa funktionssekvenser består av en eller flera funktioner i ett flöde. Eftersom processen är automatiserad är det mycket viktigt att det inte förekommer några fel i  någon av dessa funktionssekvenser. För att motverka att eventuella fel skall skapa problem för  Telia och dess kunder genomförs nyutveckling av funktionssekvenser med största noggrannhet. När en ny funktionssekvens skall skapas, modelleras först flödet ofta upp i Microsoft Office Visio  (vilket benämns som Visio) eller alternativt för hand, för att ge en överskådlig och lättförstådd  bild av hur det slutgiltiga flödet kommer se ut. När Visio‐filen är färdig skapas  funktionssekvensen i styrtabellerna och alla funktionsparametrar sätts till respektive  initialvärden.    Fig. 01 ‐ Arbetsflöde över Tietos system 

Syfte 

Som beskrivet ovan krävs det två steg, att rita upp och sedan manuellt föra in dem i databasen,  för att skapa en funktionssekvens. Detta är både tidskrävande och innebär att fel lätt kan uppstå  i och med den mänskliga faktorn. Vid felsökning krävs det att styrtabellerna analyseras (figur  styrtabell) och jämförs med Visio modellerna för att försöka förstå vad som har hänt och vad  som skulle ha hänt. Uppgiften är att skapa ett grafiskt verktyg som i första hand kan visualisera och i andra hand  modellera ovan nämnda funktionssekvenser. Detta skall fungera som ett hjälpmedel vid  felsökning och skapande av funktionssekvenser för de anställda på Tieto. Visualiseringen skall  även finnas tillgänglig för vanliga användare av TelSIMS, det vill säga på Telia’s Workstations. 

(8)

Frågeställning 

En viktig fråga handlar om vilka lämpliga program och tekniker som finns tillgängliga för  examensarbetets ändamål. Det är även väsentligt att ta reda på utvecklingsmöjligheter hos  dessa program samt vilken prisnivå de ligger på. Vidare ska funktionssekvenserna visualiseras på  ett pedagogiskt sätt och utvärderas med hjälp av bland annat användbarhetstester. 

Tidsplanering 

Examensarbetet beräknas att ta 20 veckor och påbörjas den förste september 2009. De första  fyra veckorna planeras att användas till introduktion av systemen och utförande av en förstudie  för att kunna välja utvecklingsmetod samt teknik för den grafiska applikationen. Därefter ägnas  de följande 13 veckorna åt design, implementering samt användartester. Resterande veckor  används som buffert samt till att färdigställa rapporten som skrivs kontinuerligt under hela  examensarbetet. 

 

 

 

 

(9)

Ordlista 

Inom Tieto’s verksamhet finns ett antal termer som är interna och ett antal som inte alltid är  allmänt kända. För att ge er läsare en bättre möjlighet att följa rapporten kommer här en  ordlista över dessa.    Funktion  En funktion kan har olika många användningsområden, tillexempel kan den fungerar som  kontroll av en variabel eller ett anrop till en extern samarbetspartner. Det är funktionerna som  ligger till grunden för styrtabellerna och Tieto’s system TelSIMS.    Subsekvens  En funktion som innehåller en funktionssekvens. Oftast generella sekvenser som används i  många Funktionssekvenser.    Funktionssekvens  En sekvens av en eller flera funktioner och subsekvenser . Kan liknas vid s.k. "Decision diagrams"  där olika funktioner påkallas beroende på vad som sker i sekvensen. (se Fig.02)    Styrtabell  Även kallad systemtabell och är en beskrivning av funktionssekvenser i tabellform. (se Fig.03)    3‐skicktsarkitektur  Ett designmönster som delar upp ett systems struktur i data, logikhanterare och presentation.  Data delen är här en databas och presentationen ett användargränssnitt. Logikhanteraren  fungerar som ett mellanled mellan data och presentation.     Sybase  Databas där bland annat styrtabeller finns.     TelSIMS  En applikation som presenterar bl.a. funktionssekvenser och styrtabeller. Används dagligen av  Tieto och Telia.     SQL‐Windows  Ett programspråk som TelSIMS är skriven i.     SIMbase  Logikhanterare som sköter kommunikationen mellan TelSIMS och Sybase.     ActiveX  En teknik som möjliggör inkludering av komponenter från ett program till ett annat. Fungerar  endast på Windows och Internet Explorer.     Microsoft Office Visio  Ett program som bland annat används för att rita grafer och flöden.     Visio 2007 Viewer  En ActiveX‐komponent som gör det möjligt att kunna läsa Visio‐filer utan att ha Microsoft Office 

(10)

Förstudie 

Systemet på Tieto

Systemet på Tieto har en 3‐skiktsarkitektur där Sybase är databasen, SIMbase hanterar logiken  och TelSIMS presenterar informationen för användarna. I Sybase lagras bland annat styrtabeller  som i sin tur innehåller information om hur funktionssekvenserna är uppbyggda. SIMbase  fungerar som ett mellanled, vilket hanterar och skickar information mellan TelSIMS och Sybase.  TelSIMS används av Telias personal dagligen för att bland annat beställa tjänster och produkter  samt för att registera felanmälningar.  

Funktionssekvenser      

Hela systemet bygger på så kallade funktionssekvenser där en funktionssekvens är, vilket  namnet antyder, en sekvens av funktioner. Funktionerna är fördefinierade att till exempel utföra  ett test, en uppgift eller att anropa andra system. När funktionen har utfört eller misslyckats  med sitt uppdrag kallar den på nästa funktion i sekvensen, vilken det är kan variera beroende på  resultatet.   

Fig. 02 - Modellering av funktionssekvens. Fig.?? Visar hur en grafisk presentation av en funktionssekvens kan se ut, ofta är de gjorda i  Visio. Siffrorna i kanten beskriver vilken rad i styrtabellen funktionen ska ha. Vid felsökning av  funktionssekvenser som på ett eller annat sätt fastnat eller rapporterat fel jämförs loggen (över  vad som egentligen skett) med styrtabellen och sen även med Visio‐filen i ett försök att hitta  vart felet ligger. Då funktionssekvenserna kan bestå av uppåt hundra rader är detta en mycket  tidskrävande process som utförs av utbildad personal med stor förståelse för hur tabellerna är  länkade.   

 

 

 

 

(11)

   

Fig. 03 - Exempel på styrtabell. 

Uppdrag 

Tieto önskar en applikation som kan ge en översiktlig bild över funktionssekvenserna.  Applikationen skall kunna visa vart i flödet en viss sekvens befinner sig i för tillfället samt  presentera funktionsspecifika parametrar. Det önskas även möjlighet att manipulera flödet, som  till exempel att starta om eller hoppa över en funktion. Applikation bör även kunna visa  subsekvenser, d.v.s. en funktion som innehåller en annan funktionssekvens.           Ovannämnda appliktion kallas för en ”Viewer” och hanterar visningen av funktionssekvenserna.  Ifall tiden tillåter önskar Tieto även en ”Editor”, en applikation som kan användas till att  modellera funktionssekvenser och automatiskt föra in dem i styrtabeller.  "Viewern" bör vara en inbäddad funktion i TelSIMS, d.v.s. den ska inte vara ett seperat program  utan att man ska kunna se funktionssekvenserna direkt i TelSIMS. "Editorn" kan däremot vara  ett självständigt program.    

Tillvägagångssätt 

För att kunna ta beslut om vilken teknik projektet skall använda sig av skall en studie av  relevanta produkter som finns tillgängliga på marknaden utföras. Kostnader och  utvecklingsmöjligheter hos dessa skall tas med i bedömningen om vilken produkt som lämpar sig  bäst för projektets ändamål. Se bilaga C för lista över de produkter som undersökts.

Förstudiens resultat och slutsats 

Efter möte med personalen på Tieto beslutades att valet stod mellan Visio och XAML. En  kravspecifikation (bilaga A) diskuterades fram och efter en vidare undersökning, beträffande hur  väl de olika lösningarna klarade att uppfylla kravspecifikationen, ansågs det att Visio var den  lösning som hade störst potential. Under denna andra undersökning framkom det att SQL‐ Windows, vilket är det verktyg som TelSIMS är skrivet i, har ett inbyggt stöd för ActiveX‐ kontroller vilket gav möjligheten att använda Visio 2007 Viewer.     Visio 2007 Viewer fungerar på liknande sätt som en PDF‐Reader och ger möjligheten att kunna  ta del av information utan att behöva betala licenser. Med den ActiveX‐komponenten kan  datorn öppna och läsa Visio‐filer utan att ha Microsoft Office Visio installerat. Genom att  utnyttja Visio 2007 Viewer som projektets ”Viewer” kan fokusen istället läggas på en ”Editor”.    

(12)

Eftersom ”Viewern” helst skulle fällas in i TelSIMS beslutades det att Tieto, vilka har goda  kunskaper i SQL‐Windows samt för hur TelSIMS är uppbyggt, skulle implementera  funktionaliteten.     I och med valet av Visio 2007 Viewer var valet av editor lätt då Tieto har flertalet anställda med  Visio licenser, åtminstone majoriteten av våra tilltänkta användare, kunde kostnaden hållas  relativt låg. Samtidigt finns mycket av funktionerna som var med i kravspecifikationen (se Bilaga  A), i programmet vilket gav möjlighet till ett mer komplett slutresultat. 

Begränsningar i tekniken 

Det finns ett antal begränsningar i vad för funktioner som tillåts en användare med Visio 2007  Viewer installerat. Till exempel ges ingen möjlighet till att manipulera innehållet i filerna (flytta,  färga eller skapa objekt etc.) vilket gick emot kravet (se Bilaga A, krav 1.5) att kunna följa vart i  flödet en funktionssekvens befinner sig i. Det finns dock möjlighet att påverka vilket/vilka lager  som skall visas vilket antogs kunna lösa problemet senare under utvecklingens gång. När både ”Viewer” och ”Editor” var befintliga program ändrades uppgiften till att istället skapa  en koppling mellan Visio och databasen Sybase så att ”Editorn” har tillgång till information om  funktioner, subsekvenser och parametrar. Det behövdes också en kompilator som kunde tolka  om innehållet i Visio‐filer och föra över det till systemtabeller. Tieto bad även om en design över  Viewern’s GUI. Projektet döptes till SIMPro och de olika delarna till SIMPro Visio (editor), SIMPro  Compiler (kompilator) och SIMPro Viewer (viewer i TelSIMS). Nedan visas en figur på flödet  mellan de inblandade systemen.       Fig.04 ‐ Flöde mellan systemen. 

(13)

SIMPro Visio  

Visio är ett verktyg för att bland annat rita grafer och flöden vilken en del av personalen på Tieto  har tillgång till och erfarenheter av. Verktyget har stöd för bland annat makros genom   Visual Basic for Applications (VBA) samt möjlighet att hämta data från SQL‐databaser.

Shape Stencil 

Visio är baserat på något som kallas Shape Stencils vilka innehåller fördefinierade former som  används för modelleringen av flöde och grafer. Formerna kan i sin tur ha kopplingspunkter,  namn, storlek och andra inställningar som gäller som initialvärden när de ritas ut i Visio‐filen. Då  Tieto sedan länge har arbetat med en uppsättning standardformer för funktionssekvenser fanns  det ingen anledning till att hitta på nya så en Shape Stencil skapades utifrån Tietos mallar.   Resultatet blev funktionsformer och tre kopplingsformer, s.k. ”Korrekta former”.  Andra objekt  såsom rutor och pilar kan ritas in i ritningen men kommer inte att behandlas av kompilatorn .  

External Data 

Vilket nämnts tidigare så har Visio ett visst inbyggt stöd för kopplingar till databaser. I Visio finns  ett fönster kallat ”External Data” i vilket information från databaserna visas i en eller flera  tabbar. Databasstödet ger möjlighet att presentera väsentlig information för användaren så som  aktuella funktioner och subsekvenser.     Det finns även funktionalitet som möjliggör att användaren, genom en drag and drop, länkar  information från databasen till en form som skapats i Visio‐filen. 

 

Fig.05 ‐ Bild över Microsoft Office Visio, längst ner är External Data och till vänster är Shapedata. 

(14)

 

Events 

Näst intill allt i Visio är grundat i händelser eller så kallade "events". Varje gång användaren  modifierar Visio‐filen triggas ett event vilket ger stora möjligheter för modifiering av hur Visio  skall bete sig.   I början av utvecklingen hittades det endast sex events vilka som standard är kopplade till alla  former. Framförallt två av dessa events ansågs vara användbara, EventDrop och EventDblClick. Det första, EventDrop, initieras varje gång ett nytt objekt dras från "Shapes" paletten och släpps  i dokumentet. Detta ansågs ha stor potential att kunna ansluta till databasen och hämta till  exempel information om funktionsparametrar och versioner. Det andra, EventDblClick, initieras  vid ett dubbelklick på ett objekt i dokumentet. Idén med detta event var att ge användaren ett  hjälpmedel för att ställa in parametrar för de olika objekten alternativt uppdatera informationen  från databasen.   Senare insågs att dessa två events var otillräckliga för systemets ändamål. För att öka  funktionaliteten och användbarheten av programmet var det väsentligt att kunna påverka mer  än dubbelklick och "shape drop". Lösningen blev "Visual Basic for Applications”‐makron vilket  Visio har ett inbyggt stöd för. Genom att använda detta stöd kan utvecklare skriva egna makron  för olika events och ökar möjligheterna att kontrollera när och hur olika events behandlas.

Makro 

För att Visio‐ritningen senare skall kunna tolkas och föras över till systemtabeller krävs det att  alla funktioner och dess parametrar är korrekta. Genom att låta ett makro tolka vad användaren  gör i Visio och även hjälpa denna att mata in rätt data, minskar risken för fel. Därför har det  makro som utvecklats ett arbetsmönster. Först analyserar det vilken funktion från ”External  Data” som användaren valt att lägga till i ritningen. Därefter sker det anrop till databasen som  frågar efter parametrar och liknande om funktionen. Dessa läggs slutligen in som ”Custom  Properties” för respektive funktion. Eftersom makrot anropar databasen kontinuerligt kan  användaren känna sig trygg i att informationen som pressenteras är uppdaterad och korrekt,  med reservation för fel i databasen. Om objekt skapas som inte räknas till ”Korrekta former”  kommer makrofunktionen hoppa över händelsen och vänta på nästa.   

 

 

(15)

SIMPro Compiler

  Kompilatorn är länken mellan databasen och ”editorn” Visio med SIMPro Visio. Den skall kunna  öppna en Visio‐fil, utläsa informationen och kontrollera så att funktioner och parametrar är  korrekta. Med hjälp av informationen skall kompilatorn skapa funktionssekvenser i  styrtabellerna och fylla dessa med nödvändig information.  

Inläsning från Visio 

Informationen i visio‐filerna är strukturerad dels beroende på designen som gjorts i makrot och  dels beroende på Visios egen standard. Informationen lagras i formernas så kallade ”Shape  Sheet” vilken är uppbyggd som en 3D‐kub. 3D‐kuben är uppdelad i ett antal sektioner som i sin  tur är uppdelade i tabeller med kolumner och rader av celler.      Fig.06 ‐ ”Shapesheet” för ett objekt i Visio.    Fig.07 ‐ Närmare bild på ”Shape Data”. Där finns objektets parameter lagrad.   

(16)

Lager 

Ett krav med hög prioritet är att det i TelSIMS skall visas vilken funktion som funktionssekvensen  befinner sig i för tillfället. För att uppfylla detta skapas kopior av alla objekt som processen kan  befinna sig i, kopiorna färgas och placeras i var sitt osynligt lager. Vilket lager som vilken färgad  objekt ligger i noteras i databasen. Som tidigare nämnt går det i TelSIMS Visio Viewer att  påverka vilka lager som ska visas. Genom att databasen skickar med vilket lager som ska visas  kan användarna i TelSIMS få en uppsikt över vart i processen man befinner sig i.   

Kontroll av funktionssekvensen 

Det är väsentligt att informationen som läggs upp i styrtabellerna, tillexempel  funktionsparameter, är korrekta. Felaktig data kan leda till stora problem i systemet vilket i sin  tur kan leda till stora förluster för företaget. I SIMPro Visio där visiofilerna ritas finns enklare  former av varibelkontroll. Dessa är dock inte tillräckliga då det går att manuellt manipulera data  som hämtats från databasen. Därför anses det att även SIMPro Compiler bör innehålla en  utökad variabelkontroll innan information skickas till databasen. Förutom att variablerna är det  också viktigt att kopplingen mellan objekten är korrekta så att flödet inte fastnar.     För att användaren ska på ett enkelt sätt få överblick över vilka fel det finns i Visioritningen  presenteras felaktigheterna i en ErrorList. Genom att klicka på en rad i listan markeras  motsvarande objekt i ritningen. Detta och felmeddelandet underlättar för användaren att  upptäcka vilka fel som har uppstått.             Fig.08 ‐ ErrorList i SIMPro Compiler.     

(17)

Visio Viewer i TelSIMS 

 

Design 

  Som tidigare nämnt i rapporten ville Tieto har en design över ”SIMPro Viewer” som ska vara en  del av TelSIMS. Programmet har en relativ enkel design och ”Viewern” bör följa samma stil.  Fig?? Visar en skiss över hur SIMPro Viewer kan se ut. Den stora rutan till vänster är  visningsfönstret och visar den grafiska presentationen av funktionssekvens. Den gröna ringen  markerar vart i flödet man befinner sig för tillfället. De mindre fönsterna till höger är i  turordning översiktsfönter, parameter samt subsekvensfönter och den sista är ett fönster som  visar bl.a. Containervariabler.     Fig.09 ‐ Skiss över SIMPro Viewer.    Tanken är att man i översiktsfönstret (längst upp till höger) har en drag‐bar ruta för att navigera  runt i bilden, den inrutade området motsvarar det man ser i visningsfönstret. I Parameterrutan  ska man se den markerade funktionens parametrar och vilka funktioner den kan kalla på.  Genom att klicka på en subsekvens i subsekvenslistan ska man kunna få presentation av  subsekvensen istället. Listan visar också hur många nivåer funktionssekvensen har. Med en nivå  menas en funktionssekvens innehållandes en subsekvens. Om subsekvensen i sin tur innehåller  en annan subsekvens är det två nivåer.   I variabelfönstret listas variabler som verkar för hela funktionssekvensen.     

(18)

 

Arbetsmetodik

  Att ha en arbetsmetodik underlättar arbetsprocessen. Då en väl fungerande arbetsmetodik kan  bestämma ett projekts framgång eller fall anses detta vara en viktig vid utförandet av projektet.  Projektgruppen har tidigare haft erfarenheter av agil utveckling och eftersom examensarbetet  äger plats hos kunden (Tieto), arbetar vi enligt en agil systemutvecklings metodik vid namn  Scrum.

Agil systemutveckling 

Agil systemutveckling är en utvecklingsmetod som i princip värderar människor och  kommunikation högre än verktyg och formella dokument. Det bygger på att man med nära  kund/användarkontakt och fortlöpande utvärderingar utvecklar ett system. Istället för att  leverera resultatet i slutet sker små leveranser kontinuerligt under hela projektet så att  missuppfattningar och fel hinner rättas i tid.  

Scrum 

Ordet "Scrum" kommer från amerikansk fotboll och är en av de olika metoderna som ingår i de  agila systemutvecklingsmetodikerna. Steg ett är att dela in projektet i sprintar där varje sprint  vanligtvis är cirka 4 veckor långa. I början av varje sprint planeras vilka uppgifter som har högst  prioritet och sedan estimeras tiden det tar att utföra uppgifterna. Tidestimeringen sker genom  kvalificerade gissningar och visas som ett poängtal, i vårt fall motsvarar ett poäng en effektiv  arbetstimme. Det skapas även en så kallad "Burn down chart" som är en grafisk representation  av hur bra projektet följer tidsestimeringen. Vid slutet av varje sprint utvärderas den sprint som  har varit och det diskuteras om vad som kan förbättras till nästa gång. Gruppen bör bestå av 5‐9  personer där en av gruppmedlemmar har rollen som Scrum‐master. Scrum‐mastern har som roll  att agera coach för gruppen och hjälpa till med framför allt administrativa problem och hinder.  Varje morgon hålls ett "daily‐scrum" möte där i gruppen går igenom:    1. Vad var person har gjort  2. Vad var person skall göra  3. Vad behövs för att kunna lösa de problem som eventuellt har stötts på    Ett "daily‐scrum" skall hållas på stående fot och bör helst inte ta mer än 15 minuter.     Då projektgruppen endast består av två personer modifierades vissa delar av scrum‐metodiken.  Ingen i gruppen tog på sig rollen som scrum‐master då det anses vara onödigt. Sprintarna  definieras till cirka tre veckor långa då utvecklingstiden är begränsad och gruppen anser att det  är bättre med fyra sprintar än två till tre längre sprintar. Möten med kunden och andra  relevanta partar hålls minst en gång i veckan.    

 

(19)

Burndown­kurva 

En burndown‐kurva beskriver hur arbetet fortlöper under en viss tidsperiod, t.ex. en sprint. Y‐ axeln beskriver hur många poäng man beräknar ta under perioden. På X‐axeln har man antal  dagar dagar som sprinten varar. Den röda linjen i kurvan är den ideala kurvan eftersom den står  för en jämn arbetsfördelning och att bra tidsestimering. Den blåa kurvan är den verkliga kurvan.     Sprint  1  Försten sprinten varade i femton dagar. Projektgruppen beräknade att kunna ta tolv poäng per  arbetsdag, det vill säga tolv effektiva timmar varje dag.  Sammanlagt blev det 180 poäng på 15  dagar. Som man kan avläsa ur grafen lyckades gruppen ej ta tillräckligt många poäng som  planerad.     Fig.10 ‐ Burndown‐kurva för sprint 1.    Under utvärderingen kom vi fram att sannolika skäl för grafens utseende berodde på att  uppgifterna tidsestimerades för lågt, de tog längre tid att utföra dem än beräknat. Att arbeta  effektivt i  sex timmar varje dag var också något som inte alltid uppnåddes.               0 20 40 60 80 100 120 140 160 180 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 verklig ideal

(20)

Sprint 2  Med lärdom från sprint 1 beräknade projektgruppen att ta tio poäng per arbetsdag istället för  tolv.  Sprinten varade i 14 dagar och därför blev det totala poängen 140. Arbetsuppgifterna fick  också en högre tidsestimering.     Fig.11 ‐ Burndown‐kurva för sprint 2.    Den verkliga kurvan går under den ideala kurvan vilket betyder att gruppen arbetade snabbare  och tog fler poäng än förväntat. Detta berodde på att gruppen tillsammans arbetade mer än tio  effektiva timmar varje per arbetsdag. Ett annat skäl var att vi blev mer insatta i systemet och  arbetsuppgifterna tog mindre tid att lösa än beräknat.       0 20 40 60 80 100 120 140 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 verklig ideal

(21)

Sprint 3  Under sprint 3 beräknade projektgruppen kunna ta elva poäng varje arbetsdag, totalt 165  poäng. Tidsestimeringen för arbetsuppgifterna uppskattades till att bli lite lägre än vad de var i  föregående sprint.     Fig.12 ‐ Burndown‐kurva för sprint 3.    Anledningen till den ojämna blåa kurvan berodde på rad sjukdomar som drabbade gruppen  vilket ledde till att gruppen inte var fulltalig vid flera arbetstillfällen. T.ex. vid dag  1 insjuknade  en av projektmedlemmarna och kunde inte arbeta förrän förrän på dag 4. Denna stannade och  arbetade över vilket förklarar det branta steget mellan dag 4 och dag 5.   Mellan dag 9 till dag 12 stannade en av gruppmedlemmerna hemma p.g. a. sjukdom, det vill  säga att bara hälften av den estimerade poängen togs.     Om man bortsåg från arbetstimmarna som gick förlorade på grund av sjukdom tyckte  projektgruppen att det var en bra tidsestimering. Lutningen på den blåa kurvan är nästan  identiskt med den röda kurvan under dagarna då båda medlemmarna arbetade, vilket betydde  att arbetet skedde i samma takt som estimeringen.        0 20 40 60 80 100 120 140 160 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 verklig ideal

(22)

Sprint 4  Som tidigare nämnt tyckte gruppen att totalt elva timmars effektivt arbete per dag var en bra  tidsestimering. Sista sprinten varade i femton dagar vilket ledde till 165 poäng.           Fig.13 ‐ Burndown‐kurva för sprint 4.    Den blåa kurvan sammanfaller med den röda kurvan vilket tyder på att projektgruppen arbetade  som förväntat. Att kurvorna överenstämmer berodde till stor del på att gruppen hade blivit  bättre på att bedöma hur lång tid en uppgift skulle ta att lösa. Att vi var insatta i systemet och  var bättre medveten om hur mycket arbete vi hann med per dag ledde också till en bättre  tidsestimering.            

 

0 20 40 60 80 100 120 140 160 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 verklig ideal

(23)

Resultat  

 

SIMPro 

Projektet resulterade i två system, SIMPro Visio, SIMPro Compiler och en ny vy i TelSIMS. SIMPro  Visio använder makro för att anpassa Microsoft Office Visio så att den passar ändamålet för  projektet. Man kan i SIMPro Visio skapa funktionssekvenser med aktuella funktioner och sätta  parametrar på dessa. Visio‐ritningen öppnas med SIMPro compiler som överför innehållet i filen  till en styrtabell i databasen. Kompilatorn kontrollera att funktionssekvensen är korrekt innan  överföringen till Sybase sker. TelSIMS har en ny vy där man kan beskåda Visio‐ritningar samt se  vart man befinner sig i funktionssekvensen. Man kan även markera ett objekt och se dess  parametrar. 

Jämförelse mot kravspecifikation 

Om man jämför systemet mot kravspecifikation (Se Bilaga A) har alla krav med prioritet 4 eller 5  blivit uppnådda. Alla krav med prioritet 3, möjligen förutom krav nr. 1.1.2 Visa flödet via webb,  har också blivit uppfyllda. Anledningen till varför det är oklart om kravet är uppfylld eller inte  beror på att det kräver för installerad programvara. Flödet beskrivs av Visio‐filer och dessa kan  visas i Internet Explorer om och endast om man har Visio 2007 Viewer installerad. I och med  kravet begränsas av tillgång till programvara anser vi inte att den är uppfylld.

 

Överlämning

  Tieto vill kunna fortsätta utveckla SIMPro efter examensarbetets slut och behöver underlag för  vidareutveckling. Underlaget består av dokumentation om hur systemet är uppbyggt och  fungerar. Dokumentationen är i tre delar, användarmanual (bilaga D, utvecklingsmanual (bilaga  E) samt en installationsmanual (bilaga F). 

Användning 

Det tar längre tid att skapa funktionssekvenser i SIMPro Visio jämfört med tidigare eftersom  innan användes ritningen bara som en mall, nu fungerar den som en riktig funktionssekvens.  Användaren behöver sätta ut rätta kopplingar och tilldela parametrar vilket tidigare inte  behövdes då ritningen bara användes som en skiss. Numera kan man med hjälp av SIMPro  Compiler läsa in ritningen och automatiskt skapa en funktionssekvens av den i styrtabellerna.  Detta tar väsentligt mindre tid än att behöva manuellt mata in funktionerna rad för rad i samt  tilldela variabler.   

(24)

Diskussion 

Arbetsmetodik

Som vi beskrev tidigare försökte vi arbeta enligt Scrum men att vi förenklade vissa delar. Hade vi  gjort projektet idag igen hade vi nog försökt gå en annan väg. Att försöka genomföra Scrum på  två personer medför att det blir mycket svårt att tidsestimera, daily scrum blir nästan  överflödiga (det finns inga projekt på två personer där de involverade inte pratar med varandra  och tar beslut tillsammans dagligen).  Vi utvecklade även två system, SIMPro Visio och SIMPro Compiler samtidigt och fastän de var  separata program så fanns det överlappningar. Vissa saker kunde inte utvecklas i SIMPro  Compiler förrän de var gjorda i SIMPro Visio och vissa saker kunde inte testas i SIMPro Visio  förrän de var implementerade i SIMPro Compiler.  Detta gjorde att prioriteringen på uppgifterna  inte alltid följdes. 

Förstudie

Undersökningen som utfördes under förstudien lade grund till utvecklingen av SIMPro. Vi ansåg  att implementera den färdiga ActiveX‐kontrollen Visio Viewer i TelSIMS var den smidigaste  lösningen. Detta medförde att Microsoft Office Visio blev editorn och vi utvecklade en  kompilator som mellanhand.  Under förstudien undersökte vi mestadels färdiga produkter eller funderade på att bygga ett  nytt system från grunden. ActiveX‐kontrollen Visio Viewer upptäcktes av en slump och inget som  vi medvetet letade efter. Om vi hade ändrat fokusen från färdiga produkter till mindre  komponenter såsom ActiveX‐kontroller skulle kanske projektet idag haft en annorlunda lösning.  

Förbättringar 

Det är tänkt att SIMPro ska helt och hållet ersätta det gamla systemet med manuel inmatning av  systemtabeller till databasen. Dock är detta ett stort steg och det finns problem med detta som  fortfarande behöver lösas.  

Containervariabler 

Containervariabler är variabler som är gemensamma för flera funktionssekvenser.  Som det  fungerar idag skapar Tieto Container som innehåller ett flertal funktionssekvenser och tilldelar  variabler som är gemensamma för hela Containern. Detta kan man ej göra med SIMPro i dagens  läge.  

Subsekvenser 

Det är även problem med utdaterade subsekvenser. I dagens läge anger man vilken version av  en subsekvens man vill använda när man skapar funktionssekvenser. Om det kommer en ny  version av den inblandade subsekvensen så kommer fortfarande funktionssekvensen att  använda sig av den äldre versionen. Det finns alltså ingen stöd om man vill att en  funktionssekvens ska alltid kalla på den senaste subsekvensen. 

Användartester

  I början av planeringen bestämde vi oss för att utföra användartester med jämna mellanrum.  Detta har dock blivit försummat då de potentiella testpersonerna var personal på Tieto och var  oftast upptagna med egna arbetsuppgifter. Dessutom hade vi dagligen kontakt med kunden, 

(25)

Istället för att blanda in användare testade vi själva genom att ge oss själva uppgifter som vi ska  göra med systemet. Dessa tester gav oss feedback på om systemet betedde sig som önskat och  hur lång responstiden var. Nackdelen med dessa tester var att vi själva kände till systemet och  visste exakt vilka knappar man skulle trycka på för att utföra en sak.   Om vi hade haft användartester skulle kanske utseendet på systemet har varit annorlunda.  Funktionsmässigt tvivlar vi på att det skulle vara någon skillnad då vi arbetade efter  kravspecifikation (se Bilaga B) som ständigt uppdaterades med användarnas och kundens  önskemål. Att inte ha några användartester innebad också att vi fick med tid att utveckla  systemet, om vi istället hade lagt ner tid på att förberedda och analysera användartesterna  skulle vi antagligen inte ha hunnit lika långt med de funktionella delarna av systemet.     

(26)

Bilaga A ­ Kravspecifikation 

  Kravspecifikation   Senast modifierad 2009‐09‐12  Nr Namn Prioritet 1.0 Visualisering av funktionssekvenser

1.1 Kunna visa ett flöde 5

1.2 Inläsning från fil 5

1.3 Visa förklarande text i samband med objekt 2

1.4 Länka samman objekt med pilar 5

1.5 Visualisera vart i flödet man befinner sig 4 1.6 Visa flödet inbäddat i TelSIMS 5

1.7 Visa flödet via webb 3

1.8 Möjlighet att kunna zooma 3

1.9 Kunna visa subsekvenser 5

1.10 Visningsbilden skall alltid visas på samma sätt 5

2.0 Interaktivitet

2.1 Möjlighet att markera objekt 3

2.2 Visa parametrar hos markerat objekt 3

2.3 Kunna påverka flödet 2

3.0 Levererbarhet

3.1 Kunna leverera applikationen till dess användare 5

 

(27)

Bilaga B – Kravspecifikation uppdaterad 

  Kravspecifikation   Senast modifierad 2010‐01‐14  Nr Namn Prioritet 1.0 Visning av funktionssekvenser

1.1 Kunna visa ett flöde 5

1.2 Inläsning från fil 5

1.3 Visa förklarande text i samband med objekt 2

1.4 Länka samman objekt med pilar 5

1.5 Visualisera vart i flödet man befinner sig 4 1.6 Visa flödet inbäddat i TelSIMS 5

1.7 Visa flödet via webb 3

1.8 Möjlighet att kunna zooma 3

1.9 Kunna visa subsekvenser 5

1.10 Visningsbilden skall alltid visas på samma sätt 5

2.0 Interaktivitet

2.1 Möjlighet att markera objekt 3

2.2 Visa parametrar hos markerat objekt 3

2.3 Kunna påverka flödet 2

3.0 Levererbarhet

3.1 Kunna leverera applikationen till dess användare 5

4.0 Skapande av ny funktionssekvens

4.1 Olika former för olika objekttyp 5 4.2 Olika kopplingar mellan objekten 5 4.3 Kunna använda befintliga funktioner 5

4.4 Kunna tilldela parameter 4

4.5 Sätta "default" felutgång 3 4.6 Kunna välja version på subsekvens 2

5.0 Kompilering av funktionssekvens

5.1 Läsa in en Visio-fil 5

5.2 Ladda upp flödet till databasen som en styrtabell 5

5.3 Felkontroll av parametrar 4

5.4 Kunna sätta version på funktionssekvensen 2

6.0 Container

6.1 Tilldela funktionssekvenser till en Container 2

(28)
(29)

Bilaga C ­ Förstudie 

 

(30)

 

   

(31)

           

(32)

   

   

(33)

Bilaga D – SIMPro User Manual 

 

1. SIMPro Visio – User Manual 

  To start using SIMPro Visio you have to create a new document from template, or double click  on the “SIMPro Visio Mall v1.0.vst” file.  If you’r Visio tells you that “Macros have been disabled”  you will have to activate them, if you need help with that there is a guide in section 3 that will  show you how.    Login with your Sybase account and press “Verify”. 

(34)

In the list at the bottom write or select the Bolag you will be working with and press “Ok”, the  macro will then get all functions and subsequences from Sybase and add them to your “External  Data” window.    You are setup and ready to start building the first sequence.    There is two ways to create shapes:  1. Drag a shape from the “Former” or “Shapes” window in to the page and drop it, this will  create an empty shape wich will require an external link from the “External Data”  window. 

(35)

window and drag and drop it to the empty shape in the document.    2. The second way to create a shape is to first select the type of shape in the  “Former”/”Shapes” window, then drag a row from the “External Data” window and drop  it on the page.When setting up parameters for the shapes click on the shape you wish to  change and its parameters should show in the “Formdata”/”Shape Data” section, if  there is no such window visible click on “Visa”/”View” in the menu and look for the  “Formdatafönster”/”Shape Data Window”.     Connecting shapes is done by adding green, red and dashed arrows. The green arrows will  interpret as “Ja/Ok”, the red arrows are “Nej/Interupt” and the dashed arrorws represent “Fel”  when uploaded as a function sequence in the Systemtabeller.      Uploading the above visio file with SIMPro Compiler will result in a function sequence that looks  like below. 

(36)

 The last object in the shape stencil is the “Felutgång” wich adds “Fel” connections from all  objects, except FS‐Start and FS‐Avslut, to the object that’s connected with the “Felutgång”. The  same visio file after adding a “Felutgång” would look like.    After compilation in SIMPro Compiler the function sequence have two “Fel” connections added  to them      

(37)

2. SIMPro Compiler – User Manual 

  1.1 Log In  The first thing you need to do in SIMPro Compiler is to log in. Simply click on the “Log In” button  and the login‐window will pop up.   Log in    Fill in your userId and password and chose an enviroment in the dropdown‐list. Once you’ve  logged in you will be working in the chosen enviroment. If you want to change the enviroment  you have to log out and log in again. Please make sure that you are either behind Telias firewall  or logged in through it before you try to log in.     1.2 Open a Visio Document  The “Open Visio Document” button will be enblad when you have successfully logged in. Clicking  on the button will open a window where you can choose which visio document to open. The  default directory is “My Documents”.  Opening a file will automatically initialize a validation of the Visio drawing. If there exists any  errors in the file, an ErrorList window will pop‐up with all the found errors listed. If the file  validated without any errors, you can submit it to the database.    1.2.1 ErrorList  If there are any errors in the Visio drawing the ErrorList window till automatically pop‐up. It lists  all the errors found by the SIMPro compiler and these errors need to be corrected, in the Visio  file not in SIMPro Compiler, before you can submit the file to the database.   You can select a row in the list and the corresponding shape will be shown in red.  

(38)

        ErrorList        1.3 Submit a file to Sybase  If no errors were found after opening a file, the “Submit to Database” button will be enabled.  Make sure that the file name is the name of the function sequence you want to add to the  database. If there are any older versions of the function sequence, these will be shown in the  dropdown list. You can’t write any of these versions in the “Version” field since you can’t rewrite  any existing versions.   Press “OK” to submit the file to the database. A modified version (with layers and green shapes)  will be uploaded into Docio and the function sequence will be uploaded into System Table.    Submit  1.4 Log Out  Simply click on the “Log Out” button if you want to log out.  

 

(39)

3. Enabling macros in Visio  

  This guide is copied from Microsoft’s help center, link is provided in the end. Fastest solution is  to use the “Enable all macros” option but if you are working with a lot of different visio  templates and documents the safest solution is to enable macros temporary every time you use  them.  1. On the Tools menu, click Trust Center.  2. Click Macro Settings.  3. Click the options that you want:  o Disable all macros without notification Click this option if you don't trust  macros. All macros in documents and security alerts about macros are disabled.  If there are documents with unsigned macros that you do trust, you can put  those documents into a trusted location. Documents in trusted locations are  allowed to run without being checked by the Trust Center security system.  o Disable all macros with notification This is the default setting. Click this option  if you want macros to be disabled, but you want to get security alerts if there  are macros present. This way, you can choose when to enable those macros on  a case by case basis.  o Disable all macros except digitally signed macros This setting is the same as the  Disable all macros with notification option, except that if the macro is digitally  signed by a trusted publisher, the macro can run if you have already trusted the  publisher. If you have not trusted the publisher, you are notified. That way, you  can choose to enable those signed macros or trust the publisher. All unsigned  macros are disabled without notification.   o Enable all macros (not recommended, potentially dangerous code can  run) Click this option to allow all macros to run. This setting makes your  computer vulnerable to potentially malicious code and is not recommended.  o Trust access to the VBA project object model  This setting is for developers and  is used to deliberately lock out or allow programmatic access to the VBA object  model from any Automation client. In other words, it provides a security option  for code that is written to automate an Office program and programmatically  manipulate the Microsoft Visual Basic for Applications (VBA) environment and  object model. This is a per user and per application setting, and denies access by  default. This security option makes it more difficult for unauthorized programs  to build "self‐replicating" code that can harm end‐user systems. For any  Automation client to be able to access the VBA object model programmatically,  the user running the code must explicitly grant access. To turn on access, select  the check box.  Text from http://office.microsoft.com/en‐us/visio/HA100310711033.aspx         

(40)

Bilaga E – SIMPro Developer’s Guide 

 

1. SIMPro Compiler 

 

1.1 Error Messages  Most of the error messages explain where the error has occurred. There are two types of error  messages, messages generated by Sybase and messages generated from SIMPro Compiler.   Messages generated by Sybase often starts with “ERROR” followed by where the error has  occurred in brackets and the error message itself. It handles errors that involve connections to  Sybase. SIMPro Compiler’s error message handles error in the Compiler and the Visio drawing.     1.2 Areas to improve  SIMPro Compiler still has areas that need improvements.     1.2.1 ErrorList  There is also no way to make the ErrorList visible again if you close it. This should be corrected  by adding an option in the taskbar (for example checkbox or button) to open the ErrorList.     1.2.2 Less logic  SIMPro Compiler have alot of logic itself, it validates parameters by reading and store  information from the database and then compare the given parameters with the stored data.  Instead of validating the parameters itself, it should make procedure calls and let them handle  the validation.     1.2.3 Copies of Connectors  Copies of connectors are made and assigned a layer each. This is unessessary since the copies  and layers are not used.     1.2.4 Enviroment  The enviroment you are working in does not show in the header.     1.2.5 Shape window  SIMPro Compiler shouldn’t show the shape window since you should not modify the Visio  document in the compiler. We havn’t found a way to close the shape window automatically,  only a toggle method that close the shape window if it is opened and open it if it is closed.     1.2.6 The “tom.vsd” file  There is a file named “tom.vsd” in the “Resources” folder. It’s used as a clear workspace  function as the Visio activeX component clears all parameters and gives the program a fresh  start when loading in the new visio document.     There should be a way to make the activeX component to create a new file without having to  link to “tom.vsd”.     

(41)

2. SIMPro Visio 

  2.1 Areas to improve    2.1.1 FS‐start  Controlling that every Visio file contains one, no more no less, “FS‐Start”. Add check when  adding the “Start” shape to check for any other “Start” shape already present in the document.    2.1.2 Parameter popup  Creating a popup for entering parameters to functions. A subject that could get big depending  on how much support the users wants/requires. User demands this far have been bigger fields  for inputs in the “Note” field, a search function for “Aktivitet”, “TeamID” and “BeordringsKod”  and some kind of indikator showing wether a parameter is mandatory or not.      The popup should get called at the end of:  ThisDocument.Document_ShapeAdded(Shape)  and  ThisDocument.vsoApplication_ShapeLinkAdded(Shape)  in the Visio template file, that’s also the file which the popup should get inplemented in.    Controlling that every visio file contains one, no more no less, ’FS‐Start’. Add check when adding  the “Start” shape to check for any other “Start” shape already present in the document.    2.1.3 Access depending on BolagsID  An improvement that might make it easier for the user is to only list the functions and  subsequences that the user can work with depending on what “BolagsID” that she’s working  with for the moment. It looks like the Visio “External Data” window only can work with selects  from the ODBC data source. An easy fix for this (but it would add the “BolagsID” as a hidden  property in all the shapes) is to use:  “select * from VIEW where BolagsID = ‘bolagsID’ ”  The views do not include the BolagsID as it looks today and since it looks like visio can’t call  procedures to populate the “External Data” section we can’t send the “BolagsID” as an in  parameter. 

(42)

3. SIMPro 

  3.1 Areas to improve    3.1.1 ODBC‐connection  Automatically installing ODBC connection DNS’s for required/suitable enviroments in the system  registry would make installation of SIMPro easier. Also it would be useful to list all the registred  DSN’s when using the Visio and Compiler instead of adding them manually in the source code.  The difficult part is selecting what enviroments to install since different users have need for  different enviroments.     You can set up a DSN with code and also write code to add the registry entrys that you need to  an existing DSN. In “Kör”/”Run” (Press the “Start” button in the down‐left corner of your screen,  the “Kör”/”Run” button should be in the window) write “regedit” and then look for any of the  below:     HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources  HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources     We recommend using the local_machine link since it’s used by all users on that same computer  and that should make it easier if they have access to the same enviroments. The second row  could be used to allow different employees on the same computer to have different access  rights.  

(43)

4. Working with Visio documents

    4.1 Getting started  To be able to work with Visio documents in C#, Microsoft Visio have to be installed on the  computer and you also need some other dlls. They are:   AxInterop.Microsoft.Office.Interop.VisOcx  Microsoft.Office.Interop.Visio  Microsoft.Office.Interop.VisOcx    4.2 Shape Data  Information about the shapes are stored in cells in Visio. Each shape has their own shapesheet  which holds all data about the shape.     Fig 1. Shape Sheet in Visio.   

(44)

Fig 1. Shows the shapesheet for a shape. You can see that the parameters for the shape are  defined in the table “Shape Data”. To get the function name for the shape, you need to specify  the row (in this case “Prop._VisDM_FunkSekvNamn”). To get the function name for the shape in  C#, write:     String name =

visioShape.get_Cells("Prop._VisDM_FunkSekvNamn").Formula; 

  where “visioShape” is the shape you read.  Here, “Formula” returns the data specified in the column “Value”.     Another way to get the data stored in the cell is to use:   

String name = visioShape.get_CellsSRC(

(short)Visio.VisSectionIndices.visSectionProp, (short)((short)Visio.VisRowIndices.visRowProp + 0), (short)Visio.VisCellIndices.visCustPropsValue).Formula

; “visSectionProp” indices the property section.   “visRowIndices” specifies the row, “visRowProp + 0” is the first row, “visRowProp + 1” is the  second row and so on.   “visCellIndices” specifies the row, for example,  “visCustPropsValue” is the “Value” column and  visCustPropsFormat is the “Format” column.     Sometimes, it’s better to use “ResultIU” instead of “Formula”. For example if you want to get  the position in x (Pinx).   Fig 2. Shape sheet example  C# code to get the value in PinX is:    

decimal pinX = visioShape.get_Cells("PinX").ResultIU 

 

You can also modify the shape data by:    

visioShape.get_Cells("PinX").ResultIU = 200;

Note that an attempt to read data from non‐existent cells will cause an exception so make sure  you know that the cells really exists or be sure to catch the exception.

(45)

4.3 Dropdown‐list  The value in a dropdown‐list in Visio is a bit tricky to get. The index of the selected item is stored  in the “Value” column while the items are stored in the “Format” column. To get the selected  item you have to find out the index (in this case, “2”) and then check which is the third (since the  index starts from 0) item (in this case, “Semi”).     Fig 3. Shape Sheet dropdown‐list example     

(46)

Bilaga F – SIMPro Installation Manual 

    To use SIMPro you will need a licensed version of Microsoft Office Visio 2007 or later (Should work with  Microsoft Office Visio 2003 but there is not enough testing done).    To be able to connect to the Sybase database you will need to install the Sybase ASE ODBC Driver.  The installation file is located at (note that the 12.5.2 version could change in the future).  “\\ask\Software\Telsimsutv\Utvecklingsverktyg ‐ programvara\Sybase\ASE PC klient för alla normala  windows klienter\pcclient_1252\Autorun.exe”    Run the Exe:        Choose the ”Install PC Client Components” option.     

(47)

Press “Next”.      Select language in the top dropdown and agree to the license agreement, press “Next”.          Select the destination directory or if the path is ok press “Next”.          Press “Yes”. 

(48)

    Select “Custom” and press “Next”.          Select the ODBC checkbox, you can uncheck all other options, and press “Next”.   

(49)

    Press “Next”.          Press “Next”.          Press “Finish” and our installation of Sybase is done. 

(50)

ODBC DataSource Setup 

  After installation of Visio and the Sybase Driver you should set up the database source.  There is two ways to get to open the ODBC Administrator:  1. Navigate to “C:/Windows/System32” and double click the executable file named “odbcad32.exe”.  2. Pick up the “Run” window from the start menu or with the windows‐button + R key combination.  Type “ odbcad32.exe “ in the prompt and click “Ok”, this should work but there have been occasions  where some computers have returned that they couldn’t find the “odbcad32.exe”.        Mark the “System DSN” and press the “Add” button.          Select the “Sybase ASE ODBC Driver” and press “Finish”.   

(51)

    Enter the Name and adress of the datasource and press “Ok”. Remake this procedure for every  enviroment you want access to.    Suggested enviroments 2010‐01‐13 were:  ISUTV02  isutv02db.han.telia.se,3700  ISACC02  isacc02db.han.telia.se,3777  SIM01  prodtelsims.kal.telia.se,8600  ISSYS03  issys03db.han.telia.se,3130  ISSYS04  issys04db.han.telia.se,3190 

References

Related documents

L3 menar att även om pojkar anses ha en fördel i ett praktiskt ämne som idrott av att generellt sett vara starkare rent fysiskt än flickor så ska inte det hindra flickor från

One quarter of the additional arable land was allocated to ley crop production, which was used as a green manure in the sugar-beet crop... Arable land used for production of

Detta gäller så länge som in-spridning av strålning inte beaktas, dvs så länge som den strålning som sprids från partiklar/volymselement inte anses kunna reflekteras och bidra

This survey will also assist the CIGRE C4.47 PSR WG in directing the focus of Task Teams 2 and 3 towards practical issues in order to maximise the impact

Uppsatsen syftar till att förklara om det finns ett samband mellan grundarnas humankapital i form av tidigare entreprenöriella erfarenheter, tidigare erfarenheter av startupföretag,

In particular robotic systems with symbolic components need to solve the anchoring problem in order to connect the information present in symbolic form with the sensor data that

The ideas presented here builds generally on a long history of work with mobile services [6] but more specifically on a diary study of Internet use from cell phones [9] and

Några av slutsatserna från dessa studier är att jordbrukstraktorns transmission drabbas av mer än hälften av haverierna och att kostnaderna för transmissionshaverier uppgår