190: ,p_gen_file IN VARCHAR2
191: ,p_report_end_dt IN DATE
192: ,p_sub_agency_subelement IN VARCHAR2)
193: IS
194: p_xml_fp UTL_FILE.FILE_TYPE;
195: p_ascii_fp UTL_FILE.FILE_TYPE;
196: l_audit_log_dir varchar2(500);
197: l_xml_file_name varchar2(500);
198: l_ascii_file_name varchar2(500);
191: ,p_report_end_dt IN DATE
192: ,p_sub_agency_subelement IN VARCHAR2)
193: IS
194: p_xml_fp UTL_FILE.FILE_TYPE;
195: p_ascii_fp UTL_FILE.FILE_TYPE;
196: l_audit_log_dir varchar2(500);
197: l_xml_file_name varchar2(500);
198: l_ascii_file_name varchar2(500);
199: l_output_xml_fname varchar2(500);
215: CURSOR c_get_dir
216: IS
217: SELECT value
218: FROM V$PARAMETER
219: WHERE NAME = 'utl_file_dir';
220:
221: BEGIN
222: -- Assigning the File name.
223: l_xml_file_name := p_input_file_name || '.xml';
246: l_output_ascii_fname := l_audit_log_dir || '\' || l_ascii_file_name;
247: END IF;
248:
249: IF p_gen_file = 'XML' THEN
250: p_xml_fp := utl_file.fopen(l_audit_log_dir,l_xml_file_name,'w',32767);
251: utl_file.put_line(p_xml_fp,'');
252: -- Writing from and to dates
253: utl_file.put_line(p_xml_fp,'
254: -- Loop through cursor and write the values into the XML and ASCII File.
247: END IF;
248:
249: IF p_gen_file = 'XML' THEN
250: p_xml_fp := utl_file.fopen(l_audit_log_dir,l_xml_file_name,'w',32767);
251: utl_file.put_line(p_xml_fp,'');
252: -- Writing from and to dates
253: utl_file.put_line(p_xml_fp,'
254: -- Loop through cursor and write the values into the XML and ASCII File.
255: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
249: IF p_gen_file = 'XML' THEN
250: p_xml_fp := utl_file.fopen(l_audit_log_dir,l_xml_file_name,'w',32767);
251: utl_file.put_line(p_xml_fp,'');
252: -- Writing from and to dates
253: utl_file.put_line(p_xml_fp,'
255: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
256: WriteTagValues(ctr_table,v_tags,p_report_end_dt,p_sub_agency_subelement);
257: utl_file.put_line(p_xml_fp,'
253: utl_file.put_line(p_xml_fp,'
254: -- Loop through cursor and write the values into the XML and ASCII File.
255: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
256: WriteTagValues(ctr_table,v_tags,p_report_end_dt,p_sub_agency_subelement);
257: utl_file.put_line(p_xml_fp,'
259: utl_file.put_line(p_xml_fp,'');
260: IF l_count = 1 THEN
261: WriteHeaderRow(p_ascii_fp,v_tags,p_gen_file);
255: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
256: WriteTagValues(ctr_table,v_tags,p_report_end_dt,p_sub_agency_subelement);
257: utl_file.put_line(p_xml_fp,'
258: WriteXMLvalues(p_xml_fp,v_tags);
259: utl_file.put_line(p_xml_fp,'
260: IF l_count = 1 THEN
261: WriteHeaderRow(p_ascii_fp,v_tags,p_gen_file);
262: END IF;
263: WriteAsciivalues(p_ascii_fp,v_tags,p_gen_file);
262: END IF;
263: WriteAsciivalues(p_ascii_fp,v_tags,p_gen_file);
264: l_count := l_count + 1;
265: END LOOP;
266: utl_file.put_line(p_xml_fp,'');
267: utl_file.fclose(p_xml_fp);
268: ELSE
269: p_ascii_fp := utl_file.fopen(l_audit_log_dir,l_ascii_file_name,'w',32767);
270: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
263: WriteAsciivalues(p_ascii_fp,v_tags,p_gen_file);
264: l_count := l_count + 1;
265: END LOOP;
266: utl_file.put_line(p_xml_fp,'');
267: utl_file.fclose(p_xml_fp);
268: ELSE
269: p_ascii_fp := utl_file.fopen(l_audit_log_dir,l_ascii_file_name,'w',32767);
270: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
271: WriteTagValues(ctr_table,v_tags,p_report_end_dt,p_sub_agency_subelement);
265: END LOOP;
266: utl_file.put_line(p_xml_fp,'');
267: utl_file.fclose(p_xml_fp);
268: ELSE
269: p_ascii_fp := utl_file.fopen(l_audit_log_dir,l_ascii_file_name,'w',32767);
270: FOR ctr_table IN c_eeoc_dynamics(l_session_id) LOOP
271: WriteTagValues(ctr_table,v_tags,p_report_end_dt,p_sub_agency_subelement);
272: IF l_count = 1 THEN
273: WriteHeaderRow(p_ascii_fp,v_tags,p_gen_file);
362:
363: -----------------------------------------------------------------------------
364: -- Writing the records from PL/SQL table p_tags into XML File
365: -----------------------------------------------------------------------------
366: PROCEDURE WriteXMLvalues(p_l_fp utl_file.file_type,
367: p_tags t_tags)
368: IS
369: BEGIN
370: FOR l_tags IN p_tags.FIRST .. p_tags.LAST
368: IS
369: BEGIN
370: FOR l_tags IN p_tags.FIRST .. p_tags.LAST
371: LOOP
372: utl_file.put_line(p_l_fp,'<' || p_tags(l_tags).tagname || '>' || p_tags(l_tags).tagvalue || '');
373: END LOOP;
374: END WriteXMLvalues;
375:
376: -----------------------------------------------------------------------------
375:
376: -----------------------------------------------------------------------------
377: -- Writing the records from PL/SQL table p_tags into Text and FND Output File
378: -----------------------------------------------------------------------------
379: PROCEDURE WriteAsciivalues(p_l_fp utl_file.file_type,
380: p_tags t_tags,
381: p_gen_file IN VARCHAR2 )
382: IS
383: l_temp VARCHAR2(4000);
388: FOR l_tags IN p_tags.FIRST .. p_tags.LAST LOOP
389: IF l_tags = l_tot THEN
390: l_temp := p_tags(l_tags).tagvalue;
391: IF p_gen_file = 'TEXT' THEN
392: utl_file.put_line(p_l_fp,l_temp);
393: END IF;
394: fnd_file.put_line(fnd_file.output,l_temp);
395: ELSE
396: l_temp := p_tags(l_tags).tagvalue || '|';
394: fnd_file.put_line(fnd_file.output,l_temp);
395: ELSE
396: l_temp := p_tags(l_tags).tagvalue || '|';
397: IF p_gen_file = 'TEXT' THEN
398: utl_file.put(p_l_fp,l_temp);
399: END IF;
400: fnd_file.put(fnd_file.output,l_temp);
401: END IF;
402: END LOOP;
406:
407: ----------------------------------------------------------------------------
408: -- Writing the Header into FND Output file
409: -----------------------------------------------------------------------------
410: PROCEDURE WriteHeaderRow(p_l_fp UTL_FILE.FILE_TYPE,
411: p_tags T_TAGS,
412: p_gen_file IN VARCHAR2)
413: IS
414: l_tot NUMBER;
421: IF NOT(l_tags = l_tot) THEN
422: l_temp := l_temp||'|';
423: END IF;
424: IF p_gen_file = 'TEXT' THEN
425: utl_file.put(p_l_fp,l_temp);
426: END IF;
427:
428: fnd_file.put(fnd_file.output,l_temp);
429: END LOOP;
427:
428: fnd_file.put(fnd_file.output,l_temp);
429: END LOOP;
430: IF p_gen_file = 'TEXT' THEN
431: utl_file.new_line(p_l_fp);
432: END IF;
433: fnd_file.new_line(fnd_file.output);
434: END;
435: