Новый параметр установки статуса сообщения - сброс данных сообщения к первоначальному варианту
This commit is contained in:
parent
bd0959f7cc
commit
ae9ed4f407
@ -114,7 +114,11 @@ create or replace package PKG_EXS as
|
||||
/* Êîíñòàíòû - êîäû ðåçóëüòàòîâ èñïîëíåíèÿ îáðàáîò÷èêà ñîîáùåíèÿ */
|
||||
SPRC_RESP_RESULT_OK constant varchar2(40) := 'OK'; -- Îáðàáîòàíî óñïåøíî
|
||||
SPRC_RESP_RESULT_ERR constant varchar2(40) := 'ERR'; -- Îøèáêà îáðàáîòêè
|
||||
SPRC_RESP_RESULT_UNAUTH constant varchar2(40) := 'UNAUTH'; -- Íåàóòåíòèôèöèðîâàí
|
||||
SPRC_RESP_RESULT_UNAUTH constant varchar2(40) := 'UNAUTH'; -- Íåàóòåíòèôèöèðîâàí
|
||||
|
||||
/* Êîíñòàíòû - ïðèçíàê ñáðîñà äàííûõ ñîîáùåíèÿ î÷åðåäè */
|
||||
NQUEUE_RESET_DATA_NO constant number(1) := 0; -- Íå ñáðàñûâàòü
|
||||
NQUEUE_RESET_DATA_YES constant number(1) := 1; -- Ñáðàñûâàòü
|
||||
|
||||
/* Êîíñòàíòû - îæèäàåìûé èíòåðôåéñ ïðîöåäóðû îáðàáîòêè ñîîáùåíèÿ î÷åðåäè íà ñòîðîíå ÁÄ */
|
||||
SPRC_RESP_ARGS constant varchar2(80) := 'NIDENT,IN,NUMBER;NEXSQUEUE,IN,NUMBER;'; -- Ñïèñîê ïàðàìåòðîâ ïðîöåäóðû îáðàáîòêè
|
||||
@ -439,6 +443,7 @@ create or replace package PKG_EXS as
|
||||
NEXEC_STATE in number, -- Óñòàíàâëèâàåìîå ñîñòîÿíèå (ñì. êîíñòíàòû NQUEUE_EXEC_STATE_*, null - íå ìåíÿòü)
|
||||
SEXEC_MSG in varchar2, -- Ñîîáùåíèå îáðàáîò÷èêà
|
||||
NINC_EXEC_CNT in number, -- Ôëàã èíêðåìåíòà ñ÷¸ò÷èêà èñïîëíåíèé (ñì. êîíñòíàòû NINC_EXEC_CNT_*, null - íå ìåíÿòü)
|
||||
NRESET_DATA in number, -- Ôëàã ñáðîñà äàííûõ ñîîáùåíèÿ (ñì. êîíñòàòíòû NQUEUE_RESET_DATA_NO*, null - íå ñáðàñûâàòü)
|
||||
RCQUEUE out sys_refcursor -- Êóðñîð ñ èçìåí¸ííîé ïîçèöèåé î÷åðåäè
|
||||
);
|
||||
|
||||
@ -1881,6 +1886,7 @@ create or replace package body PKG_EXS as
|
||||
NEXEC_STATE in number, -- Óñòàíàâëèâàåìîå ñîñòîÿíèå (ñì. êîíñòíàòû NQUEUE_EXEC_STATE_*, null - íå ìåíÿòü)
|
||||
SEXEC_MSG in varchar2, -- Ñîîáùåíèå îáðàáîò÷èêà
|
||||
NINC_EXEC_CNT in number, -- Ôëàã èíêðåìåíòà ñ÷¸ò÷èêà èñïîëíåíèé (ñì. êîíñòíàòû NINC_EXEC_CNT_*, null - íå ìåíÿòü)
|
||||
NRESET_DATA in number, -- Ôëàã ñáðîñà äàííûõ ñîîáùåíèÿ (ñì. êîíñòàòíòû NQUEUE_RESET_DATA_NO*, null - íå ñáðàñûâàòü)
|
||||
RCQUEUE out sys_refcursor -- Êóðñîð ñ èçìåí¸ííîé ïîçèöèåé î÷åðåäè
|
||||
)
|
||||
is
|
||||
@ -1921,7 +1927,9 @@ create or replace package body PKG_EXS as
|
||||
set T.EXEC_DATE = sysdate,
|
||||
T.EXEC_STATE = NVL(NEXEC_STATE, T.EXEC_STATE),
|
||||
T.EXEC_CNT = REXSQUEUE.EXEC_CNT,
|
||||
T.EXEC_MSG = SEXEC_MSG
|
||||
T.EXEC_MSG = SEXEC_MSG,
|
||||
T.MSG = DECODE(NVL(NRESET_DATA, NQUEUE_RESET_DATA_NO), NQUEUE_RESET_DATA_NO, T.MSG, T.MSG_ORIGINAL),
|
||||
T.RESP = DECODE(NVL(NRESET_DATA, NQUEUE_RESET_DATA_NO), NQUEUE_RESET_DATA_NO, T.RESP, null)
|
||||
where T.RN = NEXSQUEUE;
|
||||
if (sql%rowcount = 0) then
|
||||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => NEXSQUEUE, SUNIT_TABLE => 'EXSQUEUE');
|
||||
@ -2220,7 +2228,7 @@ create or replace package body PKG_EXS as
|
||||
SPROCEDURE => REXSMSGTYPE.PRC_RESP),
|
||||
RPARAM_CONTAINER => PRMS);
|
||||
/* Î÷èñòèì êîíòåéíåð ïàðàìåòðîâ */
|
||||
PKG_CONTPRMLOC.PURGE(RCONTAINER => PRMS);
|
||||
PKG_CONTPRMLOC.PURGE(RCONTAINER => PRMS);
|
||||
/* Çàáèðàåì ðåçóëüòàòû */
|
||||
PRC_RESP_RESULT_GET(NIDENT => NIDENT,
|
||||
SRESULT => SRESULT,
|
||||
@ -2284,7 +2292,13 @@ create or replace package body PKG_EXS as
|
||||
/* Âîçâðàùàåì ðåçóëüòàò â âèäå êóðñîðà */
|
||||
open RCRESULT for
|
||||
select SRESULT "sResult",
|
||||
SMSG "sMsg"
|
||||
DECODE(SRESULT,
|
||||
SPRC_RESP_RESULT_OK,
|
||||
null,
|
||||
SPRC_RESP_RESULT_ERR,
|
||||
NVL(SMSG, 'Íåîïðåäåë¸ííàÿ îøèáêà'),
|
||||
SPRC_RESP_RESULT_UNAUTH,
|
||||
NVL(SMSG, 'Íåò àóòåíòèôèêàöèè')) "sMsg"
|
||||
from DUAL;
|
||||
end QUEUE_PRC;
|
||||
|
||||
|
@ -38,6 +38,10 @@ const SPRC_RESP_RESULT_OK = "OK"; //Обработано успешно
|
||||
const SPRC_RESP_RESULT_ERR = "ERR"; //Ошибка обработки
|
||||
const SPRC_RESP_RESULT_UNAUTH = "UNAUTH"; //Неаутентифицирован
|
||||
|
||||
//Флаг сброса данных сообщения
|
||||
const NQUEUE_RESET_DATA_NO = 0; //Не сбрасывать
|
||||
const NQUEUE_RESET_DATA_YES = 1; //Сбросить
|
||||
|
||||
//------------------
|
||||
// Интерфейс модуля
|
||||
//------------------
|
||||
@ -64,6 +68,8 @@ exports.SQUEUE_EXEC_STATE_ERR = SQUEUE_EXEC_STATE_ERR;
|
||||
exports.SPRC_RESP_RESULT_OK = SPRC_RESP_RESULT_OK;
|
||||
exports.SPRC_RESP_RESULT_ERR = SPRC_RESP_RESULT_ERR;
|
||||
exports.SPRC_RESP_RESULT_UNAUTH = SPRC_RESP_RESULT_UNAUTH;
|
||||
exports.NQUEUE_RESET_DATA_NO = NQUEUE_RESET_DATA_NO;
|
||||
exports.NQUEUE_RESET_DATA_YES = NQUEUE_RESET_DATA_YES;
|
||||
|
||||
//Схема валидации сообщения очереди обмена
|
||||
exports.Queue = new Schema({
|
||||
|
@ -19,7 +19,9 @@ const {
|
||||
NQUEUE_EXEC_STATE_DB_OK,
|
||||
NQUEUE_EXEC_STATE_DB_ERR,
|
||||
NQUEUE_EXEC_STATE_OK,
|
||||
NQUEUE_EXEC_STATE_ERR
|
||||
NQUEUE_EXEC_STATE_ERR,
|
||||
NQUEUE_RESET_DATA_NO,
|
||||
NQUEUE_RESET_DATA_YES
|
||||
} = require("./obj_queue"); //Схемы валидации сообщения очереди обмена
|
||||
|
||||
//----------
|
||||
@ -368,6 +370,17 @@ exports.setQueueState = new Schema({
|
||||
enum: "Значение флага инкремента количества исполнений (nIncExecCnt) не поддерживается",
|
||||
required: "Не указан флаг икремента количества исполнений (nIncExecCnt)"
|
||||
}
|
||||
},
|
||||
//Флаг сброса данных сообщения
|
||||
nResetData: {
|
||||
type: Number,
|
||||
enum: [NQUEUE_RESET_DATA_NO, NQUEUE_RESET_DATA_YES],
|
||||
required: false,
|
||||
message: {
|
||||
type: "Флаг сброса данных сообщения (nResetData) имеет некорректный тип данных (ожидалось - Number)",
|
||||
enum: "Значение флага сброса данных сообщения (nResetData) не поддерживается",
|
||||
required: "Не указан флаг сброса данных сообщения (nResetData)"
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -238,12 +238,13 @@ const getQueueOutgoing = async prms => {
|
||||
const setQueueState = async prms => {
|
||||
try {
|
||||
let res = await prms.connection.execute(
|
||||
"BEGIN PKG_EXS.QUEUE_EXEC_STATE_SET(NEXSQUEUE => :NEXSQUEUE, NEXEC_STATE => :NEXEC_STATE, SEXEC_MSG => :SEXEC_MSG, NINC_EXEC_CNT => :NINC_EXEC_CNT, RCQUEUE => :RCQUEUE); END;",
|
||||
"BEGIN PKG_EXS.QUEUE_EXEC_STATE_SET(NEXSQUEUE => :NEXSQUEUE, NEXEC_STATE => :NEXEC_STATE, SEXEC_MSG => :SEXEC_MSG, NINC_EXEC_CNT => :NINC_EXEC_CNT, NRESET_DATA => :NRESET_DATA, RCQUEUE => :RCQUEUE); END;",
|
||||
{
|
||||
NEXSQUEUE: prms.nQueueId,
|
||||
NEXEC_STATE: prms.nExecState,
|
||||
SEXEC_MSG: prms.sExecMsg,
|
||||
NINC_EXEC_CNT: prms.nIncExecCnt,
|
||||
NRESET_DATA: prms.nResetData,
|
||||
RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
|
||||
},
|
||||
{ outFormat: oracledb.OBJECT, autoCommit: true }
|
||||
|
Loading…
x
Reference in New Issue
Block a user