DBA Data[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;