The following lines contain the word 'select', 'insert', 'update' or 'delete':
G_DEFAULT_PRICE_UPDATE CONSTANT INTEGER := 1;
G_CX_MUST_BE_DELETED CONSTANT VARCHAR2(1) :='D';
G_MARK_TO_DELETE CONSTANT VARCHAR2(1) := '3';
G_DELETE_PAGE CONSTANT INTEGER := 1;
G_DELETE_ELEMENTS CONSTANT INTEGER := 2;
G_DELETE_MODE CONSTANT VARCHAR2(1) := '0';
G_ITEM_SELECTION_TABLE CONSTANT NUMBER := 6013;
G_SELECTION_STATUS_INDICATOR CONSTANT NUMBER := 6026;
SELECT seeded_flag INTO l_seeded_flag FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID;
FOR i IN(SELECT DISTINCT template_id, detailed_type_id
FROM CZ_UITEMPLS_FOR_PSNODES_V
WHERE devl_project_id=p_model_id AND
ui_def_id=p_ui_def_id AND
template_ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID AND
deleted_flag = G_NO_FLAG)
LOOP
IF is_Used_By_Reference(i.detailed_type_id, i.template_id)=FALSE AND
NOT(g_locked_templates_id_tbl.EXISTS(i.template_id)) THEN
BEGIN
--
-- lock current UI Template
--
lock_UI_Template( i.template_id, G_GLOBAL_TEMPLATES_UI_DEF_ID, l_needs_to_be_unlocked);
SELECT CZ_UI_PAGE_ELEMENTS_S.nextval INTO g_currentUINode FROM dual;
SELECT CZ_UI_PAGE_REFS_S.nextval INTO g_currentPageRef FROM dual;
SELECT CZ_UI_PAGES_S.nextval INTO g_currentPage FROM dual;
SELECT CZ_UI_PAGE_SETS_S.nextval INTO g_currentPageSet FROM dual;
SELECT CZ_UI_ACTIONS_S.nextval INTO g_currentUIAction FROM dual;
g_ui_def_nodes_tbl.DELETE;
g_ui_pages_counter_tbl.DELETE;
g_root_persist_id_tbl.DELETE;
g_local_ui_context.DELETE;
g_check_boundaries_tbl.DELETE;
g_locked_templates_id_tbl.DELETE;
g_elements_to_move.DELETE;
g_dom_elements_to_move.DELETE;
g_tgt_pg_to_src_pg_map.DELETE;
SELECT increment_by INTO l_seq_increment
FROM all_sequences
WHERE sequence_owner=p_sequence_owner AND
sequence_name=p_sequence_name;
SELECT CZ_UI_PAGE_ELEMENTS_S.nextval INTO g_currUISeqVal FROM dual;
SELECT CZ_UI_PAGE_REFS_S.nextval INTO g_currPageRefSeqVal FROM dual;
SELECT CZ_UI_PAGES_S.nextval INTO g_currPageSeqVal FROM dual;
SELECT CZ_UI_PAGE_SETS_S.nextval INTO g_currPageSetSeqVal FROM dual;
SELECT CZ_UI_ACTIONS_S.nextval INTO g_currUIActionSeqVal FROM dual;
SELECT CZ_INTL_TEXTS_S.nextval INTO g_currIntlTextSeqVal FROM dual;
EXECUTE IMMEDIATE 'SELECT ' || p_sequence_name || '.NEXTVAL FROM dual' INTO l_id;
SELECT * INTO g_local_ui_context(p_ui_def_id) FROM CZ_UI_DEFS
WHERE ui_def_id=p_ui_def_id;
SELECT * INTO g_local_ui_context(p_ui_def_id)
FROM CZ_UI_DEFS
WHERE ui_def_id=p_ui_def_id;
UPDATE CZ_UI_PAGES
SET deleted_flag = DECODE(deleted_flag,G_MARK_TO_ADD,
G_MARK_TO_ADD,G_MARK_TO_REFRESH),
page_rev_nbr=page_rev_nbr+1
WHERE page_id=p_page_id AND
ui_def_id=p_ui_def_id AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD,G_MARK_TO_REFRESH);
PROCEDURE mark_UI_Page_As_Deleted(p_page_id IN NUMBER,
p_ui_def_id IN NUMBER) IS
BEGIN
UPDATE CZ_UI_PAGES
SET deleted_flag = G_MARK_TO_DELETE
WHERE page_id=p_page_id AND
ui_def_id=p_ui_def_id;
END mark_UI_Page_As_Deleted;
UPDATE CZ_UI_DEFS
SET ui_status=p_ui_status
WHERE ui_def_id=p_ui_def_id;
IF p_hmode = G_DELETE_PAGE THEN
UPDATE CZ_UI_PAGES
SET page_rev_nbr = page_rev_nbr + 1,
deleted_flag = G_YES_FLAG
WHERE page_id = p_page_id AND
ui_def_id = g_UI_Context.ui_def_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id= g_UI_Context.ui_def_id AND
page_id=p_page_id;
ELSIF p_hmode = G_DELETE_ELEMENTS THEN
--
-- mark elements as already deleted
--
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id= g_UI_Context.ui_def_id AND
page_id=p_page_id AND
deleted_flag IN(G_MARK_TO_DELETE);
UPDATE CZ_UI_PAGES
SET page_rev_nbr = page_rev_nbr + 1
WHERE page_id = p_page_id AND
ui_def_id = g_UI_Context.ui_def_id;
UPDATE CZ_UI_PAGES
SET page_rev_nbr = page_rev_nbr+1,
deleted_flag = G_NO_FLAG
WHERE page_id = p_page_id AND ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_NO_FLAG
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
deleted_flag NOT IN(G_NO_FLAG,G_YES_FLAG,G_LIMBO_FLAG);
UPDATE CZ_UI_PAGES
SET page_rev_nbr = 1,
deleted_flag = G_NO_FLAG
WHERE page_id = p_page_id AND ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_NO_FLAG
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
deleted_flag NOT IN(G_NO_FLAG,G_YES_FLAG,G_LIMBO_FLAG);
UPDATE CZ_UI_PAGES
SET deleted_flag = G_NO_FLAG
WHERE page_id = p_page_id AND ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_NO_FLAG
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
SELECT COUNT(page_id)
INTO l_page_counter
FROM CZ_UI_PAGES
WHERE ui_def_id = g_UI_Context.ui_def_id;
SELECT COUNT(*) INTO l_counter FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND jrad_doc=l_jrad_doc;
SELECT COUNT(*) INTO l_counter FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND jrad_doc=l_jrad_doc;
SELECT * INTO g_ui_def_nodes_tbl(p_ui_def_id)
FROM CZ_UI_DEFS
WHERE ui_def_id = p_ui_def_id;
SELECT DISTINCT *
INTO g_model_nodes_tbl(p_ps_node_id)
FROM CZ_UITEMPLS_FOR_PSNODES_V
WHERE ps_node_id = p_ps_node_id AND
ui_def_id=g_UI_Context.from_master_template_id AND
deleted_flag = G_NO_FLAG;
SELECT persistent_node_id
INTO g_root_persist_id_tbl(g_UI_Context.devl_project_id)
FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND
parent_id IS NULL AND
deleted_flag=G_NO_FLAG;
SELECT DISTINCT *
INTO l_node
FROM CZ_UITEMPLS_FOR_PSNODES_V
WHERE devl_project_id = p_model_id AND
persistent_node_id = p_persistent_node_id AND
ui_def_id=g_UI_Context.from_master_template_id AND
deleted_flag = G_NO_FLAG;
x_non_deleted_child_nodes_tbl OUT NOCOPY model_nodes_tbl_type,
p_include_deleted_nodes IN VARCHAR2 DEFAULT G_NO_FLAG) IS
l_current_model_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
IF l_current_model_node.deleted_flag = G_NO_FLAG THEN
x_non_deleted_child_nodes_tbl(x_non_deleted_child_nodes_tbl.COUNT+1) := l_current_model_node;
FOR i IN (SELECT DISTINCT *
FROM CZ_UITEMPLS_FOR_PSNODES_V
WHERE ui_def_id=g_UI_Context.from_master_template_id AND
parent_id = p_ps_node_id AND
(ui_omit = G_NO_FLAG OR p_show_all_nodes = G_YES_FLAG) AND
(p_include_deleted_nodes = G_YES_FLAG OR deleted_flag = G_NO_FLAG)
ORDER BY tree_seq)
LOOP
IF i.deleted_flag = G_NO_FLAG AND i.detailed_type_id=G_UNDEFINED_DATA_TYPE THEN
g_WRONG_PS_NODE_ID := i.ps_node_id;
IF i.deleted_flag = G_NO_FLAG THEN
x_non_deleted_child_nodes_tbl(x_non_deleted_child_nodes_tbl.COUNT+1) := i;
SELECT MIN(model_ref_expl_id)
INTO l_model_ref_expl_id
FROM CZ_MODEL_REF_EXPLS a
WHERE model_id = p_model_id AND
referring_node_id = p_ps_node_id AND
deleted_flag = G_NO_FLAG;
SELECT MIN(model_ref_expl_id)
INTO l_model_ref_expl_id
FROM CZ_MODEL_REF_EXPLS
WHERE model_id = p_model_id AND
component_id = p_component_id AND
referring_node_id IS NULL AND
deleted_flag = G_NO_FLAG;
SELECT * INTO l_page_node
FROM CZ_UI_PAGES
WHERE page_id=p_page_id AND
ui_def_id=g_UI_Context.ui_def_id;
SELECT *
INTO l_ui_node
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id=p_page_id AND
element_id = p_element_id;
SELECT *
INTO l_page_set_node
FROM CZ_UI_PAGE_SETS
WHERE page_set_id = p_page_set_id AND
ui_def_id=g_UI_Context.ui_def_id;
SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
ctrl_template_id=p_template_id AND
deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
SELECT template_name||' - '||TO_CHAR(l_counter)
INTO l_ui_node_name
FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND
ui_def_id=g_UI_Context.ui_def_id;
SELECT template_name||' - '||TO_CHAR(l_counter)
INTO l_ui_node_name
FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND
ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID;
SELECT jrad_doc INTO g_template_jrad_name_tbl(p_template_id)
FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND
ui_def_id=p_template_ui_def_id;
SELECT jrad_doc INTO g_template_jrad_name_tbl(p_template_id)
FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND
ui_def_id=g_UI_Context.ui_def_id;
SELECT jrad_doc INTO g_template_jrad_name_tbl(p_template_id)
FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND
ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID;
SELECT ui_action_id
INTO l_ui_action_id
FROM CZ_UI_ACTIONS
WHERE ui_def_id = p_ui_node.ui_def_id AND
source_page_id=p_ui_node.page_id AND
element_id = p_ui_node.element_id AND
deleted_flag=G_NO_FLAG;
SELECT seeded_flag INTO l_seeded_flag FROM CZ_INTL_TEXTS
WHERE intl_text_id=p_intl_text_id;
SELECT NVL(devl_project_id,0) INTO l_model_id FROM CZ_UI_DEFS
WHERE ui_def_id=p_target_ui_def_id;
INSERT INTO CZ_INTL_TEXTS
(INTL_TEXT_ID,
TEXT_STR,
DELETED_FLAG,
SEEDED_FLAG,
UI_DEF_ID,
MODEL_ID,
UI_PAGE_ID,
UI_PAGE_ELEMENT_ID
)
SELECT
l_ui_intl_text_id,
text_str,
G_NO_FLAG,
G_NO_FLAG,
p_target_ui_def_id,
l_model_id,
p_page_id,
p_element_id
FROM CZ_INTL_TEXTS
WHERE intl_text_id=p_intl_text_id;
INSERT INTO CZ_UI_IMAGES
(UI_DEF_ID
,MASTER_TEMPLATE_FLAG
,IMAGE_USAGE_CODE
,IMAGE_FILE
,DELETED_FLAG
,SEEDED_FLAG
,ENTITY_CODE,
LAST_UPDATE_LOGIN)
SELECT
p_ui_def_id
,G_NO_FLAG
,IMAGE_USAGE_CODE
,IMAGE_FILE
,DELETED_FLAG
,G_NO_FLAG
,ENTITY_CODE
,-UID
FROM CZ_UI_IMAGES a
WHERE ui_def_id=p_master_template_id
AND deleted_flag=G_NO_FLAG AND
NOT EXISTS(SELECT NULL FROM CZ_UI_IMAGES
WHERE ui_def_id=p_ui_def_id AND
IMAGE_USAGE_CODE=a.IMAGE_USAGE_CODE AND
ENTITY_CODE=a.ENTITY_CODE AND deleted_flag=G_NO_FLAG);
UPDATE CZ_UI_IMAGES a
SET IMAGE_FILE=(SELECT IMAGE_FILE FROM CZ_UI_IMAGES
WHERE ui_def_id=p_master_template_id AND
IMAGE_USAGE_CODE=a.IMAGE_USAGE_CODE AND
ENTITY_CODE=a.ENTITY_CODE AND deleted_flag=G_NO_FLAG )
WHERE ui_def_id=p_ui_def_id AND deleted_flag=G_NO_FLAG;
FOR h IN(SELECT * FROM CZ_UI_CONT_TYPE_TEMPLS
WHERE ui_def_id = p_master_template_id AND
content_type=p_content_type AND
deleted_flag=G_NO_FLAG)
LOOP
BEGIN
INSERT INTO CZ_UI_CONT_TYPE_TEMPLS
(ui_def_id,
content_type,
template_id,
master_template_flag,
seeded_flag,
template_ui_def_id,
deleted_flag)
VALUES(
p_ui_def_id,
h.content_type,
h.template_id,
G_NO_FLAG,
G_NO_FLAG,
l_template_ui_def_id,
G_NO_FLAG);
INSERT INTO CZ_UI_TEMPLATES
(TEMPLATE_ID,
UI_DEF_ID,
TEMPLATE_NAME,
TEMPLATE_TYPE,
TEMPLATE_DESC,
PARENT_CONTAINER_TYPE,
JRAD_DOC,
BUTTON_BAR_TEMPLATE_ID,
MESSAGE_TYPE,
MAIN_MESSAGE_ID,
TITLE_ID,
SEEDED_FLAG,
LAYOUT_UI_STYLE,
ROOT_REGION_TYPE,
ROOT_ELEMENT_SIGNATURE_ID,
BUTTON_BAR_TEMPL_UIDEF_ID,
TEMPLATE_USAGE,
AMN_USAGE,
DELETED_FLAG)
SELECT
template_id,
g_UI_Context.ui_def_id,
TEMPLATE_NAME,
TEMPLATE_TYPE,
TEMPLATE_DESC,
PARENT_CONTAINER_TYPE,
l_jrad_doc,
BUTTON_BAR_TEMPLATE_ID,
MESSAGE_TYPE,
MAIN_MESSAGE_ID,
TITLE_ID,
G_NO_FLAG,
LAYOUT_UI_STYLE,
ROOT_REGION_TYPE,
ROOT_ELEMENT_SIGNATURE_ID,
BUTTON_BAR_TEMPL_UIDEF_ID,
TEMPLATE_USAGE,
AMN_USAGE,
G_NO_FLAG
FROM CZ_UI_TEMPLATES
WHERE template_id=p_template_id AND ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID;
FOR m IN(SELECT DISTINCT detailed_type_id
FROM CZ_UITEMPLS_FOR_PSNODES_V
WHERE devl_project_id=g_UI_Context.devl_project_id AND
ui_def_id=g_UI_Context.from_master_template_id AND
deleted_flag=G_NO_FLAG AND ui_omit=G_NO_FLAG)
LOOP
l_detailed_type_id_tbl(m.detailed_type_id) := m.detailed_type_id;
FOR k IN(SELECT * FROM CZ_UI_CONT_TYPE_TEMPLS
WHERE ui_def_id = g_UI_Context.from_master_template_id AND
deleted_flag = G_NO_FLAG)
LOOP
IF k.content_type = G_PAGE_STATUS_CONTENT_TYPE THEN
g_PAGE_STATUS_TEMPLATE_ID := k.template_id;
SELECT template_id INTO g_DRILLDOWN_TEMPLATE_ID
FROM CZ_UI_CONT_TYPE_TEMPLS
WHERE ui_def_id=g_UI_Context.from_master_template_id AND
content_type=2151 AND deleted_flag=G_NO_FLAG;
SELECT *
INTO l_page_ref_node
FROM CZ_UI_PAGE_REFS a
WHERE ui_def_id = p_ui_node.ui_def_id AND
(target_page_id,page_set_id) IN
(SELECT page_id,NVL(page_set_id,a.page_set_id) FROM CZ_UI_PAGES
WHERE page_id=p_ui_node.page_id AND ui_def_id=p_ui_node.ui_def_id AND
deleted_flag NOT IN(G_YES_FLAG)) AND
deleted_flag = G_NO_FLAG;
SELECT MIN(node_depth) INTO l_node_depth FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_set_id=p_page_set_id
AND deleted_flag=G_NO_FLAG;
SELECT MIN(SEQ_NBR) INTO l_seq_nbr FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_set_id=p_page_set_id
AND node_depth=l_node_depth AND deleted_flag=G_NO_FLAG;
SELECT DISTINCT target_persistent_node_id INTO l_persistent_node_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_set_id=p_page_set_id
AND seq_nbr=l_seq_nbr AND
target_persistent_node_id NOT IN
(SELECT ref_persistent_node_id FROM CZ_UI_REFS WHERE
ui_def_id=g_UI_Context.ui_def_id AND deleted_flag=G_NO_FLAG) AND
rownum<2;
SELECT parent_id INTO l_parent_id FROM CZ_PS_NODES
WHERE ps_node_id=p_ps_node_id;
FOR i IN(SELECT persistent_node_id, parent_id FROM CZ_PS_NODES
START WITH ps_node_id=p_ps_node_id AND deleted_flag=G_NO_FLAG
CONNECT BY PRIOR parent_id=ps_node_id AND
PRIOR deleted_flag=G_NO_FLAG AND deleted_flag=G_NO_FLAG)
LOOP
IF l_model_path IS NULL THEN
l_model_path:=TO_CHAR(i.persistent_node_id);
FOR i IN(SELECT ps_node_id,persistent_node_id, parent_id FROM CZ_PS_NODES
START WITH ps_node_id=p_ps_node_id AND deleted_flag=G_NO_FLAG
CONNECT BY PRIOR parent_id=ps_node_id AND
PRIOR deleted_flag=G_NO_FLAG AND deleted_flag=G_NO_FLAG)
LOOP
IF i.ps_node_id = l_ps_node.ps_node_id THEN
EXIT;
SELECT COUNT(*)
INTO l_page_counter
FROM CZ_UI_PAGE_SETS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag=G_NO_FLAG;
SELECT NVL(MAX(seq_nbr),0)
INTO l_seq_nbr
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
parent_element_id=p_parent_element_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
SELECT NVL(MAX(split_seq_nbr),0)
INTO l_split_seq_nbr
FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id IN
(SELECT persistent_node_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_page_id);
SELECT COUNT(element_id)
INTO l_counter
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_page_node.ui_def_id AND
page_id=p_page_node.page_id AND ctrl_template_id IS NOT NULL AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
SELECT COUNT(page_set_id)+1 INTO l_page_set_counter FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=p_ui_def_id AND page_set_type=p_page_set_type AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_SETS
(ui_def_id,
page_set_id,
page_set_type,
NAME,
suppress_refresh_flag,
train_jrad_doc,
persistent_node_id,
pagebase_expl_node_id,
deleted_flag)
VALUES
(p_ui_def_id,
x_page_set_id,
p_page_set_type,
l_page_set_name,
g_suppress_refresh_flag,
NULL,
p_persistent_node_id,
p_model_ref_expl_id,
G_NO_FLAG);
l_ui_page_set_node.deleted_flag := G_NO_FLAG;
SELECT 'x' INTO l_ui_ref_exists
FROM CZ_UI_REFS
WHERE ui_def_id=p_ui_node.ui_def_id AND
ref_persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG AND rownum<2;
l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
FOR i IN(SELECT page_id,element_id,parent_element_id,suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG))
LOOP
IF i.suppress_refresh_flag=G_YES_FLAG THEN
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DEASSOCIATE,
persistent_node_id=0
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=i.page_id AND
element_id=i.element_id;
SELECT suppress_refresh_flag INTO l_suppress_refresh_flag FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND page_id=i.page_id AND
element_id=i.parent_element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DEASSOCIATE,
persistent_node_id=0
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=i.page_id AND
element_id=i.element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=i.page_id AND
element_id=i.element_id;
SELECT MIN(page_ref_id)
INTO l_parent_page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_node.ui_def_id AND
target_persistent_node_id=p_ui_node.parent_persistent_node_id AND
deleted_flag=G_NO_FLAG;
SELECT page_set_id,page_ref_type
INTO l_parent_page_set_id,l_page_ref_type FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_node.ui_def_id AND page_ref_id=l_parent_page_ref_id;
UPDATE CZ_UI_PAGE_REFS
SET parent_page_ref_id = l_parent_page_ref_id
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_ref_id=l_child_page_ref_id;
UPDATE CZ_UI_PAGE_REFS
SET page_set_id = l_parent_page_set_id
WHERE ui_def_id=p_ui_node.ui_def_id AND
target_page_id IN
(SELECT target_page_id FROM CZ_UI_PAGE_REFS
START WITH ui_def_id=p_ui_node.ui_def_id AND
page_ref_id=l_child_page_ref_id
CONNECT BY PRIOR page_ref_id=parent_page_ref_id AND
ui_def_id=p_ui_node.ui_def_id AND
page_set_id=l_child_page_set_id AND
PRIOR page_set_id=l_child_page_set_id AND
PRIOR ui_def_id=p_ui_node.ui_def_id AND
deleted_flag=G_NO_FLAG AND PRIOR deleted_flag=G_NO_FLAG)
RETURNING target_persistent_node_id BULK COLLECT INTO l_changed_target_ids_tbl;
UPDATE CZ_UI_PAGES
SET page_set_id=l_parent_page_set_id
WHERE persistent_node_id=l_changed_target_ids_tbl(x) AND
ui_def_id=p_ui_node.ui_def_id;
UPDATE CZ_UI_PAGE_REFS
SET target_path=l_target_path
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_set_id=l_parent_page_set_id AND
target_persistent_node_id=l_changed_target_ids_tbl(x) AND
target_path<>l_target_path;
UPDATE CZ_UI_PAGE_REFS
SET target_path='.',
parent_page_ref_id=NULL,
node_depth=1,
seq_nbr=1
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_ref_id=l_initial_page_ref_id;
UPDATE CZ_UI_PAGE_REFS
SET page_set_id = l_page_set_id
WHERE ui_def_id=p_ui_node.ui_def_id AND
target_persistent_node_id IN
(SELECT target_persistent_node_id FROM CZ_UI_PAGE_REFS
START WITH ui_def_id=p_ui_node.ui_def_id AND
page_ref_id=l_initial_page_ref_id
CONNECT BY PRIOR page_ref_id=parent_page_ref_id AND
ui_def_id=p_ui_node.ui_def_id AND
page_set_id=l_initial_page_set_id AND
PRIOR page_set_id=l_initial_page_set_id AND
PRIOR ui_def_id=p_ui_node.ui_def_id AND
deleted_flag=G_NO_FLAG AND PRIOR deleted_flag=G_NO_FLAG)
RETURNING target_page_id,target_persistent_node_id
BULK COLLECT INTO l_target_page_ids_tbl,l_changed_target_ids_tbl;
UPDATE CZ_UI_PAGES
SET page_set_id=l_page_set_id
WHERE page_id=l_target_page_ids_tbl(j) AND
ui_def_id=p_ui_node.ui_def_id;
UPDATE CZ_UI_PAGE_REFS
SET target_path=l_target_path
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_set_id=l_page_set_id AND
target_persistent_node_id=l_changed_target_ids_tbl(j) AND
target_path<>l_target_path;
l_undeleted_exist BOOLEAN;
SELECT cx_command_name
INTO l_ui_cx_command_name
FROM CZ_UI_ACTIONS
WHERE ui_def_id=p_ui_node.ui_def_id AND
element_id=p_ui_node.element_id AND
cx_command_name IS NOT NULL AND-- fix for bug 3923033
deleted_flag=G_NO_FLAG;
l_undeleted_exist := FALSE;
FOR i IN(SELECT a.deleted_flag, a.invalid_flag, a.disabled_flag ,
a.INSTANTIATION_SCOPE, b.data_value, a.name
FROM CZ_RULES a, CZ_EXPRESSION_NODES b
WHERE a.devl_project_id=l_model_node.devl_project_id AND
a.component_id=l_model_node.ps_node_id AND
a.rule_type=G_CZ_EXTENTSIONS_RULE_TYPE AND
a.deleted_flag=G_NO_FLAG AND
b.rule_id=a.rule_id AND
b.deleted_flag=G_NO_FLAG AND
b.argument_signature_id=G_EVENT_ON_COMMAND_SIGID AND
data_value=l_ui_cx_command_name)
LOOP
IF i.deleted_flag=G_NO_FLAG THEN
l_undeleted_exist := TRUE;
i.deleted_flag=G_NO_FLAG THEN
RETURN G_CX_VALID;
FOR i IN(SELECT a.name, a.deleted_flag, a.invalid_flag, a.disabled_flag,
a.INSTANTIATION_SCOPE, b.data_value
FROM CZ_RULES a, CZ_EXPRESSION_NODES b
WHERE a.devl_project_id=l_model_node.devl_project_id AND
a.component_id IN
(SELECT ps_node_id FROM CZ_PS_NODES
WHERE devl_project_id IN
(SELECT DISTINCT component_id FROM CZ_MODEL_REF_EXPLS
START WITH model_id=l_model_node.devl_project_id AND
referring_node_id=l_model_node.ps_node_id
CONNECT BY PRIOR model_ref_expl_id=parent_expl_node_id AND
deleted_flag='0' AND PRIOR deleted_flag='0') AND
deleted_flag='0') AND
a.rule_type=G_CZ_EXTENTSIONS_RULE_TYPE AND
b.rule_id=a.rule_id AND
b.deleted_flag=G_NO_FLAG AND
b.argument_signature_id=G_EVENT_ON_COMMAND_SIGID AND
data_value IS NOT NULL)
LOOP
IF l_model_node.instantiable_flag NOT IN(G_MANDATORY_INST_TYPE) AND
i.INSTANTIATION_SCOPE=1 AND i.disabled_flag=G_NO_FLAG THEN
add_Error_Message(p_message_name => 'CZ_CX_IS_IN_WRONG_SCOPE',
p_token_name1 => 'EVENT_NAME',
p_token_value1 => i.data_value,
p_token_name2 => 'RULE_NAME',
p_token_value2 => i.name,
p_fatal_error => FALSE);
IF i.deleted_flag=G_NO_FLAG THEN
l_undeleted_exist := TRUE;
i.deleted_flag=G_NO_FLAG THEN
RETURN G_CX_VALID;
IF l_undeleted_exist=FALSE THEN
RETURN G_CX_MUST_BE_DELETED;
UPDATE CZ_UI_PAGE_ELEMENTS
SET model_ref_expl_id=p_expl_id
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id;
UPDATE CZ_UI_PAGES
SET pagebase_expl_node_id=p_expl_id
WHERE page_id=p_ui_node.page_id AND
ui_def_id=p_ui_node.ui_def_id;
UPDATE CZ_UI_PAGE_SETS
SET pagebase_expl_node_id=p_expl_id
WHERE ui_def_id=g_UI_Context.ui_def_id
AND persistent_node_id=p_ui_node.persistent_node_id
AND deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET target_expl_node_id=p_expl_id
WHERE ui_def_id=p_ui_node.ui_def_id AND
target_persistent_node_id=p_node.persistent_node_id;
SELECT COUNT(*)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_signature_id=p_model_node.root_element_signature_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG);
UPDATE CZ_UI_PAGE_ELEMENTS
SET ctrl_template_id=p_model_node.template_id,
element_signature_id=p_model_node.root_element_signature_id,
deleted_flag=DECODE(deleted_flag,G_MARK_TO_ADD,G_MARK_TO_ADD,G_MARK_TO_REFRESH),
name=p_model_node.template_name||' - '||l_counter
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id;
g_model_nodes_tbl.DELETE;
g_ui_page_elements_tbl.DELETE;
g_ps_node_persist_id_tbl.DELETE;
g_ui_pages_tbl.DELETE;
g_ui_page_refs_tbl.DELETE;
g_ui_refs_tbl.DELETE;
g_ui_page_sets_tbl.DELETE;
g_ref_expls_tbl.DELETE;
g_ui_action_ids_tbl.DELETE;
FOR i IN (SELECT DISTINCT *
FROM CZ_UITEMPLS_FOR_PSNODES_V
WHERE ui_def_id=g_UI_Context.from_master_template_id AND
devl_project_id = g_UI_Context.devl_project_id)
LOOP
g_model_nodes_tbl(i.ps_node_id) := i;
FOR i IN(SELECT model_ref_expl_id,referring_node_id,component_id
FROM CZ_MODEL_REF_EXPLS
WHERE model_id=g_UI_Context.devl_project_id AND
deleted_flag=G_NO_FLAG)
LOOP
IF i.referring_node_id IS NOT NULL THEN
g_ref_expls_tbl(i.referring_node_id) := i.model_ref_expl_id;
FOR i IN (SELECT *
FROM CZ_UI_PAGES
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
g_ui_pages_tbl(i.page_id) := i;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
BEGIN
g_ui_page_elements_tbl(TO_NUMBER(i.element_id)) := i;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
g_ui_page_refs_tbl(i.page_ref_id) := i;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_SETS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
g_ui_page_sets_tbl(i.page_set_id) := i;
FOR i IN (SELECT ref_persistent_node_id
FROM CZ_UI_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
g_ui_refs_tbl(i.ref_persistent_node_id) := i.ref_persistent_node_id;
FOR i IN (SELECT element_id, ui_action_id
FROM CZ_UI_ACTIONS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
BEGIN
g_ui_action_ids_tbl(TO_NUMBER(i.element_id)) := i.ui_action_id;
SELECT template_id,template_name INTO l_template_id,l_template_name FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_ui_node.ctrl_template_ui_def_id AND
jrad_doc=l_extend_attr_value AND deleted_flag=G_NO_FLAG;
SELECT NVL(max(seq_nbr),0)+1 INTO l_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
parent_element_id=p_ui_node.element_id AND
deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(
UI_DEF_ID
,PAGE_ID
,PERSISTENT_NODE_ID
,ELEMENT_ID
,PARENT_PERSISTENT_NODE_ID
,REGION_PERSISTENT_NODE_ID
,PAGEBASE_PERSISTENT_NODE_ID
,CTRL_TEMPLATE_ID
,BASE_PAGE_FLAG
,INSTANTIABLE_FLAG
,SEQ_NBR
,DELETED_FLAG
,CTRL_TEMPLATE_UI_DEF_ID
,MODEL_REF_EXPL_ID
,SUPPRESS_REFRESH_FLAG
,PARENT_ELEMENT_ID
,ELEMENT_TYPE
,NAME
,ELEMENT_SIGNATURE_ID
,TARGET_PAGE_UI_DEF_ID
,TARGET_PAGE_ID
)
VALUES
(
p_ui_node.ui_def_id
,p_ui_node.page_id
,NULL
,l_element_id
,p_ui_node.parent_persistent_node_id
,p_ui_node.region_persistent_node_id
,p_ui_node.pagebase_persistent_node_id
,l_template_id
,'0'
,'0'
,l_seq_nbr
,G_NO_FLAG
,p_ui_node.ctrl_template_ui_def_id
,NULL
,'0'
,p_ui_node.element_id
,NULL
,l_template_name
,6011
,NULL
,NULL
);
SELECT * INTO l_ui_element FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
element_id=l_id_attr_value;
SELECT * INTO l_ui_element FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
element_id=l_id_attr_value;
SELECT template_id, seeded_flag
INTO l_ref_template_id, l_seeded_flag
FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_template_ui_def_id AND
jrad_doc=l_extends_attribute AND
deleted_flag=G_NO_FLAG;
FOR k IN(SELECT ref_template_id FROM CZ_UI_REF_TEMPLATES
WHERE template_id=p_template_id AND
template_ui_def_id=p_template_ui_def_id AND
deleted_flag=G_NO_FLAG)
LOOP
IF NOT(l_ref_tmpls_tbl.EXISTS(k.ref_template_id)) THEN
DELETE FROM CZ_UI_REF_TEMPLATES
WHERE template_id=p_template_id AND
template_ui_def_id=p_template_ui_def_id AND
ref_template_id=k.ref_template_id;
UPDATE CZ_UI_REF_TEMPLATES
SET ref_count = l_ref_tmpls_tbl(l_template_id)
WHERE template_id=p_template_id AND
template_ui_def_id=p_template_ui_def_id AND
ref_template_id=l_template_id AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_REF_TEMPLATES
(
TEMPLATE_ID
,REF_TEMPLATE_ID
,DELETED_FLAG
,TEMPLATE_UI_DEF_ID
,REF_TEMPLATE_UI_DEF_ID
,SEEDED_FLAG
,REF_TEMPL_SEEDED_FLAG
,REF_COUNT
)
VALUES
(
p_template_id
,l_template_id
,G_NO_FLAG
,p_template_ui_def_id
,p_template_ui_def_id
,G_NO_FLAG
,l_ref_tmpl_seeded_flag(l_template_id)
,l_ref_tmpls_tbl(l_template_id)
);
SELECT COUNT(element_id) INTO p_counter
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id
AND page_id=p_ui_page_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
SELECT jrad_doc,name INTO l_page_jrad_doc,l_page_name FROM CZ_UI_PAGES
WHERE ui_def_id=p_ui_def_id AND page_id=p_page_id;
SELECT name INTO l_ui_name FROM CZ_UI_DEFS
WHERE ui_def_id=p_ui_def_id;
FOR k IN(SELECT rule_id,rule_type,seeded_flag,devl_project_id FROM CZ_RULES
WHERE persistent_rule_id = p_rule_id AND DECODE(NVL(ui_def_id,0),0,l_source_ui_def_id,ui_def_id)=l_source_ui_def_id
AND deleted_flag=G_NO_FLAG)
LOOP
l_run_id := 0; l_cp_rule_run_id := 0;
SELECT COUNT(*) INTO l_failure_flag FROM CZ_DB_LOGS WHERE run_id=l_cp_rule_run_id;
SELECT name INTO l_element_path FROM CZ_UI_PAGES
WHERE page_id=p_ui_page_id AND ui_def_id=p_ui_def_id;
SELECT persistent_node_id,pagebase_expl_node_id
INTO l_pagebase_persistent_node_id, l_pagebase_expl_id
FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_page_id;
SELECT ps_node_id,ps_node_type,component_id
INTO l_ps_node_id, l_ps_node_type, l_component_id FROM CZ_PS_NODES
WHERE devl_project_id=p_model_id AND
persistent_node_id=p_persistent_node_id;
SELECT model_ref_expl_id INTO l_model_ref_expl_id
FROM CZ_MODEL_REF_EXPLS
WHERE model_ref_expl_id=p_ui_node_expl_id;
FOR i IN(SELECT model_ref_expl_id,parent_expl_node_id,ps_node_type,
component_id,referring_node_id
FROM CZ_MODEL_REF_EXPLS
START WITH model_ref_expl_id=p_ui_node_expl_id
CONNECT BY PRIOR parent_expl_node_id=model_ref_expl_id AND
deleted_flag='0')
LOOP
-- go up until the nearest reference
IF (i.ps_node_type IN(G_REFERENCE_TYPE,G_CONNECTOR_TYPE) OR i.parent_expl_node_id IS NULL) THEN
-- get ps node data for AMN of UI node
SELECT ps_node_id,ps_node_type,component_id
INTO l_ps_node_id, l_ps_node_type,l_component_id
FROM CZ_PS_NODES
WHERE devl_project_id=i.component_id AND
persistent_node_id=p_persistent_node_id AND
deleted_flag=G_NO_FLAG;
SELECT model_ref_expl_id INTO l_expl_id FROM
(SELECT model_ref_expl_id,referring_node_id,component_id FROM CZ_MODEL_REF_EXPLS
START WITH model_ref_expl_id=i.model_ref_expl_id
CONNECT BY PRIOR model_ref_expl_id=parent_expl_node_id AND deleted_flag='0') a
WHERE (l_ps_node_type IN(G_REFERENCE_TYPE,G_CONNECTOR_TYPE) AND a.referring_node_id=l_ps_node_id) OR
(l_ps_node_type NOT IN(G_REFERENCE_TYPE,G_CONNECTOR_TYPE) AND a.component_id=l_component_id);
FOR i IN(SELECT * FROM CZ_UI_ACTIONS
WHERE ui_def_id=p_source_ui_def_id AND
ui_action_id=l_id AND
NVL(source_page_id,0)=NVL(p_source_ui_page_id,0)
AND seeded_flag=G_NO_FLAG)
LOOP
l_new_action_id := allocateId('CZ_UI_ACTIONS_S');
INSERT INTO CZ_UI_ACTIONS
(
UI_ACTION_ID
,UI_DEF_ID
,SOURCE_PAGE_ID
,CONTEXT_COMPONENT_ID
,ELEMENT_ID
,RENDER_CONDITION_ID
,UI_ACTION_TYPE
,TARGET_UI_DEF_ID
,TARGET_PERSISTENT_NODE_ID
,TARGET_NODE_PATH
,TARGET_PAGE_SET_ID
,TARGET_PAGE_ID
,TARGET_URL
,FRAME_NAME
,TARGET_ANCHOR
,DELETED_FLAG
,SEEDED_FLAG
,CX_COMMAND_NAME
,WINDOW_PARAMETERS
,TARGET_WINDOW_TYPE
,TARGET_WINDOW_NAME
,TARGET_EXPL_NODE_ID
,URL_PROPERTY_ID
,PROC_PAGE_TEMPL_UI_DEF_ID
,PAGE_TITLE_TEXT_ID
,MAIN_MESSAGE_TEXT_ID
,PROCESSING_CAPTION_TEXT_ID
,PROCESSING_PAGE_TEMPL_ID
)
VALUES(
l_new_action_id
,p_target_ui_def_id
,p_target_ui_page_id
,i.CONTEXT_COMPONENT_ID
,p_new_element_id
,i.RENDER_CONDITION_ID
,i.UI_ACTION_TYPE
,i.TARGET_UI_DEF_ID
,i.TARGET_PERSISTENT_NODE_ID
,l_new_target_node_path
,i.TARGET_PAGE_SET_ID
,i.TARGET_PAGE_ID
,i.TARGET_URL
,i.FRAME_NAME
,i.TARGET_ANCHOR
,i.DELETED_FLAG
,'0'
,i.CX_COMMAND_NAME
,i.WINDOW_PARAMETERS
,i.TARGET_WINDOW_TYPE
,i.TARGET_WINDOW_NAME
,i.TARGET_EXPL_NODE_ID
,i.URL_PROPERTY_ID
,i.PROC_PAGE_TEMPL_UI_DEF_ID
,i.PAGE_TITLE_TEXT_ID
,i.MAIN_MESSAGE_TEXT_ID
,i.PROCESSING_CAPTION_TEXT_ID
,i.PROCESSING_PAGE_TEMPL_ID
);
FOR k IN(SELECT * FROM CZ_LOCALIZED_TEXTS
WHERE intl_text_id=l_id AND seeded_flag=G_NO_FLAG
AND deleted_flag=G_NO_FLAG)
LOOP
IF l_new_intl_text_id IS NULL THEN
l_new_intl_text_id := allocateId('CZ_INTL_TEXTS_S');
INSERT INTO CZ_LOCALIZED_TEXTS
(
LOCALE_ID
,LOCALIZED_STR
,INTL_TEXT_ID
,DELETED_FLAG
,EFF_FROM
,EFF_TO
,SECURITY_MASK
,EFF_MASK
,CHECKOUT_USER
,ORIG_SYS_REF
,LANGUAGE
,SOURCE_LANG
,UI_DEF_ID
,MODEL_ID
,SEEDED_FLAG
,UI_PAGE_ID
,UI_PAGE_ELEMENT_ID
)
VALUES(
k.LOCALE_ID
,k.LOCALIZED_STR
,l_new_intl_text_id
,k.DELETED_FLAG
,k.EFF_FROM
,k.EFF_TO
,k.SECURITY_MASK
,k.EFF_MASK
,k.CHECKOUT_USER
,k.ORIG_SYS_REF
,k.LANGUAGE
,k.SOURCE_LANG
,p_target_ui_def_id
,l_ui_def_node.devl_project_id
,'0'
,p_target_ui_page_id
,p_new_element_id
);
INSERT INTO CZ_UI_TEMPLATE_ELEMENTS
(
TEMPLATE_ID
,UI_DEF_ID
,ELEMENT_TYPE
,ELEMENT_ID
,PERSISTENT_ELEMENT_ID
,DELETED_FLAG
,SEEDED_FLAG
)
SELECT
p_target_template_id
,p_target_ui_def_id
,ELEMENT_TYPE
,l_cached_elems_tbl(i)
,l_cached_elems_tbl(i)
,G_NO_FLAG
,G_NO_FLAG
FROM CZ_UI_TEMPLATE_ELEMENTS
WHERE template_id=p_source_template_id AND
ui_def_id=p_source_ui_def_id AND
element_id=l_cached_source_elems_tbl(i) AND
deleted_flag=G_NO_FLAG;
FOR i IN(SELECT * FROM CZ_UI_ACTIONS
WHERE ui_action_id=l_id AND
ui_def_id=p_source_ui_def_id AND
source_page_id=0 AND
seeded_flag=G_NO_FLAG)
LOOP
l_new_action_id := allocateId('CZ_UI_ACTIONS_S');
INSERT INTO CZ_UI_ACTIONS
(
UI_ACTION_ID
,UI_DEF_ID
,SOURCE_PAGE_ID
,CONTEXT_COMPONENT_ID
,ELEMENT_ID
,RENDER_CONDITION_ID
,UI_ACTION_TYPE
,TARGET_UI_DEF_ID
,TARGET_PERSISTENT_NODE_ID
,TARGET_NODE_PATH
,TARGET_PAGE_SET_ID
,TARGET_PAGE_ID
,TARGET_URL
,FRAME_NAME
,TARGET_ANCHOR
,DELETED_FLAG
,SEEDED_FLAG
,CX_COMMAND_NAME
,WINDOW_PARAMETERS
,TARGET_WINDOW_TYPE
,TARGET_WINDOW_NAME
,TARGET_EXPL_NODE_ID
,URL_PROPERTY_ID
,PROC_PAGE_TEMPL_UI_DEF_ID
,PAGE_TITLE_TEXT_ID
,MAIN_MESSAGE_TEXT_ID
,PROCESSING_CAPTION_TEXT_ID
,PROCESSING_PAGE_TEMPL_ID
)
VALUES(
l_new_action_id
,p_target_ui_def_id
,0
,i.CONTEXT_COMPONENT_ID
,p_new_element_id
,i.RENDER_CONDITION_ID
,i.UI_ACTION_TYPE
,i.TARGET_UI_DEF_ID
,i.TARGET_PERSISTENT_NODE_ID
,i.TARGET_NODE_PATH
,i.TARGET_PAGE_SET_ID
,i.TARGET_PAGE_ID
,i.TARGET_URL
,i.FRAME_NAME
,i.TARGET_ANCHOR
,i.DELETED_FLAG
,'0'
,i.CX_COMMAND_NAME
,i.WINDOW_PARAMETERS
,i.TARGET_WINDOW_TYPE
,i.TARGET_WINDOW_NAME
,i.TARGET_EXPL_NODE_ID
,i.URL_PROPERTY_ID
,i.PROC_PAGE_TEMPL_UI_DEF_ID
,i.PAGE_TITLE_TEXT_ID
,i.MAIN_MESSAGE_TEXT_ID
,i.PROCESSING_CAPTION_TEXT_ID
,i.PROCESSING_PAGE_TEMPL_ID
);
FOR k IN(SELECT * FROM CZ_LOCALIZED_TEXTS
WHERE intl_text_id=l_id AND seeded_flag=G_NO_FLAG
AND deleted_flag=G_NO_FLAG)
LOOP
IF l_new_intl_text_id IS NULL THEN
l_new_intl_text_id := allocateId('CZ_INTL_TEXTS_S');
INSERT INTO CZ_LOCALIZED_TEXTS
(
LOCALE_ID
,LOCALIZED_STR
,INTL_TEXT_ID
,DELETED_FLAG
,EFF_FROM
,EFF_TO
,SECURITY_MASK
,EFF_MASK
,CHECKOUT_USER
,ORIG_SYS_REF
,LANGUAGE
,SOURCE_LANG
,UI_DEF_ID
,MODEL_ID
,SEEDED_FLAG
,UI_PAGE_ID
,UI_PAGE_ELEMENT_ID
)
VALUES(
k.LOCALE_ID
,k.LOCALIZED_STR
,l_new_intl_text_id
,k.DELETED_FLAG
,k.EFF_FROM
,k.EFF_TO
,k.SECURITY_MASK
,k.EFF_MASK
,k.CHECKOUT_USER
,k.ORIG_SYS_REF
,k.LANGUAGE
,k.SOURCE_LANG
,p_target_ui_def_id
,NVL(k.model_id,0)
,'0'
,0
,p_new_element_id
);
INSERT INTO CZ_UI_TEMPLATE_ELEMENTS
(
TEMPLATE_ID
,UI_DEF_ID
,ELEMENT_TYPE
,ELEMENT_ID
,PERSISTENT_ELEMENT_ID
,DELETED_FLAG
,SEEDED_FLAG
)
SELECT
p_target_template_id
,p_target_ui_def_id
,ELEMENT_TYPE
,l_cached_elems_tbl(i)
,l_cached_elems_tbl(i)
,G_NO_FLAG
,G_NO_FLAG
FROM CZ_UI_TEMPLATE_ELEMENTS
WHERE template_id=p_source_template_id AND
ui_def_id=p_source_ui_def_id AND
element_id=l_cached_source_elems_tbl(i) AND
deleted_flag=G_NO_FLAG;
FUNCTION insert_before(p_parent_xml_node IN xmldom.DOMNode,
p_new_xml_node IN xmldom.DOMNode,
p_ref_xml_node IN xmldom.DOMNode)
RETURN xmldom.DOMNode IS
l_new_xml_node xmldom.DOMNode;
l_new_xml_node := xmldom.insertBefore(p_parent_xml_node, p_new_xml_node, p_ref_xml_node);
END insert_before;
FUNCTION insert_node(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
p_new_xml_node IN xmldom.DOMNode,
p_parent_xml_node IN xmldom.DOMNode)
RETURN xmldom.DOMNode IS
l_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
SELECT element_id, ctrl_template_id INTO l_prev_element_id, l_prev_element_template_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
seq_nbr = (SELECT max(seq_nbr)
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
seq_nbr
SELECT element_id, ctrl_template_id INTO l_next_element_id, l_next_element_template_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE) AND
seq_nbr = ( SELECT min(seq_nbr)
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
seq_nbr>p_ui_node.seq_nbr AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE, G_MARK_TO_ADD, G_MARK_TO_MOVE) AND
NOT (element_type = G_UI_DRILLDOWN_NODE_TYPE AND
ctrl_template_id IS NULL) AND
NOT (element_signature_id IS NULL AND ctrl_template_id IS NULL))
AND rownum < 2;
SELECT layout_ui_style INTO l_prev_elt_lyt_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id = l_prev_element_template_id
AND ui_def_id = 0
AND deleted_flag = G_NO_FLAG;
SELECT layout_ui_style INTO l_next_elt_lyt_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id = l_next_element_template_id
AND ui_def_id = 0
AND deleted_flag = G_NO_FLAG;
SELECT layout_ui_style INTO l_lyt_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id = p_ui_node.ctrl_template_id
AND ui_def_id = 0
AND deleted_flag = G_NO_FLAG;
l_new_xml_root_node := insert_before(l_prev_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_next_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_xml_table_node := insert_before(l_prev_node_parent_ui_cnt, l_xml_table_node, l_next_node);
l_xml_table_node := insert_before(l_next_node_parent_ui_cnt, l_xml_table_node, l_next_node);
l_xml_table_node := insert_before(l_grand_parent, l_xml_table_node, l_next_sibling_of_parent);
l_next_node := xmldom.insertBefore(l_grand_parent, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_grand_parent, l_new_xml_root_node, l_next_sibling_of_parent);
l_new_xml_root_node := insert_before(l_prev_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_next_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_grand_parent, l_new_xml_root_node, l_next_sibling_of_parent);
l_new_xml_root_node := insert_before(l_grand_parent, l_new_xml_root_node, l_next_node_parent);
END insert_node;
SELECT jrad_doc INTO l_jrad_doc
FROM CZ_UI_PAGES
WHERE ui_def_id= g_UI_Context.ui_def_id AND
page_id=l_src_page_id;
SELECT ps_node_id INTO l_component_id
FROM CZ_PS_NODES
WHERE devl_project_id = g_UI_Context.devl_project_id
AND persistent_node_Id = p_ui_node.pagebase_persistent_node_id;
SELECT ps_node_id INTO l_old_component_id
FROM CZ_PS_NODES
WHERE devl_project_id = g_UI_Context.devl_project_id
AND persistent_node_id = (SELECT persistent_node_id
FROM CZ_UI_PAGES
WHERE ui_def_id = g_UI_Context.ui_Def_id
AND page_id = l_src_page_id);
FOR i in (SELECT rule_id, ui_page_element_id
FROM CZ_RULES
WHERE devl_project_id = g_UI_Context.devl_project_id
AND ui_def_id = g_UI_Context.ui_def_id
AND ui_page_id = l_src_page_id
AND component_id = l_old_component_id
AND deleted_flag = G_NO_FLAG)
LOOP
DEBUG('asp: Found rule ' || i.rule_id || ', for element ' || i.ui_page_element_Id);
UPDATE CZ_RULES
SET component_id = l_component_id,
ui_page_id = p_ui_node.page_id
WHERE devl_project_id = g_UI_Context.devl_project_id
AND rule_id = i.rule_id;
FOR i in (SELECT intl_text_id, ui_page_element_id
FROM CZ_INTL_TEXTS
WHERE model_id = g_UI_Context.devl_project_id
AND ui_def_id = g_UI_Context.ui_def_id
AND ui_page_id = l_src_page_id
AND deleted_flag = G_NO_FLAG)
LOOP
IF l_element_ids_tbl.EXISTS(i.ui_page_element_id) THEN
DEBUG('asp: Updating intl_text ' || i.intl_text_id || ' for element_id ' || i.ui_page_element_id);
UPDATE CZ_LOCALIZED_TEXTS
SET ui_page_id = p_ui_node.page_id
WHERE intl_text_id = i.intl_text_id;
l_xml_node_to_move := insert_node(p_ui_node, l_xml_node_to_move, p_parent_xml_node);
SELECT element_id, ctrl_template_id INTO l_prev_element_id, l_prev_element_template_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
--jonatara:bug fix7307460
NOT (element_type = G_UI_DRILLDOWN_NODE_TYPE AND ctrl_template_id IS NULL) AND
NOT (element_signature_id IS NULL AND ctrl_template_id IS NULL ) AND
seq_nbr = (SELECT max(seq_nbr)
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
seq_nbr
SELECT element_id, ctrl_template_id INTO l_next_element_id, l_next_element_template_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE) AND
--jonatara:bug fix7307460
NOT (element_type = G_UI_DRILLDOWN_NODE_TYPE AND ctrl_template_id IS NULL) AND
NOT (element_signature_id IS NULL AND ctrl_template_id IS NULL) AND
seq_nbr = ( SELECT min(seq_nbr)
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
parent_element_id = p_ui_node.parent_element_id AND
seq_nbr>p_ui_node.seq_nbr AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE, G_MARK_TO_ADD, G_MARK_TO_MOVE) AND
NOT (element_type = G_UI_DRILLDOWN_NODE_TYPE AND
ctrl_template_id IS NULL) AND
NOT (element_signature_id IS NULL AND ctrl_template_id IS NULL))
AND rownum < 2;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_PAGES
WHERE page_id=p_ui_node.page_id AND ui_def_id=p_ui_node.ui_def_id;
SELECT layout_ui_style INTO l_prev_elt_lyt_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id = l_prev_element_template_id
AND ui_def_id = 0
AND deleted_flag = G_NO_FLAG;
SELECT layout_ui_style INTO l_next_elt_lyt_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id = l_next_element_template_id
AND ui_def_id = 0
AND deleted_flag = G_NO_FLAG;
l_new_xml_root_node := insert_before(l_prev_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_next_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_xml_table_node := insert_before(l_prev_node_parent_ui_cnt, l_xml_table_node, l_next_node);
l_xml_table_node := insert_before(l_next_node_parent_ui_cnt, l_xml_table_node, l_next_node);
l_xml_table_node := insert_before(l_grand_parent, l_xml_table_node, l_next_sibling_of_parent);
l_next_node := xmldom.insertBefore(l_grand_parent, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_grand_parent, l_new_xml_root_node, l_next_sibling_of_parent);
l_new_xml_root_node := insert_before(l_prev_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_next_node_parent_ui_cnt, l_new_xml_root_node, l_next_node);
l_new_xml_root_node := insert_before(l_grand_parent, l_new_xml_root_node, l_next_sibling_of_parent);
l_new_xml_root_node := insert_before(l_grand_parent, l_new_xml_root_node, l_next_node_parent);
SELECT element_id INTO l_prev_element_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
parent_persistent_node_id=p_ui_node.parent_persistent_node_id AND
seq_nbr=p_ui_node.seq_nbr-1 AND
deleted_flag<>G_YES_FLAG;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_PAGES
WHERE page_id=p_ui_node.page_id AND ui_def_id=p_ui_node.ui_def_id;
g_dom_elements_tbl.DELETE(TO_NUMBER(p_ui_node.element_id));
SELECT model_ref_expl_id INTO l_ui_node_expl_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_ui_page_id AND element_id=p_ui_element_id;
FOR i IN(SELECT target_persistent_node_id,target_expl_node_id FROM CZ_UI_ACTIONS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
source_page_id=p_ui_page_id AND
element_id=p_ui_element_id AND
target_node_path IS NOT NULL AND
deleted_flag=G_NO_FLAG)
LOOP
l_new_model_path := get_Runtime_Relative_Path(p_model_id => g_UI_Context.devl_project_id,
p_persistent_node_id => i.target_persistent_node_id,
p_page_id => p_ui_page_id,
p_ui_node_expl_id => i.target_expl_node_id);
UPDATE CZ_UI_ACTIONS
SET target_node_path=l_new_model_path
WHERE ui_def_id=g_UI_Context.ui_def_id AND
source_page_id=p_ui_page_id AND
element_id=p_ui_element_id AND
target_node_path<>l_new_model_path;
SELECT persistent_node_id INTO l_persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
element_id=l_element_id;
l_attr_tbl.DELETE;
l_attr_tbl.DELETE;
l_attr_tbl.DELETE;
SELECT ISO_LANGUAGE||'-'||
ISO_TERRITORY
INTO l_lang
FROM FND_LANGUAGES_VL
WHERE language_code=USERENV('LANG');
SELECT root_element_signature_id
INTO g_DRILLDOWN_ELEM_SIGNATURE_ID
FROM CZ_UI_TEMPLATES
WHERE template_id=g_DRILLDOWN_TEMPLATE_ID AND
ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID AND
deleted_flag=G_NO_FLAG;
SELECT root_element_signature_id
INTO g_DRILLDOWN_B_SIGNATURE_ID
FROM CZ_UI_TEMPLATES
WHERE ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID AND
template_id=G_DRILLDOWN_BUTTON_TEMPLATE_ID AND
deleted_flag=G_NO_FLAG;
SELECT TEMPLATE_TOKEN INTO G_CAPTION_RULE_TOKENNAME FROM CZ_RULES
WHERE rule_id=G_DEFAULT_CAPTION_RULE_ID;
SELECT COUNT(ui_def_id) + 1
INTO g_UI_Context.tree_seq
FROM CZ_UI_DEFS
WHERE component_id = p_model_id AND
deleted_flag = G_NO_FLAG;
SELECT NAME || ' User Interface (' || TO_CHAR(g_UI_Context.tree_seq) || ')'
INTO g_UI_Context.NAME
FROM CZ_DEVL_PROJECTS
WHERE devl_project_id = p_model_id;
INSERT INTO CZ_UI_DEFS
(UI_DEF_ID,
DESC_TEXT,
NAME,
DEVL_PROJECT_ID,
COMPONENT_ID,
TREE_SEQ,
UI_STYLE,
GEN_VERSION,
TREENODE_DISPLAY_SOURCE,
GEN_HEADER,
LOOK_AND_FEEL,
CONTROLS_PER_SCREEN,
PRIMARY_NAVIGATION,
PERSISTENT_UI_DEF_ID,
MODEL_TIMESTAMP,
UI_STATUS,
PAGE_SET_ID,
START_PAGE_ID,
ERR_RUN_ID,
START_URL,
PAGE_LAYOUT,
PRICE_UPDATE,
SEEDED_FLAG,
MASTER_TEMPLATE_FLAG,
PRICE_DISPLAY,
FROM_MASTER_TEMPLATE_ID,
PAGIN_MAXCONTROLS,
PAGIN_NONINST,
PAGIN_NONINST_REFCOMP,
CONTROL_LAYOUT,
PAGIN_DRILLDOWNCTRL,
OUTER_TEMPLATE_USAGE,
PAGIN_BOMOC,
BOMUI_LAYOUT,
BOMQTYINPUTCTRLS,
CTRLTEMPLUSE_BOM,
CTRLTEMPLUSE_NONBOM,
NONBOM_UILAYOUT,
CTRLTEMPLUSE_COMMON,
CTRLTEMPLUSE_REQDMSG,
CTRLTEMPLUSE_OPTMSG,
MENU_CAPTION_RULE_ID,
PAGE_CAPTION_RULE_ID,
PRESERVE_MODEL_HIERARCHY,
EMPTY_UI_FLAG,
SHOW_TRAIN,
PAGINATION_SLOT,
DRILLDOWN_CONTROL_TEXT_ID,
DRILLDOWN_IMAGE_URL,
ROWS_PER_TABLE,
CTRLTEMPLATEUSE_BUTTONBAR,
CTRLTEMPLATEUSE_UTILITYPAGE,
OPTION_SORT_SELECT_FIRST,
OPTION_SORT_ORDER,
OPTION_SORT_METHOD,
SHOW_ALL_NODES_FLAG,
PAGE_STATUS_TEMPLATE_USAGE,
suppress_refresh_flag,
DELETED_FLAG,
UI_TIMESTAMP_REFRESH,
DRILLDOWN_TX_TYPE,
CONTENT_LAST_UPDATE_DATE,
DISABLE_AUTOOVERRIDE_FLAG
)
SELECT g_UI_Context.ui_def_id,
g_UI_Context.desc_text,
g_UI_Context.NAME,
g_UI_Context.devl_project_id,
g_UI_Context.component_id,
g_UI_Context.tree_seq,
g_UI_Context.ui_style,
G_GEN_VERSION,
TREENODE_DISPLAY_SOURCE,
G_GEN_HEADER,
LOOK_AND_FEEL,
CONTROLS_PER_SCREEN,
PRIMARY_NAVIGATION,
g_UI_Context.persistent_ui_def_id,
g_UI_Context.model_timestamp,
g_UI_Context.ui_status,
g_UI_Context.page_set_id,
g_UI_Context.start_page_id,
g_UI_Context.err_run_id,
g_UI_Context.start_url,
g_UI_Context.page_layout,
G_DEFAULT_PRICE_UPDATE,
'0',
'0',
G_DEFAULT_PRICE_DISPLAY,
g_UI_Context.from_master_template_id,
PAGIN_MAXCONTROLS,
PAGIN_NONINST,
PAGIN_NONINST_REFCOMP,
CONTROL_LAYOUT,
PAGIN_DRILLDOWNCTRL,
OUTER_TEMPLATE_USAGE,
PAGIN_BOMOC,
BOMUI_LAYOUT,
BOMQTYINPUTCTRLS,
CTRLTEMPLUSE_BOM,
CTRLTEMPLUSE_NONBOM,
NONBOM_UILAYOUT,
CTRLTEMPLUSE_COMMON,
CTRLTEMPLUSE_REQDMSG,
CTRLTEMPLUSE_OPTMSG,
MENU_CAPTION_RULE_ID,
PAGE_CAPTION_RULE_ID,
PRESERVE_MODEL_HIERARCHY,
NVL(p_create_empty_ui, G_NO_FLAG),
SHOW_TRAIN,
PAGINATION_SLOT,
DRILLDOWN_CONTROL_TEXT_ID,
DRILLDOWN_IMAGE_URL,
ROWS_PER_TABLE,
CTRLTEMPLATEUSE_BUTTONBAR,
CTRLTEMPLATEUSE_UTILITYPAGE,
OPTION_SORT_SELECT_FIRST,
OPTION_SORT_ORDER,
OPTION_SORT_METHOD,
p_show_all_nodes,
PAGE_STATUS_TEMPLATE_USAGE,
g_UI_Context.suppress_refresh_flag,
DELETED_FLAG,
SYSDATE,
DRILLDOWN_TX_TYPE,
CONTENT_LAST_UPDATE_DATE,
DISABLE_AUTOOVERRIDE_FLAG
FROM CZ_UI_DEFS
WHERE ui_def_id = g_UI_Context.from_master_template_id;
UPDATE CZ_UI_DEFS
SET start_page_id=g_UI_Context.start_page_id,
page_set_id=g_UI_Context.page_set_id
WHERE ui_def_id=g_UI_Context.ui_def_id;
SELECT *
INTO l_target_ui_def_node
FROM CZ_UI_DEFS
WHERE ui_def_id = (SELECT MAX(ui_def_id)
FROM CZ_UI_DEFS
WHERE devl_project_id = p_reference_id AND
ui_status IN (G_PROCESSED_UI_STATUS,G_NEW_UI_STATUS) AND
deleted_flag = G_NO_FLAG);
SELECT persistent_node_id INTO l_page_persistent_node_id
FROM CZ_UI_PAGES
WHERE page_id=p_page_id AND ui_def_id=g_UI_Context.ui_def_id;
FOR i IN (SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id IN(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=l_page_persistent_node_id AND deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)) AND
element_type=G_UI_CX_BUTTON_NODE_TYPE AND
persistent_node_id=(SELECT persistent_node_id FROM CZ_PS_NODES
WHERE ps_node_id=p_component_id)
AND deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE))
LOOP
FOR k IN(SELECT ui_action_id FROM CZ_UI_ACTIONS
WHERE ui_def_id=g_UI_Context.ui_def_id AND element_id=i.element_id AND
cx_command_name=p_command_name AND deleted_flag=G_NO_FLAG)
LOOP
RETURN i.element_id;
FOR i IN(SELECT DISTINCT b.data_value, b.expr_node_id, a.INSTANTIATION_SCOPE, a.name
FROM CZ_RULES a, CZ_EXPRESSION_NODES b
WHERE a.devl_project_id=p_node.devl_project_id AND
a.component_id=p_node.ps_node_id AND
a.rule_type=G_CZ_EXTENTSIONS_RULE_TYPE AND
a.deleted_flag=G_NO_FLAG AND
a.disabled_flag=G_NO_FLAG AND
a.invalid_flag=G_NO_FLAG AND
b.rule_id=a.rule_id AND
b.deleted_flag=G_NO_FLAG AND
b.argument_signature_id=G_EVENT_ON_COMMAND_SIGID AND
data_value IS NOT NULL)
LOOP
-- do not create a CX for instantiable reference with
-- instantiation_scope= INSTANCE
IF p_node.ps_node_type=G_REFERENCE_TYPE AND
p_node.instantiable_flag NOT IN(G_MANDATORY_INST_TYPE) AND
i.INSTANTIATION_SCOPE=1 THEN
add_Error_Message(p_message_name => 'CZ_CX_IS_IN_WRONG_SCOPE',
p_token_name1 => 'EVENT_NAME',
p_token_value1 => i.data_value,
p_token_name2 => 'RULE_NAME',
p_token_value2 => i.name,
p_fatal_error => FALSE);
INSERT INTO CZ_INTL_TEXTS
(INTL_TEXT_ID,
TEXT_STR,
DELETED_FLAG,
SEEDED_FLAG,
UI_DEF_ID,
MODEL_ID,
UI_PAGE_ID,
UI_PAGE_ELEMENT_ID
)
VALUES
(l_ui_intl_text_id,
i.data_value,
G_NO_FLAG,
G_NO_FLAG,
g_UI_Context.ui_def_id,
g_UI_Context.devl_project_id,
p_ui_node.page_id,
l_element_id
);
SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_node.page_id AND
ctrl_template_id=G_DRILLDOWN_BUTTON_TEMPLATE_ID AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
base_page_flag,
seq_nbr,
ctrl_template_id,
ctrl_template_ui_def_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(p_ui_node.ui_def_id,
p_node.persistent_node_id,
p_node.parent_persistent_node_id,
p_ui_node.region_persistent_node_id,
p_ui_node.pagebase_persistent_node_id,
p_ui_node.page_id,
NULL,
p_ui_node.seq_nbr+1,
G_DRILLDOWN_BUTTON_TEMPLATE_ID,
G_GLOBAL_TEMPLATES_UI_DEF_ID,
l_element_id,
l_parent_element_id,
G_UI_CX_BUTTON_NODE_TYPE,
NULL,
p_ui_node.model_ref_expl_id,
g_DRILLDOWN_B_SIGNATURE_ID,
l_name,
G_MARK_TO_ADD);
INSERT INTO CZ_UI_ACTIONS
(
ui_action_id
,ui_def_id
,source_page_id
,context_component_id
,element_id
,render_condition_id
,ui_action_type
,target_ui_def_id
,target_persistent_node_id
,target_node_path
,target_page_set_id
,target_page_id
,target_url
,frame_name
,target_anchor
,seeded_flag
,cx_command_name
,window_parameters
,target_window_type
,target_window_name
,target_expl_node_id
,deleted_flag
)
VALUES
(
l_ui_action_id
,p_ui_node.ui_def_id
,p_ui_node.page_id
,p_node.persistent_node_id
,l_element_id
,NULL
,G_CX_BUTTON_ACTION_TYPE
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,'0'
,i.data_value
,NULL
,NULL
,NULL
,NULL
,G_NO_FLAG
);
FOR i IN(SELECT a.model_ref_expl_id, b.data_value, a.component_id, b.expr_node_id, a.name, a.INSTANTIATION_SCOPE
FROM CZ_RULES a, CZ_EXPRESSION_NODES b
WHERE a.devl_project_id=p_node.devl_project_id AND
a.component_id IN
(SELECT ps_node_id FROM CZ_PS_NODES
WHERE devl_project_id IN
(SELECT DISTINCT component_id FROM CZ_MODEL_REF_EXPLS
START WITH model_id=p_node.devl_project_id AND
referring_node_id=p_node.ps_node_id AND
deleted_flag='0'
CONNECT BY PRIOR model_ref_expl_id=parent_expl_node_id AND
deleted_flag='0' AND PRIOR deleted_flag='0') AND
deleted_flag='0') AND
a.rule_type=G_CZ_EXTENTSIONS_RULE_TYPE AND
a.deleted_flag=G_NO_FLAG AND
a.disabled_flag=G_NO_FLAG AND
a.invalid_flag=G_NO_FLAG AND
b.rule_id=a.rule_id AND
b.deleted_flag=G_NO_FLAG AND
b.argument_signature_id=G_EVENT_ON_COMMAND_SIGID AND
data_value IS NOT NULL)
LOOP
-- do not create a CX for instantiable reference with
-- instantiation_scope= INSTANCE
IF p_node.ps_node_type=G_REFERENCE_TYPE AND
p_node.instantiable_flag NOT IN(G_MANDATORY_INST_TYPE) AND
i.INSTANTIATION_SCOPE=1 THEN
add_Error_Message(p_message_name => 'CZ_CX_IS_IN_WRONG_SCOPE',
p_token_name1 => 'EVENT_NAME',
p_token_value1 => i.data_value,
p_token_name2 => 'RULE_NAME',
p_token_value2 => i.name,
p_fatal_error => FALSE);
INSERT INTO CZ_INTL_TEXTS
(INTL_TEXT_ID,
TEXT_STR,
DELETED_FLAG,
SEEDED_FLAG,
UI_DEF_ID,
MODEL_ID,
UI_PAGE_ID,
UI_PAGE_ELEMENT_ID)
VALUES
(l_ui_intl_text_id,
i.data_value,
G_NO_FLAG,
G_NO_FLAG,
g_UI_Context.ui_def_id,
g_UI_Context.devl_project_id,
p_ui_node.page_id,
l_element_id
);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
base_page_flag,
seq_nbr,
ctrl_template_id,
ctrl_template_ui_def_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(p_ui_node.ui_def_id,
p_node.persistent_node_id,
p_node.parent_persistent_node_id,
p_ui_node.region_persistent_node_id,
p_ui_node.pagebase_persistent_node_id,
p_ui_node.page_id,
NULL,
p_ui_node.seq_nbr+1,
G_DRILLDOWN_BUTTON_TEMPLATE_ID,
G_GLOBAL_TEMPLATES_UI_DEF_ID,
l_element_id,
l_parent_element_id,
G_UI_CX_BUTTON_NODE_TYPE,
NULL,
p_ui_node.model_ref_expl_id,
g_DRILLDOWN_B_SIGNATURE_ID,
'Button - '||i.data_value,
G_MARK_TO_ADD);
INSERT INTO CZ_UI_ACTIONS
(
ui_action_id
,ui_def_id
,source_page_id
,context_component_id
,element_id
,render_condition_id
,ui_action_type
,target_ui_def_id
,target_persistent_node_id
,target_node_path
,target_page_set_id
,target_page_id
,target_url
,frame_name
,target_anchor
,seeded_flag
,cx_command_name
,window_parameters
,target_window_type
,target_window_name
,target_expl_node_id
,deleted_flag
)
VALUES
(
l_ui_action_id
,p_ui_node.ui_def_id
,p_ui_node.page_id
,p_node.persistent_node_id
,l_element_id
,NULL
,G_CX_BUTTON_ACTION_TYPE
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,'0'
,i.data_value
,NULL
,NULL
,NULL
,NULL
,G_NO_FLAG
);
FOR k IN(SELECT component_id, ps_node_type FROM CZ_MODEL_REF_EXPLS
START WITH model_ref_expl_id=i.model_ref_expl_id
CONNECT BY PRIOR parent_expl_node_id=model_ref_expl_id AND deleted_flag='0')
LOOP
IF k.ps_node_type = CZ_TYPES.PS_NODE_TYPE_REFERENCE THEN
l_ref_model_id := k.component_id;
SELECT persistent_node_id INTO l_persistent_id FROM CZ_PS_NODES
WHERE devl_project_id=l_ref_model_id AND ps_node_id=i.component_id;
SELECT model_ref_expl_id, persistent_node_id INTO l_pb_model_ref_expl_id, l_pb_persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND page_id=p_ui_node.page_id AND
element_id=p_ui_node.parent_element_id;
FOR option_node IN(SELECT ps_node_id,persistent_node_id,
parent_persistent_node_id FROM CZ_UITEMPLS_FOR_PSNODES_V a
WHERE devl_project_id=g_UI_Context.devl_project_id AND
ui_def_id=g_UI_Context.from_master_template_id AND
ps_node_type IN(G_OPTION_TYPE, G_BOM_STANDART_ITEM_TYPE) AND
ui_omit=G_NO_FLAG AND deleted_flag=G_NO_FLAG AND
EXISTS(SELECT NULL FROM CZ_RULES
WHERE devl_project_id=g_UI_Context.devl_project_id AND
component_id=a.ps_node_id AND
disabled_flag=G_NO_FLAG AND
deleted_flag=G_NO_FLAG))
LOOP
FOR parent_ui_node IN(SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=option_node.parent_persistent_node_id AND
deleted_flag NOT IN(G_YES_FLAG, G_MARK_TO_DELETE, G_LIMBO_FLAG))
LOOP
FOR i IN(SELECT DISTINCT b.data_value, b.expr_node_id, a.INSTANTIATION_SCOPE, a.NAME
FROM CZ_RULES a, CZ_EXPRESSION_NODES b
WHERE a.devl_project_id=g_UI_Context.devl_project_id AND
a.component_id=option_node.ps_node_id AND
a.rule_type=G_CZ_EXTENTSIONS_RULE_TYPE AND
a.deleted_flag=G_NO_FLAG AND
a.disabled_flag=G_NO_FLAG AND
a.invalid_flag=G_NO_FLAG AND
b.rule_id=a.rule_id AND
b.deleted_flag=G_NO_FLAG AND
b.argument_signature_id=G_EVENT_ON_COMMAND_SIGID AND
b.data_value IS NOT NULL)
LOOP
IF find_CX_On_UI_Page(parent_ui_node.page_id, option_node.ps_node_id, i.data_value) = G_NO_FLAG THEN
l_element_id := get_Element_Id();
INSERT INTO CZ_INTL_TEXTS
(INTL_TEXT_ID,
TEXT_STR,
DELETED_FLAG,
SEEDED_FLAG,
UI_DEF_ID,
MODEL_ID,
UI_PAGE_ID,
UI_PAGE_ELEMENT_ID
)
VALUES
(l_ui_intl_text_id,
i.data_value,
G_NO_FLAG,
G_NO_FLAG,
g_UI_Context.ui_def_id,
g_UI_Context.devl_project_id,
parent_ui_node.page_id,
l_element_id
);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
base_page_flag,
seq_nbr,
ctrl_template_id,
ctrl_template_ui_def_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
model_ref_expl_id,
element_signature_id,
NAME,
deleted_flag)
VALUES
(g_UI_Context.ui_def_id,
option_node.persistent_node_id,
option_node.parent_persistent_node_id,
parent_ui_node.region_persistent_node_id,
parent_ui_node.pagebase_persistent_node_id,
parent_ui_node.page_id,
NULL,
parent_ui_node.seq_nbr+1,
G_DRILLDOWN_BUTTON_TEMPLATE_ID,
G_GLOBAL_TEMPLATES_UI_DEF_ID,
l_element_id,
l_parent_element_id,
G_UI_CX_BUTTON_NODE_TYPE,
NULL,
parent_ui_node.model_ref_expl_id,
g_DRILLDOWN_B_SIGNATURE_ID,
G_DRILLDOWN_TEMPLATE_NAME||' - '||l_element_id,
G_MARK_TO_ADD);
INSERT INTO CZ_UI_ACTIONS
(
ui_action_id
,ui_def_id
,source_page_id
,context_component_id
,element_id
,render_condition_id
,ui_action_type
,target_ui_def_id
,target_persistent_node_id
,target_node_path
,target_page_set_id
,target_page_id
,target_url
,frame_name
,target_anchor
,seeded_flag
,cx_command_name
,window_parameters
,target_window_type
,target_window_name
,target_expl_node_id
,deleted_flag
)
VALUES
(
l_ui_action_id
,g_UI_Context.ui_def_id
,parent_ui_node.page_id
,option_node.persistent_node_id
,l_element_id
,NULL
,G_CX_BUTTON_ACTION_TYPE
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,'0'
,i.data_value
,NULL
,NULL
,NULL
,NULL
,G_NO_FLAG
);
SELECT '1' INTO l_dummy
FROM DUAL
WHERE '1' IN (SELECT suppress_refresh_flag
FROM cz_ui_page_elements
START WITH ui_def_Id = p_page_element.ui_def_id
AND page_id = p_page_element.page_id
AND element_id = p_page_element.element_id
CONNECT BY PRIOR parent_element_id IS NOT NULL
AND prior suppress_refresh_flag = G_NO_FLAG
AND ui_def_Id = p_page_element.ui_def_id
AND page_id = p_page_element.page_id
AND prior parent_element_id = element_id);
FOR i in (SELECT DISTINCT page_id
FROM cz_ui_page_elements
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND element_type = G_UI_CX_BUTTON_NODE_TYPE
AND deleted_flag = G_NO_FLAG)
LOOP
--DEBUG('asp: Marking page ' || i.page_id || ', ' || g_UI_Context.ui_def_id || ' for refresh ');
FOR i in (SELECT b.data_value, b.expr_node_id, a.INSTANTIATION_SCOPE, a.NAME,
(SELECT persistent_node_id
FROM CZ_PS_NODES
WHERE devl_project_id = g_UI_Context.devl_project_id
AND ps_node_id = a.component_id) persistent_node_Id
FROM CZ_RULES a, CZ_EXPRESSION_NODES b
WHERE a.devl_project_id=g_UI_Context.devl_project_id AND
a.rule_type=G_CZ_EXTENTSIONS_RULE_TYPE AND
b.rule_id=a.rule_id AND
b.argument_signature_id=G_EVENT_ON_COMMAND_SIGID AND
b.data_value IS NOT NULL AND
b.last_update_date > g_UI_Context.UI_TIMESTAMP_REFRESH)
LOOP
BEGIN
SELECT e.element_id INTO l_element_id
FROM CZ_UI_PAGE_ELEMENTS e
WHERE ui_def_id = g_UI_Context.ui_def_id AND
persistent_node_id = i.persistent_node_id AND
element_type = G_UI_CX_BUTTON_NODE_TYPE AND
deleted_flag NOT IN (G_YES_FLAG, G_MARK_TO_DELETE) AND
EXISTS (SELECT NULL FROM CZ_UI_ACTIONS a
WHERE a.ui_def_id = e.ui_def_id AND
a.source_page_id = e.page_id AND
a.element_id = e.element_id AND
a.deleted_flag NOT IN (G_YES_FLAG, G_MARK_TO_DELETE) AND
a.cx_command_name = i.data_value);
FOR j in (SELECT *
FROM CZ_UI_PAGE_ELEMENTS e
WHERE ui_def_id = g_UI_Context.ui_def_id AND
persistent_node_id = i.persistent_node_id AND
deleted_flag NOT IN (G_YES_FLAG, G_MARK_TO_DELETE))
LOOP
IF NOT disabled_for_refresh(j) THEN
l_ps_node := get_Model_Node_By_Persist_id(i.persistent_node_id, g_UI_Context.devl_project_id);
p_insert_index IN NUMBER DEFAULT -1)
RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
SELECT G_YES_FLAG INTO l_node_exists_in_ui FROM dual
WHERE EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
parent_element_id=p_parent_ui_node.element_id AND
persistent_node_id=p_node.persistent_node_id AND
element_type IS NULL AND deleted_flag=G_NO_FLAG);
IF p_insert_index > 0 THEN
l_max_prev_seq_nbr := p_insert_index-1;
l_ui_node.seq_nbr := p_insert_index;
SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
element_id=p_parent_ui_node.element_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
CONNECT BY PRIOR ui_def_id=g_UI_Context.ui_def_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR page_id= p_parent_ui_node.page_id
AND page_id=p_parent_ui_node.page_id AND PRIOR element_id=parent_element_id AND
PRIOR deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
seq_nbr>l_max_prev_seq_nbr AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
l_ui_node.deleted_flag := G_MARK_TO_ADD;
SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=l_ui_node.page_id AND
ctrl_template_id=l_ui_node.ctrl_template_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(l_ui_node.ui_def_id,
l_ui_node.persistent_node_id,
l_ui_node.parent_persistent_node_id,
l_ui_node.region_persistent_node_id,
l_ui_node.pagebase_persistent_node_id,
l_ui_node.page_id,
l_ui_node.seq_nbr,
l_ui_node.ctrl_template_id,
l_ui_node.element_id,
l_ui_node.parent_element_id,
l_ui_node.element_type,
l_ui_node.instantiable_flag,
l_ui_node.ctrl_template_ui_def_id,
l_ui_node.model_ref_expl_id,
l_ui_node.element_signature_id,
l_ui_node.name,
l_ui_node.deleted_flag);
SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
element_id=p_parent_ui_node.element_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
CONNECT BY PRIOR ui_def_id=g_UI_Context.ui_def_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR page_id= p_parent_ui_node.page_id
AND page_id=p_parent_ui_node.page_id AND PRIOR element_id=parent_element_id AND
PRIOR deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
seq_nbr>l_max_prev_seq_nbr AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(p_ui_node.ui_def_id,
p_ui_node.persistent_node_id,
p_ui_node.parent_persistent_node_id,
p_parent_ui_node.region_persistent_node_id,
p_parent_ui_node.pagebase_persistent_node_id,
p_parent_ui_node.page_id,
l_seq_nbr,
p_node.template_id,
l_element_id,
p_parent_ui_node.element_id,
l_element_type,
p_ui_node.instantiable_flag,
p_node.template_ui_def_id,
p_ui_node.model_ref_expl_id,
p_node.root_element_signature_id,
l_ui_node_name,
G_MARK_DO_NOT_REFRESH);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id = p_parent_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type=G_UI_PAGEDRILLDOWN_NODE_TYPE AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
name,
element_signature_id,
deleted_flag)
VALUES
(p_parent_ui_node.ui_def_id,
p_ui_node.persistent_node_id,
p_ui_node.parent_persistent_node_id,
p_parent_ui_node.region_persistent_node_id,
p_parent_ui_node.pagebase_persistent_node_id,
p_parent_ui_node.page_id,
l_seq_nbr,
g_DRILLDOWN_TEMPLATE_ID,
l_element_id,
p_parent_ui_node.element_id,
G_UI_PAGEDRILLDOWN_NODE_TYPE,
NULL,
G_GLOBAL_TEMPLATES_UI_DEF_ID,
NULL,
l_ui_node_name,
g_DRILLDOWN_ELEM_SIGNATURE_ID,
G_MARK_TO_ADD);
INSERT INTO CZ_UI_ACTIONS
(ui_action_id,
ui_def_id,
source_page_id,
context_component_id,
element_id,
ui_action_type,
target_ui_def_id,
target_persistent_node_id,
target_node_path,
target_page_set_id,
target_page_id,
target_expl_node_id,
seeded_flag,
deleted_flag)
VALUES
(l_ui_action_id,
p_parent_ui_node.ui_def_id,
p_parent_ui_node.page_id,
p_parent_ui_node.region_persistent_node_id,
l_element_id,
G_ACTION_CONFIGURE_SUBCOMP,
NULL,
p_ui_node.persistent_node_id,
TO_CHAR(p_ui_node.persistent_node_id),
p_page_set_id,
p_ui_node.page_id,
p_ui_node.model_ref_expl_id,
G_NO_FLAG,
G_NO_FLAG);
SELECT ps_node_type INTO l_ps_node_type FROM CZ_PS_NODES
WHERE ps_node_id=p_ps_node_id AND deleted_flag=G_NO_FLAG;
FOR i IN (SELECT DISTINCT ps_node_type,reference_id FROM CZ_PS_NODES
WHERE parent_id=p_ps_node_id AND
deleted_flag=G_NO_FLAG AND ui_omit=G_NO_FLAG AND
(ps_node_type IN(G_BOM_MODEL_TYPE,G_BOM_OPTION_CLASS_TYPE,G_BOM_STANDART_ITEM_TYPE) OR
ps_node_type=G_REFERENCE_TYPE))
LOOP
IF i.ps_node_type=G_REFERENCE_TYPE THEN
SELECT ps_node_type INTO l_ps_node_type FROM CZ_PS_NODES
WHERE ps_node_id=i.reference_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_page_id AND
deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(g_UI_Context.ui_def_id,
p_node.persistent_node_id,
p_node.parent_persistent_node_id,
p_node.persistent_node_id,
p_pagebase_persistent_node_id,
p_page_id,
1,
p_node.template_id,
l_bom_element_id,
p_parent_element_id,
G_UI_BOMADDINST_NODE_TYPE,
p_node.instantiable_flag,
p_node.template_ui_def_id,
p_pagebase_expl_node_id,
p_node.root_element_signature_id,
l_ui_node_name,
G_MARK_TO_ADD);
SELECT MIN(page_id)
INTO x_page_id
FROM CZ_UI_PAGES
WHERE ui_def_id = g_UI_Context.ui_def_id AND
persistent_node_id = p_parent_persistent_node_id AND
NVL(split_seq_nbr,1)=1 AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,G_MARK_TO_REFRESH);
SELECT page_set_id INTO x_page_set_id
FROM CZ_UI_PAGES
WHERE page_id=x_page_id AND
ui_def_id = g_UI_Context.ui_def_id;
SELECT page_set_id INTO x_page_set_id
FROM CZ_UI_PAGES
WHERE page_id=p_parent_page_id AND
ui_def_id = g_UI_Context.ui_def_id;
SELECT MIN(page_ref_id)
INTO x_parent_page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
NVL(page_set_id,-1)=NVL(x_page_set_id,-1) AND
target_page_id=x_page_id AND deleted_flag=G_NO_FLAG;
SELECT node_depth,page_ref_type INTO x_parent_node_depth, x_parent_page_set_type
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_ref_id=x_parent_page_ref_id;
SELECT page_set_type INTO x_parent_page_set_type FROM CZ_UI_PAGE_SETS
WHERE ui_def_id = g_UI_Context.ui_def_id AND page_set_id=x_page_set_id;
SELECT COUNT(*)+1 INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id = p_page_set_id AND
parent_page_ref_id=p_parent_page_ref_id AND
deleted_flag=G_NO_FLAG;
FOR j in (SELECT persistent_node_id
FROM CZ_PS_NODES
WHERE devl_project_id = g_UI_Context.devl_project_id
AND parent_id = p_node.parent_id
AND tree_seq = p_node.tree_seq-i
AND deleted_flag = G_NO_FLAG)
LOOP
--DEBUG('asp: predecessor persistent_node_id = ' || l_predecessor_persistent_id);
SELECT NVL(max(seq_nbr), 0) INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = p_page_set_id
AND parent_page_ref_id = p_parent_page_ref_id
AND target_persistent_node_id = j.persistent_node_id
AND deleted_flag = G_NO_FLAG;
SELECT NVL(count(*), 0) + 1 INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_Id
AND page_set_id = p_page_set_id
AND parent_page_ref_id = p_parent_page_ref_id
AND deleted_flag = G_NO_FLAG;
SELECT persistent_node_id INTO l_parent_page_persistent_id
FROM CZ_UI_PAGES
WHERE ui_Def_id = g_UI_Context.ui_def_id
AND page_id = l_parent_page_id;
l_page_node.deleted_flag := G_MARK_TO_ADD;
INSERT INTO CZ_UI_PAGES
(page_id,
ui_def_id,
NAME,
persistent_node_id,
jrad_doc,
page_set_id,
split_seq_nbr,
caption_source,
pagebase_path,
pagebase_expl_node_id,
page_rev_nbr,
seeded_flag,
page_status_template_id,
page_status_templ_uidef_id,
caption_rule_id,
deleted_flag)
VALUES
(l_page_node.page_id ,
l_page_node.ui_def_id,
l_page_node.NAME,
l_page_node.persistent_node_id,
l_page_node.jrad_doc,
l_page_node.page_set_id,
l_page_node.split_seq_nbr,
l_page_node.caption_source,
l_page_node.pagebase_path,
l_page_node.pagebase_expl_node_id,
1,
l_page_node.seeded_flag,
g_PAGE_STATUS_TEMPLATE_ID,
G_GLOBAL_TEMPLATES_UI_DEF_ID,
NULL,
l_page_node.deleted_flag);
l_page_ui_node.deleted_flag := G_MARK_TO_ADD;
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
base_page_flag,
element_signature_id,
name,
deleted_flag)
VALUES
(l_page_ui_node.ui_def_id,
l_page_ui_node.persistent_node_id,
l_page_ui_node.parent_persistent_node_id,
l_page_ui_node.region_persistent_node_id,
l_page_ui_node.pagebase_persistent_node_id,
l_page_ui_node.page_id,
l_page_ui_node.seq_nbr,
l_page_ui_node.ctrl_template_id,
l_page_ui_node.element_id,
l_page_ui_node.parent_element_id,
l_page_ui_node.element_type,
l_page_ui_node.instantiable_flag,
l_page_ui_node.ctrl_template_ui_def_id,
l_page_ui_node.model_ref_expl_id,
l_page_ui_node.base_page_flag,
6004,
l_page_ui_node.name,
l_page_ui_node.deleted_flag);
FOR i IN(SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=l_page_ui_node.ui_def_id AND
page_id=l_last_page_id AND
persistent_node_id=l_page_ui_node.parent_persistent_node_id AND
element_type IN(G_UI_PAGE_NODE_TYPE,G_UI_REGION_NODE_TYPE) AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH))
LOOP
IF NVL(i.suppress_refresh_flag, G_NO_FLAG) = G_NO_FLAG THEN
IF l_is_inst_node THEN
add_Instance_Controls(p_ui_node => l_page_ui_node,
p_parent_ui_node => i,
p_node => p_node);
FOR m IN(SELECT page_set_id FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=l_page_set_id AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG)
LOOP
/******** attach new UI Page to Page Set *********************/
BEGIN
--
-- create a new record for this UI page in CZ_UI_PAGE_REFS
--
l_page_ref_id := allocateId('CZ_UI_PAGE_REFS_S');
SELECT COUNT(*)+1 INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = seq_nbr + 1
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = l_page_set_id
AND parent_page_ref_id = l_parent_page_ref_id
AND seq_nbr >= l_seq_nbr
AND deleted_flag = G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_REFS
(ui_def_id,
page_set_id,
page_ref_id,
parent_page_ref_id,
seq_nbr,
node_depth,
condition_id,
NAME,
caption_source,
target_persistent_node_id,
target_path,
target_ui_def_id,
target_page_set_id,
target_page_id,
modified_flags,
path_to_prev_page,
path_to_next_page,
page_ref_type,
target_expl_node_id,
caption_rule_id,
deleted_flag)
VALUES
(g_UI_Context.ui_def_id,
l_page_set_id,
l_page_ref_id,
l_parent_page_ref_id,
l_seq_nbr,
l_node_depth,
NULL,
p_node.name,
G_DEFAULT_CAPTION_RULE_ID,
p_node.persistent_node_id,
l_ref_pagebase_path,
NULL,
NULL,
l_page_ui_node.page_id,
0,
NULL,
NULL,
l_page_set_type,
l_page_node.pagebase_expl_node_id,
NULL,
G_NO_FLAG);
p_insert_index IN NUMBER DEFAULT -1)
RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
SELECT page_id INTO l_page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_CONTEXT.ui_def_id AND persistent_node_id=p_node.persistent_node_id AND
deleted_flag NOT IN (G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG) AND rownum<2;
IF p_insert_index = -1 THEN
SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
element_id=p_parent_ui_node.element_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
CONNECT BY PRIOR ui_def_id=g_UI_Context.ui_def_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR page_id= p_parent_ui_node.page_id
AND page_id=p_parent_ui_node.page_id AND PRIOR element_id=parent_element_id AND
PRIOR deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
l_max_prev_seq_nbr := p_insert_index-1;
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
seq_nbr>l_max_prev_seq_nbr AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
l_ui_node.deleted_flag := G_MARK_TO_ADD;
SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=l_ui_node.page_id AND
ctrl_template_id=l_ui_node.ctrl_template_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(l_ui_node.ui_def_id,
l_ui_node.persistent_node_id,
l_ui_node.parent_persistent_node_id,
l_ui_node.region_persistent_node_id,
l_ui_node.pagebase_persistent_node_id,
l_ui_node.page_id,
l_ui_node.seq_nbr,
l_ui_node.ctrl_template_id,
l_ui_node.element_id,
l_ui_node.parent_element_id,
l_ui_node.element_type,
l_ui_node.instantiable_flag,
l_ui_node.ctrl_template_ui_def_id,
l_ui_node.model_ref_expl_id,
l_ui_node.element_signature_id,
l_ui_node.name,
l_ui_node.deleted_flag);
SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
element_id=p_parent_ui_node.element_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
CONNECT BY PRIOR ui_def_id=g_UI_Context.ui_def_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR page_id= p_parent_ui_node.page_id
AND page_id=p_parent_ui_node.page_id AND PRIOR element_id=parent_element_id AND
PRIOR deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
seq_nbr>l_max_prev_seq_nbr AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
l_ui_node.deleted_flag := G_MARK_TO_ADD;
SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=l_ui_node.page_id AND
ctrl_template_id=l_ui_node.ctrl_template_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
SELECT NVL(MAX(seq_nbr),0) INTO l_max_seq_nbr
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=l_ui_node.ui_def_id
AND parent_element_id=l_ui_node.parent_element_id
AND deleted_flag IN(G_NO_FLAG,G_MARK_TO_REFRESH,G_MARK_TO_ADD)
AND element_type IN(G_UI_BOMADDINST_NODE_TYPE);
SELECT persistent_node_id INTO l_persistent_node_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=l_ui_node.ui_def_id AND
parent_element_id=l_ui_node.parent_element_id AND
seq_nbr=l_max_seq_nbr AND
ROWNUM<2;
SELECT ps_node_type INTO l_ps_node_type
FROM CZ_PS_NODES
WHERE devl_project_id=p_node.reference_id AND
parent_id IS NULL AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
deleted_flag)
VALUES
(l_ui_node.ui_def_id,
l_ui_node.persistent_node_id,
l_ui_node.parent_persistent_node_id,
l_ui_node.region_persistent_node_id,
l_ui_node.pagebase_persistent_node_id,
l_ui_node.page_id,
l_ui_node.seq_nbr,
l_ui_node.ctrl_template_id,
l_ui_node.element_id,
l_ui_node.parent_element_id,
l_ui_node.element_type,
l_ui_node.instantiable_flag,
l_ui_node.ctrl_template_ui_def_id,
l_ui_node.model_ref_expl_id,
l_ui_node.element_signature_id,
l_ui_node.name,
l_ui_node.deleted_flag);
UPDATE CZ_UI_REFS
SET deleted_flag=G_NO_FLAG
WHERE
ui_def_id = l_ui_node.ui_def_id AND
ref_persistent_node_id = l_ui_node.persistent_node_id;
INSERT INTO CZ_UI_REFS
(ui_def_id,
ref_ui_def_id,
ref_persistent_node_id,
model_ref_expl_id,
deleted_flag)
VALUES
(l_ui_node.ui_def_id,
l_target_ui_def_node.ui_def_id,
l_ui_node.persistent_node_id,
l_ui_node.model_ref_expl_id,
G_NO_FLAG);
INSERT INTO CZ_UI_ACTIONS
(ui_action_id,
ui_def_id,
source_page_id,
context_component_id,
element_id,
ui_action_type,
target_ui_def_id,
target_persistent_node_id,
target_node_path,
target_page_set_id,
target_page_id,
target_expl_node_id,
seeded_flag,
deleted_flag)
VALUES
(l_ui_action_id,
l_ui_node.ui_def_id,
l_ui_node.page_id,
l_ui_node.region_persistent_node_id,
l_ui_node.element_id,
G_ACTION_CONFIGURE_SUBCOMP,
l_target_ui_def_node.ui_def_id,
p_node.persistent_node_id,
TO_CHAR(p_node.persistent_node_id),
l_target_ui_def_node.page_set_id,
l_target_ui_def_node.start_page_id,
l_ui_node.model_ref_expl_id,
G_NO_FLAG,
G_NO_FLAG);
FOR m IN(SELECT page_set_id FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=l_page_ref_node.page_set_id AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG)
LOOP
--
-- create a new record for this UI page in CZ_UI_PAGE_REFS
--
l_page_ref_id := allocateId('CZ_UI_PAGE_REFS_S');
SELECT MIN(page_id) INTO l_target_ui_def_node.start_page_id
FROM CZ_UI_PAGES
WHERE ui_def_id=l_target_ui_def_node.ui_def_id AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,G_MARK_TO_REFRESH);
SELECT MIN(page_set_id) INTO l_target_ui_def_node.page_set_id
FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=l_target_ui_def_node.ui_def_id AND deleted_flag=G_NO_FLAG;
SELECT COUNT(*)+1 INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = seq_nbr + 1
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = l_page_ref_node.page_set_id
AND parent_page_ref_id = l_page_ref_node.page_ref_id
AND seq_nbr >= l_seq_nbr
AND deleted_flag = G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_REFS
(ui_def_id,
page_set_id,
page_ref_id,
parent_page_ref_id,
seq_nbr,
node_depth,
NAME,
caption_source,
target_persistent_node_id,
target_path,
target_ui_def_id,
target_page_set_id,
target_page_id,
modified_flags,
page_ref_type,
target_expl_node_id,
caption_rule_id,
deleted_flag)
VALUES
(l_ui_node.ui_def_id,
l_page_ref_node.page_set_id,
l_page_ref_id,
l_page_ref_node.page_ref_id,
l_seq_nbr,
l_page_ref_node.node_depth+1,
p_node.NAME,
G_DEFAULT_CAPTION_RULE_ID,
p_node.persistent_node_id,
l_target_path,
l_target_ui_def_node.ui_def_id, --NULL, -- request from Alok -- old code l_target_ui_def_node.ui_def_id,
l_target_ui_def_node.page_set_id, --NULL, -- request from Alok -- old code l_target_ui_def_node.page_set_id,
l_target_ui_def_node.start_page_id, --NULL, -- request from Alok -- old code l_target_ui_def_node.start_page_id,
0,
l_page_ref_node.page_ref_type,
l_ui_node.model_ref_expl_id,
NULL,
G_NO_FLAG);
PROCEDURE delete_UI_Element(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
p_suppress_refresh_flag IN CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE DEFAULT NULL,
p_delete_in_model IN BOOLEAN DEFAULT NULL) IS
l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
FOR i IN (SELECT persistent_node_id,region_persistent_node_id,suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id = p_ui_node.ui_def_id AND
deleted_flag IN
(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,
G_MARK_TO_DELETE) AND element_id = p_ui_node.element_id
CONNECT BY PRIOR parent_element_id = element_id AND
deleted_flag IN
(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,
G_MARK_TO_DELETE) AND
PRIOR deleted_flag IN
(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,
G_MARK_TO_DELETE))
LOOP
IF i.persistent_node_id=i.region_persistent_node_id THEN
l_suppress_refresh_flag := i.suppress_refresh_flag;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DELETE
WHERE ui_def_id = p_ui_node.ui_def_id AND
element_id IN
(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=p_ui_node.ui_def_id AND element_id=p_ui_node.element_id
CONNECT BY PRIOR ui_def_id=p_ui_node.ui_def_id AND ui_def_id=p_ui_node.ui_def_id AND
PRIOR element_id=parent_element_id AND
deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_DELETE) AND
PRIOR deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_DELETE));
IF p_delete_in_model THEN
--
-- deassociate UI element from model node
--
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DEASSOCIATE,
persistent_node_id = 0
WHERE ui_def_id = p_ui_node.ui_def_id AND
element_id IN
(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=p_ui_node.ui_def_id AND element_id=p_ui_node.element_id
CONNECT BY PRIOR ui_def_id=p_ui_node.ui_def_id AND
PRIOR element_id=parent_element_id AND
deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_DELETE) AND
PRIOR deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_DELETE));
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag = G_YES_FLAG
WHERE ui_def_id=p_ui_node.ui_def_id AND
target_persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG AND
target_page_id NOT IN(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id);
UPDATE CZ_UI_REFS
SET deleted_flag = G_YES_FLAG
WHERE ui_def_id=p_ui_node.ui_def_id AND
ref_persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG AND NOT EXISTS
(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,G_MARK_TO_REFRESH));
END delete_UI_Element;
SELECT MIN(page_ref_id) INTO l_page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_node.ui_def_id AND
target_page_id=p_ui_node.page_id AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag = G_YES_FLAG
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_ref_id=l_page_ref_id
RETURNING parent_page_ref_id,page_set_id,seq_nbr
INTO l_parent_page_ref_id,l_page_set_id,l_seq_nbr;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = seq_nbr - 1
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_set_id=l_page_set_id AND
parent_page_ref_id = l_parent_page_ref_id AND
seq_nbr > l_seq_nbr AND
deleted_flag=G_NO_FLAG;
PROCEDURE delete_Related_Buttons(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
FOR i IN(SELECT element_id,parent_element_id,page_id,suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS a
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_BOMADDINST_NODE_TYPE,
G_UI_NONBOMADDINST_NODE_TYPE,
G_UI_PAGEDRILLDOWN_NODE_TYPE) AND
deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG))
LOOP
IF i.parent_element_id IS NOT NULL THEN
BEGIN
l_suppress_refresh_flag := G_NO_FLAG;
SELECT NVL(suppress_refresh_flag,G_NO_FLAG) INTO l_suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = p_ui_node.ui_def_id AND
page_id = i.page_id AND
element_id=i.parent_element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DEASSOCIATE,
persistent_node_id=0
WHERE ui_def_id = p_ui_node.ui_def_id AND
page_id = i.page_id AND
element_id = i.element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DELETE
WHERE ui_def_id = p_ui_node.ui_def_id AND
page_id = i.page_id AND
element_id = i.element_id;
END delete_Related_Buttons;
PROCEDURE delete_UI_Container(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
SELECT element_id, parent_element_id, persistent_node_id,page_id, NVL(suppress_refresh_flag,G_NO_FLAG)
BULK COLLECT INTO l_element_id_tbl, l_parent_element_id_tbl, l_persistent_node_id_tbl,
l_page_id_tbl, l_suppress_refresh_flag_tbl
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
deleted_flag NOT IN(G_YES_FLAG);
delete_Related_Buttons(p_ui_node);
mark_UI_Page_As_Deleted(p_ui_node.page_id, p_ui_node.ui_def_id);
SELECT element_id,persistent_node_id,page_id, suppress_refresh_flag
BULK COLLECT INTO l_element_id_tbl, l_persistent_node_id_tbl,
l_page_id_tbl, l_suppress_refresh_flag_tbl
FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id
CONNECT BY PRIOR element_id=parent_element_id AND
ui_def_id=p_ui_node.ui_def_id AND PRIOR
ui_def_id=p_ui_node.ui_def_id;
SELECT NVL(suppress_refresh_flag,G_NO_FLAG) INTO l_suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
element_id=l_parent_element_id_tbl(i);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DEASSOCIATE,
persistent_node_id=0
WHERE ui_def_id = p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
element_id = l_element_id_tbl(i);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DELETE
WHERE ui_def_id = p_ui_node.ui_def_id AND
page_id = p_ui_node.page_id AND
element_id = l_element_id_tbl(i);
UPDATE CZ_UI_ACTIONS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_node.ui_def_id AND
source_page_id=p_ui_node.page_id AND
element_id=l_element_id_tbl(i);
END delete_UI_Container;
PROCEDURE handle_Deleted_Nodes(p_ui_def_id IN NUMBER) IS
l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
UPDATE CZ_UI_PAGE_REFS uiref
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND target_ui_def_id IS NOT NULL AND
NOT EXISTS(SELECT NULL FROM CZ_PS_NODES a
WHERE a.devl_project_id=(SELECT b.devl_project_id FROM CZ_UI_DEFS b
WHERE b.ui_def_id=p_ui_def_id) AND
persistent_node_id=uiref.target_persistent_node_id AND deleted_flag=G_NO_FLAG)
AND deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_REFS uiref
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND
NOT EXISTS(SELECT NULL FROM CZ_PS_NODES a
WHERE a.devl_project_id=(SELECT b.devl_project_id FROM CZ_UI_DEFS b
WHERE b.ui_def_id=p_ui_def_id) AND
persistent_node_id=uiref.ref_persistent_node_id AND deleted_flag=G_NO_FLAG)
AND deleted_flag=G_NO_FLAG;
END handle_Deleted_Nodes;
PROCEDURE delete_UI_Page(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
l_page_set_id CZ_UI_PAGE_SETS.page_set_id%TYPE;
delete_UI_Container(p_ui_node);
END delete_UI_Page;
PROCEDURE delete_UI_Region(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
BEGIN
delete_UI_Container(p_ui_node);
END delete_UI_Region;
SELECT page_set_id,pagebase_path INTO l_page_set_id,l_old_page_path_from_root FROM CZ_UI_PAGES
WHERE page_id=p_page_id AND ui_def_id=g_UI_Context.ui_def_id;
UPDATE CZ_UI_PAGES
SET pagebase_path=l_page_path_from_root,
deleted_flag=DECODE(deleted_flag,G_MARK_TO_ADD,G_MARK_TO_ADD,G_MARK_TO_REFRESH)
WHERE page_id=p_page_id AND
ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
UPDATE CZ_UI_PAGE_REFS
SET target_path=l_target_path
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_page_id=p_page_id;
FOR i in (SELECT page_set_id, page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id
AND target_ui_def_id IS NOT NULL
AND target_page_id IS NOT NULL
AND target_persistent_node_id = p_node.persistent_node_id
AND deleted_flag = G_NO_FLAG)
LOOP
l_target_path := get_Page_Path(p_node.ps_node_id, i.page_set_id);
UPDATE CZ_UI_PAGE_REFS
SET target_path=l_target_path
WHERE ui_def_id=g_UI_Context.ui_def_id
AND page_set_id = i.page_set_id
AND page_ref_id = i.page_ref_id;
FOR i in (SELECT page_id
FROM CZ_UI_PAGES
WHERE ui_def_id = g_UI_Context.ui_def_id
AND persistent_node_id = p_node.persistent_node_id
AND deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG))
LOOP
replace_page_ref_target_path(p_node, i.page_id);
SELECT suppress_refresh_flag INTO l_page_set_suppress_flag FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_set_id=p_page_set_id;
SELECT page_ref_type, node_depth
INTO l_page_ref_type, l_node_depth
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=p_page_ref_id AND
deleted_flag=G_NO_FLAG;
SELECT MIN(page_ref_id)
INTO x_new_parent_page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_persistent_node_id=p_node.parent_persistent_node_id AND
deleted_flag=G_NO_FLAG;
SELECT node_depth
INTO l_new_parent_node_depth
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=x_new_parent_page_ref_id;
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=p_page_ref_id AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET parent_page_ref_id = x_new_parent_page_ref_id,
seq_nbr = p_node.tree_seq
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=p_page_ref_id;
UPDATE CZ_UI_PAGE_REFS
SET node_depth = node_depth + (l_new_parent_node_depth-l_node_depth) + 1
WHERE (ui_def_id,page_ref_id) IN
(SELECT ui_def_id,page_ref_id FROM CZ_UI_PAGE_REFS
START WITH ui_def_id=g_UI_Context.ui_def_id AND page_ref_id=p_page_ref_id
CONNECT BY PRIOR page_ref_id=parent_page_ref_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag=G_NO_FLAG AND PRIOR deleted_flag=G_NO_FLAG);
SELECT page_set_id INTO l_page_set_id FROM CZ_UI_PAGES
WHERE page_id=p_ui_node.page_id AND ui_def_id=g_UI_Context.ui_def_id;
SELECT page_ref_id, parent_page_ref_id
INTO l_page_ref_id, x_new_parent_page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id = l_page_set_id AND
target_page_id = p_ui_node.page_id AND
deleted_flag=G_NO_FLAG AND
rownum < 2;
l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
SELECT page_set_id INTO l_page_set_id FROM CZ_UI_PAGES
WHERE page_id=p_ui_node.page_id AND ui_def_id=g_UI_Context.ui_def_id;
SELECT suppress_refresh_flag INTO l_page_set_suppress_flag FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_set_id=l_page_set_id;
FOR i IN(SELECT page_id,element_id,parent_element_id,suppress_refresh_flag FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.parent_persistent_node_id AND
((region_persistent_node_id=persistent_node_id OR
pagebase_persistent_node_id=persistent_node_id) AND
ctrl_template_id IN( G_CONTAINER_TEMPLATE_ID
,G_NSTD_CONTAINER_TEMPLATE_ID
,G_2COLS_CONTAINER_TEMPLATE_ID
,G_3COLS_CONTAINER_TEMPLATE_ID)) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE))
LOOP
IF i.suppress_refresh_flag=G_YES_FLAG THEN
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DEASSOCIATE,
persistent_node_id=0
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=i.page_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,
G_UI_BOMADDINST_NODE_TYPE,
G_UI_PAGEDRILLDOWN_NODE_TYPE);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=i.page_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,
G_UI_BOMADDINST_NODE_TYPE,
G_UI_PAGEDRILLDOWN_NODE_TYPE);
FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=p_node.parent_persistent_node_id AND
((region_persistent_node_id=persistent_node_id OR
pagebase_persistent_node_id=persistent_node_id) AND
ctrl_template_id IN( G_CONTAINER_TEMPLATE_ID
,G_NSTD_CONTAINER_TEMPLATE_ID
,G_2COLS_CONTAINER_TEMPLATE_ID
,G_3COLS_CONTAINER_TEMPLATE_ID)) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE))
LOOP
IF NVL(parent_ui_node.suppress_refresh_flag, G_NO_FLAG) = G_NO_FLAG THEN
IF p_ui_node.instantiable_flag IN(G_OPTIONAL_INST_TYPE,G_MINMAX_INST_TYPE) THEN
--
-- add new Instance Management COntrol to the parent UI Page
--
add_Instance_Controls(p_ui_node => p_ui_node,
p_parent_ui_node => parent_ui_node,
p_node => p_node);
FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=p_node.parent_persistent_node_id AND
(region_persistent_node_id=persistent_node_id OR
pagebase_persistent_node_id=persistent_node_id) AND
ctrl_template_id IN( G_CONTAINER_TEMPLATE_ID
,G_NSTD_CONTAINER_TEMPLATE_ID
,G_2COLS_CONTAINER_TEMPLATE_ID
,G_3COLS_CONTAINER_TEMPLATE_ID) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE))
LOOP
IF NVL(parent_ui_node.suppress_refresh_flag, G_NO_FLAG) = G_NO_FLAG THEN
create_Drilldown_Button(p_parent_ui_node => parent_ui_node,
p_ui_node => p_ui_node,
p_page_set_id => l_page_set_id);
FOR n IN(SELECT ui_def_id,page_id,element_id FROM CZ_UI_PAGE_ELEMENTS a
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
deleted_flag=G_NO_FLAG AND NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG AND
EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=a.page_id AND
element_id=a.parent_element_id AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG)
)
LOOP
l_ui_node_name := get_UI_Node_Name(p_page_id => n.page_id,
p_template_id => p_node.template_id,
p_template_name => p_node.template_name);
UPDATE CZ_UI_PAGE_ELEMENTS a
SET ctrl_template_id = p_node.template_id,
ctrl_template_ui_def_id = p_node.template_ui_def_id,
instantiable_flag = p_node.instantiable_flag,
name=l_ui_node_name,
deleted_flag=G_MARK_TO_REFRESH
WHERE ui_def_id=n.ui_def_id AND
page_id=n.page_id AND
element_id=n.element_id;
FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS a
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=p_node.parent_persistent_node_id AND
(region_persistent_node_id=persistent_node_id OR
pagebase_persistent_node_id=persistent_node_id) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG AND
ctrl_template_id IN( G_CONTAINER_TEMPLATE_ID
,G_NSTD_CONTAINER_TEMPLATE_ID
,G_2COLS_CONTAINER_TEMPLATE_ID
,G_3COLS_CONTAINER_TEMPLATE_ID) AND
NOT EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS b
WHERE b.ui_def_id=g_UI_Context.ui_def_id AND
b.page_id=a.page_id AND
b.region_persistent_node_id=a.region_persistent_node_id AND
b.persistent_node_id=p_ui_node.persistent_node_id AND
b.element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
b.deleted_flag NOT IN(G_MARK_TO_DELETE,G_YES_FLAG))
)
LOOP
--
-- add new Instance Management Control to the parent UI Page
--
add_Instance_Controls(p_ui_node => p_ui_node,
p_parent_ui_node => parent_ui_node,
p_node => p_node);
FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=p_node.parent_persistent_node_id AND
((region_persistent_node_id=persistent_node_id OR
pagebase_persistent_node_id=persistent_node_id) AND
ctrl_template_id IN( G_CONTAINER_TEMPLATE_ID
,G_NSTD_CONTAINER_TEMPLATE_ID
,G_2COLS_CONTAINER_TEMPLATE_ID
,G_3COLS_CONTAINER_TEMPLATE_ID)) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE))
LOOP
IF NVL(parent_ui_node.suppress_refresh_flag, G_NO_FLAG) = G_NO_FLAG THEN
--
-- add new Instance Management COntrol to the parent UI Page
--
add_Instance_Controls(p_ui_node => p_ui_node,
p_parent_ui_node => parent_ui_node,
p_node => p_node);
UPDATE CZ_UI_PAGE_ELEMENTS
SET instantiable_flag = p_node.instantiable_flag,
parent_persistent_node_id=p_node.parent_persistent_node_id
WHERE ui_def_id = p_ui_node.ui_def_id AND
persistent_node_id = p_ui_node.persistent_node_id;
SELECT ps_node_type INTO l_ps_node_type
FROM CZ_PS_NODES
WHERE devl_project_id=p_node.reference_id AND
parent_id IS NULL AND
deleted_flag=G_NO_FLAG;
FOR i IN(SELECT persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id
AND parent_element_id=p_ui_node.parent_element_id
AND persistent_node_id<>p_ui_node.persistent_node_id AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_REFRESH,G_MARK_TO_ADD))
LOOP
l_ps_node := get_Model_Node_By_Persist_Id(i.persistent_node_id,g_UI_COntext.devl_project_id);
UPDATE CZ_UI_PAGE_ELEMENTS
SET ctrl_template_id = l_template_id,
ctrl_template_ui_def_id = l_template_ui_def_id,
element_type = G_UI_DRILLDOWN_NODE_TYPE,
instantiable_flag = p_node.instantiable_flag,
name=l_ui_node_name,
deleted_flag=G_MARK_TO_REFRESH
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
deleted_flag=G_NO_FLAG AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG;
UPDATE CZ_UI_PAGE_ELEMENTS
SET ctrl_template_id = p_node.template_id,
ctrl_template_ui_def_id = p_node.template_ui_def_id,
instantiable_flag = p_node.instantiable_flag,
name=l_ui_node_name,
deleted_flag=G_MARK_TO_REFRESH
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
deleted_flag=G_NO_FLAG AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG;
UPDATE CZ_UI_PAGE_ELEMENTS
SET ctrl_template_id = p_node.template_id,
ctrl_template_ui_def_id = p_node.template_ui_def_id,
instantiable_flag = p_node.instantiable_flag,
element_type = G_UI_NONBOMADDINST_NODE_TYPE,
name=l_ui_node_name,
deleted_flag=DECODE(NVL(ctrl_template_id,-1),-1,G_MARK_TO_ADD,G_MARK_TO_REFRESH)
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG;
UPDATE CZ_UI_PAGES
SET deleted_flag=G_MARK_TO_REFRESH,
page_rev_nbr = page_rev_nbr + 1
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET instantiable_flag = p_node.instantiable_flag
WHERE ui_def_id = p_ui_node.ui_def_id AND
persistent_node_id = p_ui_node.persistent_node_id AND
instantiable_flag <> p_node.instantiable_flag;
FOR i IN(SELECT page_set_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG)
LOOP
l_target_path := get_Page_Path(p_node.ps_node_id, i.page_set_id);
UPDATE CZ_UI_PAGE_REFS
SET target_path=l_target_path
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG AND
target_path<>l_target_path;
UPDATE CZ_UI_PAGE_ELEMENTS
SET ctrl_template_id = l_template_id,
ctrl_template_ui_def_id = l_template_ui_def_id,
instantiable_flag = l_instantiable_flag,
name=l_ui_node_name,
deleted_flag=G_MARK_TO_REFRESH
WHERE ui_def_id=p_ui_node.ui_def_id AND
persistent_node_id=p_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG AND
NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG;
UPDATE CZ_UI_PAGES
SET deleted_flag=G_MARK_TO_REFRESH,
page_rev_nbr = page_rev_nbr + 1
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET page_id = l_page_ui_node.page_id,
pagebase_persistent_node_id = l_page_ui_node.persistent_node_id,
deleted_flag=G_MARK_TO_ADD
WHERE (ui_def_id,page_id,element_id) IN
(SELECT ui_def_id,page_id,element_id FROM
CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id
CONNECT BY
PRIOR ui_def_id=p_ui_node.ui_def_id AND
PRIOR page_id=p_ui_node.page_id AND
PRIOR element_id=parent_element_id AND
PRIOR deleted_flag <> G_YES_FLAG AND
ui_def_id=p_ui_node.ui_def_id AND
page_id=p_ui_node.page_id AND
deleted_flag <> G_YES_FLAG)
AND element_id <> p_ui_node.element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET parent_element_id=l_page_ui_node.element_id
WHERE ui_def_id=p_ui_node.ui_def_id AND
page_id=l_page_ui_node.page_id AND
parent_element_id=p_ui_node.element_id;
p_insert_index IN NUMBER DEFAULT -1,
p_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
p_suppress_refresh_flag IN VARCHAR2,
x_new_ui_pages_tbl IN OUT NOCOPY ui_page_elements_tbl_type,
x_new_ui_node OUT NOCOPY CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
l_old_page_id NUMBER;
SELECT page_id INTO l_old_page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=p_model_node.persistent_node_id AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH) AND
rownum<2;
p_insert_index => p_insert_index);
p_insert_index => p_insert_index);
SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_node.ui_def_id AND
parent_element_id=p_ui_node.element_id AND
persistent_node_id=p_model_node.persistent_node_id AND
element_type=G_UI_BOMADDINST_NODE_TYPE AND
deleted_flag NOT IN(G_YES_FLAG);
IF l_under_root_ui_node.deleted_flag <> G_LIMBO_FLAG AND
l_under_root_ui_node.ctrl_template_id IS NOT NULL AND
l_under_root_ui_node.ctrl_template_id <> p_model_node.template_id AND
NVL(l_under_root_ui_node.suppress_refresh_flag, G_NO_FLAG)=G_NO_FLAG THEN
replace_Template_Id(p_ui_node => l_under_root_ui_node,
p_model_node => p_model_node);
SELECT layout_ui_style INTO l_ui_layout_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id=p_ui_node.ctrl_template_id AND
ui_def_id=p_ui_node.ctrl_template_ui_def_id;
SELECT layout_ui_style INTO l_model_layout_ui_style
FROM CZ_UI_TEMPLATES
WHERE template_id=p_model_node.template_id AND
ui_def_id=p_model_node.template_ui_def_id;
SELECT NVL(MAX(seq_nbr),0)+1 INTO l_max_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_node.page_id AND
parent_element_id IS NOT NULL AND
(ctrl_template_id,ctrl_template_ui_def_id) IN
(SELECT ctrl_template_id,ctrl_template_ui_def_id FROM
CZ_UI_TEMPLATES WHERE deleted_flag=G_NO_FLAG AND
layout_ui_style=l_ui_layout_ui_style);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id;
UPDATE CZ_UI_PAGES
SET deleted_flag=G_MARK_TO_REFRESH,
page_rev_nbr=page_rev_nbr+1
WHERE page_id=p_ui_node.page_id AND
ui_def_id=g_UI_Context.ui_def_id;
INSERT INTO CZ_UI_PAGE_ELEMENTS
(
UI_DEF_ID
,PAGE_ID
,PERSISTENT_NODE_ID
,ELEMENT_ID
,PARENT_PERSISTENT_NODE_ID
,REGION_PERSISTENT_NODE_ID
,PAGEBASE_PERSISTENT_NODE_ID
,CTRL_TEMPLATE_ID
,BASE_PAGE_FLAG
,INSTANTIABLE_FLAG
,SEQ_NBR
,DELETED_FLAG
,CTRL_TEMPLATE_UI_DEF_ID
,MODEL_REF_EXPL_ID
,PARENT_ELEMENT_ID
,ELEMENT_TYPE
,NAME
,ELEMENT_SIGNATURE_ID
,SUPPRESS_REFRESH_FLAG
)
SELECT
UI_DEF_ID
,PAGE_ID
,PERSISTENT_NODE_ID
,l_feature_element_id
,PARENT_PERSISTENT_NODE_ID
,REGION_PERSISTENT_NODE_ID
,PAGEBASE_PERSISTENT_NODE_ID
,p_model_node.template_id
,BASE_PAGE_FLAG
,INSTANTIABLE_FLAG
,l_max_seq_nbr
,G_MARK_TO_ADD
,p_model_node.template_ui_def_id
,MODEL_REF_EXPL_ID
,PARENT_ELEMENT_ID
,ELEMENT_TYPE
,NAME
,ELEMENT_SIGNATURE_ID
,SUPPRESS_REFRESH_FLAG
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_node.page_id AND
element_id=p_ui_node.element_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET parent_element_id=l_feature_element_id
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_node.page_id AND
parent_element_id=p_ui_node.element_id;
INSERT INTO CZ_INTL_TEXTS
(
INTL_TEXT_ID
,TEXT_STR
,DELETED_FLAG
,SEEDED_FLAG
,UI_DEF_ID
,MODEL_ID
,UI_PAGE_ID
,UI_PAGE_ELEMENT_ID
)
VALUES
(
l_caption_text_id
,l_caption
,G_NO_FLAG
,G_NO_FLAG
,g_UI_Context.ui_def_id
,g_UI_Context.devl_project_id
,l_page_id
,NULL
);
INSERT INTO CZ_UI_PAGES
(page_id,
ui_def_id,
NAME,
persistent_node_id,
jrad_doc,
page_set_id,
split_seq_nbr,
caption_source,
caption_text_id,
PERSISTENT_CAPTION_TEXT_ID,
pagebase_path,
pagebase_expl_node_id,
page_rev_nbr,
seeded_flag,
DESC_TEXT,
PAGE_STATUS_TEMPLATE_ID,
PAGE_STATUS_TEMPL_UIDEF_ID,
CAPTION_RULE_ID,
OUTER_TEMPLATE_USAGE,
OUTER_PAGE_TEMPLATE_ID,
OUTER_PAGE_TEMPL_UIDEF_ID,
DISPLAY_CONDITION_ID,
DISPLAY_CONDITION_COMP,
DISPLAY_CONDITION_VALUE,
ENABLED_CONDITION_ID,
ENABLED_CONDITION_COMP,
ENABLED_CONDITION_VALUE,
EMPTY_PAGE_FLAG,
SUPPRESS_REFRESH_FLAG,
deleted_flag)
SELECT
l_page_id,
ui_def_id,
name||' ('||TO_CHAR(l_split_seq_nbr)||')',
persistent_node_id,
jrad_doc||'_'||TO_CHAR(l_split_seq_nbr),
page_set_id,
l_split_seq_nbr,
caption_source,
l_caption_text_id,
l_caption_text_id,
pagebase_path,
pagebase_expl_node_id,
1,
seeded_flag,
DESC_TEXT,
PAGE_STATUS_TEMPLATE_ID,
PAGE_STATUS_TEMPL_UIDEF_ID,
CAPTION_RULE_ID,
OUTER_TEMPLATE_USAGE,
OUTER_PAGE_TEMPLATE_ID,
OUTER_PAGE_TEMPL_UIDEF_ID,
DISPLAY_CONDITION_ID,
DISPLAY_CONDITION_COMP,
DISPLAY_CONDITION_VALUE,
ENABLED_CONDITION_ID,
ENABLED_CONDITION_COMP,
ENABLED_CONDITION_VALUE,
EMPTY_PAGE_FLAG,
SUPPRESS_REFRESH_FLAG,
G_MARK_TO_ADD
FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id;
SELECT * INTO l_ui_node
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
parent_element_id IS NULL AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,G_MARK_TO_REFRESH);
l_ui_node.deleted_flag := G_MARK_TO_ADD;
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
base_page_flag,
element_signature_id,
name,
deleted_flag)
VALUES
(l_ui_node.ui_def_id,
l_ui_node.persistent_node_id,
l_ui_node.parent_persistent_node_id,
l_ui_node.region_persistent_node_id,
l_ui_node.pagebase_persistent_node_id,
l_ui_node.page_id,
l_ui_node.seq_nbr,
l_ui_node.ctrl_template_id,
l_ui_node.element_id,
l_ui_node.parent_element_id,
l_ui_node.element_type,
l_ui_node.instantiable_flag,
l_ui_node.ctrl_template_ui_def_id,
l_ui_node.model_ref_expl_id,
l_ui_node.base_page_flag,
l_ui_node.element_signature_id,
l_ui_node.name,
l_ui_node.deleted_flag);
SELECT NVL(MAX(seq_nbr),0) INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_persistent_node_id=l_ui_node.persistent_node_id AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr=seq_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
parent_page_ref_id = (SELECT parent_page_ref_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_page_id=p_page_id AND
deleted_flag=G_NO_FLAG) AND
seq_nbr > l_seq_nbr AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_REFS
(ui_def_id,
page_set_id,
page_ref_id,
parent_page_ref_id,
seq_nbr,
node_depth,
condition_id,
NAME,
caption_source,
caption_text_id,
target_persistent_node_id,
target_path,
target_ui_def_id,
target_page_set_id,
target_page_id,
modified_flags,
path_to_prev_page,
path_to_next_page,
page_ref_type,
target_expl_node_id,
deleted_flag)
SELECT
ui_def_id,
page_set_id,
l_page_ref_id,
parent_page_ref_id,
l_seq_nbr,
node_depth,
condition_id,
NAME||' ('||TO_CHAR(l_split_seq_nbr)||')',
caption_source,
l_caption_text_id,
target_persistent_node_id,
target_path,
target_ui_def_id,
target_page_set_id,
l_page_id,
modified_flags,
NULL,
path_to_next_page,
page_ref_type,
target_expl_node_id,
deleted_flag
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
target_page_id=p_page_id AND
deleted_flag=G_NO_FLAG;
FOR k IN(SELECT page_id,TO_NUMBER(element_id) AS element_id,
TO_NUMBER(parent_element_id) AS parent_element_id,seq_nbr
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = p_ui_page_node.ui_def_id AND
page_id = p_ui_page_node.page_id AND
parent_element_id IS NOT NULL AND
element_type <> G_UI_REGION_NODE_TYPE AND
ctrl_template_id IS NOT NULL
AND deleted_flag IN(G_MARK_TO_ADD,G_MARK_DO_NOT_REFRESH)
ORDER BY seq_nbr)
LOOP
--
-- increase counter of nodes on the page ( initial l_counter must be 0 )
--
l_counter:=l_counter+1;
UPDATE CZ_UI_PAGE_ELEMENTS
SET page_id = p_elements_tbl(l_current_element_id).page_id
WHERE ui_def_id = p_ui_page_node.ui_def_id AND
page_id = p_ui_page_node.page_id AND
element_id = TO_CHAR(l_current_element_id);
UPDATE CZ_UI_PAGE_ELEMENTS
SET parent_element_id = p_parent_elements_tbl(l_current_element_id)
WHERE ui_def_id = p_ui_page_node.ui_def_id AND
page_id = p_ui_page_node.page_id AND
element_id = TO_CHAR(l_current_element_id);
UPDATE CZ_UI_ACTIONS
SET source_page_id=p_elements_tbl(l_current_element_id).page_id
WHERE ui_def_id=p_ui_page_node.ui_def_id AND
source_page_id= p_ui_page_node.page_id AND
element_id=TO_CHAR(l_current_element_id);
UPDATE CZ_UI_PAGE_ELEMENTS
SET parent_element_id = p_parent_elements_tbl(l_current_element_id)
WHERE ui_def_id = p_ui_page_node.ui_def_id AND
page_id = p_elements_tbl(l_current_element_id).page_id AND
element_id = TO_CHAR(l_current_element_id);
FOR i IN(SELECT DISTINCT parent_element_id FROM CZ_UI_PAGE_ELEMENTS a
WHERE ui_def_id = p_ui_def_id AND
page_id = p_new_page_id AND
parent_element_id IS NOT NULL AND
NOT EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = p_ui_def_id AND
page_id = p_new_page_id AND
element_id=a.parent_element_id))
LOOP
x_nested_page_elements_tbl(x_nested_page_elements_tbl.COUNT+1) := i.parent_element_id;
FOR i IN(SELECT element_id,parent_element_id,element_type FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id = p_ui_def_id AND
page_id= p_page_id AND
element_id=p_element_id
CONNECT BY PRIOR ui_def_id = p_ui_def_id AND
ui_def_id = p_ui_def_id AND
PRIOR page_id= p_page_id AND page_id= p_page_id AND
PRIOR parent_element_id=element_id)
LOOP
l_num_element_id := TO_NUMBER(i.element_id);
l_nested_rgn_elements_tbl.DELETE;
SELECT element_id INTO l_page_root_element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND
page_id=l_new_page_id AND
parent_element_id IS NULL AND
deleted_flag NOT IN(G_YES_FLAG, G_MARK_TO_DELETE);
INSERT INTO CZ_UI_PAGE_ELEMENTS
(UI_DEF_ID
,PAGE_ID
,PERSISTENT_NODE_ID
,ELEMENT_ID
,PARENT_ELEMENT_ID
,PARENT_PERSISTENT_NODE_ID
,REGION_PERSISTENT_NODE_ID
,PAGEBASE_PERSISTENT_NODE_ID
,CTRL_TEMPLATE_ID
,BASE_PAGE_FLAG
,INSTANTIABLE_FLAG
,SEQ_NBR
,DELETED_FLAG
,CTRL_TEMPLATE_UI_DEF_ID
,MODEL_REF_EXPL_ID
,ELEMENT_TYPE
,NAME
,ELEMENT_SIGNATURE_ID
,SUPPRESS_REFRESH_FLAG)
SELECT
UI_DEF_ID
,l_new_page_id
,PERSISTENT_NODE_ID
,l_new_element_id
,l_new_parent_element_id
,PARENT_PERSISTENT_NODE_ID
,REGION_PERSISTENT_NODE_ID
,pagebase_persistent_node_id
,CTRL_TEMPLATE_ID
,BASE_PAGE_FLAG
,INSTANTIABLE_FLAG
,SEQ_NBR
,DELETED_FLAG
,CTRL_TEMPLATE_UI_DEF_ID
,MODEL_REF_EXPL_ID
,ELEMENT_TYPE
,NAME
,ELEMENT_SIGNATURE_ID
,SUPPRESS_REFRESH_FLAG
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND
page_id=p_page_id AND
element_id=TO_CHAR(l_old_element_id);
UPDATE CZ_UI_PAGE_ELEMENTS
SET parent_element_id=l_new_element_id
WHERE ui_def_id=p_ui_def_id AND
page_id=l_new_page_id AND
parent_element_id=TO_CHAR(l_old_element_id);
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
parent_element_id IS NULL AND
persistent_node_id=pagebase_persistent_node_id AND
NVL(suppress_refresh_flag, G_NO_FLAG) = G_NO_FLAG AND
deleted_flag IN (G_MARK_TO_ADD))
LOOP
split_Page(i, l_max_controls_per_page);
SELECT COUNT(*) INTO l_num_if_roots FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND parent_page_ref_id IS NULL
AND target_persistent_node_id=(SELECT persistent_node_id FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND parent_id IS NULL AND
deleted_flag=G_NO_FLAG) AND deleted_flag=G_NO_FLAG;
SELECT target_persistent_node_id,page_set_id,page_ref_type
INTO l_target_persistent_node_id,l_page_set_id,l_page_set_type
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND parent_page_ref_id IS NULL
AND target_persistent_node_id=(SELECT persistent_node_id FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND parent_id IS NULL AND
deleted_flag=G_NO_FLAG) AND deleted_flag=G_NO_FLAG AND rownum<2;
INSERT INTO CZ_UI_PAGE_REFS
(ui_def_id,
page_set_id,
page_ref_id,
parent_page_ref_id,
seq_nbr,
node_depth,
condition_id,
NAME,
caption_source,
target_persistent_node_id,
target_path,
target_ui_def_id,
target_page_set_id,
target_page_id,
modified_flags,
path_to_prev_page,
path_to_next_page,
page_ref_type,
target_expl_node_id,
caption_rule_id,
deleted_flag)
VALUES
(g_UI_Context.ui_def_id,
l_page_set_id,
l_page_ref_id,
NULL,
0,
0,
NULL,
'Root',
G_DEFAULT_CAPTION_RULE_ID,
l_target_persistent_node_id,
NULL,
NULL,
NULL,
NULL,
0,
NULL,
NULL,
l_page_set_type,
NULL,
NULL,
G_NO_FLAG);
UPDATE CZ_UI_PAGE_REFS
SET parent_page_ref_id=l_page_ref_id
WHERE ui_def_id=g_UI_Context.ui_def_id AND parent_page_ref_id IS NULL AND
target_persistent_node_id=(SELECT persistent_node_id FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND parent_id IS NULL AND
deleted_flag=G_NO_FLAG) AND deleted_flag=G_NO_FLAG;
FOR i IN(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
parent_element_id=p_element_id AND
deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
LOOP
l_counter := l_counter + 1;
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr = l_counter
WHERE ui_def_id=g_UI_Context.ui_def_id AND
element_id=i.element_id;
FOR i IN(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
parent_element_id IS NULL AND
deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
LOOP
set_UI_Order_(i.element_id);
FOR i IN(SELECT page_id FROM CZ_UI_PAGES a
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id IN
(SELECT page_set_id FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=a.page_set_id AND
page_set_type=G_SINGLE_PAGE AND
deleted_flag=G_NO_FLAG) AND
NVL(suppress_refresh_flag, G_NO_FLAG)=G_NO_FLAG AND
deleted_flag=G_NO_FLAG)
LOOP
set_UI_Page_Elements_Order(i.page_id);
FOR i IN(SELECT page_ref_id,target_page_id,empty_page_flag,
NVL(modified_flags,0) AS modified_flags FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
parent_page_ref_id=p_page_ref_id AND
target_page_id IN
(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,
G_MARK_TO_REFRESH))
AND
deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
LOOP
l_counter := l_counter + 1;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = l_counter
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=i.page_ref_id;
FOR n IN(SELECT page_set_id
FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_type IN(G_PAGE_FLOW,G_SUBTABS) AND
deleted_flag=G_NO_FLAG)
LOOP
l_counter := 0;
FOR m IN(SELECT page_ref_id,seq_nbr,target_page_id,empty_page_flag,
NVL(modified_flags,0) AS MODIFIED_FLAGS FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
parent_page_ref_id IS NULL AND
page_set_id=n.page_set_id AND
target_page_id IN
(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=n.page_set_id AND
deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH,
G_NO_FLAG)) AND
deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
LOOP
-- Find the first unmodifid page ref. This is basically the first page ref
-- generated by UiGen. Once we have this, we recursively set the seq_nbrs
-- by traversing the page_refs structure in depth first order.
IF m.MODIFIED_FLAGS = 0 THEN
IF l_counter=0 THEN
l_page_ref_id := m.page_ref_id;
FOR n IN(SELECT page_set_id,persistent_node_id,pagebase_expl_node_id
FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag=G_NO_FLAG)
LOOP
FOR m IN(SELECT page_ref_id,seq_nbr,target_page_id,empty_page_flag,
target_persistent_node_id, target_expl_node_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
parent_page_ref_id IS NULL AND
page_set_id=n.page_set_id AND
target_page_id IN
(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=n.page_set_id AND
deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH,
G_NO_FLAG)) AND
deleted_flag=G_NO_FLAG)
LOOP
l_target_path := CZ_DEVELOPER_UTILS_PVT.runtime_relative_path(p_base_expl_id => n.pagebase_expl_node_id,
p_base_pers_id => n.persistent_node_id,
p_node_expl_id => m.target_expl_node_id,
p_node_pers_id => m.target_persistent_node_id);
UPDATE CZ_UI_PAGE_REFS
SET target_path=l_target_path
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=n.page_set_id AND
target_persistent_node_id=m.target_persistent_node_id AND
target_path<>l_target_path AND
deleted_flag=G_NO_FLAG;
l_delete_in_model BOOLEAN;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = p_parent_ui_node.ui_def_id AND
page_id=p_parent_ui_node.page_id AND
parent_element_id=p_parent_ui_node.element_id AND
deleted_flag IN (G_NO_FLAG,
G_MARK_TO_ADD,
G_MARK_TO_REFRESH,
G_MARK_TO_DELETE))
LOOP
IF i.element_type=G_UI_CX_BUTTON_NODE_TYPE THEN
BEGIN
l_ps_node_type := NULL;
SELECT ps_node_type INTO l_ps_node_type FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND
persistent_node_id=i.persistent_node_id;
l_delete_in_model := TRUE;
FOR h IN(SELECT NULL FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND
persistent_node_id=i.persistent_node_id AND
deleted_flag=G_NO_FLAG)
LOOP
l_delete_in_model := FALSE;
delete_UI_Page(i);
delete_UI_Region(i);
delete_UI_Element(i, p_suppress_refresh_flag, l_delete_in_model);
IF i.deleted_flag=G_MARK_TO_DELETE THEN
p_child_nodes_tbl.DELETE(i.persistent_node_id);
PROCEDURE delete_UI_Nodes
(
p_nodes_tbl OUT NOCOPY model_nodes_tbl_type,
px_ui_nodes_tbl IN OUT NOCOPY ui_page_elements_tbl_type,
p_suppress_refresh_flag IN VARCHAR2
) IS
l_current_ui_index NUMBER;
delete_UI_Page(l_current_ui_node);
delete_UI_Region(l_current_ui_node);
delete_UI_Element(l_current_ui_node, p_suppress_refresh_flag);
IF l_current_ui_node.deleted_flag=G_MARK_TO_DELETE THEN
px_ui_nodes_tbl.DELETE(l_current_ui_node.persistent_node_id);
END delete_UI_Nodes;
SELECT persistent_node_id,split_seq_nbr
INTO l_page_persistent_node_id, px_page_split_seq_nbr FROM CZ_UI_PAGES
WHERE page_id=p_parent_ui_node.page_id AND ui_def_id=g_UI_Context.ui_def_id;
SELECT G_YES_FLAG INTO l_exist_on_split_pages_flag FROM dual
WHERE EXISTS
(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id IN(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND persistent_node_id=l_page_persistent_node_id AND
split_seq_nbr>1 AND deleted_flag NOT IN(G_YES_FLAG)) AND
persistent_node_id=p_current_model_node.persistent_node_id AND
deleted_flag NOT IN(G_YES_FLAG));
SELECT G_YES_FLAG INTO l_exist_on_split_pages_flag FROM dual
WHERE EXISTS
(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id IN(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND persistent_node_id=l_page_persistent_node_id AND
split_seq_nbr<>px_page_split_seq_nbr AND deleted_flag NOT IN(G_YES_FLAG)) AND
persistent_node_id=p_current_model_node.persistent_node_id AND
deleted_flag NOT IN(G_YES_FLAG));
IF l_ps_node.deleted_flag=G_YES_FLAG OR l_ps_node.ps_node_id IS NULL OR
l_ps_node.ui_omit=G_YES_FLAG THEN
IF l_ui_node.pagebase_persistent_node_id=l_ui_node.persistent_node_id THEN -- UI page
--
-- delete UI page or deassociate UI page from model nodes
--
delete_UI_Page(l_ui_node);
delete_UI_Region(l_ui_node);
delete_UI_Element(l_ui_node,p_suppress_refresh_flag, TRUE);
l_element_id_tbl.DELETE;
l_page_id_tbl.DELETE;
l_suppress_refresh_flag_tbl.DELETE;
SELECT element_id, page_id, suppress_refresh_flag
BULK COLLECT INTO l_element_id_tbl, l_page_id_tbl, l_suppress_refresh_flag_tbl
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id=p_page_id AND
parent_element_id = l_ui_node.element_id AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH) AND
(element_type IN(G_UI_PAGE_NODE_TYPE,G_UI_REGION_NODE_TYPE));
SELECT G_YES_FLAG INTO l_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
parent_element_id IS NOT NULL AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
rownum<2;
FOR i IN(SELECT page_ref_id,
target_page_id,target_persistent_node_id,
NVL(empty_page_flag,G_NO_FLAG) AS empty_page_flag FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND deleted_flag=G_NO_FLAG AND
target_page_id IN(SELECT page_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
NVL(suppress_refresh_flag, G_NO_FLAG)=G_NO_FLAG AND
deleted_flag IN(G_NO_FLAG,G_MARK_TO_REFRESH,G_MARK_TO_ADD) ))
LOOP
-- check page - is it empty or no ?
l_empty_page := is_Empty_Page(i.target_page_id);
UPDATE CZ_UI_PAGE_REFS
SET empty_page_flag=G_YES_FLAG
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=i.page_ref_id AND NVL(modified_flags,0)=0;
UPDATE CZ_UI_PAGES
SET empty_page_flag=G_YES_FLAG
WHERE page_id=i.target_page_id AND
ui_def_id=g_UI_Context.ui_def_id;
UPDATE CZ_UI_PAGE_REFS
SET empty_page_flag=G_NO_FLAG
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=i.page_ref_id AND NVL(modified_flags,0)=0;
UPDATE CZ_UI_PAGES
SET empty_page_flag=G_NO_FLAG
WHERE page_id=i.target_page_id AND
ui_def_id=g_UI_Context.ui_def_id;
FOR i IN(SELECT page_ref_id FROM CZ_UI_PAGE_REFS a
WHERE ui_def_id=g_UI_Context.ui_def_id AND
parent_page_ref_id=p_page_ref_id AND
EXISTS
(SELECT NULL FROM CZ_UI_PAGES
WHERE page_id=a.target_page_id AND ui_def_id=g_UI_Context.ui_def_id) AND
deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH,G_NO_FLAG) ORDER BY seq_nbr)
LOOP
l_counter := l_counter + 1;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = l_counter
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=i.page_ref_id;
FOR i IN(SELECT page_ref_id,target_page_id,target_persistent_node_id FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_id=p_page_set_id AND
parent_page_ref_id IS NULL AND
deleted_flag=G_NO_FLAG)
LOOP
SELECT NVL(split_seq_nbr,1) INTO l_split_seq_nbr
FROM CZ_UI_PAGES
WHERE page_id=i.target_page_id AND
ui_def_id=g_UI_Context.ui_def_id;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = l_split_seq_nbr
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=i.page_ref_id;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = 1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_ref_id=i.page_ref_id;
SELECT MAX(split_seq_nbr) INTO l_counter FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=i.target_persistent_node_id AND
deleted_flag IN (G_MARK_TO_ADD,G_MARK_TO_REFRESH,G_NO_FLAG);
FOR i IN(SELECT page_set_id FROM CZ_UI_PAGE_SETS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_set_type=G_SINGLE_LEVEL_MENU AND
deleted_flag=G_NO_FLAG)
LOOP
set_SLMenu_Order(i.page_set_id);
FOR i IN(SELECT page_id,pagebase_expl_node_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG))
LOOP
FOR k IN(SELECT element_id,persistent_node_id,model_ref_expl_id,name
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=i.page_id AND
deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG))
LOOP
BEGIN
l_node_is_reachable :=CZ_DEVELOPER_UTILS_PVT.in_boundary(i.pagebase_expl_node_id,
k.model_ref_expl_id,
k.persistent_node_id);
x_insert_index OUT NOCOPY NUMBER,
x_refresh_enabled_parent_found OUT NOCOPY BOOLEAN,
x_atleast_one_parent_found OUT NOCOPY BOOLEAN) IS
l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
IF p_ord_siblings(i).deleted_flag = G_NO_FLAG AND p_ord_siblings(i).creation_date < g_UI_Context.ui_timestamp_refresh THEN
l_successor := p_ord_siblings(i);
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS pe1
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND region_persistent_node_id = l_parent_ps_node.persistent_node_id
AND persistent_node_id = l_pred_persistent_node_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
AND parent_element_id IS NOT NULL
AND EXISTS ( SELECT 1
FROM CZ_UI_PAGE_ELEMENTS pe2
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND pe2.page_id = pe1.page_id
AND pe2.parent_element_id = pe1.parent_element_id
AND pe2.persistent_node_id = l_succ_persistent_node_id
AND pe2.seq_nbr = pe1.seq_nbr + 1
AND deleted_flag = G_NO_FLAG
))
LOOP
DEBUG('asp:Found parent with both siblings ' || i.parent_element_id);
x_insert_index := i.seq_nbr + 1;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS pe1
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND region_persistent_node_id = l_parent_ps_node.persistent_node_id
AND persistent_node_id = l_pred_persistent_node_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
AND parent_element_id IS NOT NULL)
LOOP
DEBUG('asp:Found parent with predecessor ' || i.parent_element_id || ' page_id ' || i.page_id);
x_insert_index := i.seq_nbr + 1;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS pe1
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND region_persistent_node_id = l_parent_ps_node.persistent_node_id
AND persistent_node_id = l_succ_persistent_node_id
AND deleted_flag = G_NO_FLAG
AND parent_element_id IS NOT NULL)
LOOP
DEBUG('asp:Found parent with successor ' || i.parent_element_id || ' i.seq_nbr = ' || i.seq_nbr);
x_insert_index := i.seq_nbr;
FOR i IN (SELECT parent_element_id, page_id, count(parent_element_id) max_count
FROM CZ_UI_PAGE_ELEMENTS pe
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND parent_persistent_node_id = l_parent_ps_node.persistent_node_id
AND pagebase_persistent_node_id <> persistent_node_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
AND parent_element_id IS NOT NULL
AND NOT (p_ps_node.ps_node_type <> G_BOM_OPTION_CLASS_TYPE
AND ((SELECT NVL(ps_node_type,G_UNDEFINED_DATA_TYPE)
FROM CZ_PS_NODES
WHERE devl_project_id = p_ps_node.devl_project_id
AND persistent_node_id = pe.persistent_node_id) = G_BOM_OPTION_CLASS_TYPE))
GROUP BY parent_element_id, page_id
ORDER BY count(parent_element_id) DESC)
LOOP
DEBUG('asp:Found parent with max siblings ' || i.parent_element_id || ', page_id ' || i.page_id);
x_insert_index := -1;
FOR j IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
persistent_node_Id = l_parent_ps_node.persistent_node_id AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH) AND
element_type IN(G_UI_PAGE_NODE_TYPE,G_UI_REGION_NODE_TYPE))
LOOP
DEBUG('asp:Found parent with no siblings ' || j.element_id);
x_insert_index := -1;
l_insert_index NUMBER;
l_insert_index,
l_parent_node_found,
l_atleast_one_parent_found);
p_insert_index => l_insert_index,
p_model_node => p_ps_node,
p_suppress_refresh_flag => G_NO_FLAG,
x_new_ui_pages_tbl => l_next_level_ui_pages_tbl,
x_new_ui_node => x_ui_node);
p_insert_index => -1,
p_model_node => p_ps_node,
p_suppress_refresh_flag => G_NO_FLAG,
x_new_ui_pages_tbl => l_next_level_ui_pages_tbl,
x_new_ui_node => x_ui_node);
l_insert_index NUMBER;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS pe
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag = G_NO_FLAG)
LOOP
IF i.pagebase_persistent_node_id=i.persistent_node_id THEN -- UI page
--
-- delete UI page or deassociate UI page from model nodes
--
delete_UI_Page(i);
delete_UI_Region(i);
delete_UI_Element(i, l_suppress_refresh_flag, TRUE);
l_insert_index NUMBER;
FOR i in (SELECT *
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = g_UI_Context.page_set_id
AND target_ui_def_id IS NOT NULL
AND target_persistent_node_id = p_ps_node.persistent_node_id)
LOOP
move_page_ref(i.page_set_id, i.page_ref_id, p_ps_node, l_parent_page_ref_id);
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS pe
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND persistent_node_id = p_ps_node.persistent_node_id
AND region_persistent_node_id <> l_parent_ps_node.persistent_node_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_DELETE))
LOOP
l_model_ref_expl_id := get_Expl_Id(p_model_id => p_ps_node.devl_project_id,
p_ps_node_id => p_ps_node.ps_node_id,
p_component_id => p_ps_node.component_id,
p_ps_node_type => p_ps_node.ps_node_type);
l_insert_index,
l_parent_node_found,
l_atleast_one_parent_found);
IF l_insert_index > 0 THEN
l_max_prev_seq_nbr := l_insert_index-1;
SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=g_UI_Context.ui_def_id AND
page_id=l_parent_ui_node.page_id AND
element_id=l_parent_ui_node.element_id AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG)
CONNECT BY PRIOR ui_def_id=g_UI_Context.ui_def_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR page_id= l_parent_ui_node.page_id AND
page_id=l_parent_ui_node.page_id AND PRIOR element_id=parent_element_id AND
PRIOR deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG);
l_insert_index := l_max_prev_seq_nbr + 1;
SELECT NVL(MAX(seq_nbr),0), NVL(COUNT(seq_nbr), 0) INTO l_max_src_seq_nbr, l_count FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=g_UI_Context.ui_def_id AND
page_id=i.page_id AND
element_id=i.element_id AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG)
CONNECT BY PRIOR ui_def_id=g_UI_Context.ui_def_id AND
ui_def_id=g_UI_Context.ui_def_id AND PRIOR page_id= i.page_id
AND page_id=i.page_id AND PRIOR element_id=parent_element_id AND
PRIOR deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG);
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr+l_src_range
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=l_parent_ui_node.page_id AND
seq_nbr>l_max_prev_seq_nbr AND
deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG);
l_diff := l_insert_index - i.seq_nbr;
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr + l_diff,
page_id=l_parent_ui_node.page_id,
pagebase_persistent_node_id=l_parent_ui_node.pagebase_persistent_node_id,
deleted_flag=DECODE(deleted_flag, G_MARK_TO_DELETE, G_NO_FLAG, deleted_flag)
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=i.page_id AND
seq_nbr >= i.seq_nbr AND
seq_nbr <= l_max_src_seq_nbr AND
deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
IF i.deleted_flag <> G_MARK_TO_DELETE THEN
UPDATE CZ_UI_PAGE_ELEMENTS
SET seq_nbr=seq_nbr - l_count
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=i.page_id AND
seq_nbr > l_max_src_seq_nbr AND
deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
UPDATE CZ_UI_PAGE_ELEMENTS
SET parent_element_id = l_parent_ui_node.element_id,
parent_persistent_node_id = l_parent_ps_node.persistent_node_id,
region_persistent_node_id = l_parent_ui_node.persistent_node_id,
deleted_flag = G_MARK_TO_MOVE
WHERE ui_def_id = i.ui_def_id AND
page_Id = l_parent_ui_node.page_Id AND
element_id = i.element_id;
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1
WHERE page_id=i.page_id AND ui_def_id=i.ui_def_id;
SELECT pagebase_expl_node_id INTO l_pagebase_expl_node_id
FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id
AND page_id = i.page_id
AND deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_DEASSOCIATE,
persistent_node_id = 0
WHERE ui_def_id = i.ui_def_id
AND page_id = i.page_id
AND element_id IN
(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=i.ui_def_id
AND page_id=i.page_id
AND element_id=i.element_id
CONNECT BY PRIOR ui_def_id=i.ui_def_id AND
page_id = i.page_id AND
PRIOR element_id=parent_element_id AND
deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_MOVE));
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag = G_MARK_TO_REFRESH
WHERE ui_def_id = i.ui_def_id
AND page_id = i.page_id
AND element_id = i.element_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_REFRESH);
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS pe
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_MOVE))
LOOP
-- This piece of code determines if the model_ref_expl_id of this page_element is
-- different from the current explosion_id of the PS Node. If information is then
-- used later to fix the explosion_ids
IF x_model_ref_expl_id_changed <> G_YES_FLAG THEN
IF i.model_ref_expl_id <> l_model_ref_expl_id THEN
x_model_ref_expl_id_changed := G_YES_FLAG;
SELECT element_id into l_element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id
AND persistent_node_id=p_ps_node.persistent_node_id
AND deleted_flag=G_NO_FLAG and rownum < 2;
SELECT min(seq_nbr), count(*) INTO l_old_seq_nbr, l_count
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = l_page_set_id
AND target_persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag = G_NO_FLAG;
SELECT * INTO l_page_ref
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = l_page_set_id
AND target_persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag = G_NO_FLAG
AND seq_nbr = l_old_seq_nbr
AND rownum < 2;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = seq_nbr - l_count
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = l_page_set_id
AND parent_page_ref_id = l_page_ref.parent_page_ref_id
AND target_persistent_node_id <> p_ps_node.persistent_node_id
AND deleted_flag = G_NO_FLAG
AND seq_nbr between l_range_min and l_range_max;
UPDATE CZ_UI_PAGE_REFS
SET seq_nbr = seq_nbr + l_diff
WHERE ui_def_id = g_UI_Context.ui_def_id
AND page_set_id = l_page_set_id
AND parent_page_ref_id = l_page_ref.parent_page_ref_id
AND target_persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag = G_NO_FLAG;
FOR i in (SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id
AND persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG))
LOOP
IF x_model_ref_expl_changed <> G_YES_FLAG THEN
IF i.model_ref_expl_id <> l_model_ref_expl_id THEN
x_model_ref_expl_changed := G_YES_FLAG;
AND p_ps_node.deleted_flag = G_NO_FLAG THEN
-- We need to add UI for this if not already present
IF NOT ui_node_exits( p_ps_node ) THEN
add_ui_for_node(p_ps_node, p_ord_siblings, p_ps_node_index, l_new_ui_node);
IF p_ps_node.deleted_flag = G_NO_FLAG AND NOT ( l_added_ui OR l_removed_ui ) THEN
IF NVL(p_ps_node.UI_TIMESTAMP_MOVE, g_UI_Context.UI_TIMESTAMP_REFRESH) > g_UI_Context.UI_TIMESTAMP_REFRESH THEN
propogate_ps_node_move( p_ps_node, p_ord_siblings, p_ps_node_index, l_model_ref_expl_changed1 );
SELECT element_id, page_Id INTO l_bom_table_id, l_page_id
FROM cz_ui_page_elements
WHERE ui_def_Id = g_UI_Context.ui_def_id
AND persistent_node_id = p_ps_node.persistent_node_id
AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_REFRESH)
AND element_type = G_UI_BOMADDINST_NODE_TYPE
AND rownum < 2;
IF l_ps_node.deleted_flag = G_NO_FLAG THEN
l_ps_node_index := l_ps_node_index + 1;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id=g_UI_Context.ui_def_id
AND page_id = l_page_id
AND element_Id = l_bom_table_id;
FOR m IN(SELECT page_id, pagebase_expl_node_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_REFRESH) AND
persistent_node_id = p_ps_node.persistent_node_id)
LOOP
SELECT element_id, suppress_refresh_flag
INTO l_bom_parent_element, l_suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=m.page_id AND
parent_element_id IS NULL AND persistent_node_id=p_ps_node.persistent_node_id AND
pagebase_persistent_node_id=region_persistent_node_id AND
pagebase_persistent_node_id=p_ps_node.persistent_node_id AND
deleted_flag=G_NO_FLAG;
FOR upg IN(SELECT page_id,pagebase_expl_node_id,persistent_node_id FROM CZ_UI_PAGES
WHERE ui_def_id=g_UI_Context.ui_def_id AND
deleted_flag IN(G_MARK_TO_ADD, G_MARK_TO_REFRESH, G_NO_FLAG))
LOOP
FOR upgel IN(SELECT element_id,
model_ref_expl_id,persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=upg.page_id AND
persistent_node_id IN
(SELECT psnode.persistent_node_id FROM CZ_PS_NODES psnode
WHERE psnode.devl_project_id IN
(SELECT refexpl.component_id FROM CZ_MODEL_REF_EXPLS refexpl
WHERE refexpl.model_id=g_UI_Context.devl_project_id AND
refexpl.ps_node_type=G_REFERENCE_TYPE AND refexpl.deleted_flag='0') AND
psnode.deleted_flag='0'
AND psnode.ui_timestamp_move > NVL(g_UI_Context.ui_timestamp_refresh, g_UI_Context.creation_date)
)
)
LOOP
UPDATE CZ_UI_PAGES
SET deleted_flag=G_MARK_TO_REFRESH
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=upg.page_id AND deleted_flag='0';
FOR i IN(SELECT ps_node_id FROM CZ_PS_NODES a
WHERE devl_project_id=g_UI_Context.devl_project_id AND
ps_node_type IN(258,259,436,437) AND
deleted_flag=G_YES_FLAG AND EXISTS(SELECT NULL
FROM CZ_UI_PAGE_ELEMENTS WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=a.persistent_node_id AND deleted_flag=G_NO_FLAG))
LOOP
UPDATE CZ_PS_NODES
SET deleted_flag=G_YES_FLAG
WHERE ps_node_id IN
(SELECT ps_node_id FROM CZ_PS_NODES
START WITH ps_node_id=i.ps_node_id
CONNECT BY PRIOR ps_node_id=parent_id);
FOR i IN(SELECT ps_node_id FROM CZ_PS_NODES a
WHERE devl_project_id=g_UI_Context.devl_project_id AND
ps_node_type IN(258,259,436,437) AND ui_omit=G_YES_FLAG AND
deleted_flag=G_NO_FLAG AND EXISTS(SELECT NULL
FROM CZ_UI_PAGE_ELEMENTS WHERE ui_def_id=g_UI_Context.ui_def_id AND
persistent_node_id=a.persistent_node_id AND deleted_flag=G_NO_FLAG))
LOOP
UPDATE CZ_PS_NODES
SET deleted_flag=G_YES_FLAG
WHERE ps_node_id IN
(SELECT ps_node_id FROM CZ_PS_NODES
START WITH ps_node_id=i.ps_node_id
CONNECT BY PRIOR ps_node_id=parent_id);
FOR i IN (SELECT ui_def_id, element_id,page_id, suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
parent_element_id IS NULL AND
deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH))
LOOP
refresh_UI_Subtree(p_element_id => i.element_id,
p_page_id => i.page_id,
p_suppress_refresh_flag => i.suppress_refresh_flag);
handle_Deleted_Nodes(g_UI_Context.ui_def_id);
PROCEDURE delete_UIXML_Elements(p_page_id IN NUMBER,
p_xml_doc xmldom.DOMDocument) IS
l_deleted_nodes_tbl varchar2_tbl_type;
l_deleted_nodes_exist BOOLEAN := FALSE;
FOR i IN(SELECT element_id,deleted_flag FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id= g_UI_Context.ui_def_id AND
page_id=p_page_id AND
deleted_flag IN(G_MARK_TO_DELETE,G_MARK_TO_DEASSOCIATE))
LOOP
BEGIN
l_deleted_nodes_tbl(i.element_id) := i.deleted_flag;
IF l_deleted_nodes_tbl.EXISTS(l_element_id) THEN
IF l_deleted_nodes_tbl(l_element_id)=G_MARK_TO_DELETE THEN
l_parent_node:=xmldom.getParentNode(l_node);
l_deleted_nodes_exist := TRUE;
IF l_deleted_nodes_exist THEN
refresh_UI_Node_Marks(p_page_id => p_page_id,
p_hmode => G_DELETE_ELEMENTS);
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_NO_FLAG
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
deleted_flag=G_MARK_TO_DEASSOCIATE;
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1
WHERE page_id=p_page_id AND
ui_def_id=g_UI_Context.ui_def_id;
END delete_UIXML_Elements;
PROCEDURE delete_UIXML_Page(p_page_id IN NUMBER,
p_jrad_doc IN VARCHAR2) IS
l_subtree_doc xmldom.DOMDocument;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_MARK_TO_DELETE
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
deleted_flag NOT IN(G_MARK_TO_DELETE,G_YES_FLAG);
delete_UIXML_Elements(p_page_id => p_page_id,
p_xml_doc => l_subtree_doc);
DEBUG('delete_UIXML_Page() : '||SQLERRM);
jdr_docbuilder.deleteDocument(p_jrad_doc);
DEBUG('delete_UIXML_Page() : '||SQLERRM);
p_hmode => G_DELETE_PAGE);
END delete_UIXML_Page;
l_delete_node BOOLEAN := FALSE;
FOR i IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_page_id AND
element_type=G_UI_CX_BUTTON_NODE_TYPE AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_REFRESH))
LOOP
l_element_id := TO_NUMBER(i.element_id);
SELECT NVL(suppress_refresh_flag,G_NO_FLAG) INTO l_suppress_refresh_flag
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_page_id AND
element_id=i.parent_element_id;
l_delete_node := FALSE;
ELSIF l_cx_elements_tbl(l_element_id) IN (G_CX_MUST_BE_DELETED) THEN
l_delete_node := TRUE;
IF l_delete_node THEN
IF l_deassociate_cx THEN
set_Attribute(l_node, G_USER_ATTRIBUTE1_NAME, 'model_path=*');
UPDATE CZ_UI_PAGE_ELEMENTS
SET persistent_node_id=0
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_page_id AND
element_id=l_attribute_value;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_page_id AND
element_id=l_attribute_value;
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_ui_page_id;
g_page_elements_tbl.DELETE;
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS a
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
parent_element_id = p_ui_node.element_id
-- parent_persistent_node_id = p_ui_node.persistent_node_id
ORDER BY seq_nbr)
LOOP
IF i.deleted_flag IN(G_MARK_TO_ADD,G_MARK_DO_NOT_REFRESH) THEN
IF p_ui_node.element_type IN(G_UI_PAGE_NODE_TYPE,G_UI_REGION_NODE_TYPE) AND
NOT(NVL(p_ui_node.instantiable_flag, G_MANDATORY_INST_TYPE) IN(G_OPTIONAL_INST_TYPE,G_MINMAX_INST_TYPE) AND
p_ui_node.element_type=G_UI_REGION_NODE_TYPE) THEN
IF i.element_type=G_UI_REGION_NODE_TYPE THEN -- this a region
--
-- create new JRAD region
--
l_new_xml_node := create_UIXML_Region(p_ui_node => i,
p_parent_xml_node => p_parent_xml_node);
ELSIF i.deleted_flag IN(G_MARK_TO_REFRESH) THEN
l_xml_node_to_replace := find_XML_Node_By_Attribute(p_subtree_doc => l_subtree_doc ,
p_attribute_name => G_ID_ATTRIBUTE,
p_attribute_value => i.element_id);
ELSIF i.deleted_flag = G_MARK_TO_MOVE THEN
l_new_xml_node := move_XML_Node(p_ui_node => i,
p_parent_xml_node => p_parent_xml_node);
ELSIF i.deleted_flag IN(G_YES_FLAG, G_LIMBO_FLAG) THEN
NULL; -- do not refresh deleted UI nodes
FOR i IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_page_ui_node.ui_def_id
AND parent_element_id=p_page_ui_node.element_id
AND persistent_node_id=p_page_ui_node.persistent_node_id
AND (element_type IS NULL OR element_type <> G_UI_CX_BUTTON_NODE_TYPE)
AND deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH))
LOOP
IF i.deleted_flag=G_MARK_TO_REFRESH THEN
BEGIN
l_xml_node_to_replace := find_XML_Node_By_Attribute(p_subtree_doc => l_subtree_doc,
p_attribute_name => G_ID_ATTRIBUTE,
p_attribute_value => i.element_id);
g_dom_elements_tbl.DELETE;
SELECT *
INTO l_page_ui_node
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
parent_element_id IS NULL AND
-- element_type=G_UI_PAGE_NODE_TYPE AND
deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH);
SELECT jrad_doc INTO l_jrad_doc
FROM CZ_UI_PAGES
WHERE ui_def_id= g_UI_Context.ui_def_id AND
page_id=p_page_id;
delete_UIXML_Elements(p_page_id => p_page_id,
p_xml_doc => l_subtree_doc);
FOR i IN (SELECT *
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
parent_element_id = p_element_id AND
ctrl_template_id IS NOT NULL AND
deleted_flag IN(G_MARK_TO_ADD,G_MARK_DO_NOT_REFRESH,G_MARK_TO_MOVE)
ORDER BY seq_nbr)
LOOP
IF i.deleted_Flag = G_MARK_TO_MOVE THEN
l_new_xml_node := move_XML_Node(p_ui_node => i,
p_parent_xml_node => p_parent_xml_node);
SELECT *
INTO l_page_ui_node
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = p_page_id AND
persistent_node_id = pagebase_persistent_node_id AND
parent_element_id IS NULL AND
element_type=G_UI_PAGE_NODE_TYPE AND
deleted_flag = G_MARK_TO_ADD;
SELECT COUNT(element_id) INTO g_Num_Elements_On_Page
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND
page_id=p_page_id AND
(element_type IS NULL OR ctrl_template_id IS NOT NULL) AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
IF p_page_status = G_MARK_TO_DELETE THEN
delete_UIXML_Page(p_page_id, p_page_jrad_doc);
FOR i IN (SELECT page_id, jrad_doc, deleted_flag
FROM CZ_UI_PAGES
WHERE ui_def_id = g_UI_Context.ui_def_id AND
deleted_flag <> G_YES_FLAG)
LOOP
IF i.deleted_flag IN(G_MARK_TO_DELETE,G_MARK_TO_ADD,
G_MARK_TO_REFRESH,G_MARK_TO_DEASSOCIATE) THEN
--
-- handle the current JRAD page
--
handle_JRAD_Page(p_page_id => i.page_id,
p_page_jrad_doc => i.jrad_doc,
p_page_status => i.deleted_flag);
FOR n IN(SELECT G_YES_FLAG FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=i.page_id AND
element_type=G_UI_CX_BUTTON_NODE_TYPE AND
deleted_flag=G_NO_FLAG AND rownum<2)
LOOP
--
-- handle the current JRAD page
--
handle_JRAD_Page(p_page_id => i.page_id,
p_page_jrad_doc => i.jrad_doc,
p_page_status => G_MARK_TO_REFRESH);
SELECT instantiable_flag INTO l_instantiable_flag
FROM cz_ps_nodes
WHERE devl_project_id = (SELECT devl_project_id FROM cz_ui_defs
WHERE ui_def_id = p_ui_def_id) AND
persistent_node_id = p_node_persistent_id;
SELECT NVL(name, to_char(page_id)) INTO l_name
FROM cz_ui_pages
WHERE ui_def_id = p_ui_def_id AND page_id = p_page_id;
SELECT name INTO l_name
FROM cz_ui_defs
WHERE ui_def_id = p_ui_def_id;
SELECT name INTO l_name
FROM cz_devl_projects
WHERE devl_project_id = (SELECT devl_project_id FROM cz_ui_defs
WHERE ui_def_id = p_ui_def_id);
UPDATE CZ_UI_PAGE_ELEMENTS
SET target_page_ui_def_id = NULL, target_page_id = NULL
WHERE ui_def_id = p_ui_def_id AND
page_id = p_page_id AND element_id = p_element_id;
UPDATE CZ_UI_PAGES
SET page_rev_nbr = page_rev_nbr + 1
WHERE ui_def_id = p_ui_def_id AND page_id = p_page_id;
FOR i IN (SELECT page_id, element_id, target_page_ui_def_id, target_page_id,
model_ref_expl_id, persistent_node_id, name
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = g_UI_Context.ui_def_id AND
element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
target_page_ui_def_id IS NOT NULL AND target_page_id IS NOT NULL AND
deleted_flag = G_NO_FLAG)
LOOP
-- target page exists ?
l_target_persistent_node_id := NULL;
SELECT persistent_node_id INTO l_target_persistent_node_id
FROM cz_ui_pages
WHERE ui_def_id = i.target_page_ui_def_id AND
page_id = i.target_page_id AND deleted_flag = G_NO_FLAG;
SELECT pagebase_expl_node_id INTO l_pagebase_expl_id
FROM cz_ui_pages
WHERE ui_def_id = g_UI_Context.ui_def_id AND
page_id = i.page_id;
FOR i IN (SELECT a.deleted_flag AS page_deleted_flag, a.page_id AS page_id,
a.name AS name, a.persistent_node_id AS target_persistent_node_id,
b.ui_def_id AS ref_ui_def_id, b.page_id AS ref_page_id,
b.name AS ref_element_name, b.element_id AS ref_element_id,
b.persistent_node_id as persistent_node_id,
b.model_ref_expl_id as expl_node_id
FROM CZ_UI_PAGES a, CZ_UI_PAGE_ELEMENTS b
WHERE a.ui_def_id = g_UI_Context.ui_def_id AND
b.element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
b.deleted_flag = G_NO_FLAG AND
a.ui_def_id = b.target_page_ui_def_id AND
a.page_id = b.target_page_id)
LOOP
IF i.page_deleted_flag = G_YES_FLAG THEN
remove_target_page(i.ref_ui_def_id, i.ref_page_id, i.ref_element_id);
SELECT pagebase_expl_node_id INTO l_pagebase_expl_id
FROM cz_ui_pages
WHERE ui_def_id = i.ref_ui_def_id AND
page_id = i.ref_page_id;
FOR i IN (SELECT page_id, jrad_doc, pagebase_expl_node_id, persistent_node_id
FROM CZ_UI_PAGES pg
WHERE ui_def_id = l_ui_def_id AND deleted_flag = G_NO_FLAG
AND EXISTS (SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = pg.ui_def_id AND page_id = pg.page_id AND
element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
target_page_ui_def_id IS NOT NULL AND
target_page_id IS NOT NULL AND deleted_flag=G_NO_FLAG))
LOOP
EXIT WHEN l_flag = 0;
FOR j IN (SELECT * FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = l_ui_def_id AND page_id = i.page_id AND
element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
deleted_flag=G_NO_FLAG)
LOOP
EXIT WHEN l_flag <> 1;
UPDATE CZ_UI_PAGES
SET page_rev_nbr = page_rev_nbr + 1
WHERE ui_def_id = l_ui_def_id AND page_id = i.page_id;
UPDATE cz_ui_defs
SET ui_status = 'NEED_REFRESH'
WHERE ui_def_id = l_ui_def_id;
UPDATE cz_ui_defs
SET UI_TIMESTAMP_REFRESH = SYSDATE
WHERE ui_def_id = p_ui_def_id;
FOR i IN(SELECT * FROM CZ_MODEL_REF_EXPLS
WHERE model_id=g_UI_Context.devl_project_id AND
ps_node_type=G_REFERENCE_TYPE AND deleted_flag='0')
LOOP
BEGIN
SELECT NVL(MAX(ui_def_id),0) INTO l_ui_def_id
FROM CZ_UI_DEFS
WHERE devl_project_id=i.component_id AND
ui_style=G_OA_STYLE_UI AND
deleted_flag='0';
SELECT persistent_node_id INTO l_ref_persistent_node_id
FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND
ps_node_id=i.referring_node_id AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_REFS
(ui_def_id,
ref_ui_def_id,
ref_persistent_node_id,
model_ref_expl_id,
deleted_flag)
VALUES
(g_UI_Context.ui_def_id,
l_ui_def_id,
l_ref_persistent_node_id,
i.model_ref_expl_id,
G_NO_FLAG);
FOR i IN (SELECT DISTINCT ref_ui_def_id
FROM CZ_UI_REFS
WHERE ui_def_id = p_ui_def_id AND
deleted_flag = G_NO_FLAG)
LOOP
--
-- construct UIs of referenced models
--
handle_UIs(i.ref_ui_def_id, p_handling_mode);
UPDATE CZ_UI_DEFS
SET suppress_refresh_flag = G_NO_FLAG
WHERE ui_def_id = x_ui_def_id and deleted_flag = G_NO_FLAG;
UPDATE CZ_UI_DEFS
SET suppress_refresh_flag = G_NO_FLAG
WHERE ui_def_Id IN (
SELECT ref_ui_def_Id
FROM CZ_UI_REFS
START WITH ui_def_id = x_ui_def_id
AND deleted_flag = G_NO_FLAG
CONNECT BY PRIOR ref_ui_def_id = ui_def_id AND deleted_flag = G_NO_FLAG)
AND deleted_flag = G_NO_FLAG;
PROCEDURE delete_User_Attr_For_Node(p_xml_node xmldom.DOMNode,
p_ui_def_id NUMBER,
p_template_id NUMBER DEFAULT NULL,
p_template_ui_def_id NUMBER DEFAULT NULL) IS
l_user_attribute_value VARCHAR2(4000);
UPDATE CZ_UI_ACTIONS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND
ui_action_id=l_persistent_id AND
seeded_flag=G_NO_FLAG;
UPDATE CZ_UI_TEMPLATE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE template_id=p_template_id AND
ui_def_id=p_template_ui_def_id AND
element_id=l_persistent_id AND
element_type IN(552) AND
seeded_flag=G_NO_FLAG AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_RULES
SET deleted_flag = G_YES_FLAG
WHERE persistent_rule_id = l_persistent_id
AND ui_def_id = p_ui_def_id
AND seeded_flag = G_NO_FLAG;
UPDATE CZ_UI_TEMPLATE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE template_id=p_template_id AND
ui_def_id=p_template_ui_def_id AND
element_id=l_persistent_id AND
element_type IN(33,34) AND
seeded_flag=G_NO_FLAG AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_LOCALIZED_TEXTS
SET deleted_flag=G_YES_FLAG
WHERE persistent_intl_text_id=l_persistent_id AND
ui_def_id=p_ui_def_id AND
seeded_flag=G_NO_FLAG;
UPDATE CZ_UI_TEMPLATE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE template_id=p_template_id AND
ui_def_id=p_template_ui_def_id AND
element_id=l_persistent_id AND
element_type IN(8) AND
seeded_flag=G_NO_FLAG AND
deleted_flag=G_NO_FLAG;
END delete_User_Attr_For_Node;
SELECT * INTO l_ui_node FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND
page_id=p_target_ui_page_id AND
element_id=l_new_element_id;
SELECT model_ref_expl_id INTO l_model_ref_expl_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=l_ui_node.ui_def_id AND page_id=l_ui_node.page_id AND
parent_element_id IS NULL AND deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
SELECT COUNT(*)+1 INTO l_num_copy FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
name like l_name||'%' AND deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_ELEMENTS
SET name=l_name
WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
element_id = l_new_element_id;
PROCEDURE delete_User_Attributes(p_xml_node xmldom.DOMNode,
p_ui_def_id NUMBER,
p_template_id NUMBER DEFAULT NULL,
p_template_ui_def_id NUMBER DEFAULT NULL) IS
l_child_nodes_tbl xmldom.DOMNodeList;
delete_User_Attr_For_Node(p_xml_node,p_ui_def_id,
p_template_id, p_template_ui_def_id);
delete_User_Attr_For_Node(l_child_xml_node,p_ui_def_id,
p_template_id, p_template_ui_def_id);
delete_User_Attributes(l_child_xml_node,p_ui_def_id,
p_template_id, p_template_ui_def_id);
END delete_User_Attributes;
UPDATE CZ_UI_PAGE_ELEMENTS
SET target_page_ui_def_id=NULL,
target_page_id=NULL
WHERE ui_def_id=p_ui_def_id AND
page_id=p_page_id AND
element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
deleted_flag='0' AND target_page_ui_def_id IS NOT NULL AND
target_page_id IS NOT NULL AND
target_page_ui_def_id NOT IN (SELECT ref_ui_def_id FROM CZ_UI_REFS WHERE ui_def_id=p_ui_def_id AND
deleted_flag='0')
RETURNING element_id,name,target_page_id,target_page_ui_def_id
BULK COLLECT INTO l_element_id_tbl,l_name_tbl,l_target_page_id_tbl,l_target_page_ui_def_id_tbl;
SELECT name INTO l_page_name FROM CZ_UI_PAGES
WHERE page_id=l_target_page_id_tbl(i) AND ui_def_id=l_target_page_ui_def_id_tbl(i);
SELECT name INTO l_ui_name FROM CZ_UI_DEFS WHERE ui_def_id=l_target_page_ui_def_id_tbl(i);
FOR i IN (SELECT page_id, element_id, target_page_ui_def_id, target_page_id,
model_ref_expl_id, persistent_node_id, name
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id = p_ui_def_id AND page_id=p_page_id AND
element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
target_page_ui_def_id IS NOT NULL AND target_page_id IS NOT NULL AND
deleted_flag = '0')
LOOP
-- target page exists?
l_target_persistent_node_id := NULL;
SELECT persistent_node_id INTO l_target_persistent_node_id
FROM cz_ui_pages
WHERE ui_def_id = i.target_page_ui_def_id AND
page_id = i.target_page_id AND deleted_flag <> '1';
UPDATE CZ_UI_PAGE_ELEMENTS
SET target_page_ui_def_id = NULL, target_page_id = NULL
WHERE ui_def_id = p_ui_def_id AND
page_id = i.page_id AND element_id = i.element_id;
SELECT pagebase_expl_node_id INTO l_pagebase_expl_id
FROM cz_ui_pages
WHERE ui_def_id = p_ui_def_id AND
page_id = i.page_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET target_page_ui_def_id = NULL, target_page_id = NULL
WHERE ui_def_id = p_ui_def_id AND
page_id = i.page_id AND element_id = i.element_id;
FOR i IN(SELECT parent_element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_source_ui_def_id AND
page_id=p_source_ui_page_id AND
element_id=l_current_element_id)
LOOP
l_ui_page_elements_exists := TRUE;
INSERT INTO CZ_UI_PAGE_ELEMENTS
(ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
pagebase_persistent_node_id,
page_id,
seq_nbr,
ctrl_template_id,
element_id,
parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
suppress_refresh_flag,
deleted_flag,
target_page_ui_def_id,
target_page_id)
SELECT
p_target_ui_def_id,
persistent_node_id,
parent_persistent_node_id,
region_persistent_node_id,
p_pagebase_persistent_node_id,
p_target_ui_page_id,
seq_nbr,
ctrl_template_id,
l_new_element_id,
l_parent_element_id,
element_type,
instantiable_flag,
ctrl_template_ui_def_id,
model_ref_expl_id,
element_signature_id,
name,
suppress_refresh_flag,
deleted_flag,
target_page_ui_def_id,
target_page_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_source_ui_def_id AND
page_id=p_source_ui_page_id AND
element_id=l_current_element_id;
SELECT * INTO l_ui_node FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND
page_id=p_target_ui_page_id AND
element_id=l_new_element_id;
SELECT model_ref_expl_id INTO l_model_ref_expl_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
parent_element_id IS NULL AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
SELECT COUNT(element_id) INTO l_view_counter
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
SELECT COUNT(*)+1 INTO l_num_copy FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
name like l_name||'%' AND deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_ELEMENTS
SET name=l_name
WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
element_id = l_new_element_id;
PROCEDURE delete_UI_Subtree(p_ui_def_id IN NUMBER,
p_ui_page_id IN NUMBER,
p_element_id IN VARCHAR2,
p_delete_xml IN VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2) IS
l_xmldoc xmldom.DOMDocument;
g_ui_def_nodes_tbl.DELETE;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_LIMBO_FLAG
WHERE (ui_def_id,page_id,element_id) IN
(SELECT ui_def_id,page_id,element_id FROM CZ_UI_PAGE_ELEMENTS
START WITH ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND element_id=p_element_id
CONNECT BY PRIOR ui_def_id=p_ui_def_id AND
PRIOR page_id=p_ui_page_id AND page_id=p_ui_page_id AND
PRIOR element_id=parent_element_id AND
PRIOR ui_def_id=p_ui_def_id AND ui_def_id=p_ui_def_id AND
PRIOR deleted_flag=G_NO_FLAG AND deleted_flag=G_NO_FLAG)
RETURNING element_id
BULK COLLECT INTO l_element_id_tbl;
SELECT parent_element_id
INTO l_parent_element_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND
page_id=p_ui_page_id AND
element_id=p_element_id;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_PAGES
WHERE page_id=p_ui_page_id AND ui_def_id=p_ui_def_id;
IF l_parent_element_id IS NULL OR p_element_id=G_NO_FLAG THEN -- this is UI page ( and it should be deleted )
FOR i IN(SELECT page_ref_id,page_ref_type,page_set_id,condition_id,caption_text_id,caption_rule_id
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_def_id AND target_page_id=p_ui_page_id AND deleted_flag=G_NO_FLAG)
LOOP
UPDATE CZ_LOCALIZED_TEXTS
SET deleted_flag=G_YES_FLAG
WHERE persistent_intl_text_id=i.caption_text_id AND
ui_def_id=p_ui_def_id AND seeded_flag=G_NO_FLAG;
UPDATE CZ_RULES
SET deleted_flag=G_YES_FLAG
WHERE persistent_rule_id IN(i.condition_id,i.caption_rule_id) AND
ui_def_id=p_ui_def_id AND seeded_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id
AND deleted_flag=G_NO_FLAG
AND (ui_def_id,page_ref_id,page_set_id) IN
(SELECT a.ui_def_id,a.page_ref_id,a.page_set_id FROM CZ_UI_PAGE_REFS a
START WITH a.ui_def_id=p_ui_def_id AND
a.page_ref_id=i.page_ref_id
CONNECT BY PRIOR a.page_ref_id=a.parent_page_ref_id AND
a.deleted_flag='0' AND a.ui_def_id=p_ui_def_id AND
PRIOR a.ui_def_id=p_ui_def_id AND
a.page_set_id=i.page_set_id AND
PRIOR a.page_set_id=i.page_set_id);
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND page_ref_id=i.page_ref_id;
UPDATE CZ_UI_PAGES
SET deleted_flag=G_YES_FLAG
WHERE page_id=p_ui_page_id AND ui_def_id=p_ui_def_id AND seeded_flag=G_NO_FLAG
RETURNING caption_text_id,caption_rule_id,display_condition_id,enabled_condition_id
INTO l_caption_text_id,l_caption_rule_id,l_display_condition_id,l_enabled_condition_id;
UPDATE CZ_LOCALIZED_TEXTS
SET deleted_flag=G_YES_FLAG
WHERE intl_text_id=l_caption_text_id AND ui_def_id=p_ui_def_id AND seeded_flag=G_NO_FLAG;
UPDATE CZ_RULES
SET deleted_flag=G_YES_FLAG
WHERE rule_id IN(l_display_condition_id,l_caption_rule_id,l_enabled_condition_id)
AND seeded_flag=G_NO_FLAG;
UPDATE CZ_UI_ACTIONS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND
source_page_id=p_ui_page_id AND
element_id=l_element_id_tbl(i) AND deleted_flag=G_NO_FLAG AND seeded_flag=G_NO_FLAG;
UPDATE CZ_RULES
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND
ui_page_id=p_ui_page_id AND
ui_page_element_id=l_element_id_tbl(i) AND
deleted_flag=G_NO_FLAG AND seeded_flag=G_NO_FLAG;
UPDATE CZ_LOCALIZED_TEXTS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND
ui_page_id=p_ui_page_id AND
ui_page_element_id=l_element_id_tbl(i) AND
deleted_flag=G_NO_FLAG AND seeded_flag=G_NO_FLAG;
delete_User_Attributes(l_xml_node, p_ui_def_id);
IF p_delete_xml=G_YES_FLAG THEN
IF l_parent_element_id IS NULL OR p_element_id=G_NO_FLAG THEN
jdr_docbuilder.deleteDocument(l_jrad_doc);
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1
WHERE ui_def_id=p_ui_def_id AND
page_id=p_ui_page_id;
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_UI_Subtree', x_msg_data);
END delete_UI_Subtree;
PROCEDURE delete_UI_Page(p_ui_def_id IN NUMBER, -- ui_def_id of UI
p_ui_page_id IN NUMBER, -- page_id of
-- UI page which needs
-- to be deleted.
x_return_status OUT NOCOPY VARCHAR2,-- status string
x_msg_count OUT NOCOPY NUMBER, -- number of error messages
x_msg_data OUT NOCOPY VARCHAR2 -- string which contains error messages
) IS
l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
FOR i IN(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
parent_element_id IS NULL AND deleted_flag=G_NO_FLAG)
LOOP
--
-- delete UI elements of this UI page starting with
-- the root element
--
delete_UI_Subtree(p_ui_def_id => p_ui_def_id,
p_ui_page_id => p_ui_page_id,
p_element_id => i.element_id,
p_delete_xml => G_YES_FLAG,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data);
UPDATE cz_ui_page_elements
SET target_page_ui_def_id = NULL, target_page_id = NULL
WHERE target_page_ui_def_id = p_ui_def_id AND target_page_id = p_ui_page_id AND
deleted_flag = '0' AND element_signature_id = G_PAGE_INCL_REGION_SIGNATURE;
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_UI_Page', x_msg_data);
END delete_UI_Page;
PROCEDURE delete_UI_Page_Ref(p_ui_def_id IN NUMBER, -- ui_def_id of UI
p_page_ref_id IN NUMBER, -- page_ref_id of
-- Menu/Page Flow link which needs
-- to be deleted.
x_return_status OUT NOCOPY VARCHAR2,-- status string
x_msg_count OUT NOCOPY NUMBER, -- number of error messages
x_msg_data OUT NOCOPY VARCHAR2 -- string which contains error messages
) IS
l_parent_page_ref_id CZ_UI_PAGE_REFS.parent_page_ref_id%TYPE;
g_ui_def_nodes_tbl.DELETE;
SELECT page_set_id, page_ref_type
INTO l_page_set_id, l_page_ref_type
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_def_id AND page_ref_id=p_page_ref_id
AND deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id
AND deleted_flag=G_NO_FLAG
AND (ui_def_id,page_ref_id,page_set_id) IN
(SELECT a.ui_def_id,a.page_ref_id,a.page_set_id FROM CZ_UI_PAGE_REFS a
START WITH a.ui_def_id=p_ui_def_id AND
a.page_ref_id=p_page_ref_id
CONNECT BY PRIOR a.page_ref_id=a.parent_page_ref_id AND
a.deleted_flag='0' AND a.ui_def_id=p_ui_def_id AND
PRIOR a.ui_def_id=p_ui_def_id AND
a.page_set_id=l_page_set_id AND
PRIOR a.page_set_id=l_page_set_id);
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id
AND page_ref_id=p_page_ref_id;
UPDATE CZ_UI_PAGES a
SET page_set_id=NULL
WHERE ui_def_id=p_ui_def_id AND page_set_id IS NOT NULL AND
NOT EXISTS(SELECT NULL FROM CZ_UI_PAGE_REFS b
WHERE b.ui_def_id=p_ui_def_id AND target_page_id=a.page_id AND
deleted_flag='0');
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_UI_Page_Ref', x_msg_data);
END delete_UI_Page_Ref;
PROCEDURE delete_Local_Template(p_template_ui_def_id IN NUMBER, -- ui_def_id of UI
p_template_id IN NUMBER, -- template_id of
-- Local UI Template which needs
-- to be deleted.
x_return_status OUT NOCOPY VARCHAR2,-- status string
x_msg_count OUT NOCOPY NUMBER, -- number of error messages
x_msg_data OUT NOCOPY VARCHAR2 -- string which contains error messages
) IS
l_xmldoc xmldom.DOMDocument;
FOR i IN(SELECT 'x' FROM CZ_MODEL_PUBLICATIONS
WHERE object_id=p_template_id AND object_type='UIT' AND
deleted_flag='0' AND rownum<2)
LOOP
RETURN;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_template_ui_def_id AND template_id=p_template_id;
delete_User_Attributes(xmldom.makeNode(l_xmldoc),p_template_ui_def_id,
p_template_id, p_template_ui_def_id);
jdr_docbuilder.deleteDocument(l_jrad_doc);
DELETE FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_template_ui_def_id AND template_id=p_template_id
AND seeded_flag=G_NO_FLAG;
DELETE FROM CZ_UI_REF_TEMPLATES
WHERE template_ui_def_id=p_template_ui_def_id AND template_id=p_template_id;
UPDATE CZ_UI_TEMPLATE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE template_id=p_template_ui_def_id AND
deleted_flag=G_NO_FLAG;
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_Local_Template', x_msg_data);
DEBUG('delete_Local_Template() : '||x_msg_data);
END delete_Local_Template;
PROCEDURE delete_Local_Template_Elem(p_template_ui_def_id IN NUMBER, -- ui_def_id of UI
p_template_id IN NUMBER, -- template_id of
p_element_id IN VARCHAR2, -- element_id of Element to delete
x_return_status OUT NOCOPY VARCHAR2,-- status string
x_msg_count OUT NOCOPY NUMBER, -- number of error messages
x_msg_data OUT NOCOPY VARCHAR2 -- string which contains error messages
) IS
l_xmldoc xmldom.DOMDocument;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_template_ui_def_id AND template_id=p_template_id;
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_Local_Template_Elem', 'Element with element_id="'||
p_element_id||'" does exist.');
DEBUG('delete_Local_Template_Elem() : '||'Element with element_id="'||
p_element_id||'" does exist.');
delete_User_Attributes(l_xml_node, p_template_ui_def_id,
p_template_id, p_template_ui_def_id);
UPDATE CZ_UI_TEMPLATES
SET template_rev_nbr=NVL(template_rev_nbr,0)+1
WHERE ui_def_id=p_template_ui_def_id AND template_id=p_template_id;
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_Local_Template_Elem', x_msg_data);
DEBUG('delete_Local_Template_Elem() : '||x_msg_data);
END delete_Local_Template_Elem;
g_handled_attr_id_tbl.DELETE;
SELECT jrad_doc
INTO l_source_jrad_doc FROM CZ_UI_PAGES
WHERE page_id=p_source_ui_page_id AND
ui_def_id=p_source_ui_def_id;
SELECT jrad_doc,persistent_node_id
INTO l_target_jrad_doc, l_pagebase_persistent_node_id
FROM CZ_UI_PAGES
WHERE page_id=p_target_ui_page_id AND
ui_def_id=p_target_ui_def_id;
SELECT element_id INTO l_amn_parent_element_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_target_ui_def_id AND
page_id=p_target_ui_page_id AND
element_id=p_target_parent_element_id;
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1,
empty_page_flag = G_NO_FLAG
WHERE page_id=p_target_ui_page_id AND
ui_def_id=p_target_ui_def_id;
UPDATE CZ_UI_PAGE_REFS
SET empty_page_flag = G_NO_FLAG
WHERE target_page_id=p_target_ui_page_id AND
ui_def_id=p_target_ui_def_id AND
deleted_flag = G_NO_FLAG AND
empty_page_flag = G_YES_FLAG;
g_handled_attr_id_tbl.DELETE;
SELECT element_id INTO l_source_element_id
FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_source_ui_def_id AND page_id=p_source_ui_page_id AND
parent_element_id IS NULL AND deleted_flag=G_NO_FLAG;
SELECT jrad_doc,persistent_node_id
INTO l_source_jrad_doc,l_persistent_node_id
FROM CZ_UI_PAGES
WHERE ui_def_id=p_source_ui_def_id AND
page_id=p_source_ui_page_id;
SELECT COUNT(*) INTO l_copy_nbr FROM CZ_UI_PAGES
WHERE ui_def_id=p_target_ui_def_id AND
persistent_node_id=l_persistent_node_id;
FOR i IN(SELECT * FROM CZ_UI_PAGES
WHERE ui_def_id=p_source_ui_def_id AND
page_id=p_source_ui_page_id)
LOOP
x_new_ui_page_id := allocateId('CZ_UI_PAGES_S');
INSERT INTO CZ_UI_PAGES
(
PAGE_ID
,UI_DEF_ID
,PERSISTENT_NODE_ID
,JRAD_DOC
,PAGEBASE_PATH
,PAGE_SET_ID
,SPLIT_SEQ_NBR
,CAPTION_SOURCE
,CAPTION_TEXT_ID
,PERSISTENT_CAPTION_TEXT_ID
,PROPERTY_ID
,DELETED_FLAG
,SEEDED_FLAG
,PAGEBASE_EXPL_NODE_ID
,suppress_refresh_flag
,PAGE_REV_NBR
,NAME
,DESC_TEXT
,PAGE_STATUS_TEMPLATE_ID
,PAGE_STATUS_TEMPL_UIDEF_ID
,CAPTION_RULE_ID
,PAGE_STATUS_TEMPLATE_USAGE
,OUTER_TEMPLATE_USAGE
,OUTER_PAGE_TEMPLATE_ID
,OUTER_PAGE_TEMPL_UIDEF_ID
,DISPLAY_CONDITION_ID
,DISPLAY_CONDITION_COMP
,DISPLAY_CONDITION_VALUE
,ENABLED_CONDITION_ID
,ENABLED_CONDITION_COMP
,ENABLED_CONDITION_VALUE
)
VALUES
(
x_new_ui_page_id
,p_target_ui_def_id
,i.PERSISTENT_NODE_ID
,l_target_jrad_doc
,i.PAGEBASE_PATH
,NULL
,1
,i.CAPTION_SOURCE
,l_caption_text_id
,i.PERSISTENT_CAPTION_TEXT_ID
,i.PROPERTY_ID
,i.DELETED_FLAG
,i.SEEDED_FLAG
,i.PAGEBASE_EXPL_NODE_ID
,i.suppress_refresh_flag
,0
,i.NAME||'_'||TO_CHAR(l_copy_nbr)
,i.DESC_TEXT
,i.PAGE_STATUS_TEMPLATE_ID
,i.PAGE_STATUS_TEMPL_UIDEF_ID
,l_caption_rule_id
,i.PAGE_STATUS_TEMPLATE_USAGE
,i.OUTER_TEMPLATE_USAGE
,i.OUTER_PAGE_TEMPLATE_ID
,i.OUTER_PAGE_TEMPL_UIDEF_ID
,l_display_condition_id
,i.DISPLAY_CONDITION_COMP
,i.DISPLAY_CONDITION_VALUE
,l_enabled_condition_id
,i.ENABLED_CONDITION_COMP
,i.ENABLED_CONDITION_VALUE
);
SELECT page_set_id,node_depth INTO l_target_page_set_id,l_target_node_depth
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_target_ui_def_id AND page_ref_id=p_target_parent_page_ref_id;
SELECT NVL(MAX(seq_nbr),0) INTO l_target_max_seq_nbr FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_target_ui_def_id AND deleted_flag=G_NO_FLAG;
SELECT page_ref_id,parent_page_ref_id,node_depth,seq_nbr
BULK COLLECT INTO l_page_ref_id_tbl,l_parent_page_ref_id_tbl,l_node_depth_tbl,l_seq_nbr_tbl
FROM CZ_UI_PAGE_REFS
START WITH ui_def_id=p_source_ui_def_id AND page_ref_id=p_source_page_ref_id
CONNECT BY PRIOR ui_def_id=p_source_ui_def_id AND
ui_def_id=p_source_ui_def_id AND
PRIOR page_ref_id=parent_page_ref_id AND
PRIOR deleted_flag=G_NO_FLAG AND deleted_flag=G_NO_FLAG;
FOR i IN(SELECT * FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_source_ui_def_id AND
page_ref_id=l_current_page_ref_id AND
deleted_flag=G_NO_FLAG)
LOOP
l_seq_nbr := l_target_max_seq_nbr + i.SEQ_NBR;
INSERT INTO CZ_UI_PAGE_REFS
(
PAGE_SET_ID
,UI_DEF_ID
,PAGE_REF_ID
,PARENT_PAGE_REF_ID
,SEQ_NBR
,NODE_DEPTH
,PAGE_REF_TYPE
,CONDITION_ID
,NAME
,CAPTION_SOURCE
,CAPTION_TEXT_ID
,PERSISTENT_CAPTION_TEXT_ID
,PROPERTY_ID
,TARGET_PERSISTENT_NODE_ID
,TARGET_PATH
,TARGET_UI_DEF_ID
,TARGET_PAGE_SET_ID
,TARGET_PAGE_ID
,MODIFIED_FLAGS
,PATH_TO_PREV_PAGE
,PATH_TO_NEXT_PAGE
,DELETED_FLAG
,CAPTION_RULE_ID
,TARGET_EXPL_NODE_ID
)
VALUES
(
l_target_page_set_id
,p_target_ui_def_id
,l_new_page_ref_id
,l_new_parent_page_ref_id
,l_seq_nbr
,l_node_depth
,i.PAGE_REF_TYPE
,l_condition_id
,i.NAME
,i.CAPTION_SOURCE
,l_caption_text_id
,i.PERSISTENT_CAPTION_TEXT_ID
,i.PROPERTY_ID
,i.TARGET_PERSISTENT_NODE_ID
,i.TARGET_PATH
,i.TARGET_UI_DEF_ID
,i.TARGET_PAGE_SET_ID
,i.TARGET_PAGE_ID
,i.MODIFIED_FLAGS
,i.PATH_TO_PREV_PAGE
,i.PATH_TO_NEXT_PAGE
,i.DELETED_FLAG
,l_caption_rule_id
,i.TARGET_EXPL_NODE_ID
);
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'delete_UI_Subtree', x_msg_data);
SELECT jrad_doc INTO l_source_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_source_ui_def_id AND template_id=p_source_template_id;
INSERT INTO CZ_UI_TEMPLATES
(TEMPLATE_ID,
UI_DEF_ID,
TEMPLATE_NAME,
TEMPLATE_TYPE,
TEMPLATE_DESC,
PARENT_CONTAINER_TYPE,
JRAD_DOC,
BUTTON_BAR_TEMPLATE_ID,
MESSAGE_TYPE,
MAIN_MESSAGE_ID,
TITLE_ID,
SEEDED_FLAG,
LAYOUT_UI_STYLE,
ROOT_REGION_TYPE,
ROOT_ELEMENT_SIGNATURE_ID,
TEMPLATE_REV_NBR,
TEMPLATE_USAGE,
AMN_USAGE,
DELETED_FLAG)
SELECT
x_new_template_id ,
p_target_ui_def_id,
TEMPLATE_NAME,
TEMPLATE_TYPE,
TEMPLATE_DESC,
PARENT_CONTAINER_TYPE,
l_target_jrad_doc,
BUTTON_BAR_TEMPLATE_ID,
MESSAGE_TYPE,
MAIN_MESSAGE_ID,
TITLE_ID,
G_NO_FLAG,
LAYOUT_UI_STYLE,
ROOT_REGION_TYPE,
ROOT_ELEMENT_SIGNATURE_ID,
TEMPLATE_REV_NBR,
TEMPLATE_USAGE,
AMN_USAGE,
G_NO_FLAG
FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_source_ui_def_id AND
template_id=p_source_template_id;
INSERT INTO CZ_UI_REF_TEMPLATES
(
TEMPLATE_ID
,REF_TEMPLATE_ID
,DELETED_FLAG
,TEMPLATE_UI_DEF_ID
,REF_TEMPLATE_UI_DEF_ID
)
SELECT
x_new_template_id
,REF_TEMPLATE_ID
,DELETED_FLAG
,p_target_ui_def_id
,REF_TEMPLATE_UI_DEF_ID
FROM CZ_UI_REF_TEMPLATES
WHERE template_id=p_source_template_id AND
template_ui_def_id=p_source_ui_def_id AND
deleted_flag=G_NO_FLAG;
SELECT jrad_doc INTO l_source_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_source_ui_def_id AND
template_id=p_source_template_id;
SELECT jrad_doc INTO l_target_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_target_ui_def_id AND
template_id=p_target_template_id;
UPDATE CZ_UI_TEMPLATES
SET template_rev_nbr=NVL(template_rev_nbr,0)+1
WHERE ui_def_id=p_target_ui_def_id AND template_id=p_target_template_id;
SELECT jrad_doc INTO l_template_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_template_ui_def_id AND template_id=p_template_id;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_PAGES a
WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id;
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1
WHERE ui_def_id=p_ui_def_id AND
page_id=p_ui_page_id;
SELECT jrad_doc INTO l_template_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_template_ui_def_id AND template_id=p_template_id;
SELECT jrad_doc INTO l_target_template_jrad_doc FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_target_template_ui_def_id AND template_id=p_target_template_id;
UPDATE CZ_UI_TEMPLATES
SET template_rev_nbr=template_rev_nbr+1
WHERE template_id=p_target_template_id AND
ui_def_id=p_target_template_ui_def_id;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_TEMPLATES
WHERE template_id=p_ui_page_id AND ui_def_id=p_ui_def_id;
SELECT jrad_doc INTO l_jrad_doc FROM CZ_UI_PAGES
WHERE page_id=p_ui_page_id AND ui_def_id=p_ui_def_id;
UPDATE CZ_UI_PAGE_ELEMENTS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
element_id=p_element_id;
SELECT template_id, jrad_doc, root_element_signature_id
INTO l_ref_template_id, l_template_jrad_doc, l_root_element_signature_id
FROM CZ_UI_TEMPLATES
WHERE ui_def_id=p_ui_def_id AND jrad_doc=l_extends_attribute AND
deleted_flag=G_NO_FLAG;
SELECT template_id, jrad_doc, root_element_signature_id
INTO l_ref_template_id, l_template_jrad_doc, l_root_element_signature_id FROM CZ_UI_TEMPLATES
WHERE ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID AND
jrad_doc=l_extends_attribute AND
deleted_flag=G_NO_FLAG;
SELECT ref_count
INTO l_ref_count
FROM CZ_UI_REF_TEMPLATES
WHERE template_id=p_ui_page_id AND
ref_template_id=l_ref_template_id AND
deleted_flag=G_NO_FLAG;
DELETE FROM CZ_UI_REF_TEMPLATES
WHERE template_id=p_ui_page_id AND
ref_template_id=l_ref_template_id AND
deleted_flag=G_NO_FLAG;
UPDATE CZ_UI_REF_TEMPLATES
SET ref_count = ref_count-1
WHERE template_id=p_ui_page_id AND
ref_template_id=l_ref_template_id AND
deleted_flag=G_NO_FLAG;
FOR reft IN (SELECT * FROM CZ_UI_REF_TEMPLATES
WHERE template_id=l_ref_template_id AND
deleted_flag=G_NO_FLAG)
LOOP
SELECT NVL(MAX(ref_count),0) INTO l_target_ref_count FROM CZ_UI_REF_TEMPLATES
WHERE template_id=p_ui_page_id AND
ref_template_id=reft.ref_template_id AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_REF_TEMPLATES
(
TEMPLATE_ID
,REF_TEMPLATE_ID
,DELETED_FLAG
,TEMPLATE_UI_DEF_ID
,REF_TEMPLATE_UI_DEF_ID
,SEEDED_FLAG
,REF_TEMPL_SEEDED_FLAG
,REF_COUNT
)
VALUES
(
p_ui_page_id
,reft.ref_template_id
,G_NO_FLAG
,p_ui_def_id
,reft.REF_TEMPLATE_UI_DEF_ID
,G_NO_FLAG
,reft.REF_TEMPL_SEEDED_FLAG
,reft.ref_count
);
UPDATE CZ_UI_REF_TEMPLATES
SET ref_count=ref_count+l_target_ref_count
WHERE template_id=p_ui_page_id AND
ref_template_id=reft.ref_template_id AND
deleted_flag=G_NO_FLAG;
l_out_xml_node := insert_before(l_parent_xml_node,l_new_xml_root_node,l_prev_xml_node);
UPDATE CZ_UI_TEMPLATES
SET TEMPLATE_REV_NBR=TEMPLATE_REV_NBR+1
WHERE ui_def_id=p_ui_def_id AND
template_id=p_ui_page_id;
UPDATE CZ_UI_PAGES
SET page_rev_nbr=page_rev_nbr+1
WHERE ui_def_id=p_ui_def_id AND
page_id=p_ui_page_id;
FOR i IN(SELECT rule_id,ui_page_id,ui_page_element_id,rule_type FROM CZ_RULES a
WHERE ui_def_id=p_ui_def_id AND
deleted_flag=G_NO_FLAG AND disabled_flag=G_NO_FLAG)
LOOP
BEGIN
IF i.ui_page_element_id IS NOT NULL AND i.ui_page_element_id<>'0' THEN
SELECT element_id INTO l_element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND page_id=i.ui_page_id AND
element_id=i.ui_page_element_id AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
SELECT element_id INTO l_element_id FROM CZ_UI_PAGE_ELEMENTS
WHERE ui_def_id=p_ui_def_id AND page_id=i.ui_page_id AND
parent_element_id IS NULL AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE) AND rownum<2;
SELECT page_id INTO l_page_id FROM CZ_UI_PAGES
WHERE page_id=i.ui_page_id AND ui_def_id=p_ui_def_id AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
PROCEDURE update_UI_Reference
(
p_ui_def_id IN NUMBER,
p_ref_persistent_node_id IN NUMBER,
p_new_target_ui_def_id IN NUMBER,
x_return_status OUT NOCOPY VARCHAR2,-- status string
x_msg_count OUT NOCOPY NUMBER, -- number of error messages
x_msg_data OUT NOCOPY VARCHAR2 -- string which contains error messages
) IS
l_target_primary_navigation CZ_UI_DEFS.primary_navigation%TYPE;
SELECT primary_navigation, page_set_id
INTO l_target_primary_navigation, l_target_page_set_id
FROM CZ_UI_DEFS
WHERE ui_def_id=p_new_target_ui_def_id;
UPDATE CZ_UI_PAGE_REFS
SET deleted_flag=G_YES_FLAG
WHERE ui_def_id=p_ui_def_id AND
target_persistent_node_id=p_ref_persistent_node_id AND
deleted_flag=G_NO_FLAG;
SELECT ps_node_id,parent_id,name
INTO l_ref_ps_node_id,l_ref_parent_id,l_reference_name
FROM CZ_PS_NODES
WHERE devl_project_id=g_UI_Context.devl_project_id AND
persistent_node_id=p_ref_persistent_node_id AND
deleted_flag=G_NO_FLAG;
SELECT persistent_node_id
INTO l_ref_parent_persist_node_id
FROM CZ_PS_NODES
WHERE ps_node_id=l_ref_parent_id AND
deleted_flag=G_NO_FLAG;
FOR i IN(SELECT page_ref_id,node_depth,page_set_id,page_ref_type, seq_nbr
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_def_id AND
target_persistent_node_id=l_ref_parent_persist_node_id AND
page_ref_type=G_MODEL_TREE_MENU AND
deleted_flag=G_NO_FLAG)
LOOP
-- skip this block for Root record in split pages case to avoid data corruption
IF (i.node_depth <> 0 AND i.seq_nbr <> 0) THEN
--
-- update target_ui_def_id and target_page_set_id
--
UPDATE CZ_UI_PAGE_REFS
SET target_ui_def_id=p_new_target_ui_def_id,
target_page_set_id=l_target_page_set_id
WHERE ui_def_id=p_ui_def_id AND
parent_page_ref_id=i.page_ref_id AND
target_persistent_node_id=p_ref_persistent_node_id AND
deleted_flag=G_NO_FLAG;
SELECT NVL(MAX(seq_nbr),0)+1 INTO l_seq_nbr
FROM CZ_UI_PAGE_REFS
WHERE ui_def_id=p_ui_def_id AND
parent_page_ref_id=i.page_ref_id AND
deleted_flag=G_NO_FLAG;
SELECT MIN(model_ref_expl_id) INTO l_expl_node_id FROM CZ_MODEL_REF_EXPLS
WHERE model_id=g_UI_Context.devl_project_id AND
referring_node_id=p_ref_persistent_node_id AND
deleted_flag=G_NO_FLAG;
INSERT INTO CZ_UI_PAGE_REFS
(ui_def_id,
page_set_id,
page_ref_id,
parent_page_ref_id,
seq_nbr,
node_depth,
condition_id,
NAME,
caption_source,
target_persistent_node_id,
target_path,
target_ui_def_id,
target_page_set_id,
target_page_id,
modified_flags,
path_to_prev_page,
path_to_next_page,
page_ref_type,
target_expl_node_id,
caption_rule_id,
deleted_flag)
VALUES
(p_ui_def_id,
i.page_set_id,
l_page_ref_id,
i.page_ref_id,
l_seq_nbr,
i.node_depth+1,
NULL,
l_reference_name,
G_DEFAULT_CAPTION_RULE_ID,
p_ref_persistent_node_id,
l_ref_pagebase_path,
p_new_target_ui_def_id,
l_target_page_set_id,
NULL,
0,
NULL,
NULL,
i.page_ref_type,
l_expl_node_id,
NULL,
G_NO_FLAG);
SELECT ref_ui_def_id INTO l_old_child_ui_def_id
FROM cz_ui_refs
WHERE ui_def_id = p_ui_def_id AND ref_persistent_node_id = p_ref_persistent_node_id;
UPDATE cz_ui_page_elements
SET target_page_ui_def_id = NULL, target_page_id = NULL
WHERE deleted_flag = '0' AND target_page_ui_def_id = l_old_child_ui_def_id AND
target_page_id IN (SELECT page_id FROM cz_ui_pages
WHERE ui_def_id = l_old_child_ui_def_id AND deleted_flag = '0') AND
element_signature_id = G_PAGE_INCL_REGION_SIGNATURE;
fnd_msg_pub.add_exc_msg('CZ_UIOA_PVT', 'update_UI_Reference', x_msg_data);
DEBUG('update_UI_Reference() : '||x_msg_data);
END update_UI_Reference;
SELECT template_name
INTO G_DRILLDOWN_TEMPLATE_NAME
FROM CZ_UI_TEMPLATES
WHERE template_id=G_DRILLDOWN_BUTTON_TEMPLATE_ID AND
ui_def_id=G_GLOBAL_TEMPLATES_UI_DEF_ID;