[Home] [Help]
PACKAGE BODY: APPS.PAY_KW_EFT
Source
1 package body PAY_KW_EFT as
2 /* $Header: pykweftp.pkb 120.0 2005/05/29 06:36:59 appldev noship $ */
3 g_package varchar2(33) := 'PAY_KW_PAYFILE.';
4 -- Global Variables
5 hr_formula_error EXCEPTION;
6 g_formula_exists BOOLEAN := TRUE;
7 g_formula_cached BOOLEAN := FALSE;
8 g_formula_id ff_formulas_f.formula_id%TYPE;
9 g_formula_name ff_formulas_f.formula_name%TYPE;
10 --
11 FUNCTION get_customer_formula_header (
12 p_Date_Earned IN DATE
13 ,p_payment_method_id IN number
14 ,p_business_group_id IN number
15 ,p_payroll_id IN number
16 ,p_payroll_action_id IN number
17 ,p_creation_date IN VARCHAR2
18 ,p_process_date IN VARCHAR2
19 ,p_count IN VARCHAR2
20 ,p_sum IN VARCHAR2
21 ,p_write_text1 OUT NOCOPY VARCHAR2
22 ,p_write_text2 OUT NOCOPY VARCHAR2
23 ,p_write_text3 OUT NOCOPY VARCHAR2
24 ,p_write_text4 OUT NOCOPY VARCHAR2
25 ,p_write_text5 OUT NOCOPY VARCHAR2
26 ,p_report_text1 OUT NOCOPY VARCHAR2
27 ,p_report_text2 OUT NOCOPY VARCHAR2
28 ,p_report_text3 OUT NOCOPY VARCHAR2
29 ,p_report_text4 OUT NOCOPY VARCHAR2
30 ,p_report_text5 OUT NOCOPY VARCHAR2
31 ,p_report_text6 OUT NOCOPY VARCHAR2
32 ,p_report_text7 OUT NOCOPY VARCHAR2
33 ,p_report_text8 OUT NOCOPY VARCHAR2
34 ,p_report_text9 OUT NOCOPY VARCHAR2
35 ,p_report_text10 OUT NOCOPY VARCHAR2
36 ,p_bank_code IN VARCHAR2
37 ,p_employer_code IN VARCHAR2) return varchar2 IS
38 l_header varchar2(100);
39 l_body varchar2(100);
40 l_footer varchar2(100);
41 l_bank_code varchar2(100);
42 l_employer_code varchar2(100);
43 l_inputs ff_exec.inputs_t;
44 l_outputs ff_exec.outputs_t;
45 cursor c_get_name(p_payment_method_id NUMBER) is
46 select PMETH_INFORMATION1,PMETH_INFORMATION2,PMETH_INFORMATION3,PMETH_INFORMATION4,PMETH_INFORMATION5
47 from PAY_ORG_PAYMENT_METHODS_F where ORG_PAYMENT_METHOD_ID = p_payment_method_id;
48 begin
49 --hr_utility.trace_on(null,'EFT');
50 l_payment_method_id := p_payment_method_id;
51 open c_get_name(p_payment_method_id);
52 fetch c_get_name into l_id_header,l_id_body,l_id_footer,l_employer_code,l_bank_code;
53 close c_get_name;
54 l_inputs(1).name := 'DATE_EARNED';
55 l_inputs(1).value := fnd_date.date_to_canonical(p_date_earned);
56 l_inputs(2).name := 'ORG_PAY_METHOD_ID';
57 l_inputs(2).value := p_payment_method_id;
58 l_inputs(3).name := 'BUSINESS_GROUP_ID';
59 l_inputs(3).value := p_business_group_id;
60 l_inputs(4).name := 'PAYROLL_ID';
61 l_inputs(4).value := p_payroll_id;
62 l_inputs(5).name := 'PAYROLL_ACTION_ID';
63 l_inputs(5).value := p_payroll_action_id;
64 l_inputs(6).name := 'CREATION_DATE';
65 l_inputs(6).value := p_creation_date;
66 l_inputs(7).name := 'PAYMENT_DATE';
67 l_inputs(7).value := p_process_date;
68 l_inputs(8).name := 'COUNT1';
69 l_inputs(8).value := p_count;
70 l_inputs(9).name := 'SUM1';
71 l_inputs(9).value := p_sum;
72 l_inputs(10).name := 'BANK_CODE';
73 l_inputs(10).value := l_bank_code;
74 l_inputs(11).name := 'EMPLOYER_CODE';
75 l_inputs(11).value := l_employer_code;
76 l_outputs(1).name := 'WRITE_TEXT1';
77 l_outputs(2).name := 'WRITE_TEXT2';
78 l_outputs(3).name := 'WRITE_TEXT3';
79 l_outputs(4).name := 'WRITE_TEXT4';
80 l_outputs(5).name := 'WRITE_TEXT5';
81 l_outputs(6).name := 'REPORT1_TEXT1';
82 l_outputs(7).name := 'REPORT1_TEXT2';
83 l_outputs(8).name := 'REPORT1_TEXT3';
84 l_outputs(9).name := 'REPORT1_TEXT4';
85 l_outputs(10).name := 'REPORT1_TEXT5';
86 l_outputs(11).name := 'REPORT2_TEXT1';
87 l_outputs(12).name := 'REPORT2_TEXT2';
88 l_outputs(13).name := 'REPORT2_TEXT3';
89 l_outputs(14).name := 'REPORT2_TEXT4';
90 l_outputs(15).name := 'REPORT2_TEXT5';
91 IF l_id_header is not null then
92 run_formula
93 (l_id_header
94 ,p_Date_Earned
95 ,l_inputs
96 ,l_outputs);
97 END IF;
98 IF l_outputs.count > 0 and l_outputs.count > 0 THEN
99 FOR i IN l_outputs.first..l_outputs.last LOOP
100 IF l_outputs(i).name like 'WRITE_TEXT1' THEN
101 p_write_text1 := l_outputs(i).value;
102 ELSIF l_outputs(i).name like 'WRITE_TEXT2' THEN
103 p_write_text2 := l_outputs(i).value;
104 ELSIF l_outputs(i).name like 'WRITE_TEXT3' THEN
105 p_write_text3 := l_outputs(i).value;
106 ELSIF l_outputs(i).name like 'WRITE_TEXT4' THEN
107 p_write_text4 := l_outputs(i).value;
108 ELSIF l_outputs(i).name like 'WRITE_TEXT5' THEN
109 p_write_text5 := l_outputs(i).value;
110 ELSIF l_outputs(i).name like 'REPORT1_TEXT1' THEN
111 p_report_text1 := l_outputs(i).value;
112 ELSIF l_outputs(i).name like 'REPORT1_TEXT2' THEN
113 p_report_text2 := l_outputs(i).value;
114 ELSIF l_outputs(i).name like 'REPORT1_TEXT3' THEN
115 p_report_text3 := l_outputs(i).value;
116 ELSIF l_outputs(i).name like 'REPORT1_TEXT4' THEN
117 p_report_text4 := l_outputs(i).value;
118 ELSIF l_outputs(i).name like 'REPORT1_TEXT5' THEN
119 p_report_text5 := l_outputs(i).value;
120 ELSIF l_outputs(i).name like 'REPORT2_TEXT1' THEN
121 p_report_text6 := l_outputs(i).value;
122 ELSIF l_outputs(i).name like 'REPORT2_TEXT2' THEN
123 p_report_text7 := l_outputs(i).value;
124 ELSIF l_outputs(i).name like 'REPORT2_TEXT3' THEN
125 p_report_text8 := l_outputs(i).value;
126 ELSIF l_outputs(i).name like 'REPORT2_TEXT4' THEN
127 p_report_text9 := l_outputs(i).value;
128 ELSIF l_outputs(i).name like 'REPORT2_TEXT5' THEN
129 p_report_text10 := l_outputs(i).value;
130 END IF;
131 END LOOP;
132 END IF;
133 RETURN '1';
134 END get_customer_formula_header;
135 --
136 FUNCTION get_customer_formula_body (
137 p_assignment_id IN number,
138 p_business_group_id IN number,
139 p_per_pay_method_id IN number,
140 p_date_earned IN date,
141 p_payroll_id IN number,
142 p_payroll_action_id IN number,
143 p_assignment_action_id IN number,
144 p_organization_id IN number,
145 p_tax_unit_id IN number,
146 p_amount IN varchar2,
147 p_first_name IN varchar2,
148 p_last_name IN varchar2,
149 p_initials IN varchar2,
150 p_emp_no IN varchar2,
151 p_asg_no IN varchar2,
152 p_count IN varchar2,
153 p_sum IN varchar2
154 ,p_write_text1 OUT NOCOPY VARCHAR2
155 ,p_write_text2 OUT NOCOPY VARCHAR2
156 ,p_write_text3 OUT NOCOPY VARCHAR2
157 ,p_write_text4 OUT NOCOPY VARCHAR2
158 ,p_write_text5 OUT NOCOPY VARCHAR2
159 ,p_report_text1 OUT NOCOPY VARCHAR2
160 ,p_report_text2 OUT NOCOPY VARCHAR2
161 ,p_report_text3 OUT NOCOPY VARCHAR2
162 ,p_report_text4 OUT NOCOPY VARCHAR2
163 ,p_report_text5 OUT NOCOPY VARCHAR2
164 ,p_report_text6 OUT NOCOPY VARCHAR2
165 ,p_report_text7 OUT NOCOPY VARCHAR2
166 ,p_report_text8 OUT NOCOPY VARCHAR2
167 ,p_report_text9 OUT NOCOPY VARCHAR2
168 ,p_report_text10 OUT NOCOPY VARCHAR2
169 ,p_local_nationality IN VARCHAR2
170 ,p_bank_code IN VARCHAR2
171 ,p_employer_code IN VARCHAR2) return varchar2 IS
172 l_header varchar2(100);
173 l_body varchar2(100);
174 l_footer varchar2(100);
175 l_bank_code varchar2(100);
176 l_employer_code varchar2(100);
177 l_inputs ff_exec.inputs_t;
178 l_outputs ff_exec.outputs_t;
179 cursor c_get_name(p_payment_method_id NUMBER) is
180 select PMETH_INFORMATION1,PMETH_INFORMATION2,PMETH_INFORMATION3,PMETH_INFORMATION4,PMETH_INFORMATION5
181 from PAY_ORG_PAYMENT_METHODS_F where ORG_PAYMENT_METHOD_ID = p_payment_method_id;
182 begin
183 open c_get_name(l_payment_method_id);
184 fetch c_get_name into l_id_header,l_id_body,l_id_footer,l_employer_code,l_bank_code;
185 close c_get_name;
186 l_inputs(1).name := 'ASSIGNMENT_ID';
187 l_inputs(1).value := p_assignment_id;
188 l_inputs(2).name := 'BUSINESS_GROUP_ID';
189 l_inputs(2).value := p_business_group_id;
190 l_inputs(3).name := 'PER_PAY_METHOD_ID';
191 l_inputs(3).value := p_per_pay_method_id;
192 l_inputs(4).name := 'DATE_EARNED';
193 l_inputs(4).value := fnd_date.date_to_canonical(p_date_earned);
194 l_inputs(5).name := 'PAYROLL_ID';
195 l_inputs(5).value := p_payroll_id;
196 l_inputs(6).name := 'PAYROLL_ACTION_ID';
197 l_inputs(6).value := p_payroll_action_id;
198 l_inputs(7).name := 'ASSIGNMENT_ACTION_ID';
199 l_inputs(7).value := p_assignment_action_id;
200 l_inputs(8).name := 'ORGANIZATION_ID';
201 l_inputs(8).value := p_organization_id;
202 l_inputs(9).name := 'TAX_UNIT_ID';
203 l_inputs(9).value := p_tax_unit_id;
204 l_inputs(10).name := 'AMOUNT';
205 l_inputs(10).value := p_amount;
206 l_inputs(11).name := 'FIRST_NAME';
207 l_inputs(11).value := p_first_name;
208 l_inputs(12).name := 'LAST_NAME';
209 l_inputs(12).value := p_last_name;
210 l_inputs(13).name := 'INITIALS';
211 l_inputs(13).value := p_initials;
212 l_inputs(14).name := 'EMP_NO';
213 l_inputs(14).value := p_emp_no;
214 l_inputs(15).name := 'ASG_NO';
215 l_inputs(15).value := p_asg_no;
216 l_inputs(16).name := 'TRANSFER_COUNT1';
217 l_inputs(16).value := p_count;
218 l_inputs(17).name := 'TRANSFER_SUM1';
219 l_inputs(17).value := p_sum;
220 l_inputs(18).name := 'ORG_PAY_METHOD_ID';
221 l_inputs(18).value := l_payment_method_id;
222 l_inputs(19).name := 'LOCAL_NATIONALITY';
223 l_inputs(19).value := p_local_nationality;
224 l_inputs(20).name := 'BANK_CODE';
225 l_inputs(20).value := l_bank_code;
226 l_inputs(21).name := 'EMPLOYER_CODE';
227 l_inputs(21).value := l_employer_code;
228 l_outputs(1).name := 'WRITE_TEXT1';
229 l_outputs(2).name := 'WRITE_TEXT2';
230 l_outputs(3).name := 'WRITE_TEXT3';
231 l_outputs(4).name := 'WRITE_TEXT4';
232 l_outputs(5).name := 'WRITE_TEXT5';
233 l_outputs(6).name := 'REPORT1_TEXT1';
234 l_outputs(7).name := 'REPORT1_TEXT2';
235 l_outputs(8).name := 'REPORT1_TEXT3';
236 l_outputs(9).name := 'REPORT1_TEXT4';
237 l_outputs(10).name := 'REPORT1_TEXT5';
238 l_outputs(11).name := 'REPORT2_TEXT1';
239 l_outputs(12).name := 'REPORT2_TEXT2';
240 l_outputs(13).name := 'REPORT2_TEXT3';
241 l_outputs(14).name := 'REPORT2_TEXT4';
242 l_outputs(15).name := 'REPORT2_TEXT5';
243 IF l_id_body is not null then
244 run_formula
245 (l_id_body
246 ,p_Date_Earned
247 ,l_inputs
248 ,l_outputs);
249 END IF;
250 IF l_outputs.count > 0 and l_outputs.count > 0 THEN
251 FOR i IN l_outputs.first..l_outputs.last LOOP
252 IF l_outputs(i).name like 'WRITE_TEXT1' THEN
253 p_write_text1 := l_outputs(i).value;
254 ELSIF l_outputs(i).name like 'WRITE_TEXT2' THEN
255 p_write_text2 := l_outputs(i).value;
256 ELSIF l_outputs(i).name like 'WRITE_TEXT3' THEN
257 p_write_text3 := l_outputs(i).value;
258 ELSIF l_outputs(i).name like 'WRITE_TEXT4' THEN
259 p_write_text4 := l_outputs(i).value;
260 ELSIF l_outputs(i).name like 'WRITE_TEXT5' THEN
261 p_write_text5 := l_outputs(i).value;
262 ELSIF l_outputs(i).name like 'REPORT1_TEXT1' THEN
263 p_report_text1 := l_outputs(i).value;
264 ELSIF l_outputs(i).name like 'REPORT1_TEXT2' THEN
265 p_report_text2 := l_outputs(i).value;
266 ELSIF l_outputs(i).name like 'REPORT1_TEXT3' THEN
267 p_report_text3 := l_outputs(i).value;
268 ELSIF l_outputs(i).name like 'REPORT1_TEXT4' THEN
269 p_report_text4 := l_outputs(i).value;
270 ELSIF l_outputs(i).name like 'REPORT1_TEXT5' THEN
271 p_report_text5 := l_outputs(i).value;
272 ELSIF l_outputs(i).name like 'REPORT2_TEXT1' THEN
273 p_report_text6 := l_outputs(i).value;
274 ELSIF l_outputs(i).name like 'REPORT2_TEXT2' THEN
275 p_report_text7 := l_outputs(i).value;
276 ELSIF l_outputs(i).name like 'REPORT2_TEXT3' THEN
277 p_report_text8 := l_outputs(i).value;
278 ELSIF l_outputs(i).name like 'REPORT2_TEXT4' THEN
279 p_report_text9 := l_outputs(i).value;
280 ELSIF l_outputs(i).name like 'REPORT2_TEXT5' THEN
281 p_report_text10 := l_outputs(i).value;
282 END IF;
283 END LOOP;
284 END IF;
285 RETURN '1';
286 end get_customer_formula_body;
287 ------
288 -------------
289 --
290 FUNCTION get_customer_formula_footer (
291 p_Date_Earned IN DATE
292 ,p_payment_method_id IN number
293 ,p_business_group_id IN number
294 ,p_payroll_id IN number
295 ,p_payroll_action_id IN number
296 ,p_creation_date IN VARCHAR2
297 ,p_process_date IN VARCHAR2
298 ,p_count IN VARCHAR2
299 ,p_sum IN VARCHAR2
300 ,p_write_text1 OUT NOCOPY VARCHAR2
301 ,p_write_text2 OUT NOCOPY VARCHAR2
302 ,p_write_text3 OUT NOCOPY VARCHAR2
303 ,p_write_text4 OUT NOCOPY VARCHAR2
304 ,p_write_text5 OUT NOCOPY VARCHAR2
305 ,p_report_text1 OUT NOCOPY VARCHAR2
306 ,p_report_text2 OUT NOCOPY VARCHAR2
307 ,p_report_text3 OUT NOCOPY VARCHAR2
308 ,p_report_text4 OUT NOCOPY VARCHAR2
309 ,p_report_text5 OUT NOCOPY VARCHAR2
310 ,p_report_text6 OUT NOCOPY VARCHAR2
311 ,p_report_text7 OUT NOCOPY VARCHAR2
312 ,p_report_text8 OUT NOCOPY VARCHAR2
313 ,p_report_text9 OUT NOCOPY VARCHAR2
314 ,p_report_text10 OUT NOCOPY VARCHAR2
315 ,p_bank_code IN VARCHAR2
316 ,p_employer_code IN VARCHAR2) return varchar2 IS
317 l_header varchar2(100);
318 l_body varchar2(100);
319 l_footer varchar2(100);
320 l_bank_code varchar2(100);
321 l_employer_code varchar2(100);
322 l_inputs ff_exec.inputs_t;
323 l_outputs ff_exec.outputs_t;
324 cursor c_get_name(p_payment_method_id NUMBER) is
325 select PMETH_INFORMATION1,PMETH_INFORMATION2,PMETH_INFORMATION3,PMETH_INFORMATION4,PMETH_INFORMATION5
329 open c_get_name(p_payment_method_id);
326 from PAY_ORG_PAYMENT_METHODS_F where ORG_PAYMENT_METHOD_ID = p_payment_method_id;
327 begin
328 l_payment_method_id := p_payment_method_id;
330 fetch c_get_name into l_id_header,l_id_body,l_id_footer,l_employer_code,l_bank_code;
331 close c_get_name;
332 l_inputs(1).name := 'DATE_EARNED';
333 l_inputs(1).value := fnd_date.date_to_canonical(p_date_earned);
334 l_inputs(2).name := 'ORG_PAY_METHOD_ID';
335 l_inputs(2).value := p_payment_method_id;
336 l_inputs(3).name := 'BUSINESS_GROUP_ID';
337 l_inputs(3).value := p_business_group_id;
338 l_inputs(4).name := 'PAYROLL_ID';
339 l_inputs(4).value := p_payroll_id;
340 l_inputs(5).name := 'PAYROLL_ACTION_ID';
341 l_inputs(5).value := p_payroll_action_id;
342 l_inputs(6).name := 'CREATION_DATE';
343 l_inputs(6).value := p_creation_date;
344 l_inputs(7).name := 'PAYMENT_DATE';
345 l_inputs(7).value := p_process_date;
346 l_inputs(8).name := 'COUNT1';
347 l_inputs(8).value := p_count;
348 l_inputs(9).name := 'SUM1';
349 l_inputs(9).value := p_sum;
350 l_inputs(10).name := 'BANK_CODE';
351 l_inputs(10).value := l_bank_code;
352 l_inputs(11).name := 'EMPLOYER_CODE';
353 l_inputs(11).value := l_employer_code;
354 l_outputs(1).name := 'WRITE_TEXT1';
355 l_outputs(2).name := 'WRITE_TEXT2';
356 l_outputs(3).name := 'WRITE_TEXT3';
357 l_outputs(4).name := 'WRITE_TEXT4';
358 l_outputs(5).name := 'WRITE_TEXT5';
359 l_outputs(6).name := 'REPORT1_TEXT1';
360 l_outputs(7).name := 'REPORT1_TEXT2';
361 l_outputs(8).name := 'REPORT1_TEXT3';
362 l_outputs(9).name := 'REPORT1_TEXT4';
363 l_outputs(10).name := 'REPORT1_TEXT5';
364 l_outputs(11).name := 'REPORT2_TEXT1';
365 l_outputs(12).name := 'REPORT2_TEXT2';
366 l_outputs(13).name := 'REPORT2_TEXT3';
367 l_outputs(14).name := 'REPORT2_TEXT4';
368 l_outputs(15).name := 'REPORT2_TEXT5';
369 IF l_id_footer is not null then
370 run_formula
371 (l_id_footer
372 ,p_Date_Earned
373 ,l_inputs
374 ,l_outputs);
375 END IF;
376 IF l_outputs.count > 0 and l_outputs.count > 0 THEN
377 FOR i IN l_outputs.first..l_outputs.last LOOP
378 IF l_outputs(i).name like 'WRITE_TEXT1' THEN
379 p_write_text1 := l_outputs(i).value;
380 ELSIF l_outputs(i).name like 'WRITE_TEXT2' THEN
381 p_write_text2 := l_outputs(i).value;
382 ELSIF l_outputs(i).name like 'WRITE_TEXT3' THEN
383 p_write_text3 := l_outputs(i).value;
384 ELSIF l_outputs(i).name like 'WRITE_TEXT4' THEN
385 p_write_text4 := l_outputs(i).value;
386 ELSIF l_outputs(i).name like 'WRITE_TEXT5' THEN
387 p_write_text5 := l_outputs(i).value;
388 ELSIF l_outputs(i).name like 'REPORT1_TEXT1' THEN
389 p_report_text1 := l_outputs(i).value;
390 ELSIF l_outputs(i).name like 'REPORT1_TEXT2' THEN
391 p_report_text2 := l_outputs(i).value;
392 ELSIF l_outputs(i).name like 'REPORT1_TEXT3' THEN
393 p_report_text3 := l_outputs(i).value;
394 ELSIF l_outputs(i).name like 'REPORT1_TEXT4' THEN
395 p_report_text4 := l_outputs(i).value;
396 ELSIF l_outputs(i).name like 'REPORT1_TEXT5' THEN
397 p_report_text5 := l_outputs(i).value;
398 ELSIF l_outputs(i).name like 'REPORT2_TEXT1' THEN
399 p_report_text6 := l_outputs(i).value;
400 ELSIF l_outputs(i).name like 'REPORT2_TEXT2' THEN
401 p_report_text7 := l_outputs(i).value;
402 ELSIF l_outputs(i).name like 'REPORT2_TEXT3' THEN
403 p_report_text8 := l_outputs(i).value;
404 ELSIF l_outputs(i).name like 'REPORT2_TEXT4' THEN
405 p_report_text9 := l_outputs(i).value;
406 ELSIF l_outputs(i).name like 'REPORT2_TEXT5' THEN
407 p_report_text10 := l_outputs(i).value;
408 END IF;
409 END LOOP;
410 END IF;
411 RETURN '1';
412 end get_customer_formula_footer;
413 ---
414 ----------
415 -----
416 PROCEDURE run_formula(p_formula_id IN NUMBER
417 ,p_effective_date IN DATE
418 ,p_inputs IN ff_exec.inputs_t
419 ,p_outputs IN OUT NOCOPY ff_exec.outputs_t) IS
420 l_inputs ff_exec.inputs_t;
421 l_outputs ff_exec.outputs_t;
422 BEGIN
423 hr_utility.set_location('--In Formula ',20);
424 --
425 -- Initialize the formula
426 --
427 ff_exec.init_formula(p_formula_id, p_effective_date , l_inputs, l_outputs);
428 --
429 hr_utility.trace('after ff_exec');
430 -- Set up the input values
431 --
432 IF l_inputs.count > 0 and p_inputs.count > 0 THEN
433 FOR i IN l_inputs.first..l_inputs.last LOOP
434 FOR j IN p_inputs.first..p_inputs.last LOOP
435 IF l_inputs(i).name = p_inputs(j).name THEN
436 l_inputs(i).value := p_inputs(j).value;
437 exit;
438 END IF;
439 END LOOP;
440 END LOOP;
441 END IF;
442 --
443 -- Run the formula
444 --
445 hr_utility.trace('about to exec');
446 ff_exec.run_formula(l_inputs,l_outputs);
447 --
448 hr_utility.trace('After exec');
449 -- Populate the output table
450 --
451 IF l_outputs.count > 0 and p_inputs.count > 0 then
452 FOR i IN l_outputs.first..l_outputs.last LOOP
453 FOR j IN p_outputs.first..p_outputs.last LOOP
454 IF l_outputs(i).name = p_outputs(j).name THEN
455 p_outputs(j).value := l_outputs(i).value;
456 exit;
457 END IF;
458 END LOOP;
459 END LOOP;
460 END IF;
461 hr_utility.set_location('--Leaving Formula ',21);
462 EXCEPTION
463 WHEN hr_formula_error THEN
464 fnd_message.set_name('PER','FFX22J_FORMULA_NOT_FOUND');
465 fnd_message.set_token('1', g_formula_name);
466 fnd_message.raise_error;
467 WHEN OTHERS THEN
468 raise;
469 --
470 END run_formula;
471 END PAY_KW_EFT;