5220: x_msg_data => x_msg_data);
5221: END copy_archive;
5222:
5223: -------------------------- copy_ui_template ----------------------------
5224: FUNCTION get_Attribute_Value(p_node IN xmldom.DOMNode,
5225: p_attr_name IN VARCHAR2) RETURN VARCHAR2 IS
5226:
5227: l_node_map_tbl xmldom.DOMNamedNodeMap;
5228: l_node_attr xmldom.DOMNode;
5223: -------------------------- copy_ui_template ----------------------------
5224: FUNCTION get_Attribute_Value(p_node IN xmldom.DOMNode,
5225: p_attr_name IN VARCHAR2) RETURN VARCHAR2 IS
5226:
5227: l_node_map_tbl xmldom.DOMNamedNodeMap;
5228: l_node_attr xmldom.DOMNode;
5229: l_attr_value VARCHAR2(32000);
5230: l_length NUMBER;
5231:
5224: FUNCTION get_Attribute_Value(p_node IN xmldom.DOMNode,
5225: p_attr_name IN VARCHAR2) RETURN VARCHAR2 IS
5226:
5227: l_node_map_tbl xmldom.DOMNamedNodeMap;
5228: l_node_attr xmldom.DOMNode;
5229: l_attr_value VARCHAR2(32000);
5230: l_length NUMBER;
5231:
5232: BEGIN
5230: l_length NUMBER;
5231:
5232: BEGIN
5233:
5234: IF xmldom.IsNull(p_node) THEN
5235: RETURN NULL;
5236: END IF;
5237: l_node_map_tbl := xmldom.getAttributes(p_node);
5238:
5233:
5234: IF xmldom.IsNull(p_node) THEN
5235: RETURN NULL;
5236: END IF;
5237: l_node_map_tbl := xmldom.getAttributes(p_node);
5238:
5239: IF (xmldom.isNull(l_node_map_tbl) = FALSE) THEN
5240: l_length := xmldom.getLength(l_node_map_tbl);
5241: --
5235: RETURN NULL;
5236: END IF;
5237: l_node_map_tbl := xmldom.getAttributes(p_node);
5238:
5239: IF (xmldom.isNull(l_node_map_tbl) = FALSE) THEN
5240: l_length := xmldom.getLength(l_node_map_tbl);
5241: --
5242: -- loop through attributes
5243: --
5236: END IF;
5237: l_node_map_tbl := xmldom.getAttributes(p_node);
5238:
5239: IF (xmldom.isNull(l_node_map_tbl) = FALSE) THEN
5240: l_length := xmldom.getLength(l_node_map_tbl);
5241: --
5242: -- loop through attributes
5243: --
5244: FOR i IN 0 .. l_length - 1
5242: -- loop through attributes
5243: --
5244: FOR i IN 0 .. l_length - 1
5245: LOOP
5246: l_node_attr := xmldom.item(l_node_map_tbl, i);
5247: IF xmldom.getNodeName(l_node_attr) = p_attr_name THEN
5248: l_attr_value := xmldom.getNodeValue(l_node_attr);
5249: EXIT;
5250: END IF;
5243: --
5244: FOR i IN 0 .. l_length - 1
5245: LOOP
5246: l_node_attr := xmldom.item(l_node_map_tbl, i);
5247: IF xmldom.getNodeName(l_node_attr) = p_attr_name THEN
5248: l_attr_value := xmldom.getNodeValue(l_node_attr);
5249: EXIT;
5250: END IF;
5251: END LOOP;
5244: FOR i IN 0 .. l_length - 1
5245: LOOP
5246: l_node_attr := xmldom.item(l_node_map_tbl, i);
5247: IF xmldom.getNodeName(l_node_attr) = p_attr_name THEN
5248: l_attr_value := xmldom.getNodeValue(l_node_attr);
5249: EXIT;
5250: END IF;
5251: END LOOP;
5252: END IF;
5276: RETURN NULL;
5277: END IF;
5278: END get_User_Attribute;
5279:
5280: PROCEDURE set_Attribute(p_dom_element xmldom.DOMElement,
5281: p_attribute_name IN VARCHAR2,
5282: p_attribute_value IN VARCHAR2) IS
5283:
5284: BEGIN
5281: p_attribute_name IN VARCHAR2,
5282: p_attribute_value IN VARCHAR2) IS
5283:
5284: BEGIN
5285: xmldom.setAttribute(p_dom_element, p_attribute_name, p_attribute_value);
5286: END set_Attribute;
5287:
5288: FUNCTION replace_attrib_value (p_attrib_name IN VARCHAR2,
5289: p_attrib_val IN VARCHAR2,
5575: END replace_global_ids;
5576:
5577: -----
5578:
5579: PROCEDURE copyAttributes(p_source_node IN xmldom.DOMNode,
5580: p_dest_element IN jdr_docbuilder.ELEMENT,
5581: p_new_template_id IN NUMBER,
5582: p_new_document_name IN VARCHAR2,
5583: p_old_switcher_id IN VARCHAR2)
5582: p_new_document_name IN VARCHAR2,
5583: p_old_switcher_id IN VARCHAR2)
5584: IS
5585:
5586: l_attributes xmldom.DOMNamedNodeMap;
5587: l_attrib_node xmldom.DOMNode;
5588: l_attrib_count NUMBER := 0;
5589: l_tagname VARCHAR2(255);
5590: attrname VARCHAR2(255);
5583: p_old_switcher_id IN VARCHAR2)
5584: IS
5585:
5586: l_attributes xmldom.DOMNamedNodeMap;
5587: l_attrib_node xmldom.DOMNode;
5588: l_attrib_count NUMBER := 0;
5589: l_tagname VARCHAR2(255);
5590: attrname VARCHAR2(255);
5591: attrval VARCHAR2(4000);
5592: l_ampers VARCHAR2(1) := fnd_global.local_chr(38);
5593:
5594: BEGIN
5595:
5596: l_attributes := xmldom.getAttributes(p_source_node);
5597: l_tagname := SUBSTR(xmldom.getNodeName(p_source_node),INSTR(xmldom.getNodeName(p_source_node),':') + 1);
5598:
5599: l_attrib_count := xmldom.getLength(l_attributes);
5600:
5593:
5594: BEGIN
5595:
5596: l_attributes := xmldom.getAttributes(p_source_node);
5597: l_tagname := SUBSTR(xmldom.getNodeName(p_source_node),INSTR(xmldom.getNodeName(p_source_node),':') + 1);
5598:
5599: l_attrib_count := xmldom.getLength(l_attributes);
5600:
5601: IF (l_attrib_count > 0) then
5595:
5596: l_attributes := xmldom.getAttributes(p_source_node);
5597: l_tagname := SUBSTR(xmldom.getNodeName(p_source_node),INSTR(xmldom.getNodeName(p_source_node),':') + 1);
5598:
5599: l_attrib_count := xmldom.getLength(l_attributes);
5600:
5601: IF (l_attrib_count > 0) then
5602: FOR attrCount IN 0..l_attrib_count - 1
5603: LOOP
5600:
5601: IF (l_attrib_count > 0) then
5602: FOR attrCount IN 0..l_attrib_count - 1
5603: LOOP
5604: l_attrib_node := xmldom.item(l_attributes,attrCount);
5605: attrname := xmldom.getNodeName(l_attrib_node);
5606: attrval := xmldom.getNodeValue(l_attrib_node);
5607:
5608: IF ( attrname = 'user:attribute3' ) THEN
5601: IF (l_attrib_count > 0) then
5602: FOR attrCount IN 0..l_attrib_count - 1
5603: LOOP
5604: l_attrib_node := xmldom.item(l_attributes,attrCount);
5605: attrname := xmldom.getNodeName(l_attrib_node);
5606: attrval := xmldom.getNodeValue(l_attrib_node);
5607:
5608: IF ( attrname = 'user:attribute3' ) THEN
5609: -- user:attribute3 can contain global Ids like Rule Ids (for UI Conditions), Intl_text_ids
5602: FOR attrCount IN 0..l_attrib_count - 1
5603: LOOP
5604: l_attrib_node := xmldom.item(l_attributes,attrCount);
5605: attrname := xmldom.getNodeName(l_attrib_node);
5606: attrval := xmldom.getNodeValue(l_attrib_node);
5607:
5608: IF ( attrname = 'user:attribute3' ) THEN
5609: -- user:attribute3 can contain global Ids like Rule Ids (for UI Conditions), Intl_text_ids
5610: -- and Ui_action_ids
5636:
5637: PROCEDURE exploreTree(p_new_template_id IN NUMBER,
5638: p_new_document_name VARCHAR2,
5639: p_jrad_parent_element IN jdr_docbuilder.ELEMENT,
5640: p_dom_parent_element IN xmldom.DOMNode,
5641: p_grouping_tag IN VARCHAR2,
5642: p_enclosing_switcher_id IN VARCHAR2)
5643: IS
5644:
5641: p_grouping_tag IN VARCHAR2,
5642: p_enclosing_switcher_id IN VARCHAR2)
5643: IS
5644:
5645: l_child_nodes xmldom.DOMNodeList;
5646: l_child_node xmldom.DOMNode;
5647: l_parent_xml_node xmldom.DOMNode;
5648: l_child_count NUMBER := 0;
5649: l_namespace VARCHAR2(255);
5642: p_enclosing_switcher_id IN VARCHAR2)
5643: IS
5644:
5645: l_child_nodes xmldom.DOMNodeList;
5646: l_child_node xmldom.DOMNode;
5647: l_parent_xml_node xmldom.DOMNode;
5648: l_child_count NUMBER := 0;
5649: l_namespace VARCHAR2(255);
5650: l_tagname VARCHAR2(255);
5643: IS
5644:
5645: l_child_nodes xmldom.DOMNodeList;
5646: l_child_node xmldom.DOMNode;
5647: l_parent_xml_node xmldom.DOMNode;
5648: l_child_count NUMBER := 0;
5649: l_namespace VARCHAR2(255);
5650: l_tagname VARCHAR2(255);
5651: l_tag_name VARCHAR2(255);
5654: l_grouping_tag VARCHAR2(255);
5655: l_child_element jdr_docbuilder.ELEMENT;
5656: l_parent_tag_name VARCHAR2(255);
5657: l_old_switcher_id VARCHAR2(60);
5658: l_attributes xmldom.DOMNamedNodeMap;
5659: l_attrib_count NUMBER := 0;
5660:
5661: BEGIN
5662: l_child_nodes := xmldom.getChildNodes(p_dom_parent_element);
5658: l_attributes xmldom.DOMNamedNodeMap;
5659: l_attrib_count NUMBER := 0;
5660:
5661: BEGIN
5662: l_child_nodes := xmldom.getChildNodes(p_dom_parent_element);
5663: l_child_count := xmldom.getLength(l_child_nodes);
5664:
5665: IF (l_child_count > 0) THEN
5666: FOR childCount IN 0..l_child_count - 1
5659: l_attrib_count NUMBER := 0;
5660:
5661: BEGIN
5662: l_child_nodes := xmldom.getChildNodes(p_dom_parent_element);
5663: l_child_count := xmldom.getLength(l_child_nodes);
5664:
5665: IF (l_child_count > 0) THEN
5666: FOR childCount IN 0..l_child_count - 1
5667: LOOP
5664:
5665: IF (l_child_count > 0) THEN
5666: FOR childCount IN 0..l_child_count - 1
5667: LOOP
5668: l_child_node := xmldom.item(l_child_nodes,childCount);
5669: l_grouping_tag :='';
5670: l_tag_name := xmldom.getNodeName(l_child_node);
5671: l_parent_xml_node := xmldom.getParentNode(l_child_node);
5672:
5666: FOR childCount IN 0..l_child_count - 1
5667: LOOP
5668: l_child_node := xmldom.item(l_child_nodes,childCount);
5669: l_grouping_tag :='';
5670: l_tag_name := xmldom.getNodeName(l_child_node);
5671: l_parent_xml_node := xmldom.getParentNode(l_child_node);
5672:
5673: l_attributes := xmldom.getAttributes(l_child_node);
5674: l_attrib_count := xmldom.getLength(l_attributes);
5667: LOOP
5668: l_child_node := xmldom.item(l_child_nodes,childCount);
5669: l_grouping_tag :='';
5670: l_tag_name := xmldom.getNodeName(l_child_node);
5671: l_parent_xml_node := xmldom.getParentNode(l_child_node);
5672:
5673: l_attributes := xmldom.getAttributes(l_child_node);
5674: l_attrib_count := xmldom.getLength(l_attributes);
5675:
5669: l_grouping_tag :='';
5670: l_tag_name := xmldom.getNodeName(l_child_node);
5671: l_parent_xml_node := xmldom.getParentNode(l_child_node);
5672:
5673: l_attributes := xmldom.getAttributes(l_child_node);
5674: l_attrib_count := xmldom.getLength(l_attributes);
5675:
5676: l_old_switcher_id := p_enclosing_switcher_id;
5677:
5670: l_tag_name := xmldom.getNodeName(l_child_node);
5671: l_parent_xml_node := xmldom.getParentNode(l_child_node);
5672:
5673: l_attributes := xmldom.getAttributes(l_child_node);
5674: l_attrib_count := xmldom.getLength(l_attributes);
5675:
5676: l_old_switcher_id := p_enclosing_switcher_id;
5677:
5678: IF (l_tag_name = 'oa:switcher') THEN
5678: IF (l_tag_name = 'oa:switcher') THEN
5679: l_old_switcher_id := get_Attribute_value(l_child_node, 'id');
5680: END IF;
5681:
5682: IF NOT(xmldom.isNull(l_parent_xml_node)) THEN
5683: l_parent_tag_name := xmldom.getNodeName(l_parent_xml_node);
5684: END IF;
5685:
5686: IF ( (l_attrib_count = 0) AND (l_tag_name not in ('ui:firePartialAction') ) ) THEN
5679: l_old_switcher_id := get_Attribute_value(l_child_node, 'id');
5680: END IF;
5681:
5682: IF NOT(xmldom.isNull(l_parent_xml_node)) THEN
5683: l_parent_tag_name := xmldom.getNodeName(l_parent_xml_node);
5684: END IF;
5685:
5686: IF ( (l_attrib_count = 0) AND (l_tag_name not in ('ui:firePartialAction') ) ) THEN
5687: l_grouping_tag := l_tag_name;
5686: IF ( (l_attrib_count = 0) AND (l_tag_name not in ('ui:firePartialAction') ) ) THEN
5687: l_grouping_tag := l_tag_name;
5688: END IF;
5689:
5690: l_namespace := SUBSTR(xmldom.getNodeName(l_child_node),1,INSTR(xmldom.getNodeName(l_child_node),':'));
5691: l_tagname := SUBSTR(xmldom.getNodeName(l_child_node),INSTR(xmldom.getNodeName(l_child_node),':') + 1);
5692: l_child_element := createElement(l_namespace,l_tagname);
5693:
5694: copyAttributes(l_child_node,
5687: l_grouping_tag := l_tag_name;
5688: END IF;
5689:
5690: l_namespace := SUBSTR(xmldom.getNodeName(l_child_node),1,INSTR(xmldom.getNodeName(l_child_node),':'));
5691: l_tagname := SUBSTR(xmldom.getNodeName(l_child_node),INSTR(xmldom.getNodeName(l_child_node),':') + 1);
5692: l_child_element := createElement(l_namespace,l_tagname);
5693:
5694: copyAttributes(l_child_node,
5695: l_child_element,
5742: l_length BINARY_INTEGER;
5743: l_buffer VARCHAR2(32767);
5744: firstChunk VARCHAR2(32767);
5745: p xmlparser.parser;
5746: doc xmldom.DOMDocument;
5747: n xmldom.DOMNode;
5748: top_node xmldom.DOMNODE;
5749: nnm xmldom.DOMNamedNodeMap;
5750: attrname VARCHAR2(255);
5743: l_buffer VARCHAR2(32767);
5744: firstChunk VARCHAR2(32767);
5745: p xmlparser.parser;
5746: doc xmldom.DOMDocument;
5747: n xmldom.DOMNode;
5748: top_node xmldom.DOMNODE;
5749: nnm xmldom.DOMNamedNodeMap;
5750: attrname VARCHAR2(255);
5751: attrval VARCHAR2(4000); -- jdr_attributes.att_value
5744: firstChunk VARCHAR2(32767);
5745: p xmlparser.parser;
5746: doc xmldom.DOMDocument;
5747: n xmldom.DOMNode;
5748: top_node xmldom.DOMNODE;
5749: nnm xmldom.DOMNamedNodeMap;
5750: attrname VARCHAR2(255);
5751: attrval VARCHAR2(4000); -- jdr_attributes.att_value
5752: name_space VARCHAR2(255);
5745: p xmlparser.parser;
5746: doc xmldom.DOMDocument;
5747: n xmldom.DOMNode;
5748: top_node xmldom.DOMNODE;
5749: nnm xmldom.DOMNamedNodeMap;
5750: attrname VARCHAR2(255);
5751: attrval VARCHAR2(4000); -- jdr_attributes.att_value
5752: name_space VARCHAR2(255);
5753: tag_name VARCHAR2(255);
5826: SYS.DBMS_LOB.CLOSE (l_lob);
5827: SYS.DBMS_LOB.FREETEMPORARY(l_lob);
5828:
5829: l_doc := jdr_docbuilder.createDocument(p_new_document_name);
5830: top_node := xmldom.makeNode(xmldom.getDocumentElement(doc));
5831:
5832: IF (g_toplevel_attr_tbl.COUNT > 0) THEN
5833: FOR I IN g_toplevel_attr_tbl.FIRST..g_toplevel_attr_tbl.LAST
5834: LOOP
5832: IF (g_toplevel_attr_tbl.COUNT > 0) THEN
5833: FOR I IN g_toplevel_attr_tbl.FIRST..g_toplevel_attr_tbl.LAST
5834: LOOP
5835: begin
5836: xmldom.removeAttribute(xmldom.makeElement(top_node),g_toplevel_attr_tbl(i));
5837: exception
5838: when others then
5839: NULL;
5840: end;
5840: end;
5841: END LOOP;
5842: END IF;
5843:
5844: name_space:=SUBSTR(xmldom.getNodeName(top_node),1,INSTR(xmldom.getNodeName(top_node),':'));
5845: tag_name :=SUBSTR(xmldom.getNodeName(top_node),INSTR(xmldom.getNodeName(top_node),':')+1);
5846: top_element := createElement(name_space,tag_name);
5847: nnm := xmldom.getAttributes(top_node);
5848:
5841: END LOOP;
5842: END IF;
5843:
5844: name_space:=SUBSTR(xmldom.getNodeName(top_node),1,INSTR(xmldom.getNodeName(top_node),':'));
5845: tag_name :=SUBSTR(xmldom.getNodeName(top_node),INSTR(xmldom.getNodeName(top_node),':')+1);
5846: top_element := createElement(name_space,tag_name);
5847: nnm := xmldom.getAttributes(top_node);
5848:
5849: IF (xmldom.isNull(nnm) = FALSE) then
5843:
5844: name_space:=SUBSTR(xmldom.getNodeName(top_node),1,INSTR(xmldom.getNodeName(top_node),':'));
5845: tag_name :=SUBSTR(xmldom.getNodeName(top_node),INSTR(xmldom.getNodeName(top_node),':')+1);
5846: top_element := createElement(name_space,tag_name);
5847: nnm := xmldom.getAttributes(top_node);
5848:
5849: IF (xmldom.isNull(nnm) = FALSE) then
5850: l_length := xmldom.getLength(nnm);
5851: FOR i in 0..l_length-1
5845: tag_name :=SUBSTR(xmldom.getNodeName(top_node),INSTR(xmldom.getNodeName(top_node),':')+1);
5846: top_element := createElement(name_space,tag_name);
5847: nnm := xmldom.getAttributes(top_node);
5848:
5849: IF (xmldom.isNull(nnm) = FALSE) then
5850: l_length := xmldom.getLength(nnm);
5851: FOR i in 0..l_length-1
5852: LOOP
5853: n := xmldom.item(nnm, i);
5846: top_element := createElement(name_space,tag_name);
5847: nnm := xmldom.getAttributes(top_node);
5848:
5849: IF (xmldom.isNull(nnm) = FALSE) then
5850: l_length := xmldom.getLength(nnm);
5851: FOR i in 0..l_length-1
5852: LOOP
5853: n := xmldom.item(nnm, i);
5854: attrname := xmldom.getNodeName(n);
5849: IF (xmldom.isNull(nnm) = FALSE) then
5850: l_length := xmldom.getLength(nnm);
5851: FOR i in 0..l_length-1
5852: LOOP
5853: n := xmldom.item(nnm, i);
5854: attrname := xmldom.getNodeName(n);
5855: attrval := xmldom.getNodeValue(n);
5856: IF( attrname = 'user:attribute10' ) THEN
5857: -- Have to check for user:attribute3
5850: l_length := xmldom.getLength(nnm);
5851: FOR i in 0..l_length-1
5852: LOOP
5853: n := xmldom.item(nnm, i);
5854: attrname := xmldom.getNodeName(n);
5855: attrval := xmldom.getNodeValue(n);
5856: IF( attrname = 'user:attribute10' ) THEN
5857: -- Have to check for user:attribute3
5858: attrval := replace_global_ids(attrval, p_new_template_id);
5851: FOR i in 0..l_length-1
5852: LOOP
5853: n := xmldom.item(nnm, i);
5854: attrname := xmldom.getNodeName(n);
5855: attrval := xmldom.getNodeValue(n);
5856: IF( attrname = 'user:attribute10' ) THEN
5857: -- Have to check for user:attribute3
5858: attrval := replace_global_ids(attrval, p_new_template_id);
5859: END IF;