[Home] [Help]
446: x_xml2 CLOB;
447:
448: -- XML parsing --
449: p xmlparser.parser;
450: doc1 xmldom.domdocument;
451: doc2 xmldom.domdocument;
452:
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
447:
448: -- XML parsing --
449: p xmlparser.parser;
450: doc1 xmldom.domdocument;
451: doc2 xmldom.domdocument;
452:
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
449: p xmlparser.parser;
450: doc1 xmldom.domdocument;
451: doc2 xmldom.domdocument;
452:
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
450: doc1 xmldom.domdocument;
451: doc2 xmldom.domdocument;
452:
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
458: node1 xmldom.domnode;
451: doc2 xmldom.domdocument;
452:
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
458: node1 xmldom.domnode;
459: node2 xmldom.domnode;
452:
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
458: node1 xmldom.domnode;
459: node2 xmldom.domnode;
460: l_id VARCHAR2(50);
453: root xmldom.domelement;
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
458: node1 xmldom.domnode;
459: node2 xmldom.domnode;
460: l_id VARCHAR2(50);
461: l_name VARCHAR2(50);
454: n_list_row1 xmldom.domnodelist;
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
458: node1 xmldom.domnode;
459: node2 xmldom.domnode;
460: l_id VARCHAR2(50);
461: l_name VARCHAR2(50);
462: -- XML parsing --
455: n_list_row2 xmldom.domnodelist;
456: n_list1 xmldom.domnodelist;
457: n_list2 xmldom.domnodelist;
458: node1 xmldom.domnode;
459: node2 xmldom.domnode;
460: l_id VARCHAR2(50);
461: l_name VARCHAR2(50);
462: -- XML parsing --
463:
575:
576: v_progress:='004';
577:
578: IF(x_xml1 IS NOT NULL) THEN
579: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
580: END IF;
581: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
582:
583: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
577:
578: IF(x_xml1 IS NOT NULL) THEN
579: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
580: END IF;
581: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
582:
583: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
584:
585: v_progress:='005';
579: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
580: END IF;
581: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
582:
583: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
584:
585: v_progress:='005';
586:
587: LOOP
585: v_progress:='005';
586:
587: LOOP
588: IF(x_xml1 IS NOT NULL) THEN
589: node1:= xmldom.item(n_list_row1,i1);
590: END IF;
591: node2:= xmldom.item(n_list_row2,i2);
592:
593: IF xmldom.isNULL(node1) THEN
587: LOOP
588: IF(x_xml1 IS NOT NULL) THEN
589: node1:= xmldom.item(n_list_row1,i1);
590: END IF;
591: node2:= xmldom.item(n_list_row2,i2);
592:
593: IF xmldom.isNULL(node1) THEN
594: n_list2:=xmldom.getChildNodes(node2);
595:
589: node1:= xmldom.item(n_list_row1,i1);
590: END IF;
591: node2:= xmldom.item(n_list_row2,i2);
592:
593: IF xmldom.isNULL(node1) THEN
594: n_list2:=xmldom.getChildNodes(node2);
595:
596: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
597: node2 := xmldom.item(n_list2,j);
590: END IF;
591: node2:= xmldom.item(n_list_row2,i2);
592:
593: IF xmldom.isNULL(node1) THEN
594: n_list2:=xmldom.getChildNodes(node2);
595:
596: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
597: node2 := xmldom.item(n_list2,j);
598:
592:
593: IF xmldom.isNULL(node1) THEN
594: n_list2:=xmldom.getChildNodes(node2);
595:
596: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
597: node2 := xmldom.item(n_list2,j);
598:
599: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
600: line_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
593: IF xmldom.isNULL(node1) THEN
594: n_list2:=xmldom.getChildNodes(node2);
595:
596: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
597: node2 := xmldom.item(n_list2,j);
598:
599: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
600: line_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
601: END IF;
595:
596: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
597: node2 := xmldom.item(n_list2,j);
598:
599: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
600: line_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
601: END IF;
602:
603: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
596: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
597: node2 := xmldom.item(n_list2,j);
598:
599: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
600: line_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
601: END IF;
602:
603: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
604: line_num_disp := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
599: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
600: line_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
601: END IF;
602:
603: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
604: line_num_disp := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
605: END IF;
606:
607: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
600: line_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
601: END IF;
602:
603: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
604: line_num_disp := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
605: END IF;
606:
607: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
608: dist_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
603: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
604: line_num_disp := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
605: END IF;
606:
607: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
608: dist_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
609: END IF;
610:
611: IF xmldom.getNodeName(node2) in ('ITEM_ID','LINE_ITEM_ID') THEN
604: line_num_disp := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
605: END IF;
606:
607: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
608: dist_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
609: END IF;
610:
611: IF xmldom.getNodeName(node2) in ('ITEM_ID','LINE_ITEM_ID') THEN
612: item_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
607: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
608: dist_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
609: END IF;
610:
611: IF xmldom.getNodeName(node2) in ('ITEM_ID','LINE_ITEM_ID') THEN
612: item_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
613: END IF;
614:
615:
608: dist_num := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
609: END IF;
610:
611: IF xmldom.getNodeName(node2) in ('ITEM_ID','LINE_ITEM_ID') THEN
612: item_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
613: END IF;
614:
615:
616:
650: END IF;
651:
652: ELSE
653:
654: n_list1:=xmldom.getChildNodes(node1);
655: n_list2:=xmldom.getChildNodes(node2);
656:
657: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
658:
651:
652: ELSE
653:
654: n_list1:=xmldom.getChildNodes(node1);
655: n_list2:=xmldom.getChildNodes(node2);
656:
657: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
658:
659:
653:
654: n_list1:=xmldom.getChildNodes(node1);
655: n_list2:=xmldom.getChildNodes(node2);
656:
657: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
658:
659:
660: node1 := xmldom.item(n_list1,j);
661: node2 := xmldom.item(n_list2,j);
656:
657: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
658:
659:
660: node1 := xmldom.item(n_list1,j);
661: node2 := xmldom.item(n_list2,j);
662:
663: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
664: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
657: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
658:
659:
660: node1 := xmldom.item(n_list1,j);
661: node2 := xmldom.item(n_list2,j);
662:
663: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
664: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
665:
659:
660: node1 := xmldom.item(n_list1,j);
661: node2 := xmldom.item(n_list2,j);
662:
663: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
664: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
665:
666:
667: IF xmldom.getNodeName(node2) = 'SEGMENT1' AND amend_num IS NULL THEN
660: node1 := xmldom.item(n_list1,j);
661: node2 := xmldom.item(n_list2,j);
662:
663: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
664: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
665:
666:
667: IF xmldom.getNodeName(node2) = 'SEGMENT1' AND amend_num IS NULL THEN
668: amend_num := node_val2;
663: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
664: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
665:
666:
667: IF xmldom.getNodeName(node2) = 'SEGMENT1' AND amend_num IS NULL THEN
668: amend_num := node_val2;
669: END IF;
670:
671:
668: amend_num := node_val2;
669: END IF;
670:
671:
672: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
673: line_num := node_val2;
674: old_line_num := node_val1;
675: END IF;
676:
673: line_num := node_val2;
674: old_line_num := node_val1;
675: END IF;
676:
677: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
678: line_num_disp := node_val2;
679: END IF;
680:
681: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
677: IF xmldom.getNodeName(node2) = 'LINE_NUM_DISPLAY' THEN
678: line_num_disp := node_val2;
679: END IF;
680:
681: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
682: dist_num := node_val2;
683: END IF;
684:
685: IF xmldom.getNodeName(node2) in ('ITEM_ID','LINE_ITEM_ID') THEN
681: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_NUM' THEN
682: dist_num := node_val2;
683: END IF;
684:
685: IF xmldom.getNodeName(node2) in ('ITEM_ID','LINE_ITEM_ID') THEN
686: item_id := node_val2;
687: END IF;
688:
689:
686: item_id := node_val2;
687: END IF;
688:
689:
690: IF line_num <> old_line_num AND p_level = 'DIST' AND xmldom.getNodeName(node1) NOT IN ('DISTRIBUTION_ID','LINE_NUM','LINE_NUM_DISPLAY') THEN
691: i1:=i1-1;
692:
693: po_num_tab(rec_index) := amend_num;
694: revision_num_tab(rec_index) := p_revision_num;
706: EXIT;
707: END IF;
708:
709:
710: IF xmldom.getNodeName(node1) in ('CANCEL_FLAG','LINE_CANCEL_FLAG') AND node_val1 <> node_val2 THEN
711:
712: IF p_level = 'HEADER' THEN
713:
714: po_num_tab(rec_index) := amend_num;
757: EXIT; -- Exit from the loop if Canceled
758:
759: END IF;
760:
761: IF xmldom.getNodeName(node1) = 'CLOSED_CODE' AND node_val1 <> node_val2 THEN
762:
763: IF p_level = 'HEADER' THEN
764:
765: po_num_tab(rec_index) := amend_num;
797: EXIT; -- Exit from the loop if Closed
798:
799: END IF;
800:
801: IF p_level = 'UDA_HEADER_ADDR' AND xmldom.getNodeName(node1) = 'C_EXT_ATTR39' THEN
802:
803: x_lookup_code := node_val1;
804:
805: BEGIN
817: END IF;
818:
819:
820: IF Nvl(node_val1,-999) <> Nvl(node_val2,-999)
821: AND xmldom.getNodeName(node1) NOT IN ('REQUISITION_HEADER_ID',
822: 'SEGMENT1',
823: 'REVISION_NUM',
824: 'REQUISITION_LINE_ID',
825: 'DISTRIBUTION_ID',
830:
831: IF p_level IN ('HEADER','UDA_HEADER','UDA_HEADER_ADDR') THEN
832:
833: -- UDA Doc Numbering attribute group
834: IF Nvl(instr(xmldom.getNodeName(node1), x_doc_number_attr_group_name),0) = 0 THEN
835:
836: po_num_tab(rec_index) := amend_num;
837: revision_num_tab(rec_index) := p_revision_num;
838: line_num_tab(rec_index) := NULL;
840: level_altered_tab(rec_index) := 'HEADER';
841: item_id_tab(rec_index) := item_id;
842: line_num_disp_tab(rec_index) := NULL;
843: IF p_level = 'UDA_HEADER' THEN
844: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
845: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
846: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
847: ELSIF p_level = 'UDA_HEADER_ADDR' THEN
848:
841: item_id_tab(rec_index) := item_id;
842: line_num_disp_tab(rec_index) := NULL;
843: IF p_level = 'UDA_HEADER' THEN
844: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
845: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
846: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
847: ELSIF p_level = 'UDA_HEADER_ADDR' THEN
848:
849:
842: line_num_disp_tab(rec_index) := NULL;
843: IF p_level = 'UDA_HEADER' THEN
844: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
845: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
846: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
847: ELSIF p_level = 'UDA_HEADER_ADDR' THEN
848:
849:
850: BEGIN
848:
849:
850: BEGIN
851:
852: x_database_column := xmldom.getNodeName(node1);
853:
854: SELECT attr_display_name
855: INTO x_attr_display_name
856: FROM ego_attrs_v
867:
868: x_addr_field_altered := x_address_type || ' ' || x_attr_display_name;
869:
870: field_altered_tab(rec_index) := x_addr_field_altered;
871: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
872: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
873: ELSE
874: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
875: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
868: x_addr_field_altered := x_address_type || ' ' || x_attr_display_name;
869:
870: field_altered_tab(rec_index) := x_addr_field_altered;
871: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
872: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
873: ELSE
874: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
875: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
876: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
870: field_altered_tab(rec_index) := x_addr_field_altered;
871: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
872: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
873: ELSE
874: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
875: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
876: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
877: END IF;
878:
871: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, NULL);
872: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
873: ELSE
874: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
875: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
876: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
877: END IF;
878:
879: rec_index := rec_index+1;
872: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, NULL);
873: ELSE
874: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
875: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
876: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
877: END IF;
878:
879: rec_index := rec_index+1;
880:
889: level_altered_tab(rec_index) := 'LINES';
890: item_id_tab(rec_index) := item_id;
891: line_num_disp_tab(rec_index) := line_num_disp;
892: IF p_level = 'UDA_LINES' THEN
893: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
894: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, line_num);
895: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, line_num);
896: ELSE
897: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
890: item_id_tab(rec_index) := item_id;
891: line_num_disp_tab(rec_index) := line_num_disp;
892: IF p_level = 'UDA_LINES' THEN
893: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
894: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, line_num);
895: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, line_num);
896: ELSE
897: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
898: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
891: line_num_disp_tab(rec_index) := line_num_disp;
892: IF p_level = 'UDA_LINES' THEN
893: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
894: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, line_num);
895: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, line_num);
896: ELSE
897: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
898: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
899: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
893: field_altered_tab(rec_index) := getUDAAttributeName(xmldom.getNodeName(node1));
894: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, line_num);
895: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, line_num);
896: ELSE
897: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
898: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
899: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
900: END IF;
901:
894: changes_from_tab(rec_index) := getUDAAttributeValue(node_val1, xmldom.getNodeName(node1), p_level, amend_num, line_num);
895: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, line_num);
896: ELSE
897: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
898: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
899: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
900: END IF;
901:
902: rec_index := rec_index+1;
895: changes_to_tab(rec_index) := getUDAAttributeValue(node_val2, xmldom.getNodeName(node1), p_level, amend_num, line_num);
896: ELSE
897: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
898: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
899: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
900: END IF;
901:
902: rec_index := rec_index+1;
903:
909: distribution_num_tab(rec_index) := dist_num;
910: level_altered_tab(rec_index) := p_level;
911: item_id_tab(rec_index) := item_id;
912: line_num_disp_tab(rec_index) := line_num_disp;
913: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
914: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
915: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
916:
917: rec_index := rec_index+1;
910: level_altered_tab(rec_index) := p_level;
911: item_id_tab(rec_index) := item_id;
912: line_num_disp_tab(rec_index) := line_num_disp;
913: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
914: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
915: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
916:
917: rec_index := rec_index+1;
918:
911: item_id_tab(rec_index) := item_id;
912: line_num_disp_tab(rec_index) := line_num_disp;
913: field_altered_tab(rec_index) := fnd_message.get_String('ICX','ICX_'||xmldom.getNodeName(node1));
914: changes_from_tab(rec_index) := map_id_to_num(node_val1,xmldom.getNodeName(node1));
915: changes_to_tab(rec_index) := map_id_to_num(node_val2,xmldom.getNodeName(node1));
916:
917: rec_index := rec_index+1;
918:
919: END IF;
927:
928: i2 := i2+1;
929: i1:=i1+1;
930:
931: EXIT WHEN i2=xmldom.getLength(n_list_row2);
932:
933: END LOOP;
934: END IF; -- If x_xml1 is NOT NULL
935:
1614: x_xml2 CLOB;
1615:
1616: -- XML parsing --
1617: p xmlparser.parser;
1618: doc1 xmldom.domdocument;
1619: doc2 xmldom.domdocument;
1620:
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1615:
1616: -- XML parsing --
1617: p xmlparser.parser;
1618: doc1 xmldom.domdocument;
1619: doc2 xmldom.domdocument;
1620:
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1617: p xmlparser.parser;
1618: doc1 xmldom.domdocument;
1619: doc2 xmldom.domdocument;
1620:
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1618: doc1 xmldom.domdocument;
1619: doc2 xmldom.domdocument;
1620:
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1626: node1 xmldom.domnode;
1619: doc2 xmldom.domdocument;
1620:
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1626: node1 xmldom.domnode;
1627: node2 xmldom.domnode;
1620:
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1626: node1 xmldom.domnode;
1627: node2 xmldom.domnode;
1628: l_id VARCHAR2(50);
1621: root xmldom.domelement;
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1626: node1 xmldom.domnode;
1627: node2 xmldom.domnode;
1628: l_id VARCHAR2(50);
1629: l_name VARCHAR2(50);
1622: n_list_row1 xmldom.domnodelist;
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1626: node1 xmldom.domnode;
1627: node2 xmldom.domnode;
1628: l_id VARCHAR2(50);
1629: l_name VARCHAR2(50);
1630: -- XML parsing --
1623: n_list_row2 xmldom.domnodelist;
1624: n_list1 xmldom.domnodelist;
1625: n_list2 xmldom.domnodelist;
1626: node1 xmldom.domnode;
1627: node2 xmldom.domnode;
1628: l_id VARCHAR2(50);
1629: l_name VARCHAR2(50);
1630: -- XML parsing --
1631:
1887:
1888: xmlparser.freeparser(p);
1889: v_progress:='004';
1890:
1891: --n_list_row1 := xmldom.getElementsByTagName(doc1,'ROWSET');
1892: -- n_list_row2 := xmldom.getElementsByTagName(doc2,'ROWSET');
1893:
1894: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
1895: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
1888: xmlparser.freeparser(p);
1889: v_progress:='004';
1890:
1891: --n_list_row1 := xmldom.getElementsByTagName(doc1,'ROWSET');
1892: -- n_list_row2 := xmldom.getElementsByTagName(doc2,'ROWSET');
1893:
1894: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
1895: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
1896:
1890:
1891: --n_list_row1 := xmldom.getElementsByTagName(doc1,'ROWSET');
1892: -- n_list_row2 := xmldom.getElementsByTagName(doc2,'ROWSET');
1893:
1894: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
1895: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
1896:
1897:
1898: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
1891: --n_list_row1 := xmldom.getElementsByTagName(doc1,'ROWSET');
1892: -- n_list_row2 := xmldom.getElementsByTagName(doc2,'ROWSET');
1893:
1894: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
1895: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
1896:
1897:
1898: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
1899:
1894: n_list_row1 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc1,'ROWSET'),0));
1895: n_list_row2 := xmldom.getChildNodes(xmldom.item(xmldom.getElementsByTagName(doc2,'ROWSET'),0));
1896:
1897:
1898: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
1899:
1900: LOOP
1901:
1902: node1:= xmldom.item(n_list_row1,i1);
1898: --FOR i IN 0 .. xmldom.getLength(n_list_row2)-1 LOOP
1899:
1900: LOOP
1901:
1902: node1:= xmldom.item(n_list_row1,i1);
1903: node2:= xmldom.item(n_list_row2,i2);
1904:
1905: --header_change:=FALSE;
1906: --line_change:=FALSE;
1899:
1900: LOOP
1901:
1902: node1:= xmldom.item(n_list_row1,i1);
1903: node2:= xmldom.item(n_list_row2,i2);
1904:
1905: --header_change:=FALSE;
1906: --line_change:=FALSE;
1907: --dist_change:=FALSE;
1909: change_flag:=FALSE;
1910: cancel_flag:=FALSE;
1911:
1912:
1913: IF xmldom.isNULL(node1) THEN
1914: n_list2:=xmldom.getChildNodes(node2);
1915:
1916: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
1917: node2 := xmldom.item(n_list2,j);
1910: cancel_flag:=FALSE;
1911:
1912:
1913: IF xmldom.isNULL(node1) THEN
1914: n_list2:=xmldom.getChildNodes(node2);
1915:
1916: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
1917: node2 := xmldom.item(n_list2,j);
1918:
1912:
1913: IF xmldom.isNULL(node1) THEN
1914: n_list2:=xmldom.getChildNodes(node2);
1915:
1916: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
1917: node2 := xmldom.item(n_list2,j);
1918:
1919: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1920: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1913: IF xmldom.isNULL(node1) THEN
1914: n_list2:=xmldom.getChildNodes(node2);
1915:
1916: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
1917: node2 := xmldom.item(n_list2,j);
1918:
1919: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1920: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1921: END IF;
1915:
1916: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
1917: node2 := xmldom.item(n_list2,j);
1918:
1919: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1920: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1921: END IF;
1922:
1923: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1916: FOR j IN 0 .. xmldom.getLength(n_list2)-1 LOOP
1917: node2 := xmldom.item(n_list2,j);
1918:
1919: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1920: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1921: END IF;
1922:
1923: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1924: line_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1919: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1920: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1921: END IF;
1922:
1923: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1924: line_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1925: END IF;
1926:
1927: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1920: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1921: END IF;
1922:
1923: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1924: line_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1925: END IF;
1926:
1927: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1928: dist_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1923: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1924: line_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1925: END IF;
1926:
1927: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1928: dist_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1929: END IF;
1930:
1931:
1924: line_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1925: END IF;
1926:
1927: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1928: dist_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1929: END IF;
1930:
1931:
1932:
1941: END IF;
1942:
1943: ELSE
1944:
1945: n_list1:=xmldom.getChildNodes(node1);
1946: n_list2:=xmldom.getChildNodes(node2);
1947:
1948: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
1949:
1942:
1943: ELSE
1944:
1945: n_list1:=xmldom.getChildNodes(node1);
1946: n_list2:=xmldom.getChildNodes(node2);
1947:
1948: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
1949:
1950:
1944:
1945: n_list1:=xmldom.getChildNodes(node1);
1946: n_list2:=xmldom.getChildNodes(node2);
1947:
1948: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
1949:
1950:
1951: node1 := xmldom.item(n_list1,j);
1952: node2 := xmldom.item(n_list2,j);
1947:
1948: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
1949:
1950:
1951: node1 := xmldom.item(n_list1,j);
1952: node2 := xmldom.item(n_list2,j);
1953:
1954: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
1955: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1948: FOR j IN 0 .. xmldom.getLength(n_list1)-1 LOOP
1949:
1950:
1951: node1 := xmldom.item(n_list1,j);
1952: node2 := xmldom.item(n_list2,j);
1953:
1954: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
1955: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1956:
1950:
1951: node1 := xmldom.item(n_list1,j);
1952: node2 := xmldom.item(n_list2,j);
1953:
1954: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
1955: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1956:
1957:
1958: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
1951: node1 := xmldom.item(n_list1,j);
1952: node2 := xmldom.item(n_list2,j);
1953:
1954: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
1955: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1956:
1957:
1958: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
1959: line_num := node_val2;
1954: node_val1 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node1), 0));
1955: node_val2 := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1956:
1957:
1958: IF xmldom.getNodeName(node2) = 'LINE_NUM' THEN
1959: line_num := node_val2;
1960: old_line_num := node_val1;
1961: END IF;
1962:
1959: line_num := node_val2;
1960: old_line_num := node_val1;
1961: END IF;
1962:
1963: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1964: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1965: END IF;
1966:
1967: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1960: old_line_num := node_val1;
1961: END IF;
1962:
1963: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1964: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1965: END IF;
1966:
1967: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1968: line_id := node_val2;
1963: IF xmldom.getNodeName(node2) = 'REQUISITION_HEADER_ID' THEN
1964: header_id := xmldom.getNodeValue(xmldom.item(xmldom.getChildNodes(node2), 0));
1965: END IF;
1966:
1967: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1968: line_id := node_val2;
1969: END IF;
1970:
1971: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1967: IF xmldom.getNodeName(node2) = 'REQUISITION_LINE_ID' THEN
1968: line_id := node_val2;
1969: END IF;
1970:
1971: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1972: dist_id := node_val2;
1973: END IF;
1974:
1975: IF xmldom.getNodeName(node1) = 'AMENDMENT_TYPE' THEN
1971: IF xmldom.getNodeName(node2) = 'DISTRIBUTION_ID' THEN
1972: dist_id := node_val2;
1973: END IF;
1974:
1975: IF xmldom.getNodeName(node1) = 'AMENDMENT_TYPE' THEN
1976: old_amend_type := node_val1;
1977:
1978: IF node_val1 <> node_val2 AND node_val2 = 'CANCELLED' THEN
1979: cancel_flag:=TRUE;
1982: END IF;
1983: END IF;
1984:
1985:
1986: IF line_num <> old_line_num AND p_level = 'DIST' AND xmldom.getNodeName(node1) NOT IN ('DISTRIBUTION_ID','LINE_NUM') THEN
1987: i1:=i1-1;
1988: change_flag:=TRUE;
1989: amend_type:='ADDED';
1990: EXIT;
1990: EXIT;
1991: END IF;
1992:
1993:
1994: IF xmldom.getNodeName(node1) in ('CANCEL_FLAG','LINE_CANCEL_FLAG') AND node_val1 <> node_val2 THEN
1995:
1996: cancel_flag:=TRUE;
1997: change_flag:=TRUE;
1998:
1999: EXIT; -- Exit from the loop if Canceled
2000:
2001: END IF;
2002:
2003: IF xmldom.getNodeName(node1) = 'CLOSED_CODE' AND node_val1 <> node_val2 THEN
2004:
2005: change_flag:=TRUE;
2006: amend_type:='CHANGED';
2007:
2010: END IF;
2011:
2012:
2013: IF Nvl(node_val1,-999) <> Nvl(node_val2,-999)
2014: AND xmldom.getNodeName(node1) NOT IN ('REQUISITION_HEADER_ID',
2015: 'SEGMENT1',
2016: 'REVISION_NUM',
2017: 'REQUISITION_LINE_ID',
2018: 'DISTRIBUTION_ID',
2163:
2164: i2 := i2+1;
2165: i1 := i1+1;
2166:
2167: EXIT WHEN i2=xmldom.getLength(n_list_row2);
2168:
2169: END LOOP;
2170:
2171: END IF; -- If x_xml1 is NOT NULL