Názvy pracovních míst (číselník): Porovnání verzí

Z Prirucky
 
Řádek 59: Řádek 59:
== Změny názvů (čísel) ==
== Změny názvů (čísel) ==
=== Změna hodnoty vlastnosti (čísla) v popisu pracovního místa ===
=== Změna hodnoty vlastnosti (čísla) v popisu pracovního místa ===
'''Riziková operace.''' SQL příkaz pro změněnu hodnoty vlastnosti v popisu pracovních míst - hledá se první název v číselníku ''Názvy prac.míst'' se shodným názvem jako je název pracovního místa. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním '''proveďte zálohu databáze'''. <small>Číselník názvů pracovních míst bývá měněn pomocí SQL příkazů, při nichž se mění k danému číslu název. Tento postup je nekonzistentní a způsobuje destrukci ostatních dat. Proto je spouštěn příkaz, který se pokusí vyhledat název pracovního místa v číselníku názvů prac.míst a hodnotu (číslo) zapsat do vlastnosti v popisu pracovního místa.</small>
'''Riziková operace.''' SQL příkaz pro změněnu hodnoty vlastnosti v popisu pracovních míst - hledá se první název v číselníku ''Názvy prac.míst'' se shodným názvem jako je název pracovního místa. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním '''proveďte zálohu databáze'''. <small>Číselník názvů pracovních míst bývá měněn pomocí SQL příkazů, při nichž se mění k danému číslu název. Tento postup je nekonzistentní a způsobuje destrukci ostatních dat (zřejmě tedy nemá smysl poznačovat časovost vlastnosti 1001 v popisu pracovního místa). Proto je spouštěn příkaz, který se pokusí vyhledat název pracovního místa v číselníku názvů prac.míst a hodnotu (číslo) zapsat do vlastnosti v popisu pracovního místa.</small>
<small>
<small>
  update prac_mist_atrib
  update prac_mist_atrib
Řádek 93: Řádek 93:
* <small>DB: funk_zkr </small>
* <small>DB: funk_zkr </small>
<!-- hd id 35895 -->
<!-- hd id 35895 -->
<!--
Původně přemýšleno o takovýchto příkazech, do té doby, než mi dotyčný vysvětlil mechanismus.
Změnit hodnoty
Příkaz pro nalezení id pracovních míst, která se mají měnit.
Jsou dva - v posledním řádku buď
- is not null - pak zřejmě přidávali časovou vlastnost a budou chtít přenést z hodnoty vlastnosti do názvu pracovního místa
- is null - jedná se o prvotní chybový záznam a přenos má být opačný (z názvu pracovního místa do vlastnosti).
select A.id_pracmist
from prac_mist A left outer join prac_mist_atrib B
on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001,
funk_zkr C
where
B.hodnota = C.cislo and
(A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and
(B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and
(A.naz_pracmist <> C.nazev or C.nazev is null) and
B.platnost_od is null
------------------------------
Neotestováno:
update prac_mist set naz_pracmist =
(select nazev from funk_zkr, prac_mist_atrib where
funk_zkr.cislo = prac_mist_atrib.hodnota and
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and
cis_atributu = 1001 and
platnost_od is not null and
platnost_do is null or platnost_do > (select max(datum_prvni) from par_map))
)
where id_pracmist in
(
select A.id_pracmist
from prac_mist A left outer join prac_mist_atrib B
on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001,
funk_zkr C
where
B.hodnota = C.cislo and
(A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and
(B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and
(A.naz_pracmist <> C.nazev or C.nazev is null) and
B.platnost_od is not null
)
;
-->

Aktuální verze z 7. 3. 2017, 13:25

Názvy pracovních míst (číselník) je zákaznická specialita - použití číselníku téhož jména v modulu Popisy pracovních míst.

Funkcionalita

Menu: PIS > Popisy pracovních míst > Číselníky / Názvy prac. míst
Menu: PIS > Popisy pracovních míst > Číselník vlastností
Menu: PIS > Popisy pracovních míst > Pracovní místa/Pracovní pozice/Profese/Šablony popisů

  1. Naplnění číselníku.
  2. Založení vlastnosti do číselníku.
  3. Vyplnění popisu pracovního místa.

Používáno pro kontrolní účely a pro návaznost do dalších systémů.

Číselník Názvy pracovních míst - příklad naplnění
Vlastnost
Popis pracovního místa - příklad naplnění

Kontrola totožnosti názvů

Název v číselníku Názvy prac.míst
Použitý název pracovního místa neodpovídá hodnotě vlastnosti v popisu pracovního místa

Zjištění rozdílů

Nazvy-prac-mist-rozdil-priklad-1-3.png

select A.id_pracmist, A.datum_od, A.datum_do, A.cis_pracmist, A.naz_pracmist,
C.nazev,
B.hodnota, B.platnost_od, B.platnost_do

from prac_mist A left outer join prac_mist_atrib B 
 on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001,
funk_zkr C
where 
B.hodnota = C.cislo and 
(A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and
(B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and
(A.naz_pracmist <> C.nazev or C.nazev is null)

Nazvy-prac-mist-db-tabulky.png

Všechna pracovní místa s kombinací platností

Nazvy-prac-mist-rozdil-priklad-1-4.png

select A.id_pracmist, A.datum_od, A.datum_do, A.cis_pracmist, A.naz_pracmist,
C.nazev,
B.hodnota, B.platnost_od, B.platnost_do

from prac_mist A left outer join prac_mist_atrib B on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001,
funk_zkr C
where 
B.hodnota = C.cislo

Změny názvů (čísel)

Změna hodnoty vlastnosti (čísla) v popisu pracovního místa

Riziková operace. SQL příkaz pro změněnu hodnoty vlastnosti v popisu pracovních míst - hledá se první název v číselníku Názvy prac.míst se shodným názvem jako je název pracovního místa. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním proveďte zálohu databáze. Číselník názvů pracovních míst bývá měněn pomocí SQL příkazů, při nichž se mění k danému číslu název. Tento postup je nekonzistentní a způsobuje destrukci ostatních dat (zřejmě tedy nemá smysl poznačovat časovost vlastnosti 1001 v popisu pracovního místa). Proto je spouštěn příkaz, který se pokusí vyhledat název pracovního místa v číselníku názvů prac.míst a hodnotu (číslo) zapsat do vlastnosti v popisu pracovního místa.

update prac_mist_atrib
set hodnota = (select min(funk_zkr.cislo) from funk_zkr,prac_mist where 
funk_zkr.nazev = prac_mist.naz_pracmist and 
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist)

where cis_atributu = 1001 and 
(select count(*) from funk_zkr,prac_mist where 
funk_zkr.nazev = prac_mist.naz_pracmist and 
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist) > 0 ;

Změna názvů pracovních míst

Riziková operace. SQL příkaz pro změněnu názvů pracovních míst podle názvu v číselníku Názvy prac.míst. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním proveďte zálohu databáze. Bývá prováděn ve druhém kroku - po změně pracovních náplní a hodnot vlastností č. 1001 se opraví názvy pracovních míst.

update prac_mist set naz_pracmist = 

(select min(nazev) from funk_zkr, prac_mist_atrib where 
funk_zkr.cislo = prac_mist_atrib.hodnota and 
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and 
cis_atributu = 1001)
	
where (select count(*) from funk_zkr, prac_mist_atrib where 
funk_zkr.cislo = prac_mist_atrib.hodnota and 
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and 
cis_atributu = 1001) > 0;

Odkazy