3:
4: g_pkg_name CONSTANT VARCHAR2(30) := 'JTF_FM_INT_REQUEST_PKG';
5: g_file_name CONSTANT VARCHAR2(12) := 'bb.pls';
6:
7: nodes xmldom.DOMNodeList;
8: one_node xmldom.DOMNode;
9: node_map xmldom.DOMNamedNodeMap;
10: l_no_of_bind NUMBER;
11: l_request_id NUMBER;
4: g_pkg_name CONSTANT VARCHAR2(30) := 'JTF_FM_INT_REQUEST_PKG';
5: g_file_name CONSTANT VARCHAR2(12) := 'bb.pls';
6:
7: nodes xmldom.DOMNodeList;
8: one_node xmldom.DOMNode;
9: node_map xmldom.DOMNamedNodeMap;
10: l_no_of_bind NUMBER;
11: l_request_id NUMBER;
12: var BLOB;
5: g_file_name CONSTANT VARCHAR2(12) := 'bb.pls';
6:
7: nodes xmldom.DOMNodeList;
8: one_node xmldom.DOMNode;
9: node_map xmldom.DOMNamedNodeMap;
10: l_no_of_bind NUMBER;
11: l_request_id NUMBER;
12: var BLOB;
13: l_count NUMBER;
22: l_cursor NUMBER;
23: l_col_cnt NUMBER;
24: l_rec_tab DBMS_SQL.desc_tab;
25: l_parser xmlparser.parser;
26: l_doc xmldom.domdocument;
27: nl xmldom.DOMNodeList;
28: len1 NUMBER;
29: len2 NUMBER;
30: n xmldom.DOMNode;
23: l_col_cnt NUMBER;
24: l_rec_tab DBMS_SQL.desc_tab;
25: l_parser xmlparser.parser;
26: l_doc xmldom.domdocument;
27: nl xmldom.DOMNodeList;
28: len1 NUMBER;
29: len2 NUMBER;
30: n xmldom.DOMNode;
31: n1 xmldom.DOMNode;
26: l_doc xmldom.domdocument;
27: nl xmldom.DOMNodeList;
28: len1 NUMBER;
29: len2 NUMBER;
30: n xmldom.DOMNode;
31: n1 xmldom.DOMNode;
32: e xmldom.DOMElement;
33:
34: /*****************************************************************************
27: nl xmldom.DOMNodeList;
28: len1 NUMBER;
29: len2 NUMBER;
30: n xmldom.DOMNode;
31: n1 xmldom.DOMNode;
32: e xmldom.DOMElement;
33:
34: /*****************************************************************************
35: Forward declaration of private objects starts
28: len1 NUMBER;
29: len2 NUMBER;
30: n xmldom.DOMNode;
31: n1 xmldom.DOMNode;
32: e xmldom.DOMElement;
33:
34: /*****************************************************************************
35: Forward declaration of private objects starts
36: ******************************************************************************/
153: | |
154: | Purpose : Displays the first XML Element for a given node |
155: | |
156: *---------------------------------------------------------------------------------*/
157: PROCEDURE display_element (node IN xmldom.DOMNode )
158: IS
159: one_element xmldom.DOMElement;
160: value_node xmldom.DOMNode;
161: BEGIN
155: | |
156: *---------------------------------------------------------------------------------*/
157: PROCEDURE display_element (node IN xmldom.DOMNode )
158: IS
159: one_element xmldom.DOMElement;
160: value_node xmldom.DOMNode;
161: BEGIN
162: one_element := xmldom.makeElement (node);
163: value_node := xmldom.getFirstChild (node);
156: *---------------------------------------------------------------------------------*/
157: PROCEDURE display_element (node IN xmldom.DOMNode )
158: IS
159: one_element xmldom.DOMElement;
160: value_node xmldom.DOMNode;
161: BEGIN
162: one_element := xmldom.makeElement (node);
163: value_node := xmldom.getFirstChild (node);
164: END display_element ;
158: IS
159: one_element xmldom.DOMElement;
160: value_node xmldom.DOMNode;
161: BEGIN
162: one_element := xmldom.makeElement (node);
163: value_node := xmldom.getFirstChild (node);
164: END display_element ;
165:
166: /*---------------------------------------------------------------------------------*
159: one_element xmldom.DOMElement;
160: value_node xmldom.DOMNode;
161: BEGIN
162: one_element := xmldom.makeElement (node);
163: value_node := xmldom.getFirstChild (node);
164: END display_element ;
165:
166: /*---------------------------------------------------------------------------------*
167: | Procedure Name : GET_ELEMENT |
168: | |
169: | Purpose : Displays the elements for a given node |
170: | |
171: *---------------------------------------------------------------------------------*/
172: PROCEDURE get_element ( node IN xmldom.DOMNode
173: , value_node_value OUT NOCOPY VARCHAR2)
174: IS
175: one_element xmldom.DOMElement;
176: value_node xmldom.DOMNode;
171: *---------------------------------------------------------------------------------*/
172: PROCEDURE get_element ( node IN xmldom.DOMNode
173: , value_node_value OUT NOCOPY VARCHAR2)
174: IS
175: one_element xmldom.DOMElement;
176: value_node xmldom.DOMNode;
177: BEGIN
178: one_element := xmldom.makeElement (node);
179: value_node := xmldom.getFirstChild (node);
172: PROCEDURE get_element ( node IN xmldom.DOMNode
173: , value_node_value OUT NOCOPY VARCHAR2)
174: IS
175: one_element xmldom.DOMElement;
176: value_node xmldom.DOMNode;
177: BEGIN
178: one_element := xmldom.makeElement (node);
179: value_node := xmldom.getFirstChild (node);
180: value_node_value := xmldom.getNodeValue (value_node);
174: IS
175: one_element xmldom.DOMElement;
176: value_node xmldom.DOMNode;
177: BEGIN
178: one_element := xmldom.makeElement (node);
179: value_node := xmldom.getFirstChild (node);
180: value_node_value := xmldom.getNodeValue (value_node);
181: END get_element ;
182:
175: one_element xmldom.DOMElement;
176: value_node xmldom.DOMNode;
177: BEGIN
178: one_element := xmldom.makeElement (node);
179: value_node := xmldom.getFirstChild (node);
180: value_node_value := xmldom.getNodeValue (value_node);
181: END get_element ;
182:
183: /*---------------------------------------------------------------------------------*
176: value_node xmldom.DOMNode;
177: BEGIN
178: one_element := xmldom.makeElement (node);
179: value_node := xmldom.getFirstChild (node);
180: value_node_value := xmldom.getNodeValue (value_node);
181: END get_element ;
182:
183: /*---------------------------------------------------------------------------------*
184: | Procedure Name : DISPLAY_ATTRIBUTE |
185: | |
186: | Purpose : Displays attributes for a given node |
187: | |
188: *---------------------------------------------------------------------------------*/
189: PROCEDURE display_attribute ( node_map IN xmldom.DOMNamedNodeMap,
190: attr_index IN PLS_INTEGER )
191: IS
192: one_node xmldom.DOMNode;
193: attrname VARCHAR2(100);
188: *---------------------------------------------------------------------------------*/
189: PROCEDURE display_attribute ( node_map IN xmldom.DOMNamedNodeMap,
190: attr_index IN PLS_INTEGER )
191: IS
192: one_node xmldom.DOMNode;
193: attrname VARCHAR2(100);
194: attrval VARCHAR2(100);
195: BEGIN
196: one_node := xmldom.item (node_map, attr_index);
192: one_node xmldom.DOMNode;
193: attrname VARCHAR2(100);
194: attrval VARCHAR2(100);
195: BEGIN
196: one_node := xmldom.item (node_map, attr_index);
197: attrname := xmldom.getNodeName (one_node);
198: attrval := xmldom.getNodeValue (one_node);
199: END display_attribute ;
200:
193: attrname VARCHAR2(100);
194: attrval VARCHAR2(100);
195: BEGIN
196: one_node := xmldom.item (node_map, attr_index);
197: attrname := xmldom.getNodeName (one_node);
198: attrval := xmldom.getNodeValue (one_node);
199: END display_attribute ;
200:
201: /*---------------------------------------------------------------------------------*
194: attrval VARCHAR2(100);
195: BEGIN
196: one_node := xmldom.item (node_map, attr_index);
197: attrname := xmldom.getNodeName (one_node);
198: attrval := xmldom.getNodeValue (one_node);
199: END display_attribute ;
200:
201: /*---------------------------------------------------------------------------------*
202: | Procedure Name : GET_ATTRIBUTE |
203: | |
204: | Purpose : Gets the attribute for a given node map |
205: | |
206: *---------------------------------------------------------------------------------*/
207: PROCEDURE get_attribute ( node_map IN xmldom.DOMNamedNodeMap
208: , attr_index IN PLS_INTEGER
209: , node_item IN VARCHAR2
210: , node_value OUT NOCOPY VARCHAR2
211: ) IS
208: , attr_index IN PLS_INTEGER
209: , node_item IN VARCHAR2
210: , node_value OUT NOCOPY VARCHAR2
211: ) IS
212: one_node xmldom.DOMNode;
213: attrname VARCHAR2 (100);
214: attrval VARCHAR2 (100);
215: BEGIN
216: one_node := xmldom.item (node_map, attr_index);
212: one_node xmldom.DOMNode;
213: attrname VARCHAR2 (100);
214: attrval VARCHAR2 (100);
215: BEGIN
216: one_node := xmldom.item (node_map, attr_index);
217: attrname := xmldom.getNodeName (one_node);
218: attrval := xmldom.getNodeValue (one_node);
219:
220: IF attrname = node_item
213: attrname VARCHAR2 (100);
214: attrval VARCHAR2 (100);
215: BEGIN
216: one_node := xmldom.item (node_map, attr_index);
217: attrname := xmldom.getNodeName (one_node);
218: attrval := xmldom.getNodeValue (one_node);
219:
220: IF attrname = node_item
221: THEN
214: attrval VARCHAR2 (100);
215: BEGIN
216: one_node := xmldom.item (node_map, attr_index);
217: attrname := xmldom.getNodeName (one_node);
218: attrval := xmldom.getNodeValue (one_node);
219:
220: IF attrname = node_item
221: THEN
222: node_value := attrval;
228: | |
229: | Purpose : Gets the attribute value for a given node map. |
230: | |
231: *---------------------------------------------------------------------------------*/
232: PROCEDURE get_attributec ( node_map IN xmldom.DOMNamedNodeMap
233: , attr_index IN PLS_INTEGER
234: , node_item IN VARCHAR2
235: , node_value OUT NOCOPY VARCHAR2
236: ) IS
233: , attr_index IN PLS_INTEGER
234: , node_item IN VARCHAR2
235: , node_value OUT NOCOPY VARCHAR2
236: ) IS
237: one_node xmldom.DOMNode;
238: attrname VARCHAR2 (100);
239: attrval VARCHAR2 (100);
240: BEGIN
241: one_node := xmldom.item (node_map, attr_index);
237: one_node xmldom.DOMNode;
238: attrname VARCHAR2 (100);
239: attrval VARCHAR2 (100);
240: BEGIN
241: one_node := xmldom.item (node_map, attr_index);
242: attrname := xmldom.getNodeName (one_node);
243: attrval := xmldom.getNodeValue (one_node);
244:
245: IF attrname = node_item
238: attrname VARCHAR2 (100);
239: attrval VARCHAR2 (100);
240: BEGIN
241: one_node := xmldom.item (node_map, attr_index);
242: attrname := xmldom.getNodeName (one_node);
243: attrval := xmldom.getNodeValue (one_node);
244:
245: IF attrname = node_item
246: THEN
239: attrval VARCHAR2 (100);
240: BEGIN
241: one_node := xmldom.item (node_map, attr_index);
242: attrname := xmldom.getNodeName (one_node);
243: attrval := xmldom.getNodeValue (one_node);
244:
245: IF attrname = node_item
246: THEN
247: node_value := attrval;
326: xmlparser.parseBuffer(l_parser, l_buffer);
327: l_doc := xmlparser.getdocument(l_parser);
328:
329: -- get bind var elements
330: nodes := xmldom.getElementsByTagName(l_doc,'bind_var');
331:
332: -- loop through elements
333: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
334: LOOP
329: -- get bind var elements
330: nodes := xmldom.getElementsByTagName(l_doc,'bind_var');
331:
332: -- loop through elements
333: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
334: LOOP
335: one_node := xmldom.item (nodes, node_index);
336:
337: IF (xmldom.getNodeName(one_node) = 'bind_var' )
331:
332: -- loop through elements
333: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
334: LOOP
335: one_node := xmldom.item (nodes, node_index);
336:
337: IF (xmldom.getNodeName(one_node) = 'bind_var' )
338: THEN
339: get_element (one_node, l_bind_variable );
333: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
334: LOOP
335: one_node := xmldom.item (nodes, node_index);
336:
337: IF (xmldom.getNodeName(one_node) = 'bind_var' )
338: THEN
339: get_element (one_node, l_bind_variable );
340: node_map := xmldom.getAttributes (one_node);
341: l_bind_value.extend();
336:
337: IF (xmldom.getNodeName(one_node) = 'bind_var' )
338: THEN
339: get_element (one_node, l_bind_variable );
340: node_map := xmldom.getAttributes (one_node);
341: l_bind_value.extend();
342: l_bind_value(node_index + 1) := l_bind_variable;
343:
344: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
340: node_map := xmldom.getAttributes (one_node);
341: l_bind_value.extend();
342: l_bind_value(node_index + 1) := l_bind_variable;
343:
344: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
345: LOOP
346: get_attributec (node_map, attr_index,'bind_object',l_bind_object);
347: IF (l_bind_object IS NOT NULL)
348: THEN
352: END LOOP;
353: END IF;
354: END LOOP;
355:
356: nodes := xmldom.getElementsByTagName(l_doc,'file');
357:
358: -- loop through elements
359: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
360: LOOP
355:
356: nodes := xmldom.getElementsByTagName(l_doc,'file');
357:
358: -- loop through elements
359: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
360: LOOP
361: one_node := xmldom.item (nodes, node_index);
362: -- display_element (one_node);
363: node_map := xmldom.getAttributes (one_node);
357:
358: -- loop through elements
359: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
360: LOOP
361: one_node := xmldom.item (nodes, node_index);
362: -- display_element (one_node);
363: node_map := xmldom.getAttributes (one_node);
364:
365: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
359: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
360: LOOP
361: one_node := xmldom.item (nodes, node_index);
362: -- display_element (one_node);
363: node_map := xmldom.getAttributes (one_node);
364:
365: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
366: LOOP
367: --display_attribute (node_map, attr_index);
361: one_node := xmldom.item (nodes, node_index);
362: -- display_element (one_node);
363: node_map := xmldom.getAttributes (one_node);
364:
365: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
366: LOOP
367: --display_attribute (node_map, attr_index);
368: get_attribute (node_map, attr_index,'query_id',l_temp_query_id);
369:
374: END IF;
375: END LOOP;
376: END LOOP;
377:
378: nodes := xmldom.getElementsByTagName(l_doc,'ffm_request');
379:
380: -- loop through elements
381: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
382: LOOP
377:
378: nodes := xmldom.getElementsByTagName(l_doc,'ffm_request');
379:
380: -- loop through elements
381: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
382: LOOP
383: one_node := xmldom.item (nodes, node_index);
384:
385: -- display_element (one_node);
379:
380: -- loop through elements
381: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
382: LOOP
383: one_node := xmldom.item (nodes, node_index);
384:
385: -- display_element (one_node);
386: node_map := xmldom.getAttributes (one_node);
387:
382: LOOP
383: one_node := xmldom.item (nodes, node_index);
384:
385: -- display_element (one_node);
386: node_map := xmldom.getAttributes (one_node);
387:
388: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
389: LOOP
390: --display_attribute (node_map, attr_index);
384:
385: -- display_element (one_node);
386: node_map := xmldom.getAttributes (one_node);
387:
388: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
389: LOOP
390: --display_attribute (node_map, attr_index);
391: get_attribute (node_map, attr_index,'email_body',l_email_body);
392:
396: END IF;
397: END LOOP;
398: END LOOP;
399:
400: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
401: LOOP
402: one_node := xmldom.item (nodes, node_index);
403:
404: -- display_element (one_node);
398: END LOOP;
399:
400: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
401: LOOP
402: one_node := xmldom.item (nodes, node_index);
403:
404: -- display_element (one_node);
405: node_map := xmldom.getAttributes (one_node);
406:
401: LOOP
402: one_node := xmldom.item (nodes, node_index);
403:
404: -- display_element (one_node);
405: node_map := xmldom.getAttributes (one_node);
406:
407: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
408: LOOP
409: --display_attribute (node_map, attr_index);
403:
404: -- display_element (one_node);
405: node_map := xmldom.getAttributes (one_node);
406:
407: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
408: LOOP
409: --display_attribute (node_map, attr_index);
410: get_attribute (node_map, attr_index,'subject',l_subject);
411:
415: END IF;
416: END LOOP;
417: END LOOP;
418:
419: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
420: LOOP
421: one_node := xmldom.item (nodes, node_index);
422:
423: -- display_element (one_node);
417: END LOOP;
418:
419: FOR node_index IN 0 .. xmldom.getLength (nodes) - 1
420: LOOP
421: one_node := xmldom.item (nodes, node_index);
422:
423: -- display_element (one_node);
424: node_map := xmldom.getAttributes (one_node);
425:
420: LOOP
421: one_node := xmldom.item (nodes, node_index);
422:
423: -- display_element (one_node);
424: node_map := xmldom.getAttributes (one_node);
425:
426: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
427: LOOP
428: -- display_attribute (node_map, attr_index);
422:
423: -- display_element (one_node);
424: node_map := xmldom.getAttributes (one_node);
425:
426: FOR attr_index IN 0 .. xmldom.getLength (node_map) - 1
427: LOOP
428: -- display_attribute (node_map, attr_index);
429: get_attribute (node_map, attr_index,'user_history',l_user_history);
430:
434: END IF;
435: END LOOP;
436: END LOOP;
437:
438: nodes := xmldom.getelementsbytagname(l_doc,'header_name');
439:
440: -- loop through elements
441: l_counter := 1;
442:
439:
440: -- loop through elements
441: l_counter := 1;
442:
443: FOR node_index IN 0 .. xmldom.getlength (nodes) - 1
444: LOOP
445: one_node := xmldom.item (nodes, node_index);
446:
447: --display_element (one_node);
441: l_counter := 1;
442:
443: FOR node_index IN 0 .. xmldom.getlength (nodes) - 1
444: LOOP
445: one_node := xmldom.item (nodes, node_index);
446:
447: --display_element (one_node);
448: l_header_name.extend();
449:
453: THEN
454: NULL;
455: END IF;
456:
457: node_map := xmldom.getattributes (one_node);
458: l_counter := l_counter +1 ;
459: END LOOP;
460:
461: nodes := xmldom.getelementsbytagname(l_doc,'header_value');
457: node_map := xmldom.getattributes (one_node);
458: l_counter := l_counter +1 ;
459: END LOOP;
460:
461: nodes := xmldom.getelementsbytagname(l_doc,'header_value');
462: l_counter := 1;
463:
464: FOR node_index IN 0 .. xmldom.getlength (nodes) - 1
465: LOOP
460:
461: nodes := xmldom.getelementsbytagname(l_doc,'header_value');
462: l_counter := 1;
463:
464: FOR node_index IN 0 .. xmldom.getlength (nodes) - 1
465: LOOP
466: one_node := xmldom.item (nodes, node_index);
467: l_header_value.extend();
468: get_element (one_node, l_header_value(l_counter));
462: l_counter := 1;
463:
464: FOR node_index IN 0 .. xmldom.getlength (nodes) - 1
465: LOOP
466: one_node := xmldom.item (nodes, node_index);
467: l_header_value.extend();
468: get_element (one_node, l_header_value(l_counter));
469:
470: IF l_header_name(l_counter) IS NOT NULL
471: THEN
472: NULL;
473: END IF;
474:
475: node_map := xmldom.getattributes (one_node);
476: l_counter := l_counter +1 ;
477: END LOOP;
478:
479: SELECT file_data