PIFU-IMS fra IST Everyday for skole, barnehage og SFO v.3.21
PIFU-IMS fra IST Everyday for skole, barnehage og SFO
Kundedokumentasjon
Denne dokumentasjonen er ment for utviklere og personer med kunnskap om xml-strukturerte filer. Denne benyttes som et grunnlag for å kunne importer data inn i andre tilknyttede systemer i organisasjonen. F.eks. BAS-systemer, LMS systemer, Biblioteksystem m-fl. Denne versjonen laster data for Skole, SFO og Barnehage). For SFO og Barnehage er det kun ansatte som lastes ut.
Det er Utdanningsdirektoratet som er ansvarlig for vedlikehold og utvikling av pifu-standarden. Det finnes en pifu.xsd som benyttes for validering av innhold og struktur av xml'en.
En fullstendig oversikt over formatet finnes på:
https://github.com/Utdanningsdirektoratet/pifu/tree/master/pifu-ims
https://github.com/Utdanningsdirektoratet/pifu/blob/master/pifu-ims/PIFU-IMS_SAS_eksempel.xml
PIFU-IMS inneholder en del mer detaljer enn IMS Enterprise, bl.a. grepkoblinger og fraværsopplysninger. PIFU er en offisiell Norsk Standard - www.standard.no Standarden erstatter ABC Enterprise som nå er deprekert.
Fra verdinøkler til GUID på <id>-felt
Tekst
Utfordringen med verdinøkler på id-felt ved integrasjon med andre systemer er at man kan få problemer med endring av disse verdinøklene. Det mest utbredte problemet har tidligere vært endring av fødselsnummer og navn på undervisningsgrupper.
PIFU-IMS baserer seg på knytninger gjennom feltet <id>. F.eks. har elevene en relasjon til medlemskap til sine foresatte gjennom feltet <id>.
Alle ID'er er av typen GUID (Global Unique IDentifier) eller 64 bits sekvensnummer (kan variere i lengde). I tidligere løsninger (SATS og Extens) benyttet man verdinøkler av typen fødselsnummer, skolekode, klassekode eller tilsvarende. Ingen IDer i IST Everyday baserer seg input fra brukeren. Alle ider er systemgenererte.
Systemgenererte id'er er satt sammen med et semantisk prefix for lesbarhetens skyld. (f.eks. root_ unit_ schoolclass_). Det finnes også ider som består av to eller tre ledd: semantisk del + _ + id1 + _ + id2
f.eks. courseatunit_9b86dcfa-b7ee-403b-ac7a-415dd4d39a2a_98647952
Kodene er unike innenfor sin prefix (person_, unit_, gradelevel_ etc.).
Det er helt vanlig at noen får et midlertidig fødselsnummer og senere bytter til et reelt fødselsnummer. I mange systemer fører det til at man får to personer, og gamle data følger ikke automatisk med til det nye fødselsnummeret. Rutiner i IST Everyday for endring av fødselsnummer sørger per automatikk for å beholde samme GUID (dvs. både når man endrer dette direkte i fødselsnummer-feltet og i rutinen «Slå sammen personer». Dette problemet er nå i stor grad løst ved man har gått over til globalt unike ider. Disse er automatisk genererte. En GUID kan se slik ut:

Uthenting av data på nivå i organisasjonshierarkiet
- Tromsø kommune GRS 234567890 (dette gir uttrekk for bare grunnskoledata og ansettelser der, ansettelser ved nivået over hentes ikke ut)
- Tromsø kommune BHG 345678901
Viktig at organisasjonsnummer som angis på uttrekkskommandoen peker til riktig nivå i organisasjonen. Det hentes ut data for det org.nummeret og underliggende elementer. Ingen ansettelse eller data hentes ut for nivåene over.
Gruppen for rot-nivå er normalt skoleeier. Det er mulig å hente ut data på et org.nummer i organisasjonshierarkiet f.eks. område, nivå, samt enkeltenheter.
Eksempel: Tromsø kommune org.nummer 123456789
Nivåer i PIFU-IMS - xml
- Enterprise Properties
- Person
- Group
- Membership Member
Uttrekket er bygget opp på samme måte som IMS Enterprise av disse nivåer:
Enterprise - Properties
Toppnivå i fila er Enterprise og inneholder Properties og timestamp for når filen er produsert. Type vil alltid være «full» da vi ikke leverer inkrementelle uttrekk.

Personer (person)
- Elever og ansatte som har minst en relasjon til en skole. Alle filtreringer forholder seg til start- og sluttdato på medlemskapene
- Personer som ikke har en aktiv relasjon i organisasjonen på uttrekkstidspunktet vil få vist dette ved <<pifu_status type="activeInactive">inaktiv</pifu_status>
Krav for at personen skal komme med som person:
Alle Elever og Ansatte må ha en knytning til skoleåret som uttrekket kjøres for. Foresatte tas med som person hvis deres barn er en aktiv elev ved en skole. Personen har disse statuser i IST Everyday: En persons kontaktpersoner som hentes ut er foresatte (guardian) for elever og ektefelle (nextOfKin/nærmeste pårørende) for ansatte. Hvis en fosterforelder er registrert, så kommer ikke foresatte med i uttrekket. Fosterforelder blir guardian. Personer som er registrert som Kontakt tas ikke med ut. Personer som er registrert som Samboer tas ikke med ut. Knytningen foresatte - elev/barn reflekteres kun på eleven/barnet. Det vises ikke knytninger fra den foresatte som person til vedkommendes barn En elev kan ha 0 eller flere foresatte (guardian), de er ikke sortert på relevans Telefonnummer som er registrert uten landsprefix prefixes med +47. Dvs. det er ikke nødvendig å fylle ut for norske telefonnummer. NB! Utenlandske telefonummer bør ikke prefixes med f.eks. +46 og ikke med 0046 dette vil resultere i +470046… Felter som er importert med mellomrom f.eks. 99 88 77 66 sendes ut slik: +4799887766. Det er ikke mulig å registrere telefonnummer med mellomrom, disse tas vekk før lagring. Se utfyllende info om Personers adresser i eget avsnitt under
- personNIN - Ordinært fødselsnummer og d-nr utstedt av Skatteetaten. Begge valideres med modulus 10 kontroll og kjønn utledes fra siffer nr.9. Hvis --param version1.2 ikke er satt, vil man her også finne fiktive fødselsnummer (se også pkt 3 under samt kapittel Integrasjonspartnerinformasjon senere i dette dokumentet).
<userid useridtype="personNIN">12081192780</userid> - sisID - ID i skoladministrasjonssystemet (GUID)
<userid useridtype="sisID">2e87c1b5-e130-41ba-be9b-b96d6666f620</userid> - personFIN - Lokalt fiktivt nummer opprettet av VIGO (fylket), dette har normalt et suffix som er lik fykesnummer (pifu1.2) eller opprettet av fødselsnummergenerator i IST Everyday. Dette attributtet er knyttet til parameter: --param version 1.2 ( se også pkt 1 over samt kapittel Integrasjonspartnerinformasjon senere i dette dokumentet).
<userid useridtype="personFIN">52081192703</userid>, kjønn kan normalt utledes.
ID-nummer på person
Der <pifu_name type =name> blir benyttet med fødselsnr så benyttes den id som er spesifisert på person. Det vil si personFIN eller personNIN f.eks. på kontaktlærergruppe.
Merk! Attributtet personLIN - lokalt IDnummer benyttes ikke av IST. Feide benytter norEduPersonLIN slik: Local identity number, for instance student number or employee number
personFIN er et fylkesunikt fødselsnummer utstedt av VIGO. Dette er et fiktivt nummer. De to siste siffer er et reelt fylkesnummer. Kjønn kan utledes fra siffer nummer ni (oddetall=menn, partall =kvinner). D-nummer tas også med blant disse og de er utstedt av Skattedirektoratet og med moduluskontroll. Slike fødselsnummer kan registreres i IST Everyday. NB! Det finnes en fødselnummergenerator i IST Everyday som kan benyttes ved generering av fiktive fødselsnummer. Den generer fødselsnummer som validerer, men kan ha to siste som avviker fra «fylkesnummer-regelen» i de to siste posisjoner.
xml-eksempel:

- En adresse ansees som aktiv «fra og med dato» og «til og med dato».
- Personens adresse som er markert som Primær i IST Everyday vil være den adressen som står på personobjektet i PIFU. Det kan kun være en primæradresse i IST Everyday på tvers av typer adresser.
- IST Everyday kan ikke ha overlappende datoer på samme adressetype.
- Utgåtte og framtidige adresser basert på fra og til dato tas ikke med.
- Fakturadresse tas ikke med.
- Adresser som ikke er markert med Type i IST Everyday er DSF-adresser. Hvis denne adressen endres manuelt, må man sette Type adresse før den kan lagres og da vil den ikke lenger være en DSF-adresse. Feltet settes kun ved integrasjon mot folkeregisteret.
Feltnavn IST Everyday PIFU-felt Postadresse personPostalAddressPrivate Folkeregisteradresse personRegisteredAddressPrivate Hybeladresse personPostalAddressHoliday
Adresser i IST Everyday og PIFU-IMS
Gyldighet på adresser
Sluttdato kan være blank i IST Everyday, da er ikke <end> taggen med

Eksempel på Personelement med flere adresser

- Gult marker personens personlige kontaktinformasjon
- Grønt markerer personens kontaktinformasjon tilknyttet organisasjonen
- Det er ikke et attributt for å angi primær i pifu-uttrekket ved flere tlf/e-post av samme type
E-post adresser og telefonnummer i IST Everyday og PIFU-IMS
Under er en oversikt (mapping) over hvordan en persons kontaktinformasjon vises i PIFU-uttrekket.

Om grupper og medlemskap
Generelt om grupper
Dette inneholder ulike grupperinger i organisasjon. Timeframe spesifiserer i hvilken datoperiode gruppen er aktiv. I IST Everyday er gruppen aktiv fra kl. 00:00 startdato og til 23:59 på sluttdato. Det er opp til mottakende system evt. å implementere utvidet logikk på denne forståelsen. Alle statuser er sett i forhold til tidspunkt for uttrekk.
Hvis en person slutter 01.04.2019 (siste dag på jobb) er vedkommende aktiv hvis uttrekket kjøres på kvelden den 01.04.2019 og brukes i produksjon den 2. april. Status vil i praksis bli en dag forskjøvet - dette gjelder også startdato.
Merk! Grupper og medlemmer som har en passert sluttdato vil fortsatt sendes med i uttrekket for skoleåret.
Grupper og medlemmer som får satt en sluttdato som avviker fra skoleårets slutt vil også reflekteres i uttrekket for aktuelt skoleår. Inaktive medlemmer markeres med <status>0</status> sett ift start og sluttdato på kjøretidspunktet. Verdien restrict="0" i begin og end er hardkodet "0" og har ingen informasjonsverdi hentet fra IST Everyday. Dette dreier seg om man skal tolke datoene som absolutte eller ikke ift medlemsskap i gruppene.

- Klassegruppe/ Basisgruppe - level 1
- Undervisningsgruppe - level 2
- Kontaktlærergruppe - level 3
- Trinngruppe ved skole - level 4
- Utdanningsprogram - level 5 (benyttes ikke av IST)
- Programområde ved skole - level 6
- Fag ved skole - level 7
Gruppenivåene
Alle grupper har en typevalue f.eks: <typevalue level="2">undervisningsgruppe</typevalue>
Rolletyper er knyttet til medlemmetDette er mulige rolletyper i PIFU: 01-Learner, 02-Instructor, 03-Content Developer, 04-Member, 05-Manager, 06-Mentor, 07-Administrator, 08-Teaching Assistant
IST benytter disse rollene:
<role> <status> settes til 0 når sluttdato tilbake i tid. Aktiv er 1. Se eksempel over på punktet Group
Det er mulig å være både pedagogisk og ikke-pedagogisk ved en skole i IST Everyday. Roletype blir satt til 02 i slike tilfeller. De som har ansettelse pedagogisk=N og stilling med fordeling=N (f.eks. en vanlig kontorstilling) kommer ut med rolle 04
- Inneholder en kobling til en "group" med underliggende member-elementer
- Medlemskap inneholder member sin: Start og sluttdato - benyttes til å melde elever, lærer og andre inn og ut av grupper i eksterne systemer
- Disse er medlemmer fra og med dato – til og med dato Status settes etter datoen som uttrekket er kjørt på
- Kjøres uttrekket på kvelden så vil aktiv og passiv status bli forskjøvet med 1 dag En lærer vil da få forskjøvet tilgang og avslutning med 1 dag
- Her bør integrasjonspartner vurdere å beregne status selv ut fra datoer som sendes med.
Generelt om medlemskap Membership og member Status: 1= Aktiv 0= Passiv Alle avsluttede medlemskap (<member>) eller ikke påbegynte medlemskap vil også være med i uttrekket ut skoleåret slik at disse kan avsluttes i eksterne systemer på en enkel måte. Eksempelet nedenfor viser en elev som er medlem av klasse 9A ved Eplehagen skole angitt ved roletype 01-Learner - Elev 02-Instructor – Lærer, pedagoger, sfoansatt 04-Member - Medlemmer (andre ansatte, foresatte) NB! Adminperiod er det samme som skoleår og angis med prefix med H (høst) og V (vår)
<adminperiod>H2019/V2020</adminperiod>
<membership>
<comments lang="en">Schoolclass 9A at school Eplehagen skole</comments>
<sourcedid>
<source>IST Everyday</source>
<id>schoolclass_76820114</id>
</sourcedid>
<member>
<comments lang="en">Schoolclass member Bang, Mary </comments>
<sourcedid>
<source>IST Everyday</source>
<id>person_0ba34811-ae12-45af-b980-c43d7472a552</id>
</sourcedid>
<idtype>1</idtype>
<role roletype="01">
<status>1</status>
<datetime>2019-08-01</datetime>
<timeframe>
<begin restrict="0">2019-08-01</begin>
<end restrict="0">2020-07-31</end>
<adminperiod>H2019/V2020</adminperiod>
</timeframe>
</role>
</member>
<membership>
- ID-syntax: root_"organisasjonselementGUID"
- Dette er en «permanent» ID (endres ikke ved nytt skoleår)
- Inneholder personer og roller på det rotnivået som er spesifisert i uttrekkskommandoen Ansatte som er ansatte på nivået over det nivået som det hentes ut data på i uttrekket blir ikke med ut. Da må det hentes ut på toppnivå hvis det er ønskelig. Kommune (toppnivå)
- (Ansatte) Skoler i kommune (f.eks.uthentingsnivå)
- (Ansatte) Skole1 Stilling Ansatt 1
- Stilling Ansatt 2
Grupper med medlemskap - eksempler Skoleeier - level 1 - "root organisation"
<typevalue level="1">skoleeier</typevalue>
Barnehager i kommune Bhg 2 Ansatte uten stillinger kommer ikke med ut
Se XML eksempel nedenfor:
<group> <id>root_e20b4e76-1237-40df-a283-52d60353a314</id> </group>
<membership>
<comments lang="en">Root organization Lysaker kommune e20b4e76-1237-40df-a283-52d60353a314</comments>
<sourcedid>
<source>IST Everyday</source>
<id>root_e20b4e76-1237-40df-a283-52d60353a314</id>
</sourcedid>
<member>
<comments lang="en">Student Ole Idole at Lysaker kommune</comments>
<sourcedid>
<source>IST Everyday</source>
<id>person_9704dd88-1e57-4d33-8bbe-53c846bdcc96</id>
</sourcedid>
<idtype>1</idtype>
<role roletype="01">
<status>1</status>
<datetime>2019-08-01</datetime>
<timeframe>
<begin restrict="0">2019-08-01</begin>
<end restrict="0">2028-07-31</end>
</timeframe
</role>
</member>
<member>
<comments lang="en">Teacher Aslaug Gundersen at Lysaker kommune</comments>
<sourcedid>
<source>IST Everyday</source>
<id>person_da4f1df7-f823-459f-b6d6-1efe9f11590c</id>
</sourcedid>
<idtype>1</idtype>
<role roletype="02">
<status>1</status>
</role>
</member>
<member>
<comments lang="en">Member Martine Bredesen at Lysaker kommune</comments>
<sourcedid>
<source>IST Everyday </source>
<id>person_8c274505-a969-4b43-8315-56ce32d25a88</id>
</sourcedid>
<idtype>1</idtype>
<role roletype="04">
<status>1</status>
</role>
</member>
To roller i uttrekket vises slik:
<member>
<comments lang="en">Student BjÃrn Vidarsen at OmrÃder og enheter</comments>
<sourcedid>
<source>IST administrasjon</source>
<id>person_6d0f0ef8-bf6e-421e-902a-40554c5689f2</id>
</sourcedid>
<idtype>1</idtype>
<role roletype="01">
<status>1</status>
</role>
<role roletype="02">
<status>1</status>
</role>
</member>
Se også informasjon om primærtilknytning i punktet nedenfor.
Skole - level 2
<typevalue level="2">skole</typevalue>
Hvis ansatt er Pedagogisk=J -> roletype=02 (instructor) Lærere ved skole ("Teacher xx at school yy") Elever ved skole ("Student xx at school yy") Det er kun obligatoriske felt fra registreringsbildet på skolen som skal til for at skolen tas med ut. Orgnr på skole må være registrert hvis man ønsker å laste ut kun n skole se: -- param unitOrgno Hvilken skole som er lærerens primærskole og elevens primærskole legges i extension-feltet .<pifu_primaryRelation>1</pifu_primaryRelation> Dette ligger på member-element til skolen (<id>unit_xxxx….</id>

- ID syntaks: schoolclass_"klasseID"
- Dette er en skoleårsavhengig ID - endres ved nytt skoleår:
- Elever roletype 01, start-/ sluttdato, status 1 eller 0
- Kontaktlærere har roletype 02. Her kommer alle kontaktlærere som er knyttet til klassen, uavhengig av om de er knyttet til elev(er). Det er mulig å sette gyldighetsdato IST Everyday, da vil kontaktlærer komme med i den perioden som er aktiv
- Delklasser blir kun lastet i sammenheng med vanlige undervisningsgrupper og finnes ikke blant klassegruppene (schoolclass)
- Det er også mulig få med assistenter som er pedagogiske ressurser som bistår elevene. Disse kan kan gis tilgang til f.eks. elektroniske lærerressurser som «lærer». De må settes som kontaktlærer på klassen men uten kontaktlærerkobling til elever, de får da rolle 04 ved skolen og rolle 02 i klassen.
- De må ha Til fordeling= Nei på stilling og Pedagogisk personale er= N på Ansatt.
Klassegruppe/Basisgruppe - level 1
<typevalue level="1">basisgruppe</typevalue> (knyttes til skolen)
Se eksempel

Delklasser
Delklasse kommer ikke med som en egen klasse (schoolclass). Delklasser er en fast deling av klassen som vil gjelde for alle som er med i undervisningsgrupper. Dvs at du kan ikke ha ulike delklasser som er forskjellige i Kunst og håndverk og Kroppsøving. Undervisningsgrupper som er basert på delklasser kommer ut som vanlige undervisningsgrupper. Disse er koblet til skole på vanlig måte- dvs. ikke til «mor-gruppen». NB! En elev kan kun være med i en delklasse.

- ID syntaks: educationgroup_"undervisningsgruppeID"
- Dette er en Skoleårsavhengig ID - endres ved nytt skoleår
- Elever roletype 01 start/ sluttdato, status 1 eller 0
- Lærere roletype 02 start/ sluttdato, status 1 eller 0
- Kan inneholde lokale fagkoder (uoffisielle fag). Disse vil ikke inneholde grepCodeShortForm eller grepCode
- Det finnes 4 typer undervisningsgrupper de som er basert på klasser
- de som er basert på delklasser
- de som er basert på blandede grupper (elever fra forskjellige klasser) har ofte trinn som første del av kortnavnet
Undervisningsgruppe - level 2 de som er basert på delgrupper av undervisningsgrupper
Sammensetting og navngiving av grupper kan variere fra oppsettet for hver enkelt organisasjon. Under er eksempler på hvordan undervisningsgrupper vanligvis blir navngitt:


- Undergrupper sin ID har en semantisk prefix educationsubgroup_ .
Vanlige undervisningsgrupper er prefixet med educationgroup_ Alle <description>-taggene er unike innenfor skolen fordi de inneholder delgruppens «Kortnavn» i Everyday som har dette unikhetskravet
Merk!
<short> inneholder undervisningsgruppens kortnavn. Dette er automatisk generert av IST Everyday etter et egendefinert navneoppsett. Dette kan ikke endres etter lagring. Det unngås unike koder ved at det generes et løpenr etter. Skilletegn mellom Gruppenavn og Fagkode kan variere etter oppsett i IST Everyday – normalt / «slash» eller - "bindestrek». Det samme gjelder rekkefølge på «variablene» for gruppenavn og fagkode
<long> består av fagets kortnavn fra IST Everyday sitt fagregister (oppdatert fra UDIR) og undervisningsgruppens kortnavn
<short>10B/MAT0010</short>
<long>Matematikk 10B/MAT0010</long>
<full>Matematikk 10B/MAT0010 ved Eplehagen skole</full>
Delgrupper - undergrupper til undervisningsgrupper
Delgrupper er grupper som består av medlemmer fra en undervisningsgruppe (i motsetning til en delklasse som består av medlemmer fra en klasse). Dvs. at disse kun kan «rekruttere» medlemmer fra «morgruppen». Delgruppene kan variere i elevsammensetting, fra fag til fag, til forskjell fra delklasser (se eget punkt i dokumentasjonen) som har en fast sammensetting. Delgruppene er også koblet til skolen (relasjon til) på vanlig måte - dvs. ikke til «mor-gruppen». Det kan være to eller flere delgrupper i en undervisningsgruppe.
Delgrupper kommer ut i xmlen som vanlige undervisningsgrupper da PIFU-standarden fra UDIR foreløpig ikke har støtte for denne type grupper. IST har hatt kontakt med UDIR om dette og de vil kunne støtte dette i senere versjoner av PIFU. UDIR har ellers sagt OK til IST sin løsning for å distribuere delgruppene som vanlige undervisningsgrupper. Det betyr at når det kjøres en skjemavalidering av xmlen så er den gyldig også med disse gruppene inkludert.
Eksempel <group>description-tagg:
<description>
<short>10A/ENG0012:1</short>
<long>Engelsk, skriftlig 10A/ENG0012:1</long>
<full>Engelsk, skriftlig 10A/ENG0012:1 ved Gjerdrumsvei timeplanskole</full>
</description>
Gruppens Navn i Everyday kommer i taggen <pifu_name type="name">
Eksempel på group og membership:

Eksempel på Membership - Delgrupper

Undervisningsgrupper basert på Delklasser
Undervisningsgrupper som er basert på delklasser kommer ut som vanlige undervisningsgrupper. Disse er også koblet til skolen - dvs de er ikke koblet til «mor-gruppen». Se eget punkt om Delklasser over.

- ID-syntaks: studentteachergroup_"kontaktlærgruppeID"
- Dette er en Skoleårsavhengig ID - endres ved nytt skoleår
- Kontakteleven roletype 01
- Kontaktlærer roletype 02
- Inneholder kontaktelever og kontaktlærer. Kontaktlærer er "eier" av gruppa inneholder extension med kontaktlærers fødselsnummer
<group>
<comments lang="en">Educationgroup 10A1/KHV0010 at school Gjerdrumsvei t.sk. with id 308996756</comments>
<sourcedid>
<source>IST administrasjon</source>
<id>educationgroup_308996756</id>
</sourcedid>
<grouptype>
<scheme>pifu-ims-go-grp</scheme>
<typevalue level="2">undervisningsgruppe</typevalue>
</grouptype>
<description>
<short>10A1/KHV0010</short>
<long>Kunst og hÃndverk 10A1/KHV0010</long>
<full>Kunst og hÃndverk 10A1/KHV0010 ved Gjerdrumsvei timeplanskole</full>
</description>
<timeframe>
<begin restrict="0">2020-08-01</begin>
<end restrict="0">2021-07-31</end>
<adminperiod>H2020/V2021</adminperiod>
</timeframe>
<relationship relation="1">
<sourcedid>
<source>IST administrasjon</source>
<id>unit_3876705</id>
</sourcedid>
<label>Gjerdrumsvei t.sk.</label>
</relationship>
<extension>
<pifu_id type="grepCodeShortForm">
<pifu_value>KHV0010</pifu_value>
<pifu_scope>grep - levende lÃreplaner</pifu_scope>
<pifu_unique>0</pifu_unique>
</pifu_id>
<pifu_id type="grepCode">
<pifu_value>uuid:e1d4dcce-22e0-40f7-a710-8eca96057cc6</pifu_value>
<pifu_scope>grep - levende lÃreplaner</pifu_scope>
<pifu_unique>0</pifu_unique>
</pifu_id>
</extension>
</group>
Kontaktlærergruppe - level 3 inneholder start og sluttdato Kontaktlærere må være knyttet direkte til eleven for komme med i PIFU, ikke bare som en kontaktlærer-ressurs knyttet til klassen

- ID syntaks: gradelevel_"trinn"_"skoleGUID"
- Dette er en «permanent» ID (endres ikke ved nytt skoleår)
- Inneholder elever med rolle=01 og start og sluttdato
- Inneholder kobling til Grep http://psi.udir.no/laereplan/aarstrinn/aarstrinn4 GRS har verdiene aarstrinn1-aarstrinn10
- VGS har verdiene vg1, vg2 og vg3
Trinngruppe ved skole - level 4

- Kun for VGS
- ID syntaks: educationprogram _"skoleGUID"_"utdanningsprogramGUID"
- Dette er en «permanent» ID (endres ikke ved nytt skoleår)
- Inneholder elever med rolle=01 og start og sluttdato
Utdanningsprogram ved skole - level 5

- Kun for VGS
- ID syntaks: programarea_"skoleGUID"_"programområdeGUID"
- Dette er en «permanent» ID (endres ikke ved nytt skoleår)
- Inneholder elever med rolle=01 og start og sluttdato
- Grep inneholder ikke alle programområder som benyttes i vuderegående skole og derfor vil IST suppler med disse koden fra VIGO kodeverk. Dette gjelder bl.a STUSP--?? Kodene. Da henviser vi til en ist-uuid i pifu_value-taggen
Programområde ved skole - level 6
<extension>
<pifu_id type="grepCodeShortForm">
<pifu_value>STUSP1--TP</pifu_value>
<pifu_scope>grep - levende læreplaner</pifu_scope>
<pifu_unique>0</pifu_unique>
</pifu_id>
<pifu_id type="grepCode">
<pifu_value>ist-uuid:79721cba-4069-3712-aae7-f7ae2eb65156</pifu_value>
<pifu_scope>grep - levende læreplaner</pifu_scope>
<pifu_unique>0</pifu_unique>
</pifu_id>
</extension>

- ID-syntaks: courseatunit_SkoleGUID_fagvedskoleID
- Dette er en «permanent» ID (endres ikke ved nytt skoleår) – den består av skolens id og fagets (course) id
- Inneholder elever med rolle=01 og start og sluttdato
- inneholder kobling til grepCodeShortForm og grepCode f.eks. NOR0211 og uuid:8033b6ff-6ff7-4730-a7b7-b40600705d97
- Her kan du finne lokale fagkoder (uoff.fag) og disse vil ikke ha grepCodeShortForm eller grepCode feltene utfylt da de ikke finnes i Grep
Fag ved skole - level 7

Barnehage og SFO-grupper
Eksempler på XML





Integrasjonspartnerinformasjon
Denne del av dokumentasjon er beregnet på de som skal integrere seg med IST Everyday og benytte virksomhetsinformasjon som er registrert der. Uttrekket er et fullstendig uttrekk hver gang og har ingen støtte for inkrementell utlasting.
PIFU-IMS inneholder en del mer detaljer enn IMS Enterprise og erstatter ABC Enterprise. En fullstendig oversikt over formatet finnes på https://github.com/Utdanningsdirektoratet/pifu/tree/master/pifu-ims
Denne gjelder kun for skole (ikke barnehage og SFO). Utdanningsdirektoratet har foreløpig ingen planer om å gjøre om på dette.
Tilgangskontroll
- kundeID og
- integrasjonspartnerID og
- tjeneste (pifu, ims etc).
IST gir tilgang tjeneste per
Informasjon om brukernavn og passord skal ikke deles med andre enn de det er ment for. Hvis en kommune har flere integrasjonspartnere, så skal det opprettes tilgang per integrasjonspartner og tjeneste. Dette gjøres av IST.
Integrasjonspartner kan være kommunen/fylket selv eller en ekstern samarbeidspartner.
Ny versjon av PIFU-standarden 1.3
- personFIN som er et fylkesunikt fødselsnummer utstedt av VIGO. Dette er også et fiktivt nummer. De to siste siffer er et reelt fylkesnummer. Kjønn kan utledes fra siffer nr. 9 (oddetall=menn, partall =kvinner). D-nummer tas også med og disse er utstedt av Skattedirektoratet og med moduluskontroll. IST sine fiktive nummer tilfredsstiller disse krav. Det finnes en fødselnummergenerator i IST Everyday som kan benyttes ved generering av fiktive fødselsnummer. Den generer fødselsnummer som validerer, men kan ha de to siste sifre som avviker fra «fylkesnummer-regelen»
- En person har enten attributtet personNIN eller personFIN
- For å ta i bruk personFIN i PIFU så må dere kontakte IST for få dette satt opp
- Inkluderer barnehage- og SFO segmentet fra og med PIFU versjon 1.3 ( inkludert i IST dok fra 3.20 per 15.08.2023)
IST har i sin implementasjon av PIFU-IMS nå implementert
Validering
Filen valideres mot PIFU-IMS_SAS.xsd når den blir produsert. Hvis filen ikke validerer, så feiler filproduksjon og feilmelding kommer i isiclienten. NB! Utdanningsdirektoratet refererer fortsatt til versjon 1.1. i xsden selv om det er av versjon 1.2. Dette har ingen praktisk betydning, men er litt forvirrende.
Det henvises i XML filen i Enterprise-tagg: <enterprise xmlns="http://pifu.no/xsd/pifu-ims_sas/pifu-ims_sas-1.1">
Det er veldig sjelden at det feiler på validering. XSDn finnes her: https://github.com/Utdanningsdirektoratet/pifu/blob/master/pifu-ims/PIFU-IMS_SAS.xsd
Parametere
- exe og endpoint ( URL)
- IntegrasjonspartnerID og passord - tildeles av IST
- pushTriggerWaitResponse <mottakers systemID>
- Parameter verdier (se under for gyldige parametere) --param schoolyear 20
- En pullkommando med timeout-verdi i millisekunder --pull-timeout 3600
- outverdi dvs. filnavn med evt path der filen skal lagres --outfile C:\data\Nydalen_kommune_Pifu_20-21.xml
- Alle parameter innledes med to "bindestreker" --
- Påfølgende verdi skal ikke starte med mellomrom
Eksempelet under viser et kall vha isiclient.exe som produserer et PIFU IMS-uttrekk fra hypernet Skoleadministrasjon. Hvert enkelt parameter er beskrevet nedenfor. Klienten er utviklet av IST og kan hentes ned fra denne adressen: ftp://isi:G9ur37@ftp.no.ist.com/ISIClient.zip .
Innledende kall:
ISIClient https://isi.ist.com/isi/ws/ISIPartnerEndpoint?WSDL <IntegrasjonspartnerID> <Integrasjonspartner passord> pushTriggerWaitResponse AAAAAAABHEOOHPMPOOAFHDGA pifuService pifuData
Eksempel på kommando-streng:
ISIClient https://isi.ist.com/isi/ws/ISIPartnerEndpoint?WSDL <IntegrasjonspartnerID> <Integrasjonspartner passord> pushTriggerWaitResponse AAAAAAABHEOOHPMPOOAFHDGA pifuService pifuData --param customerid <kunde-ID> --param schoolyear <skoleår> --param excludeAbsence true --param datasource "IST Everyday-Lysaker kommune" --pull-timeout 3600 --outfile <filnavn.xml>
Kommandostrengen kjøres normalt via en batch-fil f.eks. pifu-imsuttrekk.bat. Denne batfilen kan settes opp i skedulerte jobber.
Det er viktig man avtaler tidspunkter for uthenting av data med integrasjonspartnere. IST anbefaler at uthenting av data for større organisasjoner primært kjøres utenom normal arbeidstid.
Det anbefales ikke å ha flere samtidige isi-kjøringer mot samme organisasjon (kommune/fylke/privatskole). Disse vil stilles i kø i den rekkefølgen som de ble mottatt av ISI sentral («førstemann til mølla». )
Det blir ikke kompensert for timeout-tid, slik at resultatet kan være at uttrekk som kommer som nr. to ikke rekker å fullføre før timeout-tiden har utløpt. Her kan man eventuelt øke timeout-tiden. Timeout-tid vil ikke påvirke ytelsen på uttrekket. Det er mulig å benytte «drain-parameteret» for å hente utløpte meldinger som har gått ut på «timeout». Eksempel:
ISIClient https://isi.ist.com/isi/ws/ISIPartnerEndpoint <id> <password> pull --fetchsize 1 --drain --auto-outfile-messageid
Uttrekks-"kommandoen" deles i seks
Parameterbeskrivelser
- IntegrasjonspartnerID: Dette er den enkelte integrasjonspartners ID eks. AAAAACFBHOHDIXXXYYZZZEBC. Tildeles av IST
- Obligatorisk
--param orgno - Dette er organisasjonsnummeret (Brreg) for den enkelte kunde/skole som skal benyttes som rot-element i uttrekket. Dette registreres i IST Everyday på hvert enkelt nivå i organisasjonen (Kommune/ Fylke, Bydel/ Område, Skole, Barnehage). Det kan benyttes «fiktive» orgnr (det er ikke moduluskontroll på dette i IST Everyday). Flere separate enheter kan trekkes ut ved å legge inn en kommaseparert liste orgnummer for disse enhetene --includeSchool true|false Kun gyldig i versjon 1.3 og høyere, default true
--includeDaycare true|false Kun gyldig i versjon 1.3 og høyere, default true
--includePreschooltrue|false Kun gyldig i versjon 1.3 og høyere, default false --pull-timeout nnnn--param outfile - Navnet på den genererte XML-filen. eks. Nydalen_kommune_pifu.xml. --includeUnitShortNameFilter "<Enhet1kortnavn>,<Enhet2kortnavn"
--param includeUnitShortNameFilter "Nydalen 1-10,Busk2,Gjerdrumsvei t.sk.,Eple to"
Det er enhetens «Kortnavn» som benyttes og parameterstrengen må omsluttes av ""
Eksempel:
--param excludeUnitShortNameFilter "Nydalen 1-10,Busk2,Gjerdrumsvei t.sk.,Eple to"
Versjonshistorikk
- includeUnitShortNameFilter
- excludeUnitShortNameFilter
(Nyeste øverst)
31.10.2024
Startet ny versjon av dok - 3.21
Nye parameter for å inkludere / ekskludere enheter
Det er enhetens «Kortnavn» som benyttes og hele parameterstrengen må omsluttes av "". Komma (,) separerer verdiene når det listes opp utvalgte enheter
--param excludeUnitShortNameFilter "Nydalen Felles 1-10,Busk2,Gjerdrum t.sk.,Eple to"
--param includeUnitShortNameFilter "Nydalen Felles 1-10,Busk2,Gjerdrum t.sk.,Eple to"
15.08.2024
23.08.2024
21.08.2024
17.08.2023
25.04.2023
Parameterbeskrivelse - Korrigert feil parameternavn unitOrgno (orgno-> unitOrgno)
14.09.2022
Det er ikke et attributt i PIFU for å angi primær i pifu-uttrekket ved flere tlf/e-post av samme type.
09.05.2022
Lagt til at bruk av personFIN i pifu kreves at dette aktiveres av IST per kunde
21.10.2021
Lagt til informasjon om kriterier for å få med ansatte på voksenopplæringsenheter (se Skole – level 2)
30.09.2021
Programområder som ikke finnes i Grep hentes fra VIGO er dokumentert i beskrivelsen
21.09.2021
Ny «tag» for Fag «langtekst» i seksjonen for «Fag ved skole» - Level 7. Teksten er hentet fra Vigo kodeverk som igjen får sine data fra Grep
<description>
<short>NOR0211</short>
<long>Norsk 9. årstrinn, skriftlig</long>
</description>
16.08.2021
Startet ny versjon 3.08. Rettet skrivefeil
01.07.2021
Oppdatert uttrekket til å inneholde Delgrupper - undergrupper av undervisningsgrupper.
23.06.2021
22.06.2021
Ny oppdatering av PIFU-IMS med støtte for Delgrupper- dvs undergrupper av undervisningsgrupper. Det er ingen strukturelle endringer xmlen. Delgrupper kommer ut som en vanlige undervisningsgrupper. Se eget punkt i den dokumentasjonen om Delgrupper under punktet "Grupper med medlemskap-eksempler".
25.03.2021
Presisering av Ansettelser og Ansettelsestyper under punktet «Grupper med medlemskap - eksempler»
10.03.2021
Utvidet info og mapping mellom e-post og telefonnr i IST Everyday og PIFU-IMS xmlen se s. 10
17.02.2021
Under punktet Skole-eier - level 1 - "root organisation er det lagt til info om personenes fra- og tildato i rotorganisasjonen. Gjelder både lærer og elever.
15.12.2020
14.12.2020
Supplert med informasjon om adressetyper og datoer
23.11.2020
Lagt til informasjon ang integrasjonspartnere og flere samtidige uttrekk
11.11.2020
20.10.2020
Presisering rundt formattering av telfonnr med prefix (se Person)
16.10.2020
Lagt til et nytt punkt om delklasser og delgrupper
13.10.2020
Tydeligere presisering rundt medlemskap som er avsluttet eller ikke påbegynt (sluttdato tilbake i tid) vil være med i uttrekket ut skoleåret med status 0 eller 1 avhengig av
04.09.2020
02.09.2020
Presisering av gruppetyper som støttes f.eks. <typevalue level="2">skole</typevalue>
24.08.2020
10.08.2020
Nytt felt i Undervisningsgruppe under «extension»-tagg: «name». Dette henter data fra feltet Navn i undervisningsgruppe og er redigerbart for brukerne. Merk! Det er ingen unikhetskontroll på dette feltet i IST Everyday.
<extension>
<pifu_id type="grepCodeShortForm">
<pifu_value>ENG0002</pifu_value>
<pifu_scope>grep - levende lÃreplaner</pifu_scope>
<pifu_unique>0</pifu_unique>
</pifu_id>
<pifu_id type="grepCode">
<pifu_value>uuid:a34fc680-11b3-470b-9807-51d482d4d876</pifu_value>
<pifu_scope>grep - levende lÃreplaner</pifu_scope>
<pifu_unique>0</pifu_unique>
</pifu_id>
<pifu_name type="name">
<pifu_value>2A/ENG0002</pifu_value>
</pifu_name>
</extension>
Gruppens description har ikke plass for denne verdien og tilbys derfor som en extension og som bakgrunn i at det ikke er unikhetskontroll på dette feltet.
<description>
<short>2A/ENG0002</short>
<long>Engelsk 2A/ENG0002</long>
<full>Engelsk 2A/ENG0002 ved Gjerdrumsvei timeplanskole</full>
</description>
Kommentar ang telefonnummer (i pkt Person) som mangler prefix i IST Everyday at dette blir fylt ut med +47 der det ikke er registrert.
09.06.2020
Det er oppdaterte description-felt i taggene short, long og full for disse gruppene (overskriftene er lenker til aktuelt avsnitt i veilledningen):
<description>
<short>1A</short>
<long>Klasse 1A</long>
<full>Klasse 1A ved Knatten skole</full>
</description>
<description>
<short>10A/SAF0010</short>
<long>Samfunnsfag 10A/SAF0010</long>
<full>Samfunnsfag 10A/SAF0010 ved Knatten skole</full>
</description>
<description>
<short>Kontaktlærer Aksel Bolstad</short>
<long>Kontaktlærergruppe for Aksel Bolstad</long>
<full>Kontaktlærergruppe for Aksel Bolstad ved Knatten skole</full>
</description>
<description>
<short>5</short>
<long>5. trinn</long>
<full>5. trinn ved Knatten skole </full>
</description>
Disse er meri tråd med UDIR sine eksempler.
Merk! Angående Undervisningsgrupper: Skilletegn mellom gruppe og fag kan variere fra oppsettet i hver enkelt organisasjon. 10A/SAF0010 kan være 10A-SAF0010, SAF0010-10A m.fl. Det vil si at man kan velge skilletegn selv. Vanligvis benyttes – bindestrek eller / skråstrek. Det er også valgfritt hva som kommer først av fag eller gruppe.
04.06.2020
Lagt til info om personer med 2 roller – elev og lærer
27.02.2020
13.02.2020
14.01.2020
Ang. Person: Supplert info om relasjonstyper på Person på nextofkin og guardian. Samt utdypet info foresatt, fosterforelder, kontakt og samboer
10.02.2020
04.12.2019
Ny versjon av dok 3.01
Orgnr kun obligatorisk når benyttet som parameter
02.12.2019
Informasjon om obligatorisk felter i ISI-kallene er lagt til og evt standardverdier der det benyttes Parameterbeskrivelse er utdypet Rettet opp feil i syntax og forbedret eksempler
13.08.2019