P8-ExchangeService/db/P_EXSQUEUE_BASE_REPEAT.prc

35 lines
1.2 KiB
Plaintext

create or replace procedure P_EXSQUEUE_BASE_REPEAT
(
NRN in number -- Ðåãèñòðàöèîííûé íîìåð
)
as
NRN_NEW PKG_STD.TREF; -- Ðåãèñòðàöèîííûé íîìåð äîáàâëåííîãî ñîîáùåíèÿ
begin
/* Îòáîð çàïèñè */
for REC in (select T.*,
S.SRV_TYPE
from EXSQUEUE T,
EXSSERVICEFN F,
EXSSERVICE S
where T.RN = NRN
and T.EXSSERVICEFN = F.RN
and F.PRN = S.RN)
loop
/* Åñëè ýòî íå îòïðàâêà ñîîáùåíèÿ */
if (REC.SRV_TYPE != PKG_EXS.NSRV_TYPE_SEND) then
P_EXCEPTION(0,
'Ïîâòîðèòü îòïðàâêó ìîæíî òîëüêî äëÿ èñõîäÿùåãî ñîîáùåíèÿ.');
end if;
/* Ïîìåùåíèå ñîîáùåíèÿ îáìåíà â î÷åðåäü */
PKG_EXS.QUEUE_PUT(NEXSSERVICEFN => REC.EXSSERVICEFN,
BMSG => REC.MSG_ORIGINAL,
NEXSQUEUE => REC.RN,
NLNK_COMPANY => REC.LNK_COMPANY,
NLNK_DOCUMENT => REC.LNK_DOCUMENT,
SLNK_UNITCODE => REC.LNK_UNITCODE,
SOPTIONS => REC.OPTIONS,
NNEW_EXSQUEUE => NRN_NEW);
end loop;
end;
/