Выдача сообщений об ошибках обмена в виде ответа специального формата
This commit is contained in:
parent
bb5840f37d
commit
c9ef8f21d7
@ -121,6 +121,44 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
SMESSAGE constant varchar2(40) := 'Message';
|
||||
SERRORMESSAGE constant varchar2(40) := 'ErrorMessage';
|
||||
|
||||
/* Íîðìàëèçàöèÿ ñîîáùåíèÿ îá îøèáêå */
|
||||
function UTL_CORRECT_ERR
|
||||
(
|
||||
SERR varchar2 -- Ñîîáùåíèå îá îøèáêå
|
||||
) return varchar2 -- Íîðìàëèçîâàííîå ñîîáùåíèå îá îøèáêå
|
||||
is
|
||||
STMP PKG_STD.TSTRING; -- Áóôåð äëÿ îáðàáîòêè
|
||||
SRES PKG_STD.TSTRING; -- Ðåçóëüòàò ðàáîòû
|
||||
NB PKG_STD.TLNUMBER; -- Ïîçèöèÿ íà÷àëà óäàëÿåìîé ïîäñòðîêè
|
||||
NE PKG_STD.TLNUMBER; -- Ïîçèöèÿ îêîí÷àíèÿ óäàëÿåìîé ïîäñòðîêè
|
||||
begin
|
||||
/* Èíèöèàëèçèðóåì áóôåð */
|
||||
STMP := SERR;
|
||||
/* Óäàëÿåì ëèøíèå ñïåöñèìâîëû è òåõíè÷åñêóþ èíôîðìàöèþ èç îøèáêè */
|
||||
begin
|
||||
while (INSTR(STMP
|
||||
,'ORA') <> 0)
|
||||
loop
|
||||
NB := INSTR(STMP
|
||||
,'ORA');
|
||||
NE := INSTR(STMP
|
||||
,':'
|
||||
,NB);
|
||||
STMP := trim(replace(STMP
|
||||
,trim(SUBSTR(STMP
|
||||
,NB
|
||||
,NE - NB + 1))
|
||||
,''));
|
||||
end loop;
|
||||
SRES := STMP;
|
||||
exception
|
||||
when others then
|
||||
SRES := SERR;
|
||||
end;
|
||||
/* Âîçâðàùàåì ðåçóëüàò */
|
||||
return SRES;
|
||||
end UTL_CORRECT_ERR;
|
||||
|
||||
/* Ñîçäàíèå âåòêè XML */
|
||||
function UTL_CREATENODE
|
||||
(
|
||||
@ -241,17 +279,19 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Ôîðìèðîâàíèå îòâåòà ñ îøèáêîé */
|
||||
function UTL_CREATEERRORRESPONSE
|
||||
(
|
||||
XDOC in DBMS_XMLDOM.DOMDOCUMENT, -- Äîêóìåíò
|
||||
SMSG in varchar2 -- Ñîîáùåíèå îá îøèáêå
|
||||
) return clob -- Ðåçóëüòàò ðàáîòû
|
||||
is
|
||||
XFAULT DBMS_XMLDOM.DOMNODE; --
|
||||
XDETAIL DBMS_XMLDOM.DOMNODE; --
|
||||
XERRMSG DBMS_XMLDOM.DOMNODE; --
|
||||
XMSG DBMS_XMLDOM.DOMNODE; --
|
||||
XNODE DBMS_XMLDOM.DOMNODE; --
|
||||
XDOC DBMS_XMLDOM.DOMDOCUMENT; -- Äîêóìåíò
|
||||
XFAULT DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé óçåë
|
||||
XDETAIL DBMS_XMLDOM.DOMNODE; -- Óçåë äëÿ äåòàëèçàöèè îøèáêè
|
||||
XERRMSG DBMS_XMLDOM.DOMNODE; -- Óçåë ñ ñîîáùåíèåì îá îøèáêå
|
||||
XMSG DBMS_XMLDOM.DOMNODE; -- Óçåë òåêñòîì ñîîáùåíèÿ
|
||||
XNODE DBMS_XMLDOM.DOMNODE; -- Áóôåð äëÿ óçëà
|
||||
CDATA clob; -- Áóôåð äëÿ ðåçóëüòàòà
|
||||
begin
|
||||
/* Ñîçäà¸ì äîêóìåíò äëÿ îòâåòà */
|
||||
UTL_CREATERESPONSEDOC(XDOC => XDOC);
|
||||
/* Ñîáèðàåì îøèáêó â îòâåò */
|
||||
XFAULT := UTL_CREATENODE(XDOC => XDOC, STAG => SFAULT, SNS => SSOAPENV);
|
||||
XDETAIL := UTL_CREATENODE(XDOC => XDOC, STAG => SDETAIL);
|
||||
@ -265,7 +305,6 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
return CDATA;
|
||||
end UTL_CREATEERRORRESPONSE;
|
||||
|
||||
|
||||
/* Ñ÷èòûâàíèå çíà÷åíèÿ ñòðóêòóðíîãî ýëåìåíòà èç èåðàðõèè àäðåñà ãåîãðàôè÷åñêîãî ïîíÿòèÿ */
|
||||
function UTL_GEOGRAFY_GET_HIER_ITEM
|
||||
(
|
||||
@ -311,6 +350,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
|
||||
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
||||
SREQDEVICEID PKG_STD.TSTRING; -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
||||
begin
|
||||
begin
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -345,13 +385,18 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Îáîðà÷èâàåì åãî â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XCHECKAUTHRESPONSE);
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end CHECKAUTH;
|
||||
|
||||
@ -377,6 +422,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
|
||||
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
||||
SREQDEVICEID PKG_STD.TSTRING; -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
||||
begin
|
||||
begin
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -425,13 +471,18 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETUSERSRESPONSE);
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end GETUSERS;
|
||||
|
||||
@ -457,6 +508,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
|
||||
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
||||
SREQDEVICEID PKG_STD.TSTRING; -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
||||
begin
|
||||
begin
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -507,13 +559,18 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSHEETTYPESRESPONSE);
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end GETSHEETTYPES;
|
||||
|
||||
@ -547,6 +604,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
SREQPREFIX PKG_STD.TSTRING; -- Ïðåôèêñ âåäîìîñòè èç çàïðîñà (ïàðàìåòð îòáîðà)
|
||||
SREQNUMBER PKG_STD.TSTRING; -- Íîìåð âåäîìîñòè èç çàïðîñà (ïàðàìåòð îòáîðà)
|
||||
DREQDATE PKG_STD.TLDATE; -- Äàòà âåäîìîñòè èç çàïðîñà (ïàðàìåòð îòáîðà)
|
||||
begin
|
||||
begin
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -626,13 +684,18 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSHEETSRESPONSE);
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end GETSHEETS;
|
||||
|
||||
@ -664,6 +727,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
||||
SREQDEVICEID PKG_STD.TSTRING; -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
||||
NREQSHEETCODE PKG_STD.TREF; -- Âåäîìîñòü èç çàïðîñà (ïàðàìåòð îòáîðà)
|
||||
begin
|
||||
begin
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -736,7 +800,10 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
STAG => SSTORAGEMNEMOCODE,
|
||||
SNS => STSD,
|
||||
SVAL => REC.SSTORAGEMNEMOCODE);
|
||||
XUSERCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SUSERCODE, SNS => STSD, SVAL => trim(REC.NINVPERSONS));
|
||||
XUSERCODE := UTL_CREATENODE(XDOC => XDOC,
|
||||
STAG => SUSERCODE,
|
||||
SNS => STSD,
|
||||
SVAL => trim(REC.NINVPERSONS));
|
||||
XITEMCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SITEMCODE, SNS => STSD, SVAL => trim(REC.SIBARCODE));
|
||||
XITEMNAME := UTL_CREATENODE(XDOC => XDOC, STAG => SITEMNAME, SNS => STSD, SVAL => trim(REC.SNOM_NAME));
|
||||
XITEMMNEMOCODE := UTL_CREATENODE(XDOC => XDOC,
|
||||
@ -768,13 +835,18 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSHEETITEMSRESPONSE);
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end GETSHEETITEMS;
|
||||
|
||||
@ -810,6 +882,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
CREQ clob; -- Áóôåð äëÿ çàïðîñà
|
||||
SREQDEVICEID PKG_STD.TSTRING; -- Èäåíòèôèêàòîð óñòðîéñòâà èç çàïðîñà
|
||||
NREQSHEETCODE PKG_STD.TREF; -- Âåäîìîñòü èç çàïðîñà (ïàðàìåòð îòáîðà)
|
||||
begin
|
||||
begin
|
||||
/* Ñ÷èòàåì çàïèñü î÷åðåäè */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -847,7 +920,7 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
T.PLACE_NAME SNAME,
|
||||
UDO_F_GET_DOC_PROP_VAL_STR('LATITUDE', 'ObjPlace', T.RN) SLATITUDE,
|
||||
UDO_F_GET_DOC_PROP_VAL_STR('LONGITUDE', 'ObjPlace', T.RN) SLONGITUDE,
|
||||
nvl(T.ADDR_POST, G.POSTAL_CODE) SPOSTCODE,
|
||||
NVL(T.ADDR_POST, G.POSTAL_CODE) SPOSTCODE,
|
||||
UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 1) SCOUNTRY,
|
||||
UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 2) SREGION,
|
||||
NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 8),
|
||||
@ -899,13 +972,18 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSTORAGESRESPONSE);
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end GETSTORAGES;
|
||||
|
||||
@ -961,8 +1039,8 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
NINVENTORY PKG_STD.TREF; -- Ðåã. íîìåð ÎÑ (êàðòî÷êè "Èíâåíòàðíîé êàðòîòåêè")
|
||||
NCOMPANY PKG_STD.TREF; -- Ðåã. íîìåð îðãàíèçàöèè
|
||||
NPROPERTY PKG_STD.TREF; -- Ðåã. íîìåð ÄÑ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè äëÿ õðàíåíèÿ êîììåíòàðèÿ
|
||||
SERR PKG_STD.TSTRING; -- Áóôåð äëÿ îøèáîê
|
||||
NTMP PKG_STD.TREF; -- Áóôåð äëÿ ðåã. íîìåðîâ
|
||||
begin
|
||||
begin
|
||||
/* Èíèöèàëèçèðóåì îðãàíèçàöèþ */
|
||||
NCOMPANY := 136018;
|
||||
@ -1027,7 +1105,8 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
/* Ñ÷èòûâàåì "Êîëè÷åñòâî ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
NREQQUANTITY := TO_NUMBER(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SQUANTITY));
|
||||
/* Ñ÷èòûâàåì "Äàòà ïðîâåäåíèÿ èíâåíòàðèçàöèè ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
DREQCHECKDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCHECKDATE), 'YYYY-MM-DD"T"HH24:MI:SS');
|
||||
DREQCHECKDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCHECKDATE),
|
||||
'YYYY-MM-DD"T"HH24:MI:SS');
|
||||
/* Ñ÷èòûâàåì "Êîììåíòàðèé ÌÎË ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
SREQCOMMENT := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCOMMENT);
|
||||
/* Ñ÷èòûâàåì "Øèðîòà" (ïàðàìåòð ñîõðàíåíèÿ) */
|
||||
@ -1065,11 +1144,13 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
and T.BARCODE = SREQSTORAGECODE;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
SERR := 'Ìåñòîíàõîæäåíèå èíâåíòàðíûõ îáúåêòîâ ñ øòðèõ-êîäîì "' || SREQSTORAGECODE || '" íå íàéäåíî';
|
||||
P_EXCEPTION(0,
|
||||
'Ìåñòîíàõîæäåíèå èíâåíòàðíûõ îáúåêòîâ ñ øòðèõ-êîäîì "%s" íå íàéäåíî',
|
||||
SREQSTORAGECODE);
|
||||
end;
|
||||
end if;
|
||||
/* Ïðîáóåì íàéòè ïîçèöèþ âåäîìîñòè èíâåíòàðèçàöèè ïî øòðèõ-êîäó (åñëè ïåðåäàí ðåã. íîìåð âåäîìîñòè è ïîêà íåò îøèáîê) */
|
||||
if ((NREQSHEETCODE is not null) and (SERR is null)) then
|
||||
if (NREQSHEETCODE is not null) then
|
||||
begin
|
||||
select T.NRN
|
||||
into NELINVOBJECT
|
||||
@ -1088,12 +1169,12 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
and T.COMPANY = NCOMPANY;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
SERR := 'Èíâåíòàðíàÿ êàðòî÷êà ñ øòðèõ-êîäîì "' || SREQITEMCODE || '" íå íàéäåíà';
|
||||
P_EXCEPTION(0,
|
||||
'Èíâåíòàðíàÿ êàðòî÷êà ñ øòðèõ-êîäîì "%s" íå íàéäåíà',
|
||||
SREQITEMCODE);
|
||||
end;
|
||||
end;
|
||||
end if;
|
||||
/* Åñëè íåò îøèáîê ïðè ïðîâåðêàõ */
|
||||
if (SERR is null) then
|
||||
/* È ó íàñ åñòü øòðèõêîä ôàêòè÷åñêîãî ìåñòîíàõîæäåíèÿ */
|
||||
if (SDICPLACEBARCODE is not null) then
|
||||
/* Åñëè ïîçèöèÿ âåäîìîñòè èíâåíòàðèçàöèè íàéäåíà */
|
||||
@ -1138,12 +1219,10 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
NRN => NTMP);
|
||||
end if;
|
||||
else
|
||||
SERR := 'Íå óäàëîñü îïðåäåëèòü ôàêòè÷åñêîå ìåñòîíàõîæäåíèå';
|
||||
P_EXCEPTION(0,
|
||||
'Íå óäàëîñü îïðåäåëèòü ôàêòè÷åñêîå ìåñòîíàõîæäåíèå');
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
/* Åñëè íåò îøèáîê */
|
||||
if (SERR is null) then
|
||||
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
|
||||
XSAVESHEETITEMRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SSAVESHEETITEMRESPONSE, SNS => STSD);
|
||||
/* Ôîðìèðóåì ðåçóëüòàò */
|
||||
@ -1151,17 +1230,19 @@ create or replace package body UDO_PKG_EXS_INV as
|
||||
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XSAVESHEETITEMRESPONSE, NEWCHILD => XITEM);
|
||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XSAVESHEETITEMRESPONSE);
|
||||
else
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(XDOC => XDOC, SMSG => SERR);
|
||||
end if;
|
||||
end if;
|
||||
exception
|
||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
||||
when others then
|
||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||
end;
|
||||
/* Âîçâðàùàåì îòâåò */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK,
|
||||
BRESP => CLOB2BLOB(LCDATA => CRESPONSE, SCHARSET => 'UTF8'));
|
||||
exception
|
||||
when others then
|
||||
/* Âåðí¸ì îøèáêó */
|
||||
/* Âåðí¸ì îøèáêó - ýòî ôàòàëüíàÿ */
|
||||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
|
||||
end SAVESHEETITEM;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user