Gå til innhold
Norsk
  • Det finnes ingen forslag fordi søkefeltet er tomt.

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

  1. 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>
  2. sisID - ID i skoladministrasjonssystemet (GUID)
    <userid useridtype="sisID">2e87c1b5-e130-41ba-be9b-b96d6666f620</userid>
  3. 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&Atilde;rn Vidarsen at Omr&Atilde;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&Atilde;ndverk 10A1/KHV0010</long>
           <full>Kunst og h&Atilde;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&Atilde;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&Atilde;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

  1. exe og endpoint ( URL)
  2. IntegrasjonspartnerID og passord - tildeles av IST
  3. pushTriggerWaitResponse <mottakers systemID>
  4. Parameter verdier (se under for gyldige parametere) --param schoolyear 20
  5. En pullkommando med timeout-verdi i millisekunder --pull-timeout 3600
  6. 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&Atilde;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&Atilde;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