NSILM

Üldkirjeldus

Teenus väljastab ühe konkreetse asutuse või teise isiku ametikoha eesmärgid, mille meeskonda päringu käivitanud kasutaja kuulub.

Seotud andmeobjektid:

Seotud Jira taskid

NSIL-930 - Getting issue details... STATUS

NSIL-972 - Getting issue details... STATUS

NSIL-1190 - Getting issue details... STATUS

Eeltingimused ja kasutusõigused

  • Kasutaja on eesmärkide meeskonnas ja planeerimise meeskonna liikme rollil on eesmärkide vaatamise õigus.
    • Goal.teamMembers.id = GoalTeamMember.id, mille personalCode = Kasutaja isikukood
    • Õigust reguleerib privileeg: HSILM_PLANNING_GOAL_VIEW.

Planeerimise mooduli kasutusrollide ja õiguste kohta saab täpsemalt infot leida lehelt Kasutusõigused ja rollid.

Sisendid

AtribuutKohustuslikkus, mitmesusTüüpVaikeväärtus, valideerimineKirjeldus, täiendav info

goalScope

1

String
  • Võimalikud väärtused:
    • INSTITUTIONAL
    • INDIVIDUAL

Määrab, millis tüüpi eesmärke otsitakse:

  • INSTITUTIONAL — Otsitakse asutusepõhiseid eesmärke.
  • INDIVIDUAL — Otsitakse isikupõhiseid eesmärkide.

institutionId

1

String
  • Peab vastama kasutaja poolt meeskonnaliikme töölaualt valitud asutus ID-le või töölaualt valitud ametikohaga seotud asutuse ID-le.
Viide asutusele, mille eesmärkidesse on kasutaja meeskonnaliikmena lisatud.  

personalCode

0..1

String
  • Ei tohi olla määratud, kui goalScope = "INSTITUTIONAL".
  • Kohustuslik, kui goalScope = "INDIVIDUAL".
  • Ei tohi olla päringu käivitanud kasutaja isikokood.
Viide isikule, kelle eesmärkidesse on kasutaja meeskonnaliikmena lisatud.  

jobsite

0..1

String
  • Peab vastama kasutaja töölaual valitud ametikohale.
  • Peab vastama EHIS klassifikaatorile PEDAGOOG_AMETIKOHT.
  • Ei tohi olla määratud, kui goalScope = "INSTITUTIONAL".
  • Kohustuslik, kui goalScope = "INDIVIDUAL".
Viide isiku ametikohale, mille suhtes eesmärgid on loodud. 

statuses

0..*

Array
  • Peab olema klassifikaatori HSILM_GOAL_STATUS elemendi viide.
  • Peab saama määrata mitu staatust. 
Eesmärgi staatus.

startDate

0..1

Date
  • Kui endDate on määratud, peab startDate olema sellega võrdne või varasem.

    • startDate  endDate
Eesmärgi perioodi alguskuupäev

endDate

0..1

Date
  • Kui startDate on määratud, peab endDate olema sellega võrdne või hilisem.

    • endDate ≥ startDate
Eesmärgi perioodi lõpukuupäev

Väljundid

AtribuutKohustuslikkus, mitmesusTüüpKirjeldus, täiendav info
goals0..*Array

Nimekiri eesmärkidest.

goals.[...]

Iga massiivi objekt sisaldab järgmiseid atribuute:

goals.startDate

0..1

Date

Eesmärgi perioodi alguskuupäev. Määratakse eesmärgiga seotud tegevuste alusel. 

goals.endDate

0..1

Date

Eesmärgi perioodi lõpukuupäev. Määratakse eesmärgiga seotud tegevuste alusel. 

Tegevused

  1. Süsteem kontrollib, kas kasutajal on õigust päringut teostada.
    1. Kui õigust pole, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
  2. Süsteem kontrollib, kas sisendandmed vastavad nõuetele.
    1. Kui andmed ei vasta nõuetele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
  3. Süsteem otsib eesmärke, mille meeskonda kuulub päringu käivitanud kasutaja:
    1. Esiteks otsitakse kasutaja meeskonnaliikme kirjeid:
      1. Otsitakse Objektid#GoalTeamMember objekte, mille:
        1. personalCode = päringu käivitanud kasutaja isikukood.
      2. Kui ühtegi vastavat kirjet ei leita, lõpetatakse päringu töötlemine ja tagastatakse tühi vastus.
    2. Seejärel otsitakse sisendis esitatud asutuse/teise isiku ametikoha eesmärke: 
      1. Süsteem otsib Objektid#Goal objekte, millel kehtivad järgmised tingimused:
        1. goalScope = sisendis esitatud goalScope väärtus
        2. institution.id = sisendis esitatud institutionId väärtus
        3. jobsite = sisendis esitatud jobsite väärtus (kui on määratud)
        4. personalCode = sisendis esitatud personalCode väärtus (kui on määratud)
        5. Kui sisendis on määratud staatuses, kontrollitakse lisaks, et eesmärk vastaks vähemalt ühe sisendis määratud staatuse tingimustele: 
          1. Kui üks staatuses väärtustest on ACTIVE:
            1. Objektid#Goal.archived = false
            2. Objektid#Goal.name peab olema vähemalt 1 tähemärk pikk.
            3. Objektid#Goal.description peab olema vähemalt 1 tähemärk pikk.
            4. Eesmärgi meeskonnas peab olema vähemalt üks liige:
              1. Eksisteerib vähemalt üks Objektid#GoalTeamMember objekt, mille goalId = leitud eesmärgi ID.
            5. Eesmärgile peab olema lisatud vähemalt üks tegevus (Objektid#GoalActivity). 
              1. Eksisteerib vähemalt üks Objektid#GoalActivity objekt, mille goalId = leitud eesmärgi ID.
          2. Kui üks staatuses väärtustest on INCOMPLETE:
            1. Objektid#Goal.archived = false
            2. Vähemalt üks "Aktiivne" staatuse tingimus on täitmata.
          3. Kui üks staatuses väärtustest on ARCHIVED:
            1. Objektid#Goal.archived = true
      2. Kui ühtegi eesmärki ei leita, lõpetatakse päringu töötlemine ja tagastatakse tühi vastus. 
  4. Kui sisendis staatuses sisaldab ainult väärtusi "ACTIVE" ja " INCOMPLETE":
    1. Leitud eesmärgid järjestatakse previousGoalId järgi.
    2. Eesmärkide nimekirjast eemaldatakse need, mille:
      1. Objektid#Goal.teamMembers nimekiri ei sisalda ühtegi eelnevalt leitud meeskonnaliikme ID-d.
      2. Iga eesmärgi eemaldamise järjel uuendatakse sellest järgneva eesmärgi previousGoalId väärtus - see asendatakse eemaldatava eesmärgi previousGoalId väärtusega. 
    3. Süsteem tagastab leitud eesmärkide andmed.
      1. Atribuudid startDate ja endDate vastusesse ei lisata.
  5. Muudel staatuses väärtustel või juhul, kui atribuut staatuses sisendis puudub: 
    1. Eesmärkide nimekirjast eemaldatakse need, mis ei vasta järgmistele tingimustele:
      1. Objektid#Goal.teamMembers nimekiri sisaldab vähemalt ühte eelnevalt leitud meeskonnaliikme ID-d.
      2. Kui sisendis on määratud startDate:
        1. Eesmärgiga peab olema seotud vähemalt üks Objektid#GoalActivity objekt, mille:
          1. endDate:
            1. on kõige hilisem kõigi selle eesmärgiga seotud tegevuste seas, ja
            2. ei ole varasem kui sisendis esitatud startDate.
        2. Kui sobiv tegevus leitakse, määratakse selle endDate töödeldava eesmärgi endDate väärtuseks.
      3. Kui sisendis on määratud endDate:
        1. Eesmärgiga peab olema seotud vähemalt üks Objektid#GoalActivity objekt, mille:
          1. startDate (või kui startDate = NULL, siis kasutatakse endDate väärtust):
            1. on kõige varasem kõigi selle eesmärgiga seotud tegevuste seas, ja
            2. ei ole hilisem kui sisendis esitatud endDate.
        2. Kui sobiv tegevus leitakse, määratakse selle startDate töödeldava eesmärgi startDate väärtuseks.
      4. Kui nimekirja ei jää ühtegi eesmärki, tagastatakse tühi vastus.
    2. Eesmärgid järjestatakse järgmiselt:
      1. startDate järgi kasvavas järjekorras.
      2. Sama startDate väärtuse korral - endDate järgi kasvavalt.
      3. Sama startDate ja endDate korral - loomise aja järgi kasvavalt. 
      4. Eesmärgid, millel puudub periood, lisatakse nimekirja lõppu loomise aja järgi kasvavalt.
        1. Olukorda, kus eesmärgil on ainult üks kuupäev (nt startDate, aga puudub endDate), ei saa olla.
    3. Süsteem tagastab leitud eesmärkide andmed.
      1. Iga eesmärgi kohta lisatakse vastusesse ka järgmised atribuudid: 
        1. startDate = kõige varasem tegevuse alguskuupäev kõigi eesmärgiga seotud tegevuste seas
          1. Kui mõnel tegevusel puudub startDate, loetakse selle alguskuupäevaks endDate, ning tegevust käsitletakse ühepäevasena, mis toimub endDate kuupäeval. 
        2. endDate = kõige hilisem tegevuse lõpukuupäev kõigi eesmärgiga seotud tegevuste seas
        3. Kui eesmärgil ei ole ühtegi tegevust, määratakse startDate ja endDate väärtusteks NULL.