MGAMA vidinė SQL procedūra RGI_MGAMA_BUSENA_TV naudojama, kuriant būsenų tvirtinimo procedūras ar formules, kuriose naudojami standartiniai parametrai ir veikimas. Ši procedūra pasirūpina papildomų tvirtintojų ar informuojamų vartotojų sukūrimu bei peršokimų į kitas būsenas parengimu. Tačiau ši procedūra neužpildo turinio (XML schemos).
Parametrai:
| Parametras | Reikšmė |
|---|---|
| @result varchar(max) output | grąžinamas schema konfigūracinis sakinys, kuris turi būti įkeliamas į atsakymą |
| @owner char(12) output | operacijos atsakingas asmuo. Galima nurodyti atsakingą asmenį. Nenurodžius bus priskirtas asmuo pirmas atlikęs tvirtinimo operaciją. |
| @modul char(2) | operacijos modulis |
| @op char(12) | operacijos kodas |
| @user char(12) | vartotojo kodas |
| @veiksmas char(1) | Veiksmas: I – init, U – peržiūra, P – patvirtinimas, A - atmetimas |
| @kodas_be char(12) | esamos būsenos kodas |
| @pastaba varchar(150) | atšaukimo priežastis |
| @istorija numeric(1,0) | rodyti tvirtinimo istoriją tvirtinimo operacijoje |
| @dok1 numeric(1,0) | dokumentas. Pagal nutylėjimą rodoma. Galima nurodyti griežtai: 0 - nerodyti, 1 - rodyti |
| @dok2 numeric(1,0) | dokumentai. Pagal nutylėjimą rodoma. Galima nurodyti griežtai: 0 - nerodyti, 1 - rodyti |
| @pad_pap numeric(4,0) | tvirtina padalinio vadovas, kuris nurodomas padalinio aprašymo "akinukuose" (padaliniai turi būti kursoriuje #RGI_MGAMA_BUSENA_TV_kodas_is (kodas_is) ) |
| @vart_owner numeric(1,0) | tvirtinti turi operacijos savininkas |
| @vart_sar char(12) | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
| @vart_sar_b numeric(4,0) | į kurią būseną peršokti, kai nėra tvirtinančio vartotojo sąraše |
| @inf numeric(1,0) | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
| @inf_sar char(12) | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
| @inf_vart char(12) | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną |
| @auto_tv numeric(4,0) | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją |
| @auto_b numeric(4,0) | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas |
| @atsaukti numeric(1,0) | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui |
| @bukle numeric(1,0) | atmetimo atveju galima pakeisti operacijos būklę į "Anuliuota", kurios nėra rodomos kalendoriuje |
| @vad numeric(1,0) | formuoti vadovą (personalo operacijos turi būti kursoriuje #RGI_MGAMA_BUSENA_TV_kodas_6a (kodas_6a) ) |
| @vad_pap numeric(4,0) | vadovas iš papildomo lauko etatuose padalinyje (personalo operacijos turi būti kursoriuje #RGI_MGAMA_BUSENA_TV_kodas_6a (kodas_6a) ) |
| @vad_pap_b numeric(4,0) | į kurią būseną peršokti kai nėra tvirtinančio papildomo vadovo |
| @reset numeric(1,0) | šioje būsenoje, pašalinami visi kiti tvirtinimai operacijai |
Privalomi parametrai paryškinti.
Procedūra grąžina:
Naudojimas:
declare @tv_xml_result VARCHAR(MAX), @tv_result int, @kodas_6a char(12)
select I11_KODAS_IS as kodas_is into #RGI_MGAMA_BUSENA_TV_kodas_is from dbo.I11_INH where I11_KODAS_IN = @op -- padalinių sąrašas
select K16_KODAS_6A as kodas_6a into #RGI_MGAMA_BUSENA_TV_kodas_6a from dbo.K42_OD, dbo.I38_IRYS, dbo.K16_OPH where I38_MODUL1=@modul and I38_KODAS1=K42_KODAS_OD and I38_MODUL2='6A' and K42_KODAS_OD=@op and K16_KODAS_6A=I38_KODAS2 and K16_TIPAS in (1,2) /* Priėmimas į etatą ir perkėlimas */
exec @tv_result=dbo.RGI_MGAMA_BUSENA_TV
@result=@tv_xml_result output
,@owner=@owner output
,@modul=@modul
,@op=@op
,@user=@user
,@veiksmas=@veiksmas
,@kodas_be=@kodas_be
,@pastaba=@pastaba
,@istorija=@istorija
,@dok1=null
,@dok2=null
,@atsaukti=@atsaukti
,@pad_pap=@pad_pap
,@vart_sar=@vart_sar
,@vart_sar_b=@vart_sar_b
,@inf=@inf
,@inf_sar=@inf_sar
,@inf_vart=@inf_vart
,@auto_tv=@auto_tv
,@auto_b=@auto_b
if @tv_result<>0 -- Būsenos pakeitimas ar kt. - nieko daryti daugiau nereikia
return @tv_result