Новые параметры очереди - связанные организация, документ и раздел

This commit is contained in:
Mikhail Chechnev 2018-12-27 14:18:36 +03:00
parent 08ccd54274
commit 0db3aa3ac9
3 changed files with 113 additions and 39 deletions

View File

@ -378,39 +378,51 @@ create or replace package PKG_EXS as
/* Помещение сообщения обмена в очередь */
procedure QUEUE_PUT
(
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
);
/* Помещение сообщения обмена в очередь (возвращает курсор с добавленной записью) */
procedure QUEUE_PUT
(
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
);
/* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки) */
procedure QUEUE_PUT
(
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
);
/* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки, возвращает курсор с добавленной записью) */
procedure QUEUE_PUT
(
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
);
/* Исполнение обработчика для сообщения обмена */
@ -1573,10 +1585,13 @@ create or replace package body PKG_EXS as
/* Помещение сообщения обмена в очередь */
procedure QUEUE_PUT
(
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
)
is
begin
@ -1595,22 +1610,34 @@ create or replace package body PKG_EXS as
BMSG => BMSG,
BRESP => null,
NEXSQUEUE => NEXSQUEUE,
NLNK_COMPANY => NLNK_COMPANY,
NLNK_DOCUMENT => NLNK_DOCUMENT,
SLNK_UNITCODE => SLNK_UNITCODE,
NRN => NNEW_EXSQUEUE);
end QUEUE_PUT;
/* Помещение сообщения обмена в очередь (возвращает курсор с добавленной записью) */
procedure QUEUE_PUT
(
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
NEXSSERVICEFN in number, -- Ðåã. íîìåð ôóíêöèè îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
)
is
NRN EXSQUEUE.RN%type; -- Рег. номер добавленной записи очереди
begin
/* Проверяем параметры */
QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN, BMSG => BMSG, NEXSQUEUE => NEXSQUEUE, NNEW_EXSQUEUE => NRN);
QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN,
BMSG => BMSG,
NEXSQUEUE => NEXSQUEUE,
NLNK_COMPANY => NLNK_COMPANY,
NLNK_DOCUMENT => NLNK_DOCUMENT,
SLNK_UNITCODE => SLNK_UNITCODE,
NNEW_EXSQUEUE => NRN);
/* Возвращаем добавленную позицию очереди */
QUEUE_GET(NFLAG_SMART => 0, NEXSQUEUE => NRN, RCQUEUE => RCQUEUE);
end QUEUE_PUT;
@ -1618,11 +1645,14 @@ create or replace package body PKG_EXS as
/* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки) */
procedure QUEUE_PUT
(
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
NNEW_EXSQUEUE out number -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
)
is
NEXSSERVICEFN PKG_STD.TREF; -- Рег. номер функции сервиса обработки
@ -1639,17 +1669,26 @@ create or replace package body PKG_EXS as
SEXSSERVICE => SEXSSERVICE,
SEXSSERVICEFN => SEXSSERVICEFN);
/* Ставим запись в очередь */
QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN, BMSG => BMSG, NEXSQUEUE => NEXSQUEUE, NNEW_EXSQUEUE => NNEW_EXSQUEUE);
QUEUE_PUT(NEXSSERVICEFN => NEXSSERVICEFN,
BMSG => BMSG,
NEXSQUEUE => NEXSQUEUE,
NLNK_COMPANY => NLNK_COMPANY,
NLNK_DOCUMENT => NLNK_DOCUMENT,
SLNK_UNITCODE => SLNK_UNITCODE,
NNEW_EXSQUEUE => NNEW_EXSQUEUE);
end QUEUE_PUT;
/* Помещение сообщения обмена в очередь (по коду сервиса и функции обрабоки, возвращает курсор с добавленной записью) */
procedure QUEUE_PUT
(
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
SEXSSERVICE in varchar2, -- Ìíåìîêîä ñåðâèñà äëÿ îáðàáîòêè
SEXSSERVICEFN in varchar2, -- Ìíåìîêîä ôóíêöèè ñåðâèñà äëÿ îáðàáîòêè
BMSG in blob, -- Äàííûå
NEXSQUEUE in number := null, -- Ðåã. íîìåð ñâÿçàííîé ïîçèöèè î÷åðåäè
NLNK_COMPANY in number := null, -- Ðåã. íîìåð ñâÿçàííîé îðãàíèçàöèè
NLNK_DOCUMENT in number := null, -- Ðåã. íîìåð ñâÿçàííîé çàïèñè äîêóìåíòà
SLNK_UNITCODE in varchar2 := null, -- Êîä ñâÿçàííîãî ðàçäåëà
RCQUEUE out sys_refcursor -- Êóðñîð ñ äîáàâëåííîé ïîçèöèåé î÷åðåäè
)
is
NRN EXSQUEUE.RN%type; -- Рег. номер добавленной записи очереди
@ -1659,6 +1698,9 @@ create or replace package body PKG_EXS as
SEXSSERVICEFN => SEXSSERVICEFN,
BMSG => BMSG,
NEXSQUEUE => NEXSQUEUE,
NLNK_COMPANY => NLNK_COMPANY,
NLNK_DOCUMENT => NLNK_DOCUMENT,
SLNK_UNITCODE => SLNK_UNITCODE,
NNEW_EXSQUEUE => NRN);
/* Возвращаем добавленную позицию очереди */
QUEUE_GET(NFLAG_SMART => 0, NEXSQUEUE => NRN, RCQUEUE => RCQUEUE);

View File

@ -178,6 +178,35 @@ exports.putQueue = new Schema({
`Идентификатор связанной позиции очереди обмена (${path}) имеет некорректный тип данных (ожидалось - Number)`,
required: path => `Не указан идентификатор связанной позиции очереди обмена (${path})`
}
},
//Идентификатор связанной организации
nLnkCompanyId: {
type: Number,
required: false,
message: {
type: path =>
`Идентификатор связанной организации (${path}) имеет некорректный тип данных (ожидалось - Number)`,
required: path => `Не указан идентификатор связанной организации (${path})`
}
},
//Идентификатор связанного документа
nLnkDocumentId: {
type: Number,
required: false,
message: {
type: path =>
`Идентификатор связанного документа (${path}) имеет некорректный тип данных (ожидалось - Number)`,
required: path => `Не указан идентификатор связанного документа (${path})`
}
},
//Код связанного раздела
sLnkUnitcode: {
type: String,
required: false,
message: {
type: path => `Код связанного раздела (${path}) имеет некорректный тип данных (ожидалось - String)`,
required: path => `Не указан код связанного раздела (${path})`
}
}
});

View File

@ -129,11 +129,14 @@ const getQueue = async prms => {
const putQueue = async prms => {
try {
let res = await prms.connection.execute(
"BEGIN PKG_EXS.QUEUE_PUT(NEXSSERVICEFN => :NEXSSERVICEFN, BMSG => :BMSG, NEXSQUEUE => :NEXSQUEUE, RCQUEUE => :RCQUEUE); END;",
"BEGIN PKG_EXS.QUEUE_PUT(NEXSSERVICEFN => :NEXSSERVICEFN, BMSG => :BMSG, NEXSQUEUE => :NEXSQUEUE, NLNK_COMPANY => :NLNK_COMPANY, NLNK_DOCUMENT => :NLNK_DOCUMENT, SLNK_UNITCODE => :SLNK_UNITCODE, RCQUEUE => :RCQUEUE); END;",
{
NEXSSERVICEFN: prms.nServiceFnId,
BMSG: prms.blMsg,
NEXSQUEUE: prms.nQueueId,
NLNK_COMPANY: prms.nLnkCompanyId,
NLNK_DOCUMENT: prms.nLnkDocumentId,
SLNK_UNITCODE: prms.sLnkUnitcode,
RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
},
{ outFormat: oracledb.OBJECT, autoCommit: true }