Integration av lokala system Informationsdag Ladok3 2012-11-21
Agenda Introduktion Möjliga förberedelser Skillnader mot dagens Ladok Exempel T-tjänst vs. REST-tjänst
Möjliga förberedelser
Integration idag DB Lokalt system SQL LpW Lokalt system Lokalt system
Integration löst kopplad Broker Messaging DB Lokalt system SQL LpW SQL LpW REST Fil, … Lokalt system Lokalt system
Integration nya Ladok Broker Ladok REST Atom feeds SQL LpW REST Fil, … Messaging Ladok Lokalt system REST Atom feeds SQL LpW REST Fil, … Lokalt system Lokalt system
Ett exempel - BizTalk A B C BiZTalk Person-databas Ladok 3 Ladok DB 3’ Internt format Broker Messaging 1 1’ 2 2’ 3 3:1’ 3:2’ SOAP Adapter REST Adapter SQL no delta SQL Delta A-B Atom Feeds Integrations-punkt Ladok DB Ladok 3 SQL
Skillnader mot dagens Ladok
Dagens situation - verksamhetslogik Verksamhetslogik på 2 ställen LpW Nouveau Manuell inläsning SQL SQL Lokala system DB SQL Lokala system Lokala system Lokala system Verksamhetslogik på X ställen Ingen Verksamhetslogik
Verksamhetslogik i klienten Dagens Ladok Verksamhetslogik i klienten SELECT DISTINCT localtimestamp(0), TRIM(N.TNAMN), TRIM(N.ENAMN), IF(A.COADR<=>NULL AND A.GATADR<=>NULL AND A.POSTNR<=>NULL AND A.ORT<=>NULL AND A.LAND<=>NULL AND A.INLDAT<=>NULL, NULL, CONCAT(CHAR(60), '![CDATA[', TRIM(IFNULL(A.COADR, "")), '$', TRIM(IFNULL(A.GATADR, "")), TRIM(IFNULL(A.POSTNR, "")), TRIM(IFNULL(A.ORT, "")), TRIM(IFNULL(A.LAND, "")), IFNULL(A.INLDAT, ""), ']]', CHAR(62) ) ), TRIM(A.FROMDAT), TRIM(A.TOMDAT), TRIM(TE1.KOMADR), TRIM(TE2.KOMADR), IF(A1.COADR<=>NULL AND A1.GATADR<=>NULL AND A1.POSTNR<=>NULL AND A1.ORT<=>NULL AND A1.LAND<=>NULL AND A1.INLDAT<=>NULL, NULL, TRIM(IFNULL(A1.COADR, "")), TRIM(IFNULL(A1.GATADR, "")), TRIM(IFNULL(A1.POSTNR, "")), TRIM(IFNULL(A1.ORT, "")), TRIM(IFNULL(A1.LAND, "")), IFNULL(A1.INLDAT, ""), IF(A2.COADR<=>NULL AND A2.GATADR<=>NULL AND A2.POSTNR<=>NULL AND A2.ORT<=>NULL AND A2.LAND<=>NULL AND A2.INLDAT<=>NULL, NULL, CONCAT(CHAR(60), '![CDATA[', TRIM(IFNULL(A2.COADR, "")), '$', TRIM(IFNULL(A2.GATADR, "")), TRIM(IFNULL(A2.POSTNR, "")), TRIM(IFNULL(A2.ORT, "")), TRIM(IFNULL(A2.LAND, "")), IFNULL(A2.INLDAT, ""), ']]', CHAR(62) ) FROM DB.NAMN AS N LEFT OUTER JOIN DB.ADRESS AS A ON(A.PNR=N.PNR AND ((STR_TO_DATE(tomdat, '%Y-%m-%d')>current_date and adrtyp='2' ) OR (Adrtyp='4' and a.pnr not in ( select a2.pnr from gu.adress a2 Where STR_TO_DATE(a2.tomdat, '%Y-%m-%d')>current_date and a2.adrtyp='2' LEFT OUTER JOIN DB.TELEKOM AS TE1 ON(TE1.PNR=N.PNR AND TE1.KOMTYP='TEL' LEFT OUTER JOIN DB.TELEKOM AS TE2 ON(TE2.PNR=N.PNR AND TE2.KOMTYP='EMAIL' LEFT OUTER JOIN DB.ADRESS AS A1 ON A1.PNR=N.PNR AND A1.ADRTYP='4' LEFT OUTER JOIN DB.ADRESS AS A2 ON A2.PNR=N.PNR AND A2.ADRTYP='2' AND ((STR_TO_DATE(A2.TOMDAT, '%Y-%m-%d')>current_date)) WHERE N.PNR='[[PNR]]' AND (N.AVLIDEN<>'J' OR N.AVLIDEN IS NULL ); Databasorienterat SOAP SQL Kombinera kolumner från ett antal olika tabeller för att få ut verksamhetsdata.
Nya Ladok- verksamhetslogik Verksamhetslogik på 1 ställe Manuell inläsning Admin GUI Student GUI Atom feeds REST Tjänstegränssnitt Lokala system Lokala system Lokala system Studentinfo Utbildn.info Stud.delt. Resultat Examen Uppföljning Lokala system Etablera
Utbildnings-information Nya Ladok Verksamhetsdata REST-tjänster och Atom feeds REST-tjänst Ge mig student A:s studiedeltagande Registrera student A på kurstillfälle X Lämna återbud för student A på kurstillfälle X Händelse (Atom feed) - Student A har blivit registrerad på kurstillfälle X Student A har lämnat återbud på kurstillfälle X Tjänstegränssnitt Student-information Utbildnings-information Studie-deltagande Resultat Examen Examen
Exempel T-tjänst vs. REST-tjänst
Ladok LpW SOAP vs. REST Dagens Ladok T29 – Tacka nej till antagning Nya Ladok Tack nej till antagning Student väljer tjänst i portal Student (användar-gränssnitt) REST-tjänst REST-tjänst hämtar studiedeltagan Student väljer kursantagning som ska tackas nej till REST-tjänst skapar Portalen visar ett kvitto för studenten
Ladok LpW vs. REST OBS Exempel – ej färdigt Dagens Ladok T29 – Tacka nej till antagning Nya Ladok Tacka nej till antagning Uid Förnamn Efternamn Personnummer Action Registrering Återbud Relation: Student Kurstillfälle Kursnamn OBS Exempel – ej färdigt