SAS Indkøbsanalyse Lasse Olsen, konsulent Jesper Krogsgaard, seniorkonsulent Professional Services Division
Agenda Generelt om SAS Indkøbsanalyse SaaS hvordan det? Dataflow, snitflader og server setup Løsningsarkitektur XML Rapportering Dataflux - kategorisering Schedulering Sikkerhed
Generelt om SAS Indkøbsanalyse Lidt baggrundsviden - Lovgivning om Elektronisk fakturering Elektronisk fakturering betyder, at offentlige myndigheder skal kunne modtage og sende regninger elektronisk Basis for en standardsnitflade for XML filer Virksomheder skal omforme fakturaer til OIOXML eller OIOUBL format Dette kan gøres på følgende måder 1. Gennem et modul til det eksisterende økonomisystem 2. Gennem virk.dk 3. Via et læs_ind bureau
Generelt om SAS Indkøbsanalyse Lidt baggrundsviden - Historien bag ideen Vinter 2008/2009 Indkøbsstyringskoncept udtænkes af Per Tolstrup, Indkøbschef, Viborg Kommune og Thomas Schultz, BA, SAS Institute på baggrund af en række udfordringer i kommunerne: Der er manglende automatisk opdateret overblik over: Hvem køber ind, og hvad købes ind (kr., volumen, ændringer) Hvilke leverandører benyttes (kr., volumen, ændringer) Indkøb inden for/uden for kontraktleverandører (kr., volumen, ændringer) Dette medfører: Svært at rådgive decentrale budgetenheder vedrørende bedre indkøbsvaner Svært at skabe overblik over lovpligtige udbudsområder Svært at detaljere udbudsbeskrivelser og opnå den bedst mulige pris Svært at sikre læring internt i organisationen Udgifter til konsulentfirmaer for manuelt rapporterings- og analysearbejde Ørkesløs fakturabladring Svært at dokumentere resultater og effekten af indsatser og initiativer
Generelt om SAS Indkøbsanalyse Lidt baggrundsviden - Historisk udvikling Foråret 2009 SAS undersøger realiseringen og udførslen af indkøbsstyringsprojektet En løsning baseret på DataFlux vælges. Et integreret SAS-produkt DataFlux kategoriseringsmotoren udvikles til indkøbsløsningen SAS afdækker behovet for en indkøbsløsning i markedet På baggrund af dette besluttes det at udvikle en SaaS løsning
Generelt om SAS Indkøbsanalyse Lidt baggrundsviden - Historisk udvikling Sommer 2009 Data warehouse opbygges Udvikling af snitflader og jobs til indlæsning af disse Undersøgelse af OIOXML struktur Udvikling af matchlogik til DataFlux motor Modtager data fra udviklingskommuner Test af DataFlux kategoriseringsmotor
Generelt om SAS Indkøbsanalyse Lidt baggrundsviden - Historisk udvikling Efterår 2009 Udvidelse af matchlogik baseret på data fra udviklingskommuner Udvikling af jobflows og logik i SAS Data Integration Studio Integration mellem DataFlux og SAS Udvikling af STP-rapporter og kuber Sikkerhedsopsætning Produktionsmiljø Test
Generelt om SAS Indkøbsanalyse Lidt baggrundsviden - Historisk udvikling 15. december 2009 Idriftsættelse af de første seks kunder Vinter og forår 2010 Idriftsættelse og overlevering til 17 kunder Kundebesøg, videreudvikling, løbende skalering, tilpasninger og drift
SaaS hvordan det? Tre i én: Software as a Service Solution as a Service SAS as a Service SAS står får al software og hardware pay and play FTP server til upload af data og evt. download af returdata Fordele Hurtig implementering Kendte udgifter Stordriftsfordele Ulemper One-size fits all
Logisk dataflow Front-end BI-lag DI-lag OIO XML XML Mapper DWH EAN Snitflade FTP Snitflade indlæsning Aftale Snitflade Datamarter Matchregler DataFlux Data Quality Kategorisering SAS Portal Kuber Rapportgenerering Datamarter, Kuber m.m.
Server setup Front-end BI-lag DI-lag Jboss Metadata server FTP server Work space server Work space server OLAP server DataFlux Integration server STP server LSF Platform Process Manager
Data fra over 20 forskellige kunder Brug fælles generiske snitflader For at håndtere data fra over 20 forskellige kunder anvender løsningen generiske snitflader Men hvad er det? OIOXML alle offentlige myndigheder modtager fakturaer i OIOXML format Aftalesnitflade EAN-hierarki snitflade Tips: Brug eksisterende snitflader Hvis eksisterende fælles snitflader findes så brug dem. F.eks. OIOXML. Anvend generelle filformater Undgå f.eks. Excel format, men brug i stedet CSV eller tabulator separeret fil. Brug generisk struktur Undgå f.eks. en snitflade med plads til fire organisatoriske hierarkier, men anvend i stedet en parent-child struktur.
Parent-child struktur Eksempel Parent Child Tekst Top 1 Borgmesterens afdeling 1 1.1 Personale 1 1.2 Budget Top 2 Børn & Unge 2 2.1 Skoler Org niveau 1 Org niveau 2 Borgmesterens afdeling (1) Borgmesterens afdeling (1) Personale (1.1) Borgmesterens afdeling (1) Budget (1.2) Børn & Unge (2) Børn & Unge (2) Skoler (2.1)
Løsningsarkitektur XML indlæsning XML indlæsning via foruddefinerede XML maps XML Faktura XML map XML libname SAS Datasæt
Løsningsarkitektur XML indlæsning XML maps laves i SAS XML mapper
Løsningsarkitektur JKG/LEO Jobs fra A-Å (fra XML til JSP)
Løsningsarkitektur XML indlæsning Hver kunde har et stort antal fakturaer Der loopes over hver kundes XML-fil Gennemløb af faktura Append til kundedata Bestemmelse af fakturatype Indlæsning af faktura Bestemmelse af XMLmap
Data leveret hvad så? SAS Information Delivery Portal 4.2
Adgang til ni STP rapporter og to WRS rapporter Samme rapporter for alle kunder forskellige data
Adgang til ni STP rapporter og to WRS rapporter Samme rapporter for alle kunder forskellige data En STP dækker alle kunder STP kode er ens for alle kunder eneste forskel er placering af data libname Libname assignes i forhold til placeringen af STP rapporten (metadata) Eksempel: %let kundenavn = %scan(&_metafolder,2,'/'); libname data C:\datamarter\&kundenavn.\data\ ;
DataFlux Kategorisering af indkøb DataFlux Finder mønstre i data Standardiserer og beriger data Integration med SAS
DataFlux Kategorisering - Klassificeringshierarki UNSPSC United Nations Standard Products and Services Code
DataFlux Kategorisering - Klassificeringshierarki UNSPSC United Nations Standard Products and Services Code
DataFlux Kategorisering Fakturalinie 3000< forretningsregler 24000< matchregler fordelt på 6 ordbøger 39000< Matchrulewords 20742 UNSPSC koder
DataFlux Kategorisering
DataFlux jobs integreret i DI Studio Fra 9.2 DataFlux jobs kan integreres direkte i DI Studio
Løsningsarkitektur Schedulering flows i flows
Løsningsarkitektur Job id i flows Schedulering via LSF Process Manager giver hvert flow et unikt ID Ved at anvende dette flow ID, kan flowet ved hjælp af en styretabel køre parallelt for flere kunder på samme tid
Løsningsarkitektur Job id i flows LSB_JOBNAME (Environment variabel) Kan kaldes i jobs, der kører via LSF Process Manager /* Get Environment varibal LSB_JOBNAME */ %let LSB_JOBNAME=%sysget(LSB_JOBNAME); /* Find LSF job id */ %let lsf_id = %scan(&lsb_jobname,1,':'); /* Find LSF user */ %let lsf_user = %scan(&lsb_jobname,2,':'); /* Find LSF Flowname */ %let lsf_flowname = %scan(&lsb_jobname,3,':'); /* Find LSF jobname */ %let lsf_jobname = %scan(&lsb_jobname,4,':'); Indeholder (eksempel): 101:.\sasdrift:testflow:testjob_2{A5F4H03D.C000004R}
Løsningsarkitektur Job ID i flows LSB_JOBNAME (Environment variabel). Kan kaldes i jobs, der kører via LSF Process Manager. /* Get Environment varibal LSB_JOBNAME */ %let LSB_JOBNAME=%sysget(LSB_JOBNAME); /* Find LSF job id */ %let lsf_id = %scan(&lsb_jobname,1,':'); /* Find LSF user */ %let lsf_user = %scan(&lsb_jobname,2,':'); /* Find LSF Flowname */ %let lsf_flowname = %scan(&lsb_jobname,3,':'); /* Find LSF jobname */ %let lsf_jobname = %scan(&lsb_jobname,4,':'); Indeholder (eksempel): 101:.\sasdrift:testflow:testjob_2{A5F4H03D.C000004R}
Løsningsarkitektur Job ID i flows Styretabel Job_id Kunde_id 101 1 102 5 Betingelse i jobbet select kunde_id from Styretabel Where job_id=&lsf_id
Løsningsarkitektur Sikkerhedsovervejelser Fysisk sikkerhed OS sikkerhed Metadatasikkerhed
Løsningsarkitektur Sikkerhedsovervejelser - Fysisk sikkerhed Ekstern Hostingpartner Sikrede serverrum Garanteret oppetid på maskiner og netværk Backup Adgangssikkerhed SAS Brugernavne og passwords opbevares i krypteret form Fysisk tilsendte data opbevares i brandsikret pengeskab, eller efter aftale med kunden
Løsningsarkitektur Sikkerhedsovervejelser
Løsningsarkitektur Sikkerhedsovervejelser
Løsningsarkitektur Sikkerhedsovervejelser - OS sikkerhed Sikkerhed i Windows servermiljø Harmonerer med metadatasikkerhed Der patches på OS niveau efter fastlagte rutiner Kundedata flyttes fra FTP server til back-end server flere gange dagligt Administrative adgange og brugeradgange revurderes regelmæssigt Brug af systemet logges udførligt
Løsningsarkitektur Sikkerhedsovervejelser - Metadatasikkerhed ACT er Best Practice for anvendelse af ACT er Designe datavarehuset ud fra et sikkerhedsperspektiv Færrest mulige ACT er Gennemskuelighed Ingen konflikter mellem ACT er Ingen ACT er på serverniveau 1 primær ACT pr. kunde der sættes på kundemappen under rapportering på folderniveau 1 sekundær ACT pr. kunde til Web Report Studio brug Tips: Brug kun ACT er på grupper Aldrig direkte på brugere. En bruger kan dog være med i mange grupper. ACT er må kun give adgang ACT er med eksplicitte grupper (Ikke PUBLIC og SASUSERS) må kun give Grant aldrig Deny Kombiner ACT er Hvis det er nødvendigt, kan ovenstående ACT er kombineres med en ACT med Deny på RM for SASUSESRS
Løsningsarkitektur Sikkerhedsovervejelser Portalsikkerhed Sikkerhed på kundefaneblade styres på Portal_<Kundenavn> Sikkerhed på portlets styres på IS_<Kundenavn> Alle CPR-numre fjernes, så de udelukkende fremstår med [CPR] i rapporteringsdata Alle kommuner har egne adskilte rapporteringsdata, der er sikret med logiske og fysiske sikkerhedsmekanismer
Spørgsmål? Vi anbefaler i øvrigt 3/6 kl. 09:30 SAL 3 SAS Indkøbsanalyse i praksis Bedre forbrugsoverblik i Skanderborg Kommune med SAS Indkøbsanalyse, Søren Hvilsted, Skanderborg Kommune 3/6 kl. 13:00 SAL 3 SAS på internettet Information om SAS på internettet, Christian Christensen, SAS Institute 3/6 kl. 13:30 Plenum Dataintegration og best practice Dataintegration og best practice vejen til et godt data warehouse, Niels-Kenneth Nielsen, SAS Institute 3/6 kl. 14:30 SAL 3 Datakvalitet DataFlux dfpower Studio og DataFlux Integration Server software, Ole Steen, SAS Institute
Lasse Olsen Jesper Krogsgaard sdkleo@sdk.sas.com sdkjkg@sdk.sas.com