From 76a500e8494e56d388c4530db86fdc5efb2195d9 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Sat, 29 Dec 2018 16:08:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B2=20=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B4=D1=8C=20-=20sOptions=20(=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D1=8B=20=D0=BF=D0=BE=D0=B7?= =?UTF-8?q?=D0=B8=D1=86=D0=B8=D0=B8=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/db_connector.js | 11 +++++------ models/prms_db_connector.js | 9 +++++++++ modules/parus_oracle_db.js | 3 ++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/core/db_connector.js b/core/db_connector.js index 78dac86..de47051 100644 --- a/core/db_connector.js +++ b/core/db_connector.js @@ -334,14 +334,13 @@ class DBConnector extends EventEmitter { ); //Если структура объекта в норме if (!sCheckResult) { + //Подготовим параметры + let putQueueData = _.cloneDeep(prms); + putQueueData.blMsg = prms.blMsg ? prms.blMsg : new Buffer(""); + putQueueData.connection = this.connection; //Исполняем действие в БД try { - let res = await this.connector.putQueue({ - nServiceFnId: prms.nServiceFnId, - blMsg: prms.blMsg ? prms.blMsg : new Buffer(""), - nQueueId: prms.nQueueId, - connection: this.connection - }); + let res = await this.connector.putQueue(putQueueData); //Валидируем полученный ответ sCheckResult = validateObject(res, objQueueSchema.Queue, "Добавленное сообщение очереди обмена"); if (sCheckResult) throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult); diff --git a/models/prms_db_connector.js b/models/prms_db_connector.js index 5a40a02..7bfb9f3 100644 --- a/models/prms_db_connector.js +++ b/models/prms_db_connector.js @@ -207,6 +207,15 @@ exports.putQueue = new Schema({ type: path => `Код связанного раздела (${path}) имеет некорректный тип данных (ожидалось - String)`, required: path => `Не указан код связанного раздела (${path})` } + }, + //Параметры сообщения + sOptions: { + type: String, + required: false, + message: { + type: path => `Параметры сообщения (${path}) имеют некорректный тип данных (ожидалось - String)`, + required: path => `Не указаны параметры сообщения (${path})` + } } }); diff --git a/modules/parus_oracle_db.js b/modules/parus_oracle_db.js index aa3003a..0f61fff 100644 --- a/modules/parus_oracle_db.js +++ b/modules/parus_oracle_db.js @@ -129,7 +129,7 @@ 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, NLNK_COMPANY => :NLNK_COMPANY, NLNK_DOCUMENT => :NLNK_DOCUMENT, SLNK_UNITCODE => :SLNK_UNITCODE, 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, SOPTIONS => :SOPTIONS, RCQUEUE => :RCQUEUE); END;", { NEXSSERVICEFN: prms.nServiceFnId, BMSG: prms.blMsg, @@ -137,6 +137,7 @@ const putQueue = async prms => { NLNK_COMPANY: prms.nLnkCompanyId, NLNK_DOCUMENT: prms.nLnkDocumentId, SLNK_UNITCODE: prms.sLnkUnitcode, + SOPTIONS: prms.sOptions, RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT } }, { outFormat: oracledb.OBJECT, autoCommit: true }