[Home] [Help]
PACKAGE BODY: APPS.IGF_AP_LI_AWARDS_PKG
Source
1 PACKAGE BODY igf_ap_li_awards_pkg AS
2 /* $Header: IGFAP37B.pls 120.4 2006/01/17 02:36:51 tsailaja ship $ */
3
4 g_log_tab_index NUMBER := 0;
5
6 TYPE log_record IS RECORD
7 ( person_number VARCHAR2(30),
8 message_text VARCHAR2(500));
9
10 -- The PL/SQL table for storing the log messages
11 TYPE LogTab IS TABLE OF log_record
12 index by binary_integer;
13
14 g_log_tab LogTab;
15
16
17 PROCEDURE main_import_process ( errbuf OUT NOCOPY VARCHAR2,
18 retcode OUT NOCOPY NUMBER,
19 p_award_year IN VARCHAR2,
20 p_batch_id IN NUMBER,
21 p_del_ind IN VARCHAR2 )
22 IS
23
24 l_error_flag BOOLEAN := FALSE;
25 l_error VARCHAR2(80);
26 l_person_number VARCHAR2(80);
27 l_batch_id VARCHAR2(80);
28 lv_row_id VARCHAR2(80) := NULL;
29 lv_award_id igf_aw_award.award_id%TYPE := NULL;
30 lv_person_id igs_pe_hz_parties.party_id%TYPE := NULL;
31 lv_base_id igf_aw_award.base_id%TYPE := NULL;
32 l_del_message VARCHAR2(200);
33 l_batch_desc VARCHAR2(80);
34 l_yes_no VARCHAR2(10);
35 l_award_yr VARCHAR2(80);
36 l_success_record_cnt NUMBER := 0;
37 l_error_record_cnt NUMBER := 0;
38 l_message_str VARCHAR2(50) := NULL;
39 l_chk_profile VARCHAR2(1) := 'N';
40 l_chk_batch VARCHAR2(1) := 'Y';
41 l_debug_str VARCHAR2(800) := NULL;
42 l_total_record_cnt NUMBER := 0;
43
44 CURSOR c_get_batch_desc(cp_batch_num NUMBER) IS
45 SELECT batch_desc
46 FROM igf_ap_li_bat_ints
47 WHERE batch_num = cp_batch_num;
48
49 l_get_batch_desc c_get_batch_desc%ROWTYPE;
50
51 CURSOR c_get_alternate_code(cp_cal_type VARCHAR2,
52 cp_seq_number NUMBER)
53 IS
54 SELECT alternate_code
55 FROM igs_ca_inst
56 WHERE cal_type = cp_cal_type
57 AND sequence_number = cp_seq_number;
58
59 l_get_alternate_code c_get_alternate_code%ROWTYPE;
60
61
62 l_cal_type igf_ap_fa_base_rec_all.ci_cal_type%TYPE ;
63 l_seq_number igf_ap_fa_base_rec_all.ci_sequence_number%TYPE;
64
65 -- Cursor for getting the context award year details
66 CURSOR c_award_det(cp_cal_type VARCHAR2,
67 cp_seq_number NUMBER)
68 IS
69 SELECT batch_year,
70 award_year_status_code,
71 sys_award_year
72 FROM igf_ap_batch_aw_map
73 WHERE ci_cal_type = cp_cal_type
74 AND ci_sequence_number = cp_seq_number;
75
76 l_award_det c_award_det%ROWTYPE;
77
78 CURSOR c_interface(cp_batch_id NUMBER,
79 cp_alternate_code VARCHAR2)
80 IS
81 SELECT A.batch_num batch_id,
82 A.agrint_id agrint_id,
83 A.ci_alternate_code ci_alternate_code,
84 A.person_number person_number,
85 A.fund_code fund_code,
86 A.offered_amt offrd_amt,
87 A.accepted_amt accpt_amt,
88 A.paid_amt paid_amt,
89 A.import_status_type import_status,
90 A.import_record_type import_record_type,
91 A.ROWID ROW_ID
92 FROM igf_aw_li_agr_ints A
93 WHERE A.batch_num = cp_batch_id
94 AND A.ci_alternate_code = cp_alternate_code
95 AND A.import_status_type IN ('U','R')
96 ORDER BY A.person_number;
97
98 l_interface c_interface%ROWTYPE;
99
100 CURSOR c_fund_exists(cp_cal_type VARCHAR2,
101 cp_seq_number NUMBER,
102 cp_fund_code VARCHAR2)
103 IS
104 SELECT fund_id
105 FROM igf_aw_fund_mast FM
106 WHERE FM.ci_cal_type = cp_cal_type
107 AND FM.ci_sequence_number = cp_seq_number
108 AND FM.fund_code = cp_fund_code ;
109
110 l_fund_id c_fund_exists%ROWTYPE;
111
112 CURSOR c_award_exists(cp_base_id NUMBER,
113 cp_fund_id NUMBER)
114 IS
115 SELECT award_id,
116 AW.ROWID ROW_ID
117 FROM igf_aw_award AW
118 WHERE AW.base_id = cp_base_id
119 AND AW.fund_id = cp_fund_id;
120
121 l_award_id c_award_exists%ROWTYPE;
122
123 /*
124 || Created By : bkkumar
125 || Created On : 20-MAY-2003
126 || Purpose : Main process which imports the legacy aggregate awards in the system. This process
127 || validates the awards for the validity of the fund code and award amount. No disbursement level
128 || data is captured.
129 || Known limitations, enhancements or remarks :
130 || Change History :
131 || Who When What
132 || tsailaja 13/Jan/2006 Bug 4947880 Added invocation of igf_aw_gen.set_org_id(NULL);
133 || bvisvana 11-Jul-2005 FA 157 and FA 140 - Added x_notification_status_code,x_notification_status_code,x_publish_in_ss_flag for TBH impact
134 || veramach 1-NOV-2003 #3160568 Added adplans_id in the calls to igf_aw_award_pkg.insert_row and igf_aw_award_pkg.update_row
135 || (reverse chronological order - newest change first)
136 */
137
138 BEGIN
139 igf_aw_gen.set_org_id(NULL);
140 errbuf := NULL;
141 retcode := 0;
142 l_cal_type := LTRIM(RTRIM(SUBSTR(p_award_year,1,10)));
143 l_seq_number := TO_NUMBER(SUBSTR(p_award_year,11));
144
145 l_error := igf_ap_gen.get_lookup_meaning('IGF_AW_LOOKUPS_MSG','ERROR');
146
147 l_chk_profile := igf_ap_gen.check_profile;
148 IF l_chk_profile = 'N' THEN
149 fnd_message.set_name('IGF','IGF_AP_LGCY_PROC_NOT_RUN');
150 fnd_file.put_line(fnd_file.log,RPAD(l_error,12) || fnd_message.get);
151 RETURN;
152 END IF;
153
154 l_person_number := igf_ap_gen.get_lookup_meaning('IGF_AW_LOOKUPS_MSG','PERSON_NUMBER');
155 l_batch_id := igf_ap_gen.get_lookup_meaning('IGF_AW_LOOKUPS_MSG','BATCH_ID');
156 l_award_yr := igf_ap_gen.get_lookup_meaning('IGF_AW_LOOKUPS_MSG','AWARD_YEAR');
157 l_yes_no := igf_ap_gen.get_lookup_meaning('IGF_AP_YES_NO',p_del_ind);
158
159 OPEN c_get_batch_desc(p_batch_id);
160 FETCH c_get_batch_desc INTO l_get_batch_desc;
161 CLOSE c_get_batch_desc;
162 l_batch_desc := l_get_batch_desc.batch_desc ;
163
164 -- this is to get the alternate code
165 l_get_alternate_code := NULL;
166 OPEN c_get_alternate_code(l_cal_type,l_seq_number);
167 FETCH c_get_alternate_code INTO l_get_alternate_code;
168 CLOSE c_get_alternate_code;
169
170 -- HERE THE INPUT PARAMETERS ARE TO BE LOGGED TO THE LOG FILE
171 fnd_message.set_name('IGS','IGS_DA_JOB');
172 fnd_file.put_line(fnd_file.log,fnd_message.get);
173 fnd_file.put_line(fnd_file.log,l_batch_id || ' : ' || p_batch_id || ' - ' || l_batch_desc);
174 fnd_file.put_line(fnd_file.log,l_award_yr || ' : ' || l_get_alternate_code.alternate_code);
175 fnd_message.set_name('IGS','IGS_GE_ASK_DEL_REC');
176 fnd_file.put_line(fnd_file.log,fnd_message.get || ' : ' || l_yes_no);
177 fnd_file.put_line(fnd_file.log,'------------------------------------------------------------------------------');
178
179 l_chk_batch := igf_ap_gen.check_batch(p_batch_id,'AWG');
180 IF l_chk_batch = 'N' THEN
181 fnd_message.set_name('IGF','IGF_GR_BATCH_DOES_NOT_EXIST');
182 fnd_file.put_line(fnd_file.log,RPAD(l_error,12) || fnd_message.get);
183 RETURN;
184 END IF;
185
186 OPEN c_award_det(l_cal_type,l_seq_number);
187 FETCH c_award_det INTO l_award_det;
188 CLOSE c_award_det;
189
190 IF l_award_det.award_year_status_code NOT IN('LA','LE') THEN
191 fnd_message.set_name('IGF','IGF_AP_LG_INVALID_STAT');
192 fnd_message.set_token('AWARD_STATUS',l_award_det.award_year_status_code);
193 fnd_file.put_line(fnd_file.log,RPAD(l_error,12) || fnd_message.get);
194 RETURN;
195 END IF;
196
197 -- NOW ONLY PERSON LEVEL MESSGAES WILL BE LOGGED
198
199 FOR l_interface IN c_interface(p_batch_id,l_get_alternate_code.alternate_code) LOOP
200 BEGIN
201 SAVEPOINT sp1;
202 l_fund_id := NULL;
203 OPEN c_fund_exists(l_cal_type,l_seq_number,l_interface.fund_code);
204 FETCH c_fund_exists INTO l_fund_id;
205 CLOSE c_fund_exists;
206 IF l_fund_id.fund_id IS NULL THEN
207 fnd_message.set_name('IGF','IGF_AW_PK_FUND_NOT_EXIST');
208 fnd_message.set_token('FUND_ID',l_interface.fund_code);
209 g_log_tab_index := g_log_tab_index + 1;
210 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
211 g_log_tab(g_log_tab_index).message_text := RPAD(l_error,12) || fnd_message.get;
212 l_error_flag := TRUE;
213 END IF;
214 l_debug_str := 'Agrint_id is:' || l_interface.agrint_id || 'Fund exists passed';
215 lv_base_id := NULL;
216 lv_person_id := NULL;
217 --HERE CALL TO THE GENERIC WRAPPER IS BEING MADE TO CHEHK THE VALIDITY OF THE PEROSN AND BASE ID
218 igf_ap_gen.check_person(l_interface.person_number,l_cal_type,l_seq_number,lv_person_id,lv_base_id);
219 IF lv_person_id IS NULL THEN
220 fnd_message.set_name('IGF','IGF_AP_PE_NOT_EXIST');
221 g_log_tab_index := g_log_tab_index + 1;
222 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
223 g_log_tab(g_log_tab_index).message_text := RPAD(l_error,12) || fnd_message.get;
224 l_error_flag := TRUE;
225 ELSE
226 l_debug_str := l_debug_str || ' Pesron ID exists passed';
227 IF lv_base_id IS NULL THEN
228 fnd_message.set_name('IGF','IGF_AP_FABASE_NOT_FOUND');
229 g_log_tab_index := g_log_tab_index + 1;
230 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
231 g_log_tab(g_log_tab_index).message_text := RPAD(l_error,12) || fnd_message.get;
232 l_error_flag := TRUE;
233 ELSE -- IF THE BASE ID IS NOT NULL
234 l_debug_str := l_debug_str || ' Base ID exists passed';
235 IF l_fund_id.fund_id IS NOT NULL THEN
236 l_award_id := NULL;
237 OPEN c_award_exists(lv_base_id,l_fund_id.fund_id);
238 FETCH c_award_exists INTO l_award_id;
239 CLOSE c_award_exists;
240 -- here check whether any amount if exists is negative then just skip that record
241 IF l_interface.offrd_amt < 0 OR (l_interface.accpt_amt IS NOT NULL AND l_interface.accpt_amt < 0) OR (l_interface.paid_amt IS NOT NULL AND l_interface.paid_amt < 0) THEN
242 fnd_message.set_name('IGF','IGF_SE_FUND_CODE');
243 fnd_message.set_token('TOKEN',l_interface.fund_code);
244 l_message_str := RPAD(l_error,12) || fnd_message.get;
245 fnd_message.set_name('IGS','IGS_AD_SS_NO_NEGATIVE');
246 g_log_tab_index := g_log_tab_index + 1;
247 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
248 g_log_tab(g_log_tab_index).message_text := l_message_str || ' ' || fnd_message.get;
249 l_message_str := NULL;
250 l_error_flag := TRUE;
251 END IF;
252 IF l_interface.offrd_amt = 0 THEN
253 fnd_message.set_name('IGF','IGF_SE_FUND_CODE');
254 fnd_message.set_token('TOKEN',l_interface.fund_code);
255 l_message_str := RPAD(l_error,12) || fnd_message.get;
256 fnd_message.set_name('IGF','IGF_AW_OFF_AMT_NO_ZERO');
257 g_log_tab_index := g_log_tab_index + 1;
258 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
259 g_log_tab(g_log_tab_index).message_text := l_message_str || ' ' || fnd_message.get;
260 l_message_str := NULL;
261 l_error_flag := TRUE;
262 END IF;
263 -- IF ACCEPTED IS GREATER THAN OFFERED THEN LOG A MESSAGE
264 IF l_interface.accpt_amt IS NOT NULL AND l_interface.accpt_amt > l_interface.offrd_amt THEN
265 fnd_message.set_name('IGF','IGF_SE_FUND_CODE');
266 fnd_message.set_token('TOKEN',l_interface.fund_code);
267 l_message_str := RPAD(l_error,12) || fnd_message.get;
268 fnd_message.set_name('IGF','IGF_AW_CHECK_OFFR_ACCEP');
269 g_log_tab_index := g_log_tab_index + 1;
270 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
271 g_log_tab(g_log_tab_index).message_text := l_message_str || ' ' || fnd_message.get;
272 l_message_str := NULL;
273 l_error_flag := TRUE;
274 END IF;
275 -- IF PAID AMT IS GREATER THAN ACCEPTED AMT THEN LOG A MESSAGE
276 IF NVL(l_interface.paid_amt,0) > NVL(l_interface.accpt_amt,0) THEN
277 fnd_message.set_name('IGF','IGF_SE_FUND_CODE');
278 fnd_message.set_token('TOKEN',l_interface.fund_code);
279 l_message_str := RPAD(l_error,12) || fnd_message.get;
280 fnd_message.set_name('IGF','IGF_AW_CHECK_ACCEP_PAID');
281 g_log_tab_index := g_log_tab_index + 1;
282 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
283 g_log_tab(g_log_tab_index).message_text := l_message_str || ' ' || fnd_message.get;
284 l_message_str := NULL;
285 l_error_flag := TRUE;
286 END IF;
287 IF l_award_id.award_id IS NULL THEN
288 IF NVL(l_interface.import_record_type,'X') = 'U' THEN -- AS THE AWARD DOES NOT EXIST SO IT CAN NOT BE UPDATED
289 fnd_message.set_name('IGF','IGF_SE_FUND_CODE');
290 fnd_message.set_token('TOKEN',l_interface.fund_code);
291 l_message_str := RPAD(l_error,12) || fnd_message.get;
292 fnd_message.set_name('IGF','IGF_AP_ORIG_REC_NOT_FOUND');
293 g_log_tab_index := g_log_tab_index + 1;
294 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
295 g_log_tab(g_log_tab_index).message_text := l_message_str || ' ' || fnd_message.get;
296 l_error_flag := TRUE;
297 ELSE
298 -- THE RECORD HAS TO BE INSERTED IN THE AWARD TABLE AS THE AWARD DOES NOT EXIST
299 IF l_error_flag = FALSE THEN
300 igf_aw_award_pkg.insert_row(
301 x_mode => 'R',
302 x_award_id => lv_award_id,
303 x_fund_id => l_fund_id.fund_id,
304 x_base_id => lv_base_id,
305 x_rowid => lv_row_id,
306 x_offered_amt => l_interface.offrd_amt,
307 x_accepted_amt => l_interface.accpt_amt,
308 x_paid_amt => l_interface.paid_amt,
309 x_batch_id => l_interface.batch_id,
310 x_packaging_type => NULL,
311 x_manual_update => NULL,
312 x_rules_override => NULL,
313 x_award_date => NULL,
314 x_award_status => 'ACCEPTED',
315 x_rvsn_id => NULL,
316 x_alt_pell_schedule => NULL,
317 x_attribute_category => NULL,
318 x_attribute1 => NULL,
319 x_attribute2 => NULL,
320 x_attribute3 => NULL,
321 x_attribute4 => NULL,
322 x_attribute5 => NULL,
323 x_attribute6 => NULL,
324 x_attribute7 => NULL,
325 x_attribute8 => NULL,
326 x_attribute9 => NULL,
327 x_attribute10 => NULL,
328 x_attribute11 => NULL,
329 x_attribute12 => NULL,
330 x_attribute13 => NULL,
331 x_attribute14 => NULL,
332 x_attribute15 => NULL,
333 x_attribute16 => NULL,
334 x_attribute17 => NULL,
335 x_attribute18 => NULL,
336 x_attribute19 => NULL,
337 x_attribute20 => NULL,
338 x_award_number_txt => NULL,
339 x_legacy_record_flag => 'Y',
340 x_adplans_id => NULL,
341 x_lock_award_flag => 'N',
342 x_app_trans_num_txt => NULL,
343 x_awd_proc_status_code => NULL,
344 x_notification_status_code => NULL,
345 x_notification_status_date => NULL,
346 x_publish_in_ss_flag => 'N'
347 );
348 l_debug_str := l_debug_str || ' Record Inserted';
349 END IF;
350 END IF;
351 ELSE -- This means that award id is not null
352 IF NVL(l_interface.import_record_type,'X') = 'U' THEN
353 --UPDATE THE AWARD RECORD AS THE RECORD ALREADY EXISTS AND THE UPDATE FLAG IS 'U'
354 IF l_error_flag = FALSE THEN
355 igf_aw_award_pkg.update_row(
356 x_mode => 'R',
357 x_award_id => l_award_id.award_id,
358 x_fund_id => l_fund_id.fund_id,
359 x_base_id => lv_base_id,
360 x_rowid => l_award_id.ROW_ID,
361 x_offered_amt => l_interface.offrd_amt,
362 x_accepted_amt => l_interface.accpt_amt,
363 x_paid_amt => l_interface.paid_amt,
364 x_batch_id => l_interface.batch_id,
365 x_packaging_type => NULL,
366 x_manual_update => NULL,
367 x_rules_override => NULL,
368 x_award_date => NULL,
369 x_award_status => 'ACCEPTED',
370 x_rvsn_id => NULL,
371 x_alt_pell_schedule => NULL,
372 x_attribute_category => NULL,
373 x_attribute1 => NULL,
374 x_attribute2 => NULL,
375 x_attribute3 => NULL,
376 x_attribute4 => NULL,
377 x_attribute5 => NULL,
378 x_attribute6 => NULL,
379 x_attribute7 => NULL,
380 x_attribute8 => NULL,
381 x_attribute9 => NULL,
382 x_attribute10 => NULL,
383 x_attribute11 => NULL,
384 x_attribute12 => NULL,
385 x_attribute13 => NULL,
386 x_attribute14 => NULL,
387 x_attribute15 => NULL,
388 x_attribute16 => NULL,
389 x_attribute17 => NULL,
390 x_attribute18 => NULL,
391 x_attribute19 => NULL,
392 x_attribute20 => NULL,
393 x_award_number_txt => NULL,
394 x_legacy_record_flag => 'Y',
395 x_adplans_id => NULL,
396 x_lock_award_flag => 'N',
397 x_app_trans_num_txt => NULL,
398 x_awd_proc_status_code => NULL,
399 x_notification_status_code => NULL,
400 x_notification_status_date => NULL,
401 x_publish_in_ss_flag => 'N'
402 );
403 l_debug_str := l_debug_str || ' Record Updated';
404 END IF;
405 ELSE
406 -- AS THE AWARD ALREADY EXISTS SO IT CAN NOT BE UPDATED
407 fnd_message.set_name('IGF','IGF_SE_FUND_CODE');
408 fnd_message.set_token('TOKEN',l_interface.fund_code);
409 l_message_str := RPAD(l_error,12) || fnd_message.get;
410 fnd_message.set_name('IGF','IGF_AW_AWARD_EXISTS');
411 g_log_tab_index := g_log_tab_index + 1;
412 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
413 g_log_tab(g_log_tab_index).message_text := l_message_str || ' ' || fnd_message.get;
414 l_error_flag := TRUE;
415 END IF;
416 END IF; -- for the award id check
417 END IF; -- for the fund id check
418 END IF; -- for the base id check
419 END IF; -- for the person id check
420 IF l_error_flag = TRUE THEN
421 l_error_flag := FALSE;
422 --update the legacy interface table column import_status to 'E'
423 UPDATE igf_aw_li_agr_ints
424 SET import_status_type = 'E'
425 WHERE ROWID = l_interface.ROW_ID;
426 -- HERE INCREMENT THE COUNTER FOR THE RECORDS THAT HAVE ERRORS....
427 l_error_record_cnt := l_error_record_cnt + 1;
428 ELSE
429 IF p_del_ind = 'Y' THEN
430 DELETE FROM igf_aw_li_agr_ints
431 WHERE ROWID = l_interface.ROW_ID;
432 l_debug_str := l_debug_str || ' Record Deleted from interface table';
433 ELSE
434 --update the legacy interface table column import_status to 'I'
435 UPDATE igf_aw_li_agr_ints
436 SET import_status_type = 'I'
437 WHERE ROWID = l_interface.ROW_ID;
438 l_debug_str := l_debug_str || ' Record import_status changed to I';
439 END IF;
440 l_success_record_cnt := l_success_record_cnt + 1;
441 END IF;
442
443 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
444 fnd_log.string(fnd_log.level_statement,'igf.plsql.igf_ap_li_awards_pkg.main_import_process.debug',l_debug_str);
445 END IF;
446 l_message_str := NULL;
447 l_debug_str := NULL;
448
449 EXCEPTION
450 WHEN others THEN
451 l_message_str := NULL;
452 l_debug_str := NULL;
453 l_error_flag := FALSE;
454 fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXP');
455 fnd_message.set_token('NAME','IGF_AP_MK_ISIR_ACT_PKG.LG_MAKE_ACTIVE_ISIR');
456 g_log_tab_index := g_log_tab_index + 1;
457 g_log_tab(g_log_tab_index).person_number := l_interface.person_number;
458 g_log_tab(g_log_tab_index).message_text := RPAD(l_error,12) || fnd_message.get;
459
460 ROLLBACK TO sp1;
461 END;
462 COMMIT;
463 END LOOP;
464
465 IF l_success_record_cnt = 0 AND l_error_record_cnt = 0 THEN
466 fnd_message.set_name('IGS','IGS_FI_NO_RECORD_AVAILABLE');
467 fnd_file.put_line(fnd_file.log,RPAD(l_error,12) || fnd_message.get);
468 RETURN;
469 END IF;
470
471 -- CALL THE PRINT LOG PROCESS
472 print_log_process(l_person_number,l_error);
473 l_total_record_cnt := l_success_record_cnt + l_error_record_cnt;
474 fnd_message.set_name('IGS','IGS_GE_TOTAL_REC_PROCESSED');
475 fnd_file.put_line(fnd_file.OUTPUT,fnd_message.get || ' ' || l_total_record_cnt);
476 fnd_message.set_name('IGS','IGS_AD_SUCC_IMP_OFR_RESP_REC');
477 fnd_file.put_line(fnd_file.OUTPUT,fnd_message.get || ' : ' || l_success_record_cnt);
478 fnd_message.set_name('IGS','IGS_GE_TOTAL_REC_FAILED');
479 fnd_file.put_line(fnd_file.OUTPUT,fnd_message.get || ' : ' || l_error_record_cnt);
480
481 EXCEPTION
482 WHEN others THEN
483 --CALL TO THE COMMON LOGGING FRAMEWORK FOR DEBUG MESSAGES
484 IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
485 fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_ap_li_awards_pkg.main_import_process.exception','Exception: '||SQLERRM);
486 END IF;
487 fnd_message.set_name('IGF','IGF_GE_UNHANDLED_EXP');
488 fnd_message.set_token('NAME','IGF_AP_LI_AWARDS_PKG.MAIN_IMPORT_PROCESS');
489 errbuf := fnd_message.get;
490 igs_ge_msg_stack.conc_exception_hndl;
491
492 END main_import_process;
493
494 PROCEDURE print_log_process(
495 p_person_number IN VARCHAR2,
496 p_error IN VARCHAR2
497 ) IS
498 /*
499 || Created By : bkkumar
500 || Created On : 24-MAY-2003
501 || Purpose : This process gets the records from the pl/sql table and print in the log file
502 || Known limitations, enhancements or remarks :
503 || Change History :
504 || Who When What
505 || (reverse chronological order - newest change first)
506 */
507
508 l_count NUMBER(5) := g_log_tab.COUNT;
509 l_old_person igf_aw_li_agr_ints.person_number%TYPE := '*******';
510
511 BEGIN
512
513 FOR i IN 1..l_count LOOP
514 IF l_old_person <> g_log_tab(i).person_number THEN
515 fnd_file.put_line(fnd_file.log,'-----------------------------------------------------------------------------');
516 fnd_file.put_line(fnd_file.log,p_person_number || ' : ' || g_log_tab(i).person_number);
517 END IF;
518 IF g_log_tab(i).message_text IS NOT NULL AND g_log_tab(i).message_text <> ' ' THEN
519 fnd_file.put_line(fnd_file.log,g_log_tab(i).message_text);
520 END IF;
521 l_old_person := g_log_tab(i).person_number;
522 END LOOP;
523
524 END print_log_process;
525
526 END igf_ap_li_awards_pkg;