[Home] [Help]
PACKAGE BODY: APPS.PAY_MAG_TAPE
Source
1 package body pay_mag_tape as
2 /* $Header: pymagtpe.pkb 120.8.12010000.1 2008/07/27 23:09:00 appldev ship $ */
3 procedure run_proc(comm in varchar2)
4 is
5 sql_curs number;
6 rows_processed integer;
7 statem varchar2(256);
8 begin
9 statem := 'BEGIN '||comm||'; END;';
10 sql_curs := dbms_sql.open_cursor;
11 dbms_sql.parse(sql_curs,
12 statem,
13 dbms_sql.v7);
14 rows_processed := dbms_sql.execute(sql_curs);
15 dbms_sql.close_cursor(sql_curs);
16 exception
17 when no_data_found then
18 dbms_sql.close_cursor(sql_curs);
19 raise;
20 end;
21
22
23 procedure run_xml_proc(comm in varchar2,
24 source_id in number,
25 source_type in varchar2,
26 file_name in varchar2,
27 sequence in number)
28 is
29 sql_curs number;
30 rows_processed integer;
31 statem varchar2(256);
32 l_source_type varchar2(30);
33 l_source_id number;
34 begin
35
36
37
38 pay_core_files.open_file
39 (
40 p_source_id => source_id,
41 p_source_type => source_type,
42 p_file_location => file_name,
43 p_file_type => 'XML',
44 p_int_file_name => 'MAGFILE',
45 p_sequence => sequence,
46 p_file_id => pay_mag_tape.g_blob_file_id
47 );
48
49 select blob_file_fragment
50 into g_blob_value
51 from pay_file_details
52 where file_detail_id = pay_mag_tape.g_blob_file_id;
53
54 statem := 'BEGIN '||comm||'; END;';
55 sql_curs := dbms_sql.open_cursor;
56 dbms_sql.parse(sql_curs,
57 statem,
58 dbms_sql.v7);
59 rows_processed := dbms_sql.execute(sql_curs);
60 dbms_sql.close_cursor(sql_curs);
61
62 pay_core_files.close_file ( p_file_id => pay_mag_tape.g_blob_file_id);
63
64 end;
65
66
67 procedure call_leg_xml_proc
68 is
69
70 pactid number;
71 seq number;
72 mag_block number;
73 leg_code varchar2(30);
74 rep_grp number;
75 proc_name varchar2(250);
76 sql_curs number;
77 rows_processed integer;
78 statem varchar2(256);
79
80 begin
81
82 /* get payroll_action,report_group,record_id,legislation_code */
83 pactid:=pay_magtape_generic.get_parameter_value('TRANSFER_PAYROLL_ACTION_ID');
84 if (pactid is NULL)
85 then
86 pactid:=pay_magtape_generic.get_parameter_value('PAYROLL_ACTION_ID');
87 end if;
88 seq:=pay_magtape_generic.get_parameter_value('rec_sequence');
89 mag_block:=pay_magtape_generic.get_parameter_value('magnetic_block_id');
90
91
92 select grp.legislation_code,prg.report_group_id
93 into leg_code ,rep_grp
94 from pay_payroll_actions ppa,pay_report_groups prg,per_business_groups_perf grp
95 where ppa.payroll_action_id=pactid
96 and grp.business_group_id=ppa.business_group_id
97 and pay_core_utils.get_parameter('REP_GROUP', ppa.legislative_parameters)=prg.short_name;
98
99
100 /* retrieve procedure */
101 select procedure_name
102 into proc_name
103 from pay_report_magnetic_procedures
104 where magnetic_block_id=mag_block
105 and sequence=seq
106 and rep_grp=report_group_id
107 and legislation_code=leg_code;
108
109 /* call procedure */
110 statem := 'BEGIN '||proc_name||'; END;';
111 sql_curs := dbms_sql.open_cursor;
112 dbms_sql.parse(sql_curs,
113 statem,
114 dbms_sql.v7);
115 rows_processed := dbms_sql.execute(sql_curs);
116 dbms_sql.close_cursor(sql_curs);
117
118 EXCEPTION
119 WHEN NO_DATA_FOUND THEN
120 return;
121 end;
122 end pay_mag_tape;