From: Sandersen Frank To: Alexander Rødseth CC: Hans Kristian Fjeld , Jo Sama , Lena Andersen Subject: RE: EIS web service dokumentasjon Date: Sat, 2 Aug 2014 09:45:51 +0000 Hei, Jeg har ferie en uke til men sender litt foreløpig info om web servicen i tilfelle du vil se på dette nå. Vedlagt finner du wsdl kontrakt. Nedenfor har jeg klippet litt fra dokumentasjonen (som ikke er helt ferdig enda) slik at du skal få noe å teste med. Håper det snart ordner seg med tilgang for meg på deres ephorte server. 1 Web metoder Dette kapitelet inneholder de forskjellige web metoder i LCS2Ephorte - metodenavn, beskrivelse og .net kode-eksempel som viser bruk: 1.1 Metode: Test Hensikten med metoden er å teste at web servicen fungerer uten at man oppdaterer noe i Ephorte. Metoden forventer userId=X00059 Hvis userId angis til noe annet vil det retuneres en feilmelding. Eksempel: var ephorteUserTest = proxy.Test("UIO", "X00059"); if (!ephorteUserTest.HasError) { Console.WriteLine(string.Format("User {0} found", ephorteUserTest.UserId)); } else Console.WriteLine(string.Format("{0}", ephorteUserTest.ErrorMessage)); 1.2 Metode: TestWithEphorte Hensikten med denne metoden er å teste web servicen og samtidig gjøre et reelt oppslag mot brukertabellen i Ephorte. Her må man angi en gyldig Ephorte database og et gyldig Ephorte brukernavn. Eksempel: var ephorteUserTest = proxy.TestWithEphorte("UIO", "EPHORTE-UIO", "BJOJO"); if (!ephorteUserTest.HasError) { Console.WriteLine(string.Format("User {0} found", ephorteUserTest.UserId)); } else Console.WriteLine(string.Format("{0}", ephorteUserTest.ErrorMessage)); 1.3 Metode: GetAllOrgUnits Denne metoden returnerer alle aktive (ikke nedlagte) organisasjonsenheter fra Ephorte. Brukere er ikke direkte koblet til organisasjonsenheter men deres rolletilganger er det. Eksempel: var ephorteOrgUnits = proxy.GetAllOrgUnits("UIO", "EPHORTE-UIO"); if (!ephorteOrgUnits.HasError) { foreach (EphorteOrg org in ephorteOrgUnits.OrgUnits) Console.WriteLine(string.Format("Org found: {0} ({1}) - {2}", org.OrgId, org.Name, org.IsTop ? "Top org" : "Not top org")); } else Console.WriteLine(string.Format("{0}", ephorteOrgUnits.ErrorMessage)); 1.4 Metode: GetAllRoles Denne metoden returnerer alle roller. Disse benyttes sammen med organisasjonsenheter når man skal tilordne rolletilganger til en bruker. Eksempel: var ephorteRoles = proxy.GetAllRoles("UIO", "EPHORTE-UIO"); if (!ephorteRoles.HasError) { foreach (EphorteRole role in ephorteRoles.Roles) Console.WriteLine(string.Format("Role found: {0} - {1}", role.RoleId, role.Description)); } else Console.WriteLine(string.Format("{0}", ephorteRoles.ErrorMessage)); 1.5 Metode: GetAllAccessCodes Denne metoden returnerer alle aktive tilgangskoder. Disse benyttes sammen med organisasjonsenheter når man skal gi en bruker en autorisasjon. Eksempel: var ephorteAccessCodes = proxy.GetAllAccessCodes("UIO", "EPHORTE-UIO"); if (!ephorteAccessCodes.HasError) { foreach (EphorteAccessCode accesscode in ephorteAccessCodes.AccessCodes) Console.WriteLine(string.Format("Access code found: {0} - {1}", accesscode.AccessCodeId, accesscode.Description)); } else Console.WriteLine(string.Format("{0}", ephorteAccessCodes.ErrorMessage)); 1.6 Metode: GetUserDetails Denne metoden returnerer kontaktinformajon om bruker samt lister med brukers rolletilganger og autorisasjoner. Eksempel var ephorteUser = proxy.GetUserDetails("UIO", "EPHORTE-UIO", "BJOJO"); if (!ephorteUser.HasError) { Console.WriteLine(string.Format("Details for user {0} found: {1} roles and {2} authorizations", ephorteUser.User.UserId, ephorteUser.UserRoles.Count(), ephorteUser.UserAuthorizations.Count())); } else Console.WriteLine(string.Format("{0}", ephorteUser.ErrorMessage)); 1.7 Metode: GetAllUsers Denne metoden returnerer en liste med alle aktive (gyldige) brukere. Hver bruker inneholder kontaktinformasjon. Skal man ha mer informasjon om den enkelte bruker må man kalle GeUserDetails() for den enkelte bruker. Eksempel: var ephorteUsers = proxy.GetAllUsers("UIO", "EPHORTE-UIO"); if (!ephorteUsers.HasError) { Console.WriteLine(string.Format("Users found: {0}", ephorteUsers.Users.Count())); foreach (EphorteUser user in ephorteUsers.Users) { Console.WriteLine(string.Format("User found: {0} - {1}", user.UserId, user.FullName)); var ephorteUser = proxy.GetUserDetails("UIO", "EPHORTE-UIO", user.UserId); if (!ephorteUser.HasError) { Console.WriteLine(string.Format("Details for user {0} found: {1} roles and {2} authorizations", ephorteUser.User.UserId, ephorteUser.UserRoles.Count(), ephorteUser.UserAuthorizations.Count())); } else Console.WriteLine(string.Format("{0}", ephorteUser.ErrorMessage)); } } else Console.WriteLine(string.Format("{0}", ephorteUsers.ErrorMessage)) 1.8 Metode: EnsureUser Denne metoden oppretter bruker hvis denne ikke finnes fra før. Hvis bruker finnes fra før vil kontaktinformasjon oppdateres ved behov. var newUser = new EphorteUser { UserId = "OLANOR5", FirstName = "Ola", LastName = "Nordmann", FullName = "Ola Nordmann", EmailAddress = "ola.nordmann@norge.no", Telephone = "12345678", Mobile = "99911999", StreetAddress = "Postveien 1", ZipCode = "3960", City = "Stathelle", }; var response = proxy.EnsureUser("UIO", "EPHORTE-UIO", newUser); if (!response.HasError) Console.WriteLine(string.Format("User created/updated: {0}", newUser.UserId)); else Console.WriteLine(string.Format("{0}", response.ErrorMessage)); 1.9 Metode: DisableUser Denne metoden vil deaktivere angitt bruker slik at denne ikke kan benyttes for innlogging. Eksempel: var response = proxy.DisableUser("UIO", "EPHORTE-UIO", "KARNOR"); if (!response.HasError) Console.WriteLine(string.Format("User deactivated: {0}", "KARNOR")); else Console.WriteLine(string.Format("{0}", response.ErrorMessage)); 1.10 Metode: EnsureRoleForUser Denne metoden oppretter/oppdaterer en personlig rolle for en bruker. Personlige roller kobles blant annet mot organisasjonsenhet og Eksempel: var response = proxy.EnsureRoleForUser("UIO", "EPHORTE-UIO", "KARNOR", "Arkivansvarlig", "AR1", "ADM", "SAK1", "JOURNAL", false); if (!response.HasError) Console.WriteLine(string.Format("User role created/updated: {0}", "Arkivansvarlig")); else Console.WriteLine(string.Format("{0}", response.ErrorMessage)); Vennlig hilsen Frank Sandersen Systemutvikler, Integrasjoner Product Development & Maintenance frank.sandersen@evry.com M +47 913 91 167 -----Original Message----- From: Hans Kristian Fjeld [mailto:h.k.fjeld@usit.uio.no] Sent: 30. juni 2014 12:43 To: Sandersen Frank Cc: Alexander Rødseth; Jo Sama; Lena Andersen Subject: EIS web service dokumentasjon Hei Frank Viser til telefonsamtale i dag. Kort oppsummert ber vi om følgende dokumentasjon av web service'er generelt: 1. WSDL. 2. Skriftlig beskrivelse av hvordan tjenesten kan brukes. 3. Eksempel kode for alle funksjoner. Microsoft har en god anbefaling her: http://msdn.microsoft.com/en-us/library/aa480506.aspx For vår del er det best å få dette så tidlig som mulig, men du må gjerne diskutere med Alexander/Jo om det er enkelte ting det er mer nyttig å få tidligere enn andre. God somerferie! -- Hans Kristian Fjeld Gruppeleder, Gruppe for Utvikling av administrative IT-tjenester UiO : Universitetets senter for informasjonsteknologi http://www.usit.uio.no/om/organisasjon/uav/admit/uait/ Tlf: +47 932 64 903 [Contract.jpg image/jpeg (220176 bytes)] [ContractWSDL.xml application/xml (47445 bytes)]