PM: API: DevelopmentPlan: GET /planning-api/development-plan-goals
Üldkirjeldus
Teenus võimaldab pärida arengukavale eesmärkide nimekirja. Eesmärgi tagastatakse ainult arengukava puhul, mille jaoks on määratud periood.
Seotud andmeobjektid:
Seotud Jira taskid
NSIL-993 - Getting issue details... STATUS
Eeltingimused ja kasutusõigused
- Kui tegemist on asutusepõhiste eesmärkidega (goalScope = INSTITUTIONAL):
- Kasutajal peab olema seos eesmärkide asutusega ning sama asutuse arengukava vaatamise õigus.
- Goal.institution.id = Kasutaja poolt valitud rolliga seotud asutus
- Õigust reguleerib privileeg: HSILM_PLANNING_DEV_PLAN_VIEW.
- Kasutajal peab olema seos eesmärkide asutusega ning sama asutuse arengukava vaatamise õigus.
- Kui tegemist on isikupõhiste eesmärkidega (goalScope = INDIVIDUAL):
- Kasutaja peab olema eesmärkide omanik.
- Goal.personalCode = Päringu käivitanud kasutaja isikukood.
- Eraldi privileegi ei ole vaja.
- Kasutaja peab olema eesmärkide omanik.
- Meeskonnaliikme rolli valinud kasutajal ei ole antud funktsionaalsusele ligipääsu.
Planeerimise mooduli kasutusrollide ja õiguste kohta saab täpsemalt infot leida lehelt Kasutusõigused ja rollid.
Sisendid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Vaikeväärtus, valideerimine | Kirjeldus, täiendav info |
|---|---|---|---|---|
developmentPlanId | 1 | String |
| Viide muudetavale arengukavale või URL-iga jagatud arengukava versioonile, mille eesmärke päritakse. |
Väljundid
| Atribuut | Kohustuslikkus, mitmesus | Tüüp | Kirjeldus, täiendav info |
|---|---|---|---|
| goals | 0..* | Array | Nimekiri eesmärkidest. |
goals.id | 1 | UUID | Eesmärgi unikaalne identifikaator. |
goals.developmentPlanId | 1 | String | Viide arengukavale, millega eesmärk on seotud. |
| goals.goalScope | 1 | String | Määrab eesmärgi ulatuse:
|
| goals.institution | 1 | Object | Eesmärgiga seotud asutuse (KOV, õppeasutus) objekt. |
| goals.institution.id | 1 | String | Viide eesmärgiga seotud asutusele EHIS-es. |
| goals.institution.name | 1 | String | Asutuse nimi |
| goals.institution.type | 1 | EHIS Classifier | Asutuste liik (KOV, õppeasutus). |
| goalScope | 1 | String | Määrab eesmärgi ulatuse:
|
| goals.jobsite | 0..1 | EHIS Classifier | Isiku ametikoha tunnus, millega eesmärk on seotud. Ainult isikupõhiste (goalScope = INDIVIDUAL) eesmärkide puhul. |
| goals.personalCode | 0..1 | String | Isiku isikukood, kellele eesmärk kuulub. Ainult isikupõhiste (goalScope = INDIVIDUAL) eesmärkide puhul. |
| goals.name | 0..1 | String | Eesmärgi nimetus. |
| goals.description | 0..1 | String | Eesmärgi kirjeldus. |
| goals.metrics | 0..* | Array | Eesmärgi mõõdikute nimekiri. |
goals.metrics.id | 1 | String | Mõõdiku unikaalne identifikaator. |
goals.metrics.description | 1 | String | Mõõdiku kirjelduse tekst. |
| goals.metrics.createdAt | 1 | DateTime | Mõõdiku loomise aeg. |
goals.metrics.reports
| 1..* | Array | Mõõdiku näitajate (aruaanete) nimekiri. Eesmärgi mõõdikul võib olla 1..3 näitajat (aruannet). |
goals.metrics.reports.workspaceId | 1 | String | PBI aruande tööruumi identifikaator. |
goals.metrics.reports.reportId | 1 | String | PBI aruande identifikaator. |
goals.metrics.reports.bookmark | 0..1 | String | Aruandele rakendatud filtrite snapshot (base64 formaadis). |
| goals.metrics.targets | 0..* | Array | Mõõdiku sihttasemete nimekiri. Mõõdikul võib olla 0..n sihttaset. |
| goals.metrics.targets.year | 1 | Number | Sihttaseme aasta. |
goals.metrics.targets.description | 1 | String | Sihttaseme kirjeldus. |
goals.activities | 1..* | Array | Eesmärgi tegevuste nimekiri. |
| goals.activities.id | 1 | String | Tegevuse unikaalne identifikaator. |
| goals.activities.name | 1 | String | Tegevuse pealkiri. |
| goals.activities.startDate | 0..1 | Date | Tegevuse alguskuupäev. |
| goals.activities.endDate | 1 | Date | Tegevuse lõpukuupäev. |
| goals.activities.previousActivityId | 0..1 | String | Tegevuse identifikaator, mis eelneb käesolevale tegevusele tegevuste järjekorras. Selle põhjal järjestatakse tegevuste nimekirjad. |
Tegevused
- Süsteem kontrollib, kas kasutajal on õigust päringut teostada.
- Kui õigust pole, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem kontrollib, kas sisendandmed vastavad nõuetele.
- Kui andmed ei vasta nõuetele, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Süsteem kontrollib, kas arengukava eksisteerib:
- Otsitakse Objektid#DevelopmentPlan objekti, mille:
- id = sisendis esitatud developmentPlanId väärtus
- Kui vastavat arengukava ei leita, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Otsitakse Objektid#DevelopmentPlan objekti, mille:
- Edasiste tegevuste loogika erineb sõltuvalt sellest, kas tegemist on muudetava või URL-ina jagatud arengukavaga.
- Kui leitud arengukava Objektid#DevelopmentPlan.editable = false:
- Kontrollitakse, kas tegemist URL-ina jagatud versiooniga:
- Otsitakse Objektid#DevelopmentPlanVersion objekti, mille:
- id = sisendis esitatud developmentPlanId väärtus
- Kui vastavat versiooni ei leita või leitud versiooni Objektid#DevelopmentPlanVersion.fileId != NULL, lõpetatakse päringu töötlemine ja tagastatakse http veakood.
- Otsitakse Objektid#DevelopmentPlanVersion objekti, mille:
- Otsitakse versiooniga seotud eesmärke:
- Otsitakse Objektid#DevelopmentPlanGoal objekte, mille:
- developmentPlanId = sisendis esitatud developmentPlanId väärtus
- Kui ühtegi eesmärki ei leita, lõpetatakse päringu töötlemine ja tagastatakse tühi väärtus.
- Otsitakse Objektid#DevelopmentPlanGoal objekte, mille:
- Kui eesmärgid leitakse, tagastatakse nende nimekiri. Päringu töötlemine lõpetatakse.
- Kontrollitakse, kas tegemist URL-ina jagatud versiooniga:
- Kui leitud arengukava Objektid#DevelopmentPlan.editable = true, otsitakse arengukava perioodile vastavaid aktiivseid eesmärke:
- Otsitakse kõiki asutuse / ametikoha eesmärke, mis ei ole arhiveeritud:
- Otsitakse Objektid#Goal objekte, mis vastavad järgmistele tingimustele:
- goalScope = leitud arengukava Objektid#DevelopmentPlan.developmentPlanScope väärtus
- institution.id = leitud arengukava Objektid#DevelopmentPlan.institution.id väärtus
- personalCode = leitud arengukava Objektid#DevelopmentPlan.personalCode väärtus
- jobsite = leitud arengukava Objektid#DevelopmentPlan.jobsite väärtus
- archived = false
- Kui ühtegi eesmärki ei leita, lõpetatakse päringu töötlemine ja tagastatakse tühi väärtus.
- Otsitakse Objektid#Goal objekte, mis vastavad järgmistele tingimustele:
- Leitud eesmärgid järjestatakse previousGoalId alusel.
- Nimekirjast eemaldatakse pooleliolevad eesmärgid.
- Iga leitud eesmärgi puhul kontrollitakse, kas:
- name != NULL
- description != NULL
- Eesmärgile on lisatud vähemalt üks tegevus:
- Leidub vähemalt üks Objektid#GoalActivity objekt, mille goalId = leitud eesmärgi ID.
- Kui vähemalt üks tingimustest ei ole täidetud, eemaldatakse eesmärk nimekirjast.
- Süsteem kordab neid tegevusi, kuni kõik pooleliolevad eesmärgid on nimekirjast eemaldatud.
- Iga leitud eesmärgi puhul kontrollitakse, kas:
- Eemaldatakse nimekirjast eesmärgid, mille tegevuste periood ei kattu arengukava perioodiga vähemalt osaliselt.
- Kui mõnel tegevusel puudub startDate, loetakse selle alguskuupäevaks endDate. Sellisel juhul käsitletakse tegevust kui ühepäevast, mis toimub endDate kuupäeval.
- Kontroll teostatakse iga eesmärgi puhul järgmiselt:
- Kontrollitakse, kas eesmärgi perioodi alguskuupäev (st varaseima tegevuse startDate) ei ole hilisem kui arengukava lõpukuupäev (endDate):
- Otsitakse Objektid#GoalActivity objekte, mille:
- goalId = töödeldava eesmärgi ID (Objektid#Goal.id)
- Leitud tegevuste puhul kontrollitakse, kas leidub selline, mille:
- startDate (kui startDate = NULL, siis kasutatakse endDate väärtust):
- on kõige varasem kõigi selle eesmärgiga seotud tegevuste seas, ja
- ei ole hilisem kui arengukava Objektid#DevelopmentPlan.endDate.
- startDate (kui startDate = NULL, siis kasutatakse endDate väärtust):
- Kui tingimus ei ole täidetud:
- Eesmärk eemaldatakse nimekirjast.
- Liigutakse järgmise eesmärgi juurde.
- Otsitakse Objektid#GoalActivity objekte, mille:
- Kontrollitakse, kas eesmärgi perioodi lõpukuupäev (st hiliseima tegevuse endDate) ei ole varasem kui arengukava alguskuupäev (startDate):
- Kontrollitakse, kas eelnevalt leitud Objektid#GoalActivity objektide hulgas on selline, mille:
- endDate:
- on kõige hilisem kõigi selle eesmärgiga seotud tegevuste seas, ja
- ei ole varasem kui arengukava Objektid#DevelopmentPlan.startDate.
- endDate:
- Kui tingimus ei ole täidetud:
- Eesmärk eemaldatakse nimekirjast.
- Liigutakse järgmise eesmärgi juurde.
- Kontrollitakse, kas eelnevalt leitud Objektid#GoalActivity objektide hulgas on selline, mille:
- Süsteem kordab neid samme, kuni kõigi eesmärkide vastavus tingimustele on valideeritud.
- Kontrollitakse, kas eesmärgi perioodi alguskuupäev (st varaseima tegevuse startDate) ei ole hilisem kui arengukava lõpukuupäev (endDate):
- Süsteem otsib eesmärkide mõõdikuid ja tegevusi:
- Iga tagastatava eesmärgi kohta otsib süsteem Objektid#GoalMetrics ja Objektid#GoalActivity objekte, mille goalId = leitud eesmärgi ID.
- Süsteem tagastab leitud eesmärkide nimekirja koos nende mõõdikutega ja tegevustega.
- Eesmärgid on väljundis järjestatud esialgses previousGoalId alusel saadud järjekorras.
- Otsitakse kõiki asutuse / ametikoha eesmärke, mis ei ole arhiveeritud:
- Kui leitud arengukava Objektid#DevelopmentPlan.editable = false: