4933: l_log_procedure NUMBER;
4934: l_log_error NUMBER;
4935: l_log_unexpected NUMBER;
4936: l_api_name CONSTANT VARCHAR2(30) := 'parse_enigma_response';
4937: nl XMLDOM.DOMNODELIST;
4938: len1 NUMBER;
4939: len2 NUMBER;
4940: n XMLDOM.DOMNODE;
4941: e XMLDOM.DOMELEMENT;
4936: l_api_name CONSTANT VARCHAR2(30) := 'parse_enigma_response';
4937: nl XMLDOM.DOMNODELIST;
4938: len1 NUMBER;
4939: len2 NUMBER;
4940: n XMLDOM.DOMNODE;
4941: e XMLDOM.DOMELEMENT;
4942: l_parser DBMS_XMLPARSER.parser;
4943: l_indomdoc DBMS_XMLDOM.DOMDocument;
4944: l_pdf_rec PDF_REC_TYPE;
4937: nl XMLDOM.DOMNODELIST;
4938: len1 NUMBER;
4939: len2 NUMBER;
4940: n XMLDOM.DOMNODE;
4941: e XMLDOM.DOMELEMENT;
4942: l_parser DBMS_XMLPARSER.parser;
4943: l_indomdoc DBMS_XMLDOM.DOMDocument;
4944: l_pdf_rec PDF_REC_TYPE;
4945: l_index INTEGER;
4939: len2 NUMBER;
4940: n XMLDOM.DOMNODE;
4941: e XMLDOM.DOMELEMENT;
4942: l_parser DBMS_XMLPARSER.parser;
4943: l_indomdoc DBMS_XMLDOM.DOMDocument;
4944: l_pdf_rec PDF_REC_TYPE;
4945: l_index INTEGER;
4946: l_node_name VARCHAR2(2000);
4947: l_parse_jobcards BOOLEAN;
4959: -- fix for bug 9834092
4960: DBMS_XMLPARSER.parseClob(l_parser,p_enigma_response);
4961: l_indomdoc := DBMS_XMLPARSER.getDocument(l_parser);
4962: -- get all elements
4963: nl := XMLDOM.getElementsByTagName(l_indomdoc, '*');
4964: len1 := XMLDOM.getLength(nl);
4965: -- loop through elements
4966: l_index := 0;
4967: l_parse_jobcards := TRUE;
4960: DBMS_XMLPARSER.parseClob(l_parser,p_enigma_response);
4961: l_indomdoc := DBMS_XMLPARSER.getDocument(l_parser);
4962: -- get all elements
4963: nl := XMLDOM.getElementsByTagName(l_indomdoc, '*');
4964: len1 := XMLDOM.getLength(nl);
4965: -- loop through elements
4966: l_index := 0;
4967: l_parse_jobcards := TRUE;
4968: FOR j IN 0..len1-1
4966: l_index := 0;
4967: l_parse_jobcards := TRUE;
4968: FOR j IN 0..len1-1
4969: LOOP
4970: n := XMLDOM.item(nl, j);
4971: e := XMLDOM.makeElement(n);
4972: l_node_name := XMLDOM.getNodeName(n);
4973: l_node_name := SUBSTR(l_node_name,instr(l_node_name,':',1,1)+1 );
4974: -- dbms_output.put_line( 'parsed:' || l_node_name );
4967: l_parse_jobcards := TRUE;
4968: FOR j IN 0..len1-1
4969: LOOP
4970: n := XMLDOM.item(nl, j);
4971: e := XMLDOM.makeElement(n);
4972: l_node_name := XMLDOM.getNodeName(n);
4973: l_node_name := SUBSTR(l_node_name,instr(l_node_name,':',1,1)+1 );
4974: -- dbms_output.put_line( 'parsed:' || l_node_name );
4975: IF (l_node_name = 'woErrorMessage') THEN
4968: FOR j IN 0..len1-1
4969: LOOP
4970: n := XMLDOM.item(nl, j);
4971: e := XMLDOM.makeElement(n);
4972: l_node_name := XMLDOM.getNodeName(n);
4973: l_node_name := SUBSTR(l_node_name,instr(l_node_name,':',1,1)+1 );
4974: -- dbms_output.put_line( 'parsed:' || l_node_name );
4975: IF (l_node_name = 'woErrorMessage') THEN
4976: l_pdf_rec := NULL;
4976: l_pdf_rec := NULL;
4977: l_index := l_index+1;
4978: END IF;
4979: IF (l_node_name ='woErrorMessage')THEN
4980: l_pdf_rec.pdf_ErrorMessage := xmldom.getNodeValue(xmldom.getFirstChild(n));
4981: ELSIF (l_node_name ='woStatus')THEN
4982: l_pdf_rec.job_card_id := p_workpackage_id;
4983: l_pdf_rec.status := xmldom.getNodeValue(xmldom.getFirstChild(n));
4984: IF(l_pdf_rec.status NOT IN( 'Completed','Warning'))THEN
4979: IF (l_node_name ='woErrorMessage')THEN
4980: l_pdf_rec.pdf_ErrorMessage := xmldom.getNodeValue(xmldom.getFirstChild(n));
4981: ELSIF (l_node_name ='woStatus')THEN
4982: l_pdf_rec.job_card_id := p_workpackage_id;
4983: l_pdf_rec.status := xmldom.getNodeValue(xmldom.getFirstChild(n));
4984: IF(l_pdf_rec.status NOT IN( 'Completed','Warning'))THEN
4985: x_pdf_table(l_index) := l_pdf_rec;
4986: l_parse_jobcards := FALSE;
4987: END IF;
4994: END IF;
4995: -- parse job cards pdfs
4996: FOR j IN 0..len1-1
4997: LOOP
4998: n := XMLDOM.item(nl, j);
4999: e := XMLDOM.makeElement(n);
5000: l_node_name := XMLDOM.getNodeName(n);
5001: l_node_name := SUBSTR(l_node_name,instr(l_node_name,':',1,1)+1 );
5002: IF(l_node_name = 'pdfStatus') THEN
4995: -- parse job cards pdfs
4996: FOR j IN 0..len1-1
4997: LOOP
4998: n := XMLDOM.item(nl, j);
4999: e := XMLDOM.makeElement(n);
5000: l_node_name := XMLDOM.getNodeName(n);
5001: l_node_name := SUBSTR(l_node_name,instr(l_node_name,':',1,1)+1 );
5002: IF(l_node_name = 'pdfStatus') THEN
5003: l_pdf_rec := NULL;
4996: FOR j IN 0..len1-1
4997: LOOP
4998: n := XMLDOM.item(nl, j);
4999: e := XMLDOM.makeElement(n);
5000: l_node_name := XMLDOM.getNodeName(n);
5001: l_node_name := SUBSTR(l_node_name,instr(l_node_name,':',1,1)+1 );
5002: IF(l_node_name = 'pdfStatus') THEN
5003: l_pdf_rec := NULL;
5004: l_index := l_index+1;
5003: l_pdf_rec := NULL;
5004: l_index := l_index+1;
5005: END IF;
5006: IF(l_node_name = 'jobCardID') THEN
5007: l_pdf_rec.job_card_id := xmldom.getNodeValue(xmldom.getFirstChild(n));
5008: ELSIF(l_node_name ='pdfPath')THEN
5009: l_pdf_rec.pdf_path := xmldom.getNodeValue(xmldom.getFirstChild(n));
5010: ELSIF(l_node_name ='pdfErrorMessage')THEN
5011: l_pdf_rec.pdf_ErrorMessage := xmldom.getNodeValue(xmldom.getFirstChild(n));
5005: END IF;
5006: IF(l_node_name = 'jobCardID') THEN
5007: l_pdf_rec.job_card_id := xmldom.getNodeValue(xmldom.getFirstChild(n));
5008: ELSIF(l_node_name ='pdfPath')THEN
5009: l_pdf_rec.pdf_path := xmldom.getNodeValue(xmldom.getFirstChild(n));
5010: ELSIF(l_node_name ='pdfErrorMessage')THEN
5011: l_pdf_rec.pdf_ErrorMessage := xmldom.getNodeValue(xmldom.getFirstChild(n));
5012: ELSIF(l_node_name ='status')THEN
5013: l_pdf_rec.status := xmldom.getNodeValue(xmldom.getFirstChild(n));
5007: l_pdf_rec.job_card_id := xmldom.getNodeValue(xmldom.getFirstChild(n));
5008: ELSIF(l_node_name ='pdfPath')THEN
5009: l_pdf_rec.pdf_path := xmldom.getNodeValue(xmldom.getFirstChild(n));
5010: ELSIF(l_node_name ='pdfErrorMessage')THEN
5011: l_pdf_rec.pdf_ErrorMessage := xmldom.getNodeValue(xmldom.getFirstChild(n));
5012: ELSIF(l_node_name ='status')THEN
5013: l_pdf_rec.status := xmldom.getNodeValue(xmldom.getFirstChild(n));
5014: x_pdf_table(l_index) := l_pdf_rec;
5015: END IF;
5009: l_pdf_rec.pdf_path := xmldom.getNodeValue(xmldom.getFirstChild(n));
5010: ELSIF(l_node_name ='pdfErrorMessage')THEN
5011: l_pdf_rec.pdf_ErrorMessage := xmldom.getNodeValue(xmldom.getFirstChild(n));
5012: ELSIF(l_node_name ='status')THEN
5013: l_pdf_rec.status := xmldom.getNodeValue(xmldom.getFirstChild(n));
5014: x_pdf_table(l_index) := l_pdf_rec;
5015: END IF;
5016: END LOOP;
5017: DBMS_XMLDOM.freeDocument(l_indomdoc);
5013: l_pdf_rec.status := xmldom.getNodeValue(xmldom.getFirstChild(n));
5014: x_pdf_table(l_index) := l_pdf_rec;
5015: END IF;
5016: END LOOP;
5017: DBMS_XMLDOM.freeDocument(l_indomdoc);
5018: DBMS_XMLPARSER.freeParser(l_parser);
5019: END parse_enigma_response;
5020:
5021: PROCEDURE APPLY_TRANSFORMATION(
5028: x_msg_count OUT NOCOPY NUMBER,
5029: x_msg_data OUT NOCOPY VARCHAR2
5030: )IS
5031: l_parser DBMS_XMLPARSER.parser;
5032: l_indomdoc DBMS_XMLDOM.DOMDocument;
5033: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5034: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5035: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5036: l_outnode DBMS_XMLDOM.DOMNode;
5029: x_msg_data OUT NOCOPY VARCHAR2
5030: )IS
5031: l_parser DBMS_XMLPARSER.parser;
5032: l_indomdoc DBMS_XMLDOM.DOMDocument;
5033: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5034: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5035: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5036: l_outnode DBMS_XMLDOM.DOMNode;
5037: l_proc DBMS_XSLPROCESSOR.processor;
5031: l_parser DBMS_XMLPARSER.parser;
5032: l_indomdoc DBMS_XMLDOM.DOMDocument;
5033: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5034: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5035: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5036: l_outnode DBMS_XMLDOM.DOMNode;
5037: l_proc DBMS_XSLPROCESSOR.processor;
5038: l_clob CLOB;
5039: l_clob_file CLOB;
5032: l_indomdoc DBMS_XMLDOM.DOMDocument;
5033: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5034: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5035: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5036: l_outnode DBMS_XMLDOM.DOMNode;
5037: l_proc DBMS_XSLPROCESSOR.processor;
5038: l_clob CLOB;
5039: l_clob_file CLOB;
5040: l_vchar_header VARCHAR2(40);
5073: DBMS_XSLPROCESSOR.CLOB2FILE(l_clob_file,p_xml_output_dir,p_xml_output_filename);
5074:
5075: DBMS_LOB.close(l_clob_file);
5076: DBMS_LOB.close(l_clob);
5077: DBMS_XMLDOM.freeDocument(l_indomdoc);
5078: DBMS_XMLDOM.freeDocument(l_xsltdomdoc);
5079: DBMS_XMLPARSER.freeParser(l_parser);
5080: DBMS_XSLPROCESSOR.freeProcessor(l_proc);
5081: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
5074:
5075: DBMS_LOB.close(l_clob_file);
5076: DBMS_LOB.close(l_clob);
5077: DBMS_XMLDOM.freeDocument(l_indomdoc);
5078: DBMS_XMLDOM.freeDocument(l_xsltdomdoc);
5079: DBMS_XMLPARSER.freeParser(l_parser);
5080: DBMS_XSLPROCESSOR.freeProcessor(l_proc);
5081: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
5082: fnd_log.string (
5103: x_msg_count OUT NOCOPY NUMBER,
5104: x_msg_data OUT NOCOPY VARCHAR2
5105: )IS
5106: l_parser DBMS_XMLPARSER.parser;
5107: l_indomdoc DBMS_XMLDOM.DOMDocument;
5108: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5109: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5110: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5111: l_outnode DBMS_XMLDOM.DOMNode;
5104: x_msg_data OUT NOCOPY VARCHAR2
5105: )IS
5106: l_parser DBMS_XMLPARSER.parser;
5107: l_indomdoc DBMS_XMLDOM.DOMDocument;
5108: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5109: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5110: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5111: l_outnode DBMS_XMLDOM.DOMNode;
5112: l_proc DBMS_XSLPROCESSOR.processor;
5106: l_parser DBMS_XMLPARSER.parser;
5107: l_indomdoc DBMS_XMLDOM.DOMDocument;
5108: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5109: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5110: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5111: l_outnode DBMS_XMLDOM.DOMNode;
5112: l_proc DBMS_XSLPROCESSOR.processor;
5113: l_clob CLOB;
5114: l_clob_file CLOB;
5107: l_indomdoc DBMS_XMLDOM.DOMDocument;
5108: l_xsltdomdoc DBMS_XMLDOM.DOMDocument;
5109: l_xsl DBMS_XSLPROCESSOR.stylesheet;
5110: l_outdomdocf DBMS_XMLDOM.DOMDocumentFragment;
5111: l_outnode DBMS_XMLDOM.DOMNode;
5112: l_proc DBMS_XSLPROCESSOR.processor;
5113: l_clob CLOB;
5114: l_clob_file CLOB;
5115: l_vchar_header VARCHAR2(40);
5148: DBMS_XSLPROCESSOR.CLOB2FILE(l_clob_file,p_xml_output_dir,p_xml_output_filename);
5149:
5150: DBMS_LOB.close(l_clob_file);
5151: DBMS_LOB.close(l_clob);
5152: DBMS_XMLDOM.freeDocument(l_indomdoc);
5153: DBMS_XMLDOM.freeDocument(l_xsltdomdoc);
5154: DBMS_XMLPARSER.freeParser(l_parser);
5155: DBMS_XSLPROCESSOR.freeProcessor(l_proc);
5156: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
5149:
5150: DBMS_LOB.close(l_clob_file);
5151: DBMS_LOB.close(l_clob);
5152: DBMS_XMLDOM.freeDocument(l_indomdoc);
5153: DBMS_XMLDOM.freeDocument(l_xsltdomdoc);
5154: DBMS_XMLPARSER.freeParser(l_parser);
5155: DBMS_XSLPROCESSOR.freeProcessor(l_proc);
5156: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
5157: fnd_log.string (