Расширение fault-сообщения для SaveItems (отдельное для элемента хранения и местоположения)
This commit is contained in:
parent
af27405432
commit
c0a36a3c4d
@ -140,8 +140,11 @@ create or replace package body UDO_PKG_EXS_INV as
|
|||||||
STAG_DISTANCETOSTORAGE constant varchar2(40) := 'DistanceToStorage';
|
STAG_DISTANCETOSTORAGE constant varchar2(40) := 'DistanceToStorage';
|
||||||
STAG_FAULT constant varchar2(40) := 'Fault';
|
STAG_FAULT constant varchar2(40) := 'Fault';
|
||||||
STAG_DETAIL constant varchar2(40) := 'detail';
|
STAG_DETAIL constant varchar2(40) := 'detail';
|
||||||
STAG_MESSAGE constant varchar2(40) := 'Message';
|
STAG_MESSAGE constant varchar2(40) := 'Message';
|
||||||
|
STAG_STORAGEMESSAGE constant varchar2(40) := 'StorageMessage';
|
||||||
|
STAG_ITEMMESSAGE constant varchar2(40) := 'ItemMessage';
|
||||||
STAG_ERRORMESSAGE constant varchar2(40) := 'ErrorMessage';
|
STAG_ERRORMESSAGE constant varchar2(40) := 'ErrorMessage';
|
||||||
|
STAG_ERRORMESSAGE_SSITEM constant varchar2(40) := 'ErrorSaveSheetItemMessage';
|
||||||
|
|
||||||
/* Êîíñòàíòû - òèïû âîçâðàùàåìûõ çíà÷åíèé */
|
/* Êîíñòàíòû - òèïû âîçâðàùàåìûõ çíà÷åíèé */
|
||||||
SRESULT_TYPE_MNEMO constant varchar2(40):='MNEMO'; -- Ìíåìîêîä
|
SRESULT_TYPE_MNEMO constant varchar2(40):='MNEMO'; -- Ìíåìîêîä
|
||||||
@ -323,6 +326,39 @@ create or replace package body UDO_PKG_EXS_INV as
|
|||||||
return CDATA;
|
return CDATA;
|
||||||
end UTL_CREATEERRORRESPONSE;
|
end UTL_CREATEERRORRESPONSE;
|
||||||
|
|
||||||
|
/* Ôîðìèðîâàíèå îòâåòà ñ îøèáêîé äëÿ ïðîöåäóðû èìïîðòà ðåçóëüòàòîâ èíâåíòàðèçàöèè */
|
||||||
|
function UTL_CREATEERRORRESPONSE_SSITEM
|
||||||
|
(
|
||||||
|
SMSG_ELINVOBJECT in varchar2, -- Ñîîáùåíèå îá îøèáêå (äëÿ èíâåíòàðíîãî îáúåêòà)
|
||||||
|
SMSG_DICPLACE in varchar2 -- Ñîîáùåíèå îá îøèáêå (äëÿ ìåñòîíàõîæäåíèÿ)
|
||||||
|
) return clob -- Ðåçóëüòàò ðàáîòû
|
||||||
|
is
|
||||||
|
XDOC DBMS_XMLDOM.DOMDOCUMENT; -- Äîêóìåíò
|
||||||
|
XFAULT DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé óçåë
|
||||||
|
XDETAIL DBMS_XMLDOM.DOMNODE; -- Óçåë äëÿ äåòàëèçàöèè îøèáêè
|
||||||
|
XERRMSG DBMS_XMLDOM.DOMNODE; -- Óçåë ñ ñîîáùåíèåì îá îøèáêå
|
||||||
|
XMSG_ELINVOBJECT DBMS_XMLDOM.DOMNODE; -- Óçåë òåêñòîì ñîîáùåíèÿ (äëÿ èíâåíòàðíîãî îáúåêòà)
|
||||||
|
XMSG_DICPLACE DBMS_XMLDOM.DOMNODE; -- Óçåë òåêñòîì ñîîáùåíèÿ (äëÿ ìåñòîíàõîæäåíèÿ)
|
||||||
|
XNODE DBMS_XMLDOM.DOMNODE; -- Áóôåð äëÿ óçëà
|
||||||
|
CDATA clob; -- Áóôåð äëÿ ðåçóëüòàòà
|
||||||
|
begin
|
||||||
|
/* Ñîçäà¸ì äîêóìåíò äëÿ îòâåòà */
|
||||||
|
UTL_CREATERESPONSEDOC(XDOC => XDOC);
|
||||||
|
/* Ñîáèðàåì îøèáêó â îòâåò */
|
||||||
|
XFAULT := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_FAULT, SNS => SNS_SOAPENV);
|
||||||
|
XDETAIL := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_DETAIL);
|
||||||
|
XERRMSG := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_ERRORMESSAGE_SSITEM, SNS => SNS_TSD);
|
||||||
|
XMSG_ELINVOBJECT := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_ITEMMESSAGE, SNS => SNS_TSD, SVAL => SMSG_ELINVOBJECT);
|
||||||
|
XMSG_DICPLACE := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_STORAGEMESSAGE, SNS => SNS_TSD, SVAL => SMSG_DICPLACE);
|
||||||
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XERRMSG, NEWCHILD => XMSG_ELINVOBJECT);
|
||||||
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XERRMSG, NEWCHILD => XMSG_DICPLACE);
|
||||||
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XDETAIL, NEWCHILD => XERRMSG);
|
||||||
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XFAULT, NEWCHILD => XDETAIL);
|
||||||
|
CDATA := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XFAULT);
|
||||||
|
/* Âîçâðàùàåì ðåçóëüòàò */
|
||||||
|
return CDATA;
|
||||||
|
end UTL_CREATEERRORRESPONSE_SSITEM;
|
||||||
|
|
||||||
/* Ñ÷èòûâàíèå çíà÷åíèÿ ñòðóêòóðíîãî ýëåìåíòà èç èåðàðõèè àäðåñà ãåîãðàôè÷åñêîãî ïîíÿòèÿ */
|
/* Ñ÷èòûâàíèå çíà÷åíèÿ ñòðóêòóðíîãî ýëåìåíòà èç èåðàðõèè àäðåñà ãåîãðàôè÷åñêîãî ïîíÿòèÿ */
|
||||||
function UTL_GEOGRAFY_GET_HIER_ITEM
|
function UTL_GEOGRAFY_GET_HIER_ITEM
|
||||||
(
|
(
|
||||||
@ -1126,6 +1162,8 @@ create or replace package body UDO_PKG_EXS_INV as
|
|||||||
RELINVENTORY ELINVENTORY%rowtype; -- Çàïèñü ìîäèôèöèðóåìîé âåäîìîñòè èíâåíòàðèçàöèè
|
RELINVENTORY ELINVENTORY%rowtype; -- Çàïèñü ìîäèôèöèðóåìîé âåäîìîñòè èíâåíòàðèçàöèè
|
||||||
NELINVOBJECT PKG_STD.TREF; -- Ðåã. íîìåð ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè
|
NELINVOBJECT PKG_STD.TREF; -- Ðåã. íîìåð ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè
|
||||||
SDICPLACE_BARCODE PKG_STD.TSTRING; -- Øòðèõ-êîä ìåñòîíàõîæäåíèÿ ÎÑ (äëÿ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè)
|
SDICPLACE_BARCODE PKG_STD.TSTRING; -- Øòðèõ-êîä ìåñòîíàõîæäåíèÿ ÎÑ (äëÿ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè)
|
||||||
|
SERR_ELINVOBJECT PKG_STD.TSTRING; -- Áóôåð äëÿ îøèáêè îáðàáîòêè èíâåíòàðíîé êàðòî÷êè
|
||||||
|
SERR_DICPLACE PKG_STD.TSTRING; -- Áóôåð äëÿ îøèáêè îáðàáîòêè ìåñòîíàõîæäåíèÿ
|
||||||
|
|
||||||
/* Ïîèñê ãåîãðàôè÷åñêîãî ïîíÿòèÿ ïî ïàðàìåòðàì */
|
/* Ïîèñê ãåîãðàôè÷åñêîãî ïîíÿòèÿ ïî ïàðàìåòðàì */
|
||||||
function FIND_GEOGRAFY
|
function FIND_GEOGRAFY
|
||||||
@ -1533,48 +1571,70 @@ create or replace package body UDO_PKG_EXS_INV as
|
|||||||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => NREQ_SHEET_CODE, SUNIT_TABLE => 'ELINVENTORY');
|
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => NREQ_SHEET_CODE, SUNIT_TABLE => 'ELINVENTORY');
|
||||||
end;
|
end;
|
||||||
/* Îáðàáàòûâàåì ìåñòîíàõîæäåíèå */
|
/* Îáðàáàòûâàåì ìåñòîíàõîæäåíèå */
|
||||||
PROCESS_DICPLACE(NCOMPANY => RELINVENTORY.COMPANY,
|
begin
|
||||||
NIS_NEW => NREQ_STORAGE_ISNEW,
|
PROCESS_DICPLACE(NCOMPANY => RELINVENTORY.COMPANY,
|
||||||
SMNEMO => SREQ_STORAGE_MNEMOCODE,
|
NIS_NEW => NREQ_STORAGE_ISNEW,
|
||||||
SNAME => SREQ_STORAGE_NAME,
|
SMNEMO => SREQ_STORAGE_MNEMOCODE,
|
||||||
SBARCODE => SREQ_STORAGE_CODE,
|
SNAME => SREQ_STORAGE_NAME,
|
||||||
SADDR_POSTCODE => SREQ_STORAGE_POSTCODE,
|
SBARCODE => SREQ_STORAGE_CODE,
|
||||||
SADDR_COUNTRY => SREQ_STORAGE_COUNTRY,
|
SADDR_POSTCODE => SREQ_STORAGE_POSTCODE,
|
||||||
SADDR_REGION => SREQ_STORAGE_REGION,
|
SADDR_COUNTRY => SREQ_STORAGE_COUNTRY,
|
||||||
SADDR_LOCALITY => SREQ_STORAGE_LOCALITY,
|
SADDR_REGION => SREQ_STORAGE_REGION,
|
||||||
SADDR_STREET => SREQ_STORAGE_STREET,
|
SADDR_LOCALITY => SREQ_STORAGE_LOCALITY,
|
||||||
SADDR_HOUSE => SREQ_STORAGE_HOUSE,
|
SADDR_STREET => SREQ_STORAGE_STREET,
|
||||||
SLATITUDE => SREQ_STORAGE_LATITUDE,
|
SADDR_HOUSE => SREQ_STORAGE_HOUSE,
|
||||||
SLONGITUDE => SREQ_STORAGE_LONGITUDE,
|
SLATITUDE => SREQ_STORAGE_LATITUDE,
|
||||||
SDICPLACE_BARCODE => SDICPLACE_BARCODE);
|
SLONGITUDE => SREQ_STORAGE_LONGITUDE,
|
||||||
/* Îáðàáàòûâàåì ÎÑ */
|
SDICPLACE_BARCODE => SDICPLACE_BARCODE);
|
||||||
PROCESS_INVENTORY(RELINVENTORY => RELINVENTORY,
|
exception
|
||||||
SBARCODE => SREQ_ITEM_CODE,
|
when others then
|
||||||
SINV_NUMBER => SREQ_ITEM_NUMBER,
|
SERR_DICPLACE := sqlerrm;
|
||||||
NELINVOBJECT => NELINVOBJECT);
|
end;
|
||||||
/* Îáðàáàòûâàåì ýëåìåíò âåäîìîñòè */
|
/* Åñëè ìåòîíàõîæäåíèå îáðàáîòàíî óñïåøíî */
|
||||||
PROCESS_ELINVOBJECT(RELINVENTORY => RELINVENTORY,
|
if (SERR_DICPLACE is null) then
|
||||||
NELINVOBJECT => NELINVOBJECT,
|
begin
|
||||||
NINVPERSONS => NREQ_USER_CODE,
|
/* Îáðàáàòûâàåì ÎÑ */
|
||||||
DINV_DATE => DREQ_ITEM_CHECKDATE,
|
PROCESS_INVENTORY(RELINVENTORY => RELINVENTORY,
|
||||||
SBARCODE => SDICPLACE_BARCODE,
|
SBARCODE => SREQ_ITEM_CODE,
|
||||||
SITEM_COMMENT => SREQ_ITEM_COMMENT,
|
SINV_NUMBER => SREQ_ITEM_NUMBER,
|
||||||
NITEM_DISTANCE => NREQ_ITEM_DISTANCE,
|
NELINVOBJECT => NELINVOBJECT);
|
||||||
SITEM_LATITUDE => SREQ_ITEM_LATITUDE,
|
/* Îáðàáàòûâàåì ýëåìåíò âåäîìîñòè */
|
||||||
SITEM_LONGITUDE => SREQ_ITEM_LONGITUDE,
|
PROCESS_ELINVOBJECT(RELINVENTORY => RELINVENTORY,
|
||||||
NITEM_QUANTITY => NREQ_ITEM_QUANTITY);
|
NELINVOBJECT => NELINVOBJECT,
|
||||||
|
NINVPERSONS => NREQ_USER_CODE,
|
||||||
|
DINV_DATE => DREQ_ITEM_CHECKDATE,
|
||||||
|
SBARCODE => SDICPLACE_BARCODE,
|
||||||
|
SITEM_COMMENT => SREQ_ITEM_COMMENT,
|
||||||
|
NITEM_DISTANCE => NREQ_ITEM_DISTANCE,
|
||||||
|
SITEM_LATITUDE => SREQ_ITEM_LATITUDE,
|
||||||
|
SITEM_LONGITUDE => SREQ_ITEM_LONGITUDE,
|
||||||
|
NITEM_QUANTITY => NREQ_ITEM_QUANTITY);
|
||||||
|
exception
|
||||||
|
when others then
|
||||||
|
SERR_ELINVOBJECT := sqlerrm;
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
SERR_ELINVOBJECT := 'Âîçíèêëè îøèáêè ïðè îáðàáîòêå ìåñòà õðàíåíèÿ';
|
||||||
|
end if;
|
||||||
else
|
else
|
||||||
P_EXCEPTION(0, 'Â çàïðîñå íå óêàçàí èäåíòèôèêàòîð âåäîìîñòè.');
|
P_EXCEPTION(0, 'Â çàïðîñå íå óêàçàí èäåíòèôèêàòîð âåäîìîñòè.');
|
||||||
end if;
|
end if;
|
||||||
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
|
/* Åñëè îøèáîê íåò - âîçâðàùàåì ïîëîæèòåëüíûé îòâåò */
|
||||||
XSAVESHEETITEMRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_SAVESHEETITEMRSPNS, SNS => SNS_TSD);
|
if ((SERR_ELINVOBJECT is null) and (SERR_DICPLACE is null)) then
|
||||||
/* Ôîðìèðóåì ðåçóëüòàò */
|
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
|
||||||
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_RESULT, SNS => SNS_TSD, SVAL => 'true');
|
XSAVESHEETITEMRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_SAVESHEETITEMRSPNS, SNS => SNS_TSD);
|
||||||
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XSAVESHEETITEMRESPONSE, NEWCHILD => XITEM);
|
/* Ôîðìèðóåì ðåçóëüòàò */
|
||||||
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => STAG_RESULT, SNS => SNS_TSD, SVAL => 'true');
|
||||||
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XSAVESHEETITEMRESPONSE);
|
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XSAVESHEETITEMRESPONSE, NEWCHILD => XITEM);
|
||||||
|
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
|
||||||
|
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XSAVESHEETITEMRESPONSE);
|
||||||
|
else
|
||||||
|
/* Áûëè îøèáêè - âåðí¸ì èõ */
|
||||||
|
CRESPONSE := UTL_CREATEERRORRESPONSE_SSITEM(SMSG_ELINVOBJECT => UTL_CORRECT_ERR(SERR => SERR_ELINVOBJECT),
|
||||||
|
SMSG_DICPLACE => UTL_CORRECT_ERR(SERR => SERR_DICPLACE));
|
||||||
|
end if;
|
||||||
exception
|
exception
|
||||||
/* Ïåðåõâàòûâàåì âîçìîæíûå îøèáêè */
|
/* Ïåðåõâàòûâàåì âîçìîæíûå íåîáðàáîòàííûå ðàíåå îøèáêè */
|
||||||
when others then
|
when others then
|
||||||
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
CRESPONSE := UTL_CREATEERRORRESPONSE(SMSG => UTL_CORRECT_ERR(SERR => sqlerrm));
|
||||||
end;
|
end;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user