80:
81: --l_xml_payload XMLTYPE;
82: --l_xml_clob_payload CLOB;
83:
84: l_xml_doc xmldom.DOMDocument;
85: l_xml_parser xmlparser.Parser;
86: l_xml_node_list xmldom.DOMNodeList;
87: l_xml_node xmldom.DOMNode;
88: l_xml_node_len NUMBER;
82: --l_xml_clob_payload CLOB;
83:
84: l_xml_doc xmldom.DOMDocument;
85: l_xml_parser xmlparser.Parser;
86: l_xml_node_list xmldom.DOMNodeList;
87: l_xml_node xmldom.DOMNode;
88: l_xml_node_len NUMBER;
89: len2 number;
90: l_COL_NAME_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
83:
84: l_xml_doc xmldom.DOMDocument;
85: l_xml_parser xmlparser.Parser;
86: l_xml_node_list xmldom.DOMNodeList;
87: l_xml_node xmldom.DOMNode;
88: l_xml_node_len NUMBER;
89: len2 number;
90: l_COL_NAME_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
91: L_COL_VALUE_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
98: l_xml_parser := xmlparser.newParser;
99: xmlparser.parseClob(l_xml_parser, l_xml_clob_payload);
100: L_XML_DOC := XMLPARSER.GETDOCUMENT(L_XML_PARSER);
101: xmlparser.freeParser(l_xml_parser);
102: l_xml_node_list := xmldom.getElementsByTagName(l_xml_doc, '*');
103: L_XML_NODE_LEN := XMLDOM.GETLENGTH(L_XML_NODE_LIST);
104: L_COL_NAME_LIST.EXTEND(L_XML_NODE_LEN);
105: l_COL_VALUE_LIST.EXTEND(l_xml_node_len);
106: -- loop through elements
99: xmlparser.parseClob(l_xml_parser, l_xml_clob_payload);
100: L_XML_DOC := XMLPARSER.GETDOCUMENT(L_XML_PARSER);
101: xmlparser.freeParser(l_xml_parser);
102: l_xml_node_list := xmldom.getElementsByTagName(l_xml_doc, '*');
103: L_XML_NODE_LEN := XMLDOM.GETLENGTH(L_XML_NODE_LIST);
104: L_COL_NAME_LIST.EXTEND(L_XML_NODE_LEN);
105: l_COL_VALUE_LIST.EXTEND(l_xml_node_len);
106: -- loop through elements
107: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
104: L_COL_NAME_LIST.EXTEND(L_XML_NODE_LEN);
105: l_COL_VALUE_LIST.EXTEND(l_xml_node_len);
106: -- loop through elements
107: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
108: l_xml_node := xmldom.item(l_xml_node_list, i);
109:
110: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
111: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
112: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
106: -- loop through elements
107: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
108: l_xml_node := xmldom.item(l_xml_node_list, i);
109:
110: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
111: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
112: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
113: BEGIN
114: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
107: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
108: l_xml_node := xmldom.item(l_xml_node_list, i);
109:
110: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
111: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
112: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
113: BEGIN
114: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
115: IF p_fix_esc_chars THEN
108: l_xml_node := xmldom.item(l_xml_node_list, i);
109:
110: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
111: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
112: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
113: BEGIN
114: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
115: IF p_fix_esc_chars THEN
116: l_COL_VALUE_LIST(i-1):=replace(replace(replace(l_COL_VALUE_LIST(i-1),'%amp;',fnd_global.local_chr(38)),'%lt;','<'),'%gt;','>');
110: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
111: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
112: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
113: BEGIN
114: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
115: IF p_fix_esc_chars THEN
116: l_COL_VALUE_LIST(i-1):=replace(replace(replace(l_COL_VALUE_LIST(i-1),'%amp;',fnd_global.local_chr(38)),'%lt;','<'),'%gt;','>');
117: END IF;
118:
119: EXCEPTION
120: WHEN OTHERS THEN
121: IF INSTR(TO_CHAR(SQLCODE),'6502')>0 THEN
122: X_COL_NAME_IDX(i-1):=99;
123: X_COL_CLOB_LIST(i-1):=xmldom.getNodeValue(l_xml_node);
124: IF p_fix_esc_chars THEN
125: X_COL_CLOB_LIST(i-1):=replace(replace(replace(X_COL_CLOB_LIST(i-1),'%amp;',fnd_global.local_chr(38)),'%lt;','<'),'%gt;','>');
126: END IF;
127: CSM_UTIL_PKG.LOG('Found clob data in column: '||l_COL_NAME_LIST(i-1), 'CSM_HTML5_PKG.PARSE_XML',FND_LOG.LEVEL_PROCEDURE);
2685:
2686: l_xml_clob_payload CLOB;
2687: l_result CLOB;
2688: part_xml CLOB;
2689: l_xml_doc xmldom.DOMDocument;
2690: l_xml_parser xmlparser.Parser;
2691: l_xml_node_list xmldom.DOMNodeList;
2692: l_xml_DATA_node_list xmldom.DOMNodeList;
2693: l_xml_node xmldom.DOMNode;
2687: l_result CLOB;
2688: part_xml CLOB;
2689: l_xml_doc xmldom.DOMDocument;
2690: l_xml_parser xmlparser.Parser;
2691: l_xml_node_list xmldom.DOMNodeList;
2692: l_xml_DATA_node_list xmldom.DOMNodeList;
2693: l_xml_node xmldom.DOMNode;
2694: l_xml_node_len NUMBER;
2695: dummy number;
2688: part_xml CLOB;
2689: l_xml_doc xmldom.DOMDocument;
2690: l_xml_parser xmlparser.Parser;
2691: l_xml_node_list xmldom.DOMNodeList;
2692: l_xml_DATA_node_list xmldom.DOMNodeList;
2693: l_xml_node xmldom.DOMNode;
2694: l_xml_node_len NUMBER;
2695: dummy number;
2696: l_COL_NAME_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
2689: l_xml_doc xmldom.DOMDocument;
2690: l_xml_parser xmlparser.Parser;
2691: l_xml_node_list xmldom.DOMNodeList;
2692: l_xml_DATA_node_list xmldom.DOMNodeList;
2693: l_xml_node xmldom.DOMNode;
2694: l_xml_node_len NUMBER;
2695: dummy number;
2696: l_COL_NAME_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
2697: L_COL_VALUE_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
2703: L_NODE_NAME VARCHAR2(300);
2704: L_NODE_VALUE VARCHAR2(300);
2705: L_PIV_NAME VARCHAR2(300);
2706: L_DML_TYPE VARCHAR2(3);
2707: l_sec_node dbms_xmldom.domnode;
2708: L_SEC_LST DBMS_XMLDOM.DOMNODELIST;
2709: l_first_node dbms_xmldom.domnode;
2710: L_FIRST_LST DBMS_XMLDOM.DOMNODELIST;
2711: L_FIRST_LEN NUMBER;
2704: L_NODE_VALUE VARCHAR2(300);
2705: L_PIV_NAME VARCHAR2(300);
2706: L_DML_TYPE VARCHAR2(3);
2707: l_sec_node dbms_xmldom.domnode;
2708: L_SEC_LST DBMS_XMLDOM.DOMNODELIST;
2709: l_first_node dbms_xmldom.domnode;
2710: L_FIRST_LST DBMS_XMLDOM.DOMNODELIST;
2711: L_FIRST_LEN NUMBER;
2712: L_INQ_TABLE_NAME VARCHAR2(256);
2705: L_PIV_NAME VARCHAR2(300);
2706: L_DML_TYPE VARCHAR2(3);
2707: l_sec_node dbms_xmldom.domnode;
2708: L_SEC_LST DBMS_XMLDOM.DOMNODELIST;
2709: l_first_node dbms_xmldom.domnode;
2710: L_FIRST_LST DBMS_XMLDOM.DOMNODELIST;
2711: L_FIRST_LEN NUMBER;
2712: L_INQ_TABLE_NAME VARCHAR2(256);
2713: L_SYNC_USER_NAME VARCHAR2(500);
2706: L_DML_TYPE VARCHAR2(3);
2707: l_sec_node dbms_xmldom.domnode;
2708: L_SEC_LST DBMS_XMLDOM.DOMNODELIST;
2709: l_first_node dbms_xmldom.domnode;
2710: L_FIRST_LST DBMS_XMLDOM.DOMNODELIST;
2711: L_FIRST_LEN NUMBER;
2712: L_INQ_TABLE_NAME VARCHAR2(256);
2713: L_SYNC_USER_NAME VARCHAR2(500);
2714: L_RESP_ID NUMBER;
2754: xmlparser.parseClob(l_xml_parser, l_xml_clob_payload);
2755: L_XML_DOC := XMLPARSER.GETDOCUMENT(L_XML_PARSER);
2756: xmlparser.freeParser(l_xml_parser);
2757:
2758: l_first_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV');
2759: l_first_len := dbms_xmldom.getLength(l_first_lst);
2760:
2761: l_sec_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV/DATA');
2762: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, 0)));
2755: L_XML_DOC := XMLPARSER.GETDOCUMENT(L_XML_PARSER);
2756: xmlparser.freeParser(l_xml_parser);
2757:
2758: l_first_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV');
2759: l_first_len := dbms_xmldom.getLength(l_first_lst);
2760:
2761: l_sec_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV/DATA');
2762: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, 0)));
2763:
2757:
2758: l_first_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV');
2759: l_first_len := dbms_xmldom.getLength(l_first_lst);
2760:
2761: l_sec_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV/DATA');
2762: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, 0)));
2763:
2764: IF l_df <> l_htm5_df THEN
2765: EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT='''||l_htm5_df||'''';
2758: l_first_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV');
2759: l_first_len := dbms_xmldom.getLength(l_first_lst);
2760:
2761: l_sec_lst := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(L_XML_DOC),'/SYNC_DATA/PIV/DATA');
2762: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, 0)));
2763:
2764: IF l_df <> l_htm5_df THEN
2765: EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT='''||l_htm5_df||'''';
2766: l_changed_df:=true;
2767: END If;
2768:
2769: -- loop through elements
2770: FOR I IN 0..l_first_len-1 LOOP
2771: l_first_node := xmldom.item(l_first_lst, i);
2772: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, i)));
2773: L_NODE_NAME := XMLDOM.GETNODENAME(L_FIRST_NODE);
2774:
2775: IF L_NODE_NAME = 'PIV' THEN
2768:
2769: -- loop through elements
2770: FOR I IN 0..l_first_len-1 LOOP
2771: l_first_node := xmldom.item(l_first_lst, i);
2772: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, i)));
2773: L_NODE_NAME := XMLDOM.GETNODENAME(L_FIRST_NODE);
2774:
2775: IF L_NODE_NAME = 'PIV' THEN
2776:
2769: -- loop through elements
2770: FOR I IN 0..l_first_len-1 LOOP
2771: l_first_node := xmldom.item(l_first_lst, i);
2772: l_sec_node := xmldom.makenode(xmldom.makeelement(xmldom.item(l_sec_lst, i)));
2773: L_NODE_NAME := XMLDOM.GETNODENAME(L_FIRST_NODE);
2774:
2775: IF L_NODE_NAME = 'PIV' THEN
2776:
2777: dbms_xslprocessor.valueOf(l_first_node,'PIV_NAME/text()',L_PIV_NAME);
2780:
2781: END IF;
2782:
2783: part_xml := ' ';
2784: dbms_xmldom.writetoclob(l_sec_node, part_xml);
2785:
2786: part_xml := REPLACE (part_xml,'','' || '
2787: part_xml := REPLACE (part_xml,'
2788: