Корректировка алгоритма обновления места хранения ОС по штрих-коду места хранения импортированного из ТСД

This commit is contained in:
Mikhail Chechnev 2019-01-14 19:32:22 +03:00
parent 0c1c3e668a
commit bb5840f37d

View File

@ -56,13 +56,6 @@ create or replace package UDO_PKG_EXS_INV as
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
); );
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - ñîõðàíåíèå ðåçóëüòàòîâ èíâåíòàðèçàöèè (ÄÅÌÎ, óáðàòü!!!!) */
procedure SAVESHEETITEM_TMP
(
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
);
end; end;
/ /
create or replace package body UDO_PKG_EXS_INV as create or replace package body UDO_PKG_EXS_INV as
@ -582,7 +575,7 @@ create or replace package body UDO_PKG_EXS_INV as
/* Ñ÷èòûâàåì "Íîìåð" (ïàðàìåòð îòáîðà) */ /* Ñ÷èòûâàåì "Íîìåð" (ïàðàìåòð îòáîðà) */
SREQNUMBER := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SNUMBER); SREQNUMBER := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SNUMBER);
/* Ñ÷èòûâàåì "Äàòó" (ïàðàìåòð îòáîðà) */ /* Ñ÷èòûâàåì "Äàòó" (ïàðàìåòð îòáîðà) */
DREQDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SDATE), 'yyyy-mm-dd'); DREQDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SDATE), 'YYYY-MM-DD');
/* Êîíòðîëü èíäåòèôèêàòîðà óñòðîéñòâà ïî ëèöåíçèè */ /* Êîíòðîëü èíäåòèôèêàòîðà óñòðîéñòâà ïî ëèöåíçèè */
/* UTL_CHECK_DEVICEID(SDEVICEID => SREQDEVICEID); */ /* UTL_CHECK_DEVICEID(SDEVICEID => SREQDEVICEID); */
/* Ïîäãîòàâëèâàåì äîêóìåíò äëÿ îòâåòà */ /* Ïîäãîòàâëèâàåì äîêóìåíò äëÿ îòâåòà */
@ -703,7 +696,11 @@ create or replace package body UDO_PKG_EXS_INV as
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */ /* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
XGETSHEETITEMSRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SGETSHEETITEMSRESPONSE, SNS => STSD); XGETSHEETITEMSRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SGETSHEETITEMSRESPONSE, SNS => STSD);
/* Îáõîäèì òèïû äîêóìåíòîâ ñâÿçàííûå ñ ðàçäåëîì "Ýëåêòðîííûå èíâåíòàðèçàöèè" */ /* Îáõîäèì òèïû äîêóìåíòîâ ñâÿçàííûå ñ ðàçäåëîì "Ýëåêòðîííûå èíâåíòàðèçàöèè" */
for REC in (select DECODE(T.INVPACK, null, O.PLACE_MNEMO, OP.PLACE_MNEMO) SSTORAGEMNEMOCODE, for REC in (select T.RN NRN,
T.COMPANY NCOMPANY,
T.BARCODE SBARCODE,
T.IS_LOADED NIS_LOADED,
DECODE(T.INVPACK, null, O.PLACE_MNEMO, OP.PLACE_MNEMO) SSTORAGEMNEMOCODE,
DECODE(T.INVPACK, null, O.BARCODE, OP.BARCODE) SOBARCODE, DECODE(T.INVPACK, null, O.BARCODE, OP.BARCODE) SOBARCODE,
T.INVPERSONS NINVPERSONS, T.INVPERSONS NINVPERSONS,
DECODE(PS.RN, DECODE(PS.RN,
@ -759,6 +756,14 @@ create or replace package body UDO_PKG_EXS_INV as
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XITEMNUMBER); XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XITEMNUMBER);
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XQUANTITY); XNODE := DBMS_XMLDOM.APPENDCHILD(N => XITEM, NEWCHILD => XQUANTITY);
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XGETSHEETITEMSRESPONSE, NEWCHILD => XITEM); XNODE := DBMS_XMLDOM.APPENDCHILD(N => XGETSHEETITEMSRESPONSE, NEWCHILD => XITEM);
/* Âûñòàâèì äàòó âûãðóçêè â òåðìèíàë äëÿ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè */
P_ELINVOBJECT_BASE_UPDATE(NCOMPANY => REC.NCOMPANY,
NRN => REC.NRN,
DUNLOAD_DATE => sysdate,
DINV_DATE => null,
NINVPERSONS => REC.NINVPERSONS,
SBARCODE => REC.SBARCODE,
NIS_LOADED => REC.NIS_LOADED);
end loop; end loop;
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */ /* Îáîðà÷èâàåì îòâåò â êîíâåðò */
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSHEETITEMSRESPONSE); CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XGETSHEETITEMSRESPONSE);
@ -849,7 +854,8 @@ create or replace package body UDO_PKG_EXS_INV as
NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 4), NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 4),
NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 3), UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 2)))) SLOCALITY, NVL(UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 3), UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 2)))) SLOCALITY,
UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 5) SSTREET, UTL_GEOGRAFY_GET_HIER_ITEM(G.RN, 5) SSTREET,
T.ADDR_HOUSE SHOUSENUMBER T.ADDR_HOUSE SHOUSENUMBER,
T.BARCODE SBARCODE
from DICPLACE T, from DICPLACE T,
GEOGRAFY G GEOGRAFY G
where T.COMPANY = 136018 where T.COMPANY = 136018
@ -866,7 +872,7 @@ create or replace package body UDO_PKG_EXS_INV as
loop loop
/* Ñîáèðàåì èíôîðìàöèþ ïî ìåñòó õðàíåíèÿ â îòâåò */ /* Ñîáèðàåì èíôîðìàöèþ ïî ìåñòó õðàíåíèÿ â îòâåò */
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => SITEM, SNS => STSD); XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => SITEM, SNS => STSD);
XCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SCODE, SNS => STSD, SVAL => REC.NRN); XCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SCODE, SNS => STSD, SVAL => REC.SBARCODE);
XNAME := UTL_CREATENODE(XDOC => XDOC, STAG => SNAME, SNS => STSD, SVAL => REC.SNAME); XNAME := UTL_CREATENODE(XDOC => XDOC, STAG => SNAME, SNS => STSD, SVAL => REC.SNAME);
XMNEMOCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SMNEMOCODE, SNS => STSD, SVAL => REC.SMNEMOCODE); XMNEMOCODE := UTL_CREATENODE(XDOC => XDOC, STAG => SMNEMOCODE, SNS => STSD, SVAL => REC.SMNEMOCODE);
XLATITUDE := UTL_CREATENODE(XDOC => XDOC, STAG => SLATITUDE, SNS => STSD, SVAL => REC.SLATITUDE); XLATITUDE := UTL_CREATENODE(XDOC => XDOC, STAG => SLATITUDE, SNS => STSD, SVAL => REC.SLATITUDE);
@ -951,17 +957,21 @@ create or replace package body UDO_PKG_EXS_INV as
SREQROOM PKG_STD.TSTRING; -- Ïîìåùåíèå ðàñïîëîæåíèÿ ÎÑ èç çàïðîñà (ïàðàìåòð ñîõðàíåíèÿ) SREQROOM PKG_STD.TSTRING; -- Ïîìåùåíèå ðàñïîëîæåíèÿ ÎÑ èç çàïðîñà (ïàðàìåòð ñîõðàíåíèÿ)
SREQRACK PKG_STD.TSTRING; -- Ñòåëëàæ ðàñïîëîæåíèÿ ÎÑ èç çàïðîñà (ïàðàìåòð ñîõðàíåíèÿ) SREQRACK PKG_STD.TSTRING; -- Ñòåëëàæ ðàñïîëîæåíèÿ ÎÑ èç çàïðîñà (ïàðàìåòð ñîõðàíåíèÿ)
NELINVOBJECT PKG_STD.TREF; -- Ðåã. íîìåð ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè NELINVOBJECT PKG_STD.TREF; -- Ðåã. íîìåð ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè
NDICPLACE PKG_STD.TREF; -- Ðåã. íîìåð ìåñòà õðàíåíèÿ SDICPLACEBARCODE PKG_STD.TSTRING; -- Øòðèõ-êîä ìåñòà õðàíåíèÿ gñîãëàñíî âåäîìîñòè
NINVENTORY PKG_STD.TREF; -- Ðåã. íîìåð ÎÑ (êàðòî÷êè "Èíâåíòàðíîé êàðòîòåêè") NINVENTORY PKG_STD.TREF; -- Ðåã. íîìåð ÎÑ (êàðòî÷êè "Èíâåíòàðíîé êàðòîòåêè")
NCOMPANY PKG_STD.TREF; -- Ðåã. íîìåð îðãàíèçàöèè NCOMPANY PKG_STD.TREF; -- Ðåã. íîìåð îðãàíèçàöèè
NPROPERTY PKG_STD.TREF; -- Ðåã. íîìåð ÄÑ ïîçèöèè âåäîìîñòè èíâåíòàðèçàöèè äëÿ õðàíåíèÿ êîììåíòàðèÿ
SERR PKG_STD.TSTRING; -- Áóôåð äëÿ îøèáîê SERR PKG_STD.TSTRING; -- Áóôåð äëÿ îøèáîê
NTMP PKG_STD.TREF; -- Áóôåð äëÿ ðåã. íîìåðîâ
begin begin
/* Èíèöèàëèçèðóåì îðãàíèçàöèþ */ /* Èíèöèàëèçèðóåì îðãàíèçàöèþ */
NCOMPANY := 136018; NCOMPANY := 136018;
/* Èíèöèàëèçèðóåì ÄÑ äëÿ õðàíåíèÿ ïðèìå÷àíèÿ */
FIND_DOCS_PROPS_CODE(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, SCODE => 'COMMENT', NRN => NPROPERTY);
/* Ñ÷èòàåì çàïèñü î÷åðåäè */ /* Ñ÷èòàåì çàïèñü î÷åðåäè */
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE); REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
/* Âîçüìåì òåêñò çàïðîñà */ /* Âîçüìåì òåêñò çàïðîñà */
CREQ := BLOB2CLOB(LBDATA => REXSQUEUE.MSG); CREQ := BLOB2CLOB(LBDATA => REXSQUEUE.MSG, SCHARSET => 'UTF8');
/* Ñîçäàåì èíñòàíñ XML ïàðñåðà */ /* Ñîçäàåì èíñòàíñ XML ïàðñåðà */
XMLPARCER := DBMS_XMLPARSER.NEWPARSER; XMLPARCER := DBMS_XMLPARSER.NEWPARSER;
/* Ðàçáèðàåì XML èç çàïðîñà */ /* Ðàçáèðàåì XML èç çàïðîñà */
@ -1017,7 +1027,7 @@ create or replace package body UDO_PKG_EXS_INV as
/* Ñ÷èòûâàåì "Êîëè÷åñòâî ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */ /* Ñ÷èòûâàåì "Êîëè÷åñòâî ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
NREQQUANTITY := TO_NUMBER(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SQUANTITY)); NREQQUANTITY := TO_NUMBER(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SQUANTITY));
/* Ñ÷èòûâàåì "Äàòà ïðîâåäåíèÿ èíâåíòàðèçàöèè ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */ /* Ñ÷èòûâàåì "Äàòà ïðîâåäåíèÿ èíâåíòàðèçàöèè ÎÑ" (ïàðàìåòð ñîõðàíåíèÿ) */
DREQCHECKDATE := TO_DATE(UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCHECKDATE), 'yyyy-mm-dd'); 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); SREQCOMMENT := UTL_GETNODEVAL(XROOTNODE => XNODE_ROOT, SPATTERN => SCOMMENT);
/* Ñ÷èòûâàåì "Øèðîòà" (ïàðàìåòð ñîõðàíåíèÿ) */ /* Ñ÷èòûâàåì "Øèðîòà" (ïàðàìåòð ñîõðàíåíèÿ) */
@ -1046,16 +1056,16 @@ create or replace package body UDO_PKG_EXS_INV as
*/ */
/* Åñëè çàäàí øòðèõ-êîä ìåñòàíõîæäåíèÿ ÎÑ */ /* Åñëè çàäàí øòðèõ-êîä ìåñòàíõîæäåíèÿ ÎÑ */
if (SREQSTORAGECODE is not null) then if (SREQSTORAGECODE is not null) then
/* Ïðîâåðÿåì ìåñòîíàõîõæäåíèå ïî øòðèõ-êîäó */ /* Ïðîâåðÿåì íàëè÷èå ìåñòîíàõîõæäåíèÿ */
begin begin
select T.RN select T.BARCODE
into NDICPLACE into SDICPLACEBARCODE
from DICPLACE T from DICPLACE T
where T.COMPANY = NCOMPANY where T.COMPANY = NCOMPANY
and T.BARCODE = SREQSTORAGECODE; and T.BARCODE = SREQSTORAGECODE;
exception exception
when NO_DATA_FOUND then when NO_DATA_FOUND then
SERR := 'Ìåñòîíàõîæäåíèå èíâåíòàðíûõ îáúåêòîâ ñ øòðèõ-êîäîì: ' || SREQSTORAGECODE || ' íå íàéäåíî'; SERR := 'Ìåñòîíàõîæäåíèå èíâåíòàðíûõ îáúåêòîâ ñ øòðèõ-êîäîì "' || SREQSTORAGECODE || '" íå íàéäåíî';
end; end;
end if; end if;
/* Ïðîáóåì íàéòè ïîçèöèþ âåäîìîñòè èíâåíòàðèçàöèè ïî øòðèõ-êîäó (åñëè ïåðåäàí ðåã. íîìåð âåäîìîñòè è ïîêà íåò îøèáîê) */ /* Ïðîáóåì íàéòè ïîçèöèþ âåäîìîñòè èíâåíòàðèçàöèè ïî øòðèõ-êîäó (åñëè ïåðåäàí ðåã. íîìåð âåäîìîñòè è ïîêà íåò îøèáîê) */
@ -1078,22 +1088,34 @@ create or replace package body UDO_PKG_EXS_INV as
and T.COMPANY = NCOMPANY; and T.COMPANY = NCOMPANY;
exception exception
when NO_DATA_FOUND then when NO_DATA_FOUND then
SERR := 'Èíâåíòàðíàÿ êàðòî÷êà ñ øòðèõ-êîäîì: ' || SREQITEMCODE || ' íå íàéäåíà'; SERR := 'Èíâåíòàðíàÿ êàðòî÷êà ñ øòðèõ-êîäîì "' || SREQITEMCODE || '" íå íàéäåíà';
end; end;
end; end;
end if; end if;
/* Åñëè íåò îøèáîê ïðè ïðîâåðêàõ */ /* Åñëè íåò îøèáîê ïðè ïðîâåðêàõ */
if (SERR is null) then if (SERR is null) then
/* È ó íàñ åñòü øòðèõêîä ôàêòè÷åñêîãî ìåñòîíàõîæäåíèÿ */
if (SDICPLACEBARCODE is not null) then
/* Åñëè ïîçèöèÿ âåäîìîñòè èíâåíòàðèçàöèè íàéäåíà */ /* Åñëè ïîçèöèÿ âåäîìîñòè èíâåíòàðèçàöèè íàéäåíà */
if (NELINVOBJECT is not null) then if (NELINVOBJECT is not null) then
/* Îáíîâèì å¸ */ /* Îáíîâèì å¸ */
P_ELINVOBJECT_BASE_UPDATE(NCOMPANY => NCOMPANY, for C in (select T.* from ELINVOBJECT T where T.RN = NELINVOBJECT)
NRN => NELINVOBJECT, loop
DUNLOAD_DATE => null, P_DOCS_PROPS_VALS_BASE_MODIFY(NDOCUMENT => C.RN,
SUNITCODE => 'ElectronicInventoriesObjects',
NPROPERTY => NPROPERTY,
SSTR_VALUE => SREQCOMMENT,
NNUM_VALUE => null,
DDATE_VALUE => null,
NRN => NTMP);
P_ELINVOBJECT_BASE_UPDATE(NCOMPANY => C.COMPANY,
NRN => C.RN,
DUNLOAD_DATE => C.UNLOAD_DATE,
DINV_DATE => DREQCHECKDATE, DINV_DATE => DREQCHECKDATE,
NINVPERSONS => NREQUSERCODE, NINVPERSONS => NREQUSERCODE,
SBARCODE => SREQSTORAGECODE, SBARCODE => SDICPLACEBARCODE,
NIS_LOADED => 0); NIS_LOADED => C.IS_LOADED);
end loop;
else else
/* Èëè äîáàâèì â âåäîìîñòü íàéäåííóþ ÈÊ åñëè íå íàøëè ïîçèöèþ âåäîìîñòè ïî øòðèõ-êîäó */ /* Èëè äîáàâèì â âåäîìîñòü íàéäåííóþ ÈÊ åñëè íå íàøëè ïîçèöèþ âåäîìîñòè ïî øòðèõ-êîäó */
P_ELINVOBJECT_BASE_INSERT(NCOMPANY => NCOMPANY, P_ELINVOBJECT_BASE_INSERT(NCOMPANY => NCOMPANY,
@ -1104,9 +1126,19 @@ create or replace package body UDO_PKG_EXS_INV as
DUNLOAD_DATE => null, DUNLOAD_DATE => null,
DINV_DATE => DREQCHECKDATE, DINV_DATE => DREQCHECKDATE,
NINVPERSONS => NREQUSERCODE, NINVPERSONS => NREQUSERCODE,
SBARCODE => SREQSTORAGECODE, SBARCODE => SDICPLACEBARCODE,
NIS_LOADED => 1, NIS_LOADED => 1,
NRN => NELINVOBJECT); NRN => NELINVOBJECT);
P_DOCS_PROPS_VALS_BASE_MODIFY(NDOCUMENT => NELINVOBJECT,
SUNITCODE => 'ElectronicInventoriesObjects',
NPROPERTY => NPROPERTY,
SSTR_VALUE => SREQCOMMENT,
NNUM_VALUE => null,
DDATE_VALUE => null,
NRN => NTMP);
end if;
else
SERR := 'Íå óäàëîñü îïðåäåëèòü ôàêòè÷åñêîå ìåñòîíàõîæäåíèå';
end if; end if;
end if; end if;
end if; end if;
@ -1133,36 +1165,5 @@ create or replace package body UDO_PKG_EXS_INV as
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm); PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR, SMSG => sqlerrm);
end SAVESHEETITEM; end SAVESHEETITEM;
/* Ýëåêòðîííàÿ èíâåíòàðèçàöèÿ - ñîõðàíåíèå ðåçóëüòàòîâ èíâåíòàðèçàöèè (ÄÅÌÎ, óáðàòü!!!!) */
procedure SAVESHEETITEM_TMP
(
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
NEXSQUEUE in number -- Ðåãèñòðàöèîííûé íîìåð îáðàáàòûâàåìîé ïîçèöèè î÷åðåäè îáìåíà
)
is
CRESPONSE clob; -- Áóôåð äëÿ îòâåòà
XSAVESHEETITEMRESPONSE DBMS_XMLDOM.DOMNODE; -- Êîðíåâîé ýëåìåíò îòâåòà
XNODE DBMS_XMLDOM.DOMNODE; -- Áóôåð äëÿ âåòêè îòâåòà
XITEM DBMS_XMLDOM.DOMNODE; -- Ýëåìåíò îòâåòíîãî ñïèñêà
XDOC DBMS_XMLDOM.DOMDOCUMENT; -- Äîêóìåíò
begin
UTL_CREATERESPONSEDOC(XDOC => XDOC);
/* Ñîçäà¸ì ïðîñòðàíñòâî èì¸í äëÿ îòâåòà */
XSAVESHEETITEMRESPONSE := UTL_CREATENODE(XDOC => XDOC, STAG => SSAVESHEETITEMRESPONSE, SNS => STSD);
/* Ôîðìèðóåì ðåçóëüòàò */
XITEM := UTL_CREATENODE(XDOC => XDOC, STAG => SRESULT, SNS => STSD, SVAL => 'true');
XNODE := DBMS_XMLDOM.APPENDCHILD(N => XSAVESHEETITEMRESPONSE, NEWCHILD => XITEM);
/* Îáîðà÷èâàåì îòâåò â êîíâåðò */
CRESPONSE := UTL_CREATERESPONSE(XDOC => XDOC, XCONTENT => XSAVESHEETITEMRESPONSE);
/* Âîçâðàùàåì îòâåò */
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_TMP;
end; end;
/ /