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:
Vartotojas, kuris turės gauti pranešimą, turi būti Rivile MGAMA vartotojas
Aprašyti formulę, kurioje bus suformuojamas pranešimo turinys ir priskiriamas vartotojas
Aprašytą formulę priskirti atitinkamoms būsenoms, apie kurias norima informuoti vartotojus
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 vartotojui, kuris užbaigė operaciją.

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ę, reikia atitinkamai pakoreguoti operacijos tvirtinimo būseną:
Pvz. Servisas -> Pardavimai -> Pardavimo operacijos:

Norint pritaikyti aprašytą formulę, reikia naudoti tvirtinimo operacijų perėmimo procedūrą, nurodant formulės kodą kaip parametrą. Pvz.:
RGI_MGAMA_BUSENA_FORMULE @kodas_fr='MS_EMAIL'
Rezultatas:
