Pradėjus ar baigus skenuoti prekes naudojant MSCAN, galima išsiųsti norimam vartotojui informacinį el. laišką, kad pasikeitė dokumento būsena. Tam naudojamas standartinis Rivile MGAMA laiškų siuntimo mechanizmas.
Šiam sprendimui realizuoti reikia:
Palaikomi moduliai: pirkimai, pardavimai, vidiniai judėjimai, kaupikliai, inventorizacija, gamyba.
Šiam sprendimui realizuoti naudojamos fomulės.
Servisas -> Kortelės -> Formulės
Sukuriama nauja formulė, kurioje aprašoma papildoma tikrinimo logika.
Pavyzdyje informacija siunčiama prie būsenų nurodytiems vartotojams.

Formulės pavyzdys:
if @veiksmas = 'I'
begin
declare @pranesimas1 varchar(250)
declare @pranesimas2 varchar(250)
declare @pranesimas3 varchar(250)
declare @modul_pav varchar(50)
declare @op_tipas_pav varchar(150)
declare @dok_klientas char(12)
declare @dok_nr varchar(20)
declare @dok_date datetime
declare @op_nr varchar(20)
declare @vart char(12)
-- Nuskaitomas operacijos modulis ir pagal jį iš operacijos surenkama reikalinga informacija
if @modul = 'PO'
begin
select @modul_pav = 'Pirkimo op.'
select
@op_nr = I06_KODAS_PO,
@dok_nr = I06_DOK_NR,
@dok_date = I06_DOK_DATA,
@dok_klientas = I06_PAV
from dbo.I06_PARH where I06_KODAS_PO = @op and I06_OP_TIP < 50
end
else if @modul = 'RO'
begin
select @modul_pav = 'Pardavimo op.'
select
@op_nr = I06_KODAS_PO,
@dok_nr = I06_DOK_NR,
@dok_date = I06_DOK_DATA,
@dok_klientas = I06_PAV
from dbo.I06_PARH where I06_KODAS_PO = @op and I06_OP_TIP > 50
end
else if @modul = 'VD'
begin
select @modul_pav = 'Vidiniu op.'
select
@op_nr = I09_KODAS_VD,
@dok_nr = I09_DOK_NR,
@dok_date = I09_IS_DATA,
@dok_klientas = ''
from dbo.I09_VIH where I09_KODAS_VD = @op
end
else if @modul = 'KP'
begin
select @modul_pav = 'Kaupikliu op.'
select
@op_nr = I51_KODAS_KP,
@dok_nr = '',
@dok_date = '1900-01-01',
@dok_klientas = ''
from dbo.I51_KPH where I51_KODAS_KP = @op
end
else if @modul = 'IF'
begin
select @modul_pav = 'Inventorizacijos op.'
select
@op_nr = I47_KODAS_IF,
@dok_nr = I45_DOK_NR,
@dok_date = '1900-01-01',
@dok_klientas = ''
from dbo.I47_IVFH left join dbo.I45_IVDH on I45_KODAS_IV = I47_KODAS_IV where I47_KODAS_IF = @op
end
else if @modul = 'KA'
begin
select @modul_pav = 'Gamybos op.'
select
@op_nr = I15_KODAS_KA,
@dok_nr = I15_DOK_NR,
@dok_date = I15_UZS_DATA,
@dok_klientas = N08_PAV
from dbo.I15_KALH left join dbo.N08_KLIJ on N08_KODAS_KS = I15_KODAS_KS where I15_KODAS_KA = @op
end
else
begin
exec dbo.RGI_KLAIDA 'MODULIS', 'Laiškas neišsiustas - netinkamas modulis'
return
end
--Iš surinktos operacijų informacijos suformuojami kintamieji, kuriuos galima perduoti laiško suformavimo procedūrai
select @op_tipas_pav = rtrim(@modul_pav + ' dokumento nr. - ' + case when isnull(@dok_nr, '') = '' then @op else rtrim(@dok_nr) end + case when isnull(@dok_klientas, '') <> '' then ' | Klientas - ' + @dok_klientas else '' end )
select @pranesimas1 = rtrim(rtrim(R05_VARDAS) + ' ' + rtrim(R05_PAV)) from dbo.R05_USER where R05_KODAS_RS = @user
select @pranesimas2 = @op_tipas_pav
select @pranesimas3 = case when @dok_date <> '19000101' then convert(char(10),@dok_date,102) else '' end
--Surenkami vartotojai, kuriems prie būsenos aprašymo yra uždėtos varnelės
if dbo.RGI_ver2_tmp_exists('#mgama_busena_leisti') = 0
select cast(@zn as char(12)) as kodas_rs into #mgama_busena_leisti where 1=0
delete from #mgama_busena_leisti
insert #mgama_busena_leisti (kodas_rs)
select L20_KODAS_RS
from dbo.L20_BUSV
where L20_KODAS_BE=@kodas_be
-- Informacija perduodama standartinėms procedūroms, kurios sukuria tvirtinimo įrašus ir išsiunčia laiškus atrinktiems vartotojams
exec dbo.RGI_MGAMA_BUSENA_LEISTI @tmp_lent=1, @modul=@modul, @op=@op, @user=@user, @veiksmas=@veiksmas, @kodas_be=@kodas_be, @email_poz = 1, @email_sabl = 4, @perkelta=4, @rewrite = 1, @apr1 = @pranesimas1, @apr2 = @pranesimas2, @apr3 = @pranesimas3
end
Aprašius formulę, pakoreguojama operacijos tvirtinimo būsena, kurioje siunčiamas laiškas:
Pvz. Servisas -> Pardavimai -> Pardavimo operacijos:

SQL procedūra:
RGI_MGAMA_BUSENA_FORMULE @kodas_fr='MS_EMAIL'
Pažymimi vartotojai, kuriems bus siunčiamas laiškas:

Sprendimo rezultatas:

