168: rows_processed number;
169: statem varchar2(256);
170: begin
171: if g_debug then
172: hr_utility.trace('Entering pay_magtape_generic.curs_is_open');
173: end if;
174: statem := 'BEGIN IF '||cur_name||'%ISOPEN THEN '||
175: 'pay_magtape_generic.boolean_flag := TRUE; '||
176: 'ELSE pay_magtape_generic.boolean_flag := FALSE;'||
181: dbms_sql.v7);
182: rows_processed := dbms_sql.execute(sql_curs);
183: dbms_sql.close_cursor(sql_curs);
184: if g_debug then
185: hr_utility.trace('Exiting pay_magtape_generic.curs_is_open');
186: end if;
187: return boolean_flag;
188: end curs_is_open;
189:
195: rows_processed number;
196: statem varchar2(256);
197: begin
198: if g_debug then
199: hr_utility.trace('Entering pay_magtape_generic.curs_close');
200: end if;
201: statem := 'BEGIN CLOSE '||cur_name||'; '||'end;';
202: sql_curs := dbms_sql.open_cursor;
203: dbms_sql.parse(sql_curs,
205: dbms_sql.v7);
206: rows_processed := dbms_sql.execute(sql_curs);
207: dbms_sql.close_cursor(sql_curs);
208: if g_debug then
209: hr_utility.trace('Exiting pay_magtape_generic.curs_close');
210: end if;
211: end curs_close;
212:
213: /* Procedure - new_formula
233: function tab_is_open(sql_cur num_array, sql_pos number) return boolean is
234: res boolean;
235: begin
236: if g_debug then
237: hr_utility.trace('Entering pay_magtape_generic.tab_is_open' || sql_cur(sql_pos));
238: end if;
239: res := dbms_sql.is_open(sql_cur(sql_pos));
240: if g_debug then
241: hr_utility.trace('Exiting pay_magtape_generic.tab_is_open');
237: hr_utility.trace('Entering pay_magtape_generic.tab_is_open' || sql_cur(sql_pos));
238: end if;
239: res := dbms_sql.is_open(sql_cur(sql_pos));
240: if g_debug then
241: hr_utility.trace('Exiting pay_magtape_generic.tab_is_open');
242: end if;
243: return res;
244: exception
245: when NO_DATA_FOUND then
254: function first_run(pos number) return boolean is
255: res boolean;
256: begin
257: if g_debug then
258: hr_utility.trace('Entering pay_magtape_generic.first_run');
259: end if;
260: if first_run_flag(pos) = 1 then
261: first_run_flag(pos) := 0;
262: if g_debug then
259: end if;
260: if first_run_flag(pos) = 1 then
261: first_run_flag(pos) := 0;
262: if g_debug then
263: hr_utility.trace('Exiting pay_magtape_generic.first_run');
264: end if;
265: return FALSE;
266: else
267: first_run_flag(pos) := 1;
265: return FALSE;
266: else
267: first_run_flag(pos) := 1;
268: if g_debug then
269: hr_utility.trace('Exiting pay_magtape_generic.first_run');
270: end if;
271: return TRUE;
272: end if;
273: exception
273: exception
274: when NO_DATA_FOUND then
275: first_run_flag(pos) := 1;
276: if g_debug then
277: hr_utility.trace('Exiting pay_magtape_generic.first_run');
278: end if;
279: return TRUE;
280: end;
281: --
290: rows_processed number;
291: statem varchar2(256);
292: begin
293: if g_debug then
294: hr_utility.trace('Entering pay_magtape_generic.curs_no_data');
295: end if;
296: statem := 'BEGIN IF '||cur_name||'%FOUND THEN '||
297: 'pay_magtape_generic.boolean_flag := FALSE; '||
298: 'ELSE pay_magtape_generic.boolean_flag := TRUE;'||
303: dbms_sql.v7);
304: rows_processed := dbms_sql.execute(sql_curs);
305: dbms_sql.close_cursor(sql_curs);
306: if g_debug then
307: hr_utility.trace('Exiting pay_magtape_generic.curs_no_data');
308: end if;
309: return boolean_flag;
310: end curs_no_data;
311: --
317: rows_processed number;
318: statem varchar2(256);
319: begin
320: if g_debug then
321: hr_utility.trace('Entering pay_magtape_generic.curs_open');
322: end if;
323: statem := 'BEGIN OPEN '||cur_name||'; '||'end;';
324: sql_curs := dbms_sql.open_cursor;
325: dbms_sql.parse(sql_curs,
327: dbms_sql.v7);
328: rows_processed := dbms_sql.execute(sql_curs);
329: dbms_sql.close_cursor(sql_curs);
330: if g_debug then
331: hr_utility.trace('Exiting pay_magtape_generic.curs_open');
332: end if;
333: end curs_open;
334: --
335: /* Procedure - curs_fetch
347: arr_num number;
348: pkg_name varchar2(50);
349: begin
350: if g_debug then
351: hr_utility.trace('Entering pay_magtape_generic.curs_fetch');
352: end if;
353: cnt := 1;
354: --
355: -- Workaround for bug #297130
374: statem := statem||' pay_magtape_generic.ret_vals('||arr_num||')';
375: cnt := cnt + 1;
376: end loop;
377: statem := statem||'; END;';
378: hr_utility.trace(statem);
379: sql_curs := dbms_sql.open_cursor;
380: dbms_sql.parse(sql_curs,
381: statem,
382: dbms_sql.v7);
382: dbms_sql.v7);
383: rows_processed := dbms_sql.execute(sql_curs);
384: dbms_sql.close_cursor(sql_curs);
385: if g_debug then
386: hr_utility.trace('Exiting pay_magtape_generic.curs_fetch');
387: end if;
388: end curs_fetch;
389: --
390: --
396: function is_intermediate_required(level_no number) return boolean is
397: dummy char(1);
398: begin
399: if g_debug then
400: hr_utility.trace('Entering pay_magtape_generic.is_intermediate_required');
401: end if;
402: select 'M'
403: into dummy
404: from pay_magnetic_records pmr
406: and pmr.last_run_executed_mode in ('A', 'R', 'F');
407: --
408: return TRUE;
409: if g_debug then
410: hr_utility.trace('Exiting pay_magtape_generic.is_intermediate_required');
411: end if;
412: exception
413: when NO_DATA_FOUND then
414: if g_debug then
411: end if;
412: exception
413: when NO_DATA_FOUND then
414: if g_debug then
415: hr_utility.trace('Exiting pay_magtape_generic.is_intermediate_required');
416: end if;
417: return FALSE;
418: when TOO_MANY_ROWS then
419: if g_debug then
416: end if;
417: return FALSE;
418: when TOO_MANY_ROWS then
419: if g_debug then
420: hr_utility.trace('Exiting pay_magtape_generic.is_intermediate_required');
421: end if;
422: return TRUE;
423: end;
424: --
432: ignore number;
433: statem varchar2(256);
434: begin
435: if g_debug then
436: hr_utility.trace('Entering pay_magtape_generic.open_formula');
437: end if;
438: sql_cur := dbms_sql.open_cursor;
439: statem := 'select formula_id, next_block_id,'||
440: ' frequency, overflow_mode, '||
457: dbms_sql.define_column(sql_cur, 9, xml_proc_name,256);
458: dbms_sql.define_column(sql_cur, 10, rec_sequence);
459: ignore := dbms_sql.execute(sql_cur);
460: if g_debug then
461: hr_utility.trace('Exiting pay_magtape_generic.open_formula');
462: end if;
463: return sql_cur;
464: end open_formula;
465: --
471: function intermediate_needed return boolean is
472: found boolean;
473: begin
474: if g_debug then
475: hr_utility.trace('Entering pay_magtape_generic.intermediate_needed');
476: end if;
477: found := FALSE;
478: if formula_inter_repeat = 'A' then
479: found := TRUE;
488: end if;
489: end if;
490: end if;
491: if g_debug then
492: hr_utility.trace('Exiting pay_magtape_generic.intermediate_needed');
493: end if;
494: return found;
495: end;
496: --
505: ignore number;
506: statem varchar2(512);
507: begin
508: if g_debug then
509: hr_utility.trace('Entering pay_magtape_generic.intermediate_needed');
510: end if;
511: sql_cur := dbms_sql.open_cursor;
512: statem := 'select formula_id,next_block_id,'||
513: 'frequency,overflow_mode,'||
531: dbms_sql.define_column(sql_cur, 9, xml_proc_name, 256);
532: dbms_sql.define_column(sql_cur, 10, rec_sequence);
533: ignore := dbms_sql.execute(sql_cur);
534: if g_debug then
535: hr_utility.trace('Exiting pay_magtape_generic.intermediate_needed');
536: end if;
537: return sql_cur;
538: end open_inter_formula;
539: --
546: function run_overflow return boolean is
547: cnt number;
548: begin
549: if g_debug then
550: hr_utility.trace('Entering pay_magtape_generic.run_overflow');
551: end if;
552: cnt := 2;
553: while cnt <= pay_mag_tape.internal_prm_values(1) loop
554: if ((pay_mag_tape.internal_prm_names(cnt) = 'TRANSFER_RUN_OVERFLOW')
558: end if;
559: cnt := cnt + 1;
560: end loop;
561: if g_debug then
562: hr_utility.trace('Exiting pay_magtape_generic.run_overflow');
563: end if;
564: return FALSE;
565: exception
566: when NO_DATA_FOUND then
564: return FALSE;
565: exception
566: when NO_DATA_FOUND then
567: if g_debug then
568: hr_utility.trace('Exiting pay_magtape_generic.run_overflow');
569: end if;
570: return FALSE;
571: end run_overflow;
572: --
578: cnt number;
579: report_name varchar2(30);
580: begin
581: if g_debug then
582: hr_utility.trace('Entering pay_magtape_generic.set_report_id');
583: end if;
584: report_id := '0';
585: cnt := 1;
586: --
591: end if;
592: --
593: while cnt <= pay_mag_tape.internal_prm_values(1) loop
594: if pay_mag_tape.internal_prm_names(cnt) = report_name then
595: hr_utility.trace('Match');
596: report_id := pay_mag_tape.internal_prm_values(cnt);
597: hr_utility.trace('Set Value');
598: end if;
599: cnt := cnt + 1;
593: while cnt <= pay_mag_tape.internal_prm_values(1) loop
594: if pay_mag_tape.internal_prm_names(cnt) = report_name then
595: hr_utility.trace('Match');
596: report_id := pay_mag_tape.internal_prm_values(cnt);
597: hr_utility.trace('Set Value');
598: end if;
599: cnt := cnt + 1;
600: end loop;
601: if g_debug then
598: end if;
599: cnt := cnt + 1;
600: end loop;
601: if g_debug then
602: hr_utility.trace('Exiting pay_magtape_generic.set_report_id');
603: end if;
604: end;
605: --
606: /* Procedure - setup return_values
620: con_str varchar(256);
621: begin
622: -- Set up the Contexts
623: if g_debug then
624: hr_utility.trace('Entering pay_magtape_generic.setup_return_values');
625: end if;
626: cnt := return_num + return_arr_offset; -- Set up the outer loop to
627: cxt_cnt := 1; -- run from the last entry
628: while cnt > 0 loop -- in the retrieval list to
732: else
733: process_action_rec := 'N';
734: end if;
735: if g_debug then
736: hr_utility.trace('Exiting pay_magtape_generic.setup_return_values');
737: end if;
738: end setup_return_values;
739: --
740: BEGIN
737: end if;
738: end setup_return_values;
739: --
740: BEGIN
741: g_debug := hr_utility.debug_enabled;
742: if g_debug then
743: hr_utility.trace('Entering pay_magtape_generic.new_formula');
744: end if;
745: -- First run through setup report details
739: --
740: BEGIN
741: g_debug := hr_utility.debug_enabled;
742: if g_debug then
743: hr_utility.trace('Entering pay_magtape_generic.new_formula');
744: end if;
745: -- First run through setup report details
746: int_prm_names := pay_mag_tape.internal_prm_names;
747: int_prm_values := pay_mag_tape.internal_prm_values;
745: -- First run through setup report details
746: int_prm_names := pay_mag_tape.internal_prm_names;
747: int_prm_values := pay_mag_tape.internal_prm_values;
748: if level_no = 0 then
749: g_debug := hr_utility.debug_enabled;
750: set_report_id;
751: level_no := 1;
752: return_arr_offset := 0;
753: select cursor_name, nvl(no_column_returned,0), magnetic_block_id
755: from pay_magnetic_blocks
756: where main_block_flag = 'Y'
757: and report_format = report_id;
758:
759: hr_utility.trace(curs(1)||'..'||to_char(column_num(1))||'..'||to_char(block_id(1)));
760:
761: prm_cnt :=pay_mag_tape.internal_prm_values(1)+1;
762: pay_mag_tape.internal_prm_names(prm_cnt) :='magnetic_block_id';
763: pay_mag_tape.internal_prm_values(prm_cnt):=block_id(1);
782: into curs(level_no), column_num(level_no), block_id(level_no)
783: from pay_magnetic_blocks
784: where magnetic_block_id = formula_next_block
785: and report_format = report_id;
786: hr_utility.trace(to_char(level_no)||'..'||curs(level_no)||'..'||to_char(column_num(level_no))||'..'||to_char(block_id(level_no)));
787: i:=1;
788: while (pay_mag_tape.internal_prm_names(i) <>'magnetic_block_id')
789: loop
790: i:=i+1;
953: if (level_no>1) then
954: dbms_sql.column_value(formulas(level_no-1), 8, temp_formula_block_row_label);
955: if (cur_fetch=TRUE and temp_formula_block_row_label is not null)
956: then
957: hr_utility.trace(to_char(cnt)||temp_formula_block_row_label);
958: cnt :=pay_mag_tape.internal_xml_values(1)+1;
959: pay_mag_tape.internal_xml_names(cnt) := temp_formula_block_row_label;
960: pay_mag_tape.internal_xml_values(1) := cnt;
961: setup_return_values(formula_id,xml_proc_name, column_num(level_no));
958: cnt :=pay_mag_tape.internal_xml_values(1)+1;
959: pay_mag_tape.internal_xml_names(cnt) := temp_formula_block_row_label;
960: pay_mag_tape.internal_xml_values(1) := cnt;
961: setup_return_values(formula_id,xml_proc_name, column_num(level_no));
962: hr_utility.trace(to_char(cnt)||'..'||pay_mag_tape.internal_xml_values(1));
963: cnt :=pay_mag_tape.internal_xml_values(1)+1;
964: hr_utility.trace(to_char(cnt));
965: pay_mag_tape.internal_xml_names(cnt) := '/'||temp_formula_block_row_label;
966: pay_mag_tape.internal_xml_values(1) := cnt;
960: pay_mag_tape.internal_xml_values(1) := cnt;
961: setup_return_values(formula_id,xml_proc_name, column_num(level_no));
962: hr_utility.trace(to_char(cnt)||'..'||pay_mag_tape.internal_xml_values(1));
963: cnt :=pay_mag_tape.internal_xml_values(1)+1;
964: hr_utility.trace(to_char(cnt));
965: pay_mag_tape.internal_xml_names(cnt) := '/'||temp_formula_block_row_label;
966: pay_mag_tape.internal_xml_values(1) := cnt;
967: elsif (cur_fetch=TRUE) then
968: setup_return_values(formula_id,xml_proc_name, column_num(level_no));
974: setup_return_values(formula_id,xml_proc_name, column_num(level_no));
975: end if;
976:
977: if g_debug then
978: hr_utility.trace('Exiting pay_magtape_generic.new_formula');
979: end if;
980: END new_formula;
981: --
982: procedure clear_cursors is