P8-Panels/db/PKG_P8PANELS_RRPCONFED.pck

514 lines
29 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

create or replace package PKG_P8PANELS_RRPCONFED as
/* Получение разделов регламентированного отчёта */
procedure RRPCONF_GET_SECTIONS
(
NRN_RRPCONF in number, -- Ид. нстройки форм регламентированного отчёта
COUT out clob -- Список разделов
);
/* Добавление раздела регламентированного отчёта */
procedure RRPCONFSCTN_INSERT
(
NPRN in number, -- Ид. настройки форм регламентированного отчёта
SCODE in varchar2, -- Мнемокод
SNAME in varchar2, -- Наименование
NRN out number -- Ид. созданной записи
);
/* Исправление раздела регламентированного отчёта */
procedure RRPCONFSCTN_UPDATE
(
NRN in number, -- Ид. раздела
SCODE in varchar2, -- Мнемокод раздела
SNAME in varchar2 -- Наименование раздела
);
/* Удаление раздела регламентированного отчёта */
procedure RRPCONFSCTN_DELETE
(
NRN in number -- Ид. раздела
);
/* Получение кодов настройки, раздела и показателя раздела по ид. показателя раздела */
procedure RRPCONFSCTNMRK_GET_CODES
(
NRN in number, -- Ид. показателя раздела
SRRPCONF out varchar2, -- Код настройки формы регламентированного отчёта
SRRPCONFSCTN out varchar2, -- Код раздела
SRRPCONFSCTNMRK out varchar2 -- Код показателя раздела
);
/* Формирование кода и наименования показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_GET_CODE_NAME
(
SSCTNCODE in varchar2, -- Мнемокод раздела
SROWCODE in varchar2, -- Мнемокод строки
NROWVER in number, -- Ид. редакции строки
SCOLUMNCODE in varchar2, -- Мнемокод графы
NCOLUMNVER in number, -- Ид. редакции графы
SCODE out varchar2, -- Мнемокод показателя раздела
SNAME out varchar2 -- Наименование показателя раздела
);
/* Добавление показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_INSERT
(
NPRN in number, -- Ид. раздела
SCODE in varchar2, -- Мнемокод показателя раздела
SNAME in varchar2, -- Наименование показателя раздела
SCOLCODE in varchar2, -- Мнемокод графы
SCOLVER in varchar2, -- Мнемокод редакции графы
SROWCODE in varchar2, -- Мнемокод строки
SROWVER in varchar2, -- Мнемокод редакции строки
NRN out number -- Ид. созданной записи
);
/* Исправление показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_UPDATE
(
NRN in number, -- Ид. показателя раздела
SNAME in varchar2 -- Новое наименование
);
/* Удаление показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_DELETE
(
NRN in number -- Ид. показателя раздела
);
end PKG_P8PANELS_RRPCONFED;
/
create or replace package body PKG_P8PANELS_RRPCONFED as
/* Получение разделов регламентированного отчёта */
procedure RRPCONF_GET_SECTIONS
(
NRN_RRPCONF in number, -- Ид. нстройки форм регламентированного отчёта
COUT out clob -- Список разделов
)
is
NVERSION PKG_STD.TREF; -- Рег. номер версии словаря контрагентов
RDG PKG_P8PANELS_VISUAL.TDATA_GRID; -- Описание таблицы
RDG_ROW PKG_P8PANELS_VISUAL.TROW; -- Строка таблицы
CDG clob; -- XML данных раздела
CCURCLOB clob; -- XML текущего раздела
NCURRN PKG_STD.TREF; -- Ид. текущего раздела
SCURCODE PKG_STD.TSTRING; -- Мнемокод текущего раздела
SCURNAME PKG_STD.TSTRING; -- Наименование текущего раздела
SCUR_ROW PKG_STD.TSTRING := 'default'; -- Текущая строка таблицы
CXML PKG_CONTVALLOC2NS.TCONTAINER; -- Контейнер для данных XML
/* Курсор с отбором показателей раздела по ид. раздела */
cursor C1 (NSCTN_RN in number) is
select T.RN NRN,
T.PRN NPRN,
T.RRPCONF NRRPCONF,
T.RRPPRM NRRPPRM,
T.CODE SCODE,
T.NAME SNAME,
R.CODE SROW_CODE,
R.NAME SROW_NAME,
C.CODE SCOLUMN_CODE,
C.NAME SCOLUMN_NAME
from RRPCONFSCTNMRK T,
RRPROW R,
RRPCOLUMN C
where T.PRN in (select T2.RN
from RRPCONFSCTN T2
where T2.PRN = NRN_RRPCONF
and T2.VERSION = NVERSION)
and T.VERSION = NVERSION
and T.RRPROW = R.RN (+)
and T.RRPCOLUMN = C.RN (+)
and T.PRN = NSCTN_RN
order by T.CODE;
/* Курсор с отбором граф раздела по ид. раздела */
cursor CN (NSCTN_RN in number) is
select distinct(C.CODE) SCOLUMN_CODE,
C.NAME SCOLUMN_NAME
from RRPCONFSCTNMRK T,
RRPCOLUMN C
where T.PRN in (select T2.RN
from RRPCONFSCTN T2
where T2.PRN = NRN_RRPCONF
and T2.VERSION = NVERSION)
and T.VERSION = NVERSION
and T.RRPCOLUMN = C.RN (+)
and T.PRN = NSCTN_RN
order by SCOLUMN_CODE;
begin
/* Очистка контейнера */
PKG_CONTVALLOC2NS.PURGE(RCONTAINER => CXML);
/* Определение версии раздела */
NVERSION := GET_SESSION_VERSION(SUNITCODE => 'RRPConfig');
/* Цикл по разделам настройки форм регламентированного отчёта */
for C in (select T.RN NRN,
T.VERSION NVERSION,
T.CRN NCRN,
T.PRN NPRN,
T.CODE SCODE,
T.NAME SNAME
from RRPCONFSCTN T
where T.PRN = NRN_RRPCONF
and T.VERSION = NVERSION)
loop
/* Инициализируем таблицу данных */
RDG := PKG_P8PANELS_VISUAL.TDATA_GRID_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 1);
/* Формируем структуру заголовка */
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
SNAME => 'SROW_NAME',
SCAPTION => 'Наименование строки',
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
NWIDTH => 150);
/* Цикл формирования колонок с графами */
for CL in CN(C.NRN)
loop
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
SNAME => 'SCOL_' || CL.SCOLUMN_CODE,
SCAPTION => CL.SCOLUMN_NAME,
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR);
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
SNAME => 'NRN_' || CL.SCOLUMN_CODE,
SCAPTION => CL.SCOLUMN_NAME || ' Идентификаторы',
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
BVISIBLE => false);
end loop;
/* Для нового раздела очищаем переменную кода строки */
SCUR_ROW := 'default';
/* Инициализируем строку */
RDG_ROW := PKG_P8PANELS_VISUAL.TROW_MAKE();
/* Цикл заполнения строк данными о показателях раздела */
for CR in C1(C.NRN)
loop
/* Если новая строка */
if (SCUR_ROW != CR.SROW_CODE) then
/* Если строка не первая */
if (SCUR_ROW != 'default') then
/* Добавим строку для раздела */
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
/* Инициализируем новую строку */
RDG_ROW := PKG_P8PANELS_VISUAL.TROW_MAKE();
end if;
/* Запоминаем мнемокод новой строки */
SCUR_ROW := CR.SROW_CODE;
/* Заполняем наименование строки */
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_NAME', SVALUE => CR.SROW_NAME);
end if;
/* Заполняем наименование показателя раздела */
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SCOL_' || CR.SCOLUMN_CODE, SVALUE => CR.SNAME);
/* Заполняем ид. показателя раздела */
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NRN_' || CR.SCOLUMN_CODE, NVALUE => CR.NRN);
end loop;
/* Добавим последнюю строку для раздела */
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
/* Сериализуем описание */
CDG := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
/* Заполняем контейнер данными о разделе */
PKG_CONTVALLOC2NS.PUTS(RCONTAINER => CXML, NTABID => C.NRN, SROWID => C.NRN || '_CODE', SVALUE => C.SCODE);
PKG_CONTVALLOC2NS.PUTS(RCONTAINER => CXML, NTABID => C.NRN, SROWID => C.NRN || '_NAME', SVALUE => C.SNAME);
PKG_CONTVALLOC2NS.PUTLC(RCONTAINER => CXML, NTABID => C.NRN, SROWID => C.NRN || '_CLOB', LCVALUE => CDG);
end loop;
/* Формируем XML с данными */
PKG_XFAST.PROLOGUE(ITYPE => PKG_XFAST.CONTENT_);
PKG_XFAST.DOWN_NODE(SNAME => 'DATA');
/* Цикл по контейнеру с данными о разделах */
for X in 1 .. PKG_CONTVALLOC2NS.COUNT_(RCONTAINER => CXML)
loop
/* Ид. раздела */
if (X = 1) then
NCURRN := PKG_CONTVALLOC2NS.FIRST_(RCONTAINER => CXML);
else
NCURRN := PKG_CONTVALLOC2NS.NEXT_(RCONTAINER => CXML, NTABID => NCURRN);
end if;
/* Мнемокод раздела */
SCURCODE := PKG_CONTVALLOC2NS.GETS(RCONTAINER => CXML, NTABID => NCURRN, SROWID => NCURRN || '_CODE');
/* Наименование раздела */
SCURNAME := PKG_CONTVALLOC2NS.GETS(RCONTAINER => CXML, NTABID => NCURRN, SROWID => NCURRN || '_NAME');
/* Clob с показателями раздела */
CCURCLOB := PKG_CONTVALLOC2NS.GETLC(RCONTAINER => CXML, NTABID => NCURRN, SROWID => NCURRN || '_CLOB');
/* Формирование элемента XML с данными о разделе */
PKG_XFAST.DOWN_NODE(SNAME => 'SECTIONS');
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => NCURRN);
PKG_XFAST.ATTR(SNAME => 'SCODE', SVALUE => SCURCODE);
PKG_XFAST.ATTR(SNAME => 'SNAME', SVALUE => SCURNAME);
PKG_XFAST.VALUE_XML(LCVALUE => CCURCLOB);
PKG_XFAST.UP();
end loop;
PKG_XFAST.UP();
/* Сериализуем описание */
COUT := PKG_XFAST.SERIALIZE_TO_CLOB();
PKG_XFAST.EPILOGUE();
/* Очистка контейнера */
PKG_CONTVALLOC2NS.PURGE(RCONTAINER => CXML);
end RRPCONF_GET_SECTIONS;
/* Добавление раздела регламентированного отчёта */
procedure RRPCONFSCTN_INSERT
(
NPRN in number, -- Ид. настройки форм регламентированного отчёта
SCODE in varchar2, -- Мнемокод
SNAME in varchar2, -- Наименование
NRN out number -- Ид. созданной записи
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
begin
/* Добавим раздел */
P_RRPCONFSCTN_INSERT(NCOMPANY => NCOMPANY,
NPRN => NPRN,
SCODE => SCODE,
SNAME => SNAME,
SRRPCONFSCTN => null,
SRRPPRMGRP => null,
SNOTE => null,
NHTML_HIDE => 0,
NHTML_HIDE_NAME_COL => 0,
NHTML_MAKE_HIER_GRP => 0,
SCLSF_CODE => null,
NLINKS_UPDATE => 0,
NDUP_RN => null,
NRN => NRN);
end RRPCONFSCTN_INSERT;
/* Исправление раздела регламентированного отчёта */
procedure RRPCONFSCTN_UPDATE
(
NRN in number, -- Ид. раздела
SCODE in varchar2, -- Мнемокод раздела
SNAME in varchar2 -- Наименование раздела
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
RES RRPCONFSCTN%rowtype; -- Запись раздела настройки формы регламентированного отчета
RRRPCONFSCTN RRPCONFSCTN%rowtype;
RRRPPRMGRP RRPPRMGRP%rowtype;
begin
/* Считаем исправляемую запись */
RES := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN);
/* Считаем запись родительского этапа */
if (RES.RRPCONFSCTN is not null) then
RRRPCONFSCTN := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RES.RRPCONFSCTN);
end if;
/* Считаем запись группы параметров */
if (RES.RRPPRMGRP is not null) then
RRRPPRMGRP := GET_RRPPRMGRP_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RES.RRPPRMGRP);
end if;
/* Исправим раздел */
P_RRPCONFSCTN_UPDATE(NRN => RES.RN,
NCOMPANY => NCOMPANY,
SCODE => SCODE,
SNAME => SNAME,
SRRPCONFSCTN => RRRPCONFSCTN.CODE,
SRRPPRMGRP => RRRPPRMGRP.CODE,
SNOTE => RES.NOTE,
NHTML_HIDE => RES.HTML_HIDE,
NHTML_HIDE_NAME_COL => RES.HTML_HIDE_NAME_COL,
NHTML_MAKE_HIER_GRP => RES.HTML_MAKE_HIER_GRP,
SCLSF_CODE => RES.CLSF_CODE,
NFORMULA_UPDATE => 1,
NMARK_UPDATE => 1);
end RRPCONFSCTN_UPDATE;
/* Удаление раздела регламентированного отчёта */
procedure RRPCONFSCTN_DELETE
(
NRN in number -- Ид. раздела
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
begin
/* Удалим раздел */
P_RRPCONFSCTN_DELETE(NRN => NRN, NCOMPANY => NCOMPANY);
end RRPCONFSCTN_DELETE;
/* Получение кодов настройки, раздела и показателя раздела по ид. показателя раздела */
procedure RRPCONFSCTNMRK_GET_CODES
(
NRN in number, -- Ид. показателя раздела
SRRPCONF out varchar2, -- Код настройки формы регламентированного отчёта
SRRPCONFSCTN out varchar2, -- Код раздела
SRRPCONFSCTNMRK out varchar2 -- Код показателя раздела
)
is
NVERSION PKG_STD.TREF := GET_SESSION_VERSION(SUNITCODE => 'RRPConfig'); -- Версия раздела
begin
select R.CODE,
RS.CODE,
RSM.CODE
into SRRPCONF,
SRRPCONFSCTN,
SRRPCONFSCTNMRK
from RRPCONF R,
RRPCONFSCTN RS,
RRPCONFSCTNMRK RSM
where R.RN in (select RRPCONF
from RRPCONFSCTNMRK
where RN = NRN
and VERSION = NVERSION)
and RS.RN in (select PRN
from RRPCONFSCTNMRK
where RN = NRN
and VERSION = NVERSION)
and RSM.RN = NRN;
exception
when NO_DATA_FOUND then
P_EXCEPTION(0, 'По выбранному показателю раздела не найдено данных.');
when TOO_MANY_ROWS then
P_EXCEPTION(0,
'По выбранному показателю раздела найдено несколько записей.');
end RRPCONFSCTNMRK_GET_CODES;
/* Формирование кода и наименования показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_GET_CODE_NAME
(
SSCTNCODE in varchar2, -- Мнемокод раздела
SROWCODE in varchar2, -- Мнемокод строки
NROWVER in number, -- Ид. редакции строки
SCOLUMNCODE in varchar2, -- Мнемокод графы
NCOLUMNVER in number, -- Ид. редакции графы
SCODE out varchar2, -- Мнемокод показателя раздела
SNAME out varchar2 -- Наименование показателя раздела
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
NROWRN PKG_STD.TREF; -- Ид. строки
NCOLUMNRN PKG_STD.TREF; -- Ид. графы
begin
/* Сформируем код показателя */
P_RRPCONFSCTNMRK_MAKE_CODE(SRRPCONFSCTN => SSCTNCODE,
SRRPROW => SROWCODE,
SRRPCOLUMN => SCOLUMNCODE,
SCODE => SCODE);
/* Найдем рег. номер строки показателя */
FIND_RRPROW_CODE(NFLAG_SMART => 0,
NFLAG_OPTION => 0,
NCOMPANY => NCOMPANY,
NRRPVERSION => NROWVER,
SCODE => SROWCODE,
NRN => NROWRN);
/* Найдем рег. номер графы показателя */
FIND_RRPCOLUMN_CODE(NFLAG_SMART => 0,
NFLAG_OPTION => 0,
NCOMPANY => NCOMPANY,
NRRPVERSION => NCOLUMNVER,
SCODE => SCOLUMNCODE,
NRN => NCOLUMNRN);
/* Сформируем наименование показателя */
P_RRPCONFSCTNMRK_MAKE_NAME(NCOMPANY => NCOMPANY,
NRRPROW => NROWRN,
NRRPCOLUMN => NCOLUMNRN,
NCHANGE_NAME => 1,
NCHANGE_NAME_PARENT => 0,
SNAME => SNAME);
end RRPCONFSCTNMRK_GET_CODE_NAME;
/* Добавление показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_INSERT
(
NPRN in number, -- Ид. раздела
SCODE in varchar2, -- Мнемокод показателя раздела
SNAME in varchar2, -- Наименование показателя раздела
SCOLCODE in varchar2, -- Мнемокод графы
SCOLVER in varchar2, -- Мнемокод редакции графы
SROWCODE in varchar2, -- Мнемокод строки
SROWVER in varchar2, -- Мнемокод редакции строки
NRN out number -- Ид. созданной записи
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
begin
/* Добавим показатель */
P_RRPCONFSCTNMRK_INSERT(NCOMPANY => NCOMPANY,
NPRN => NPRN,
NNUMB => F_RRPCONFSCTNMRK_NEXT_NUMB(NCOMPANY => NCOMPANY, NPRN => NPRN),
SCODE => SCODE,
SNAME => SNAME,
SRRPROW => SROWCODE,
SRRPVERSION_ROW => SROWVER,
SRRPCOLUMN => SCOLCODE,
SRRPVERSION_COLUMN => SCOLVER,
SPKG_ROW => null,
SPRC_ROW => null,
SPKG_COL => null,
SPRC_COL => null,
SRRPPRM => null,
NIGNORE_ZOOM => 0,
NIGNORE_SHARP => 0,
SCLSF_CODE => null,
SNOTE => null,
NDUP_RN => null,
NRN => NRN);
end RRPCONFSCTNMRK_INSERT;
/* Исправление показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_UPDATE
(
NRN in number, -- Ид. показателя раздела
SNAME in varchar2 -- Новое наименование
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
RESSCTNMRK RRPCONFSCTNMRK%rowtype; -- Запись настройки показателя регламентированного отчета
RESROW RRPROW%rowtype; -- Запись строки регламентированного отчета
RESCOLUMN RRPCOLUMN%rowtype; -- Запись графы регламентированного отчета
RRRPPRM RRPPRM%rowtype; -- Запись типового параметра регламентированного отчета
SROWVER PKG_STD.TSTRING; -- Мнемокод редакции строки
SCOLVER PKG_STD.TSTRING; -- Мнемокод редакции графы
begin
/* Получение записи параметра раздела */
RESSCTNMRK := GET_RRPCONFSCTNMRK_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN);
/* Получение записи строки */
RESROW := GET_RRPROW_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPROW);
/* Получение записи графы */
RESCOLUMN := GET_RRPCOLUMN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPCOLUMN);
/* Получение мнемокода редакции строки */
if (RESROW.RRPVERSION is not null) then
SROWVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESROW.RRPVERSION);
end if;
/* Получение мнемокода редакции графы */
if (RESCOLUMN.RRPVERSION is not null) then
SCOLVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESCOLUMN.RRPVERSION);
end if;
/* Получение записи типового параметра */
if (RESSCTNMRK.RRPPRM is not null) then
RRRPPRM := GET_RRPPRM_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPPRM);
end if;
/* Исправим показатель */
P_RRPCONFSCTNMRK_UPDATE(NRN => NRN,
NCOMPANY => NCOMPANY,
NNUMB => RESSCTNMRK.NUMB,
SCODE => RESSCTNMRK.CODE,
SNAME => SNAME,
SRRPROW => RESROW.CODE,
SRRPVERSION_ROW => SROWVER,
SRRPCOLUMN => RESCOLUMN.CODE,
SRRPVERSION_COLUMN => SCOLVER,
SPKG_ROW => RESSCTNMRK.PKG_ROW,
SPRC_ROW => RESSCTNMRK.PRC_ROW,
SPKG_COL => RESSCTNMRK.PKG_COL,
SPRC_COL => RESSCTNMRK.PRC_COL,
SRRPPRM => RRRPPRM.CODE,
NIGNORE_ZOOM => RESSCTNMRK.IGNORE_ZOOM,
NIGNORE_SHARP => RESSCTNMRK.IGNORE_SHARP,
SCLSF_CODE => RESSCTNMRK.CLSF_CODE,
NFORMULA_UPDATE => 0,
SNOTE => RESSCTNMRK.NOTE);
end RRPCONFSCTNMRK_UPDATE;
/* Удаление показателя раздела регламентированного отчёта */
procedure RRPCONFSCTNMRK_DELETE
(
NRN in number -- Ид. показателя раздела
)
is
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
begin
/* Удалим показатель */
P_RRPCONFSCTNMRK_DELETE(NCOMPANY => NCOMPANY, NRN => NRN);
end RRPCONFSCTNMRK_DELETE;
end PKG_P8PANELS_RRPCONFED;
/