DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGR_IMP_002

Source


1 PACKAGE BODY IGR_IMP_002 AS
2 /* $Header: IGSRT13B.pls 120.0 2005/06/01 21:44:35 appldev noship $ */
3 /* ------------------------------------------------------------------------------------------------------------------------
4   ||  Created By : rbezawad
5   ||  Created On : 27-Feb-05
6   ||  Purpose : Extract of IGR related references from Admissions Import process packages (IGSAD79B.pls and IGSAD93B.pls)
7   ||            to get rid of probable compilation errors for non-IGR customers.
8   ||  Known limitations, enhancements or remarks :
9   ||  Change History :
10   ||  WHO             WHEN                   WHAT
11       9-Mar-05      rbezawad    Modified for APC Integration Build. Bug: 3973942.
12                                 Also obsoelted usage of Entry Status/Program/Unit Set code columns.
13 ---------------------------------------------------------------------------------------------------------------------------*/
14 
15   -- These are the package variables to hold the value of whether the particular category is included or not.
16   g_inquiry_inst_inc              BOOLEAN := FALSE;
17   g_inquiry_dtls_inc              BOOLEAN := FALSE;
18   g_inquiry_acad_int_inc          BOOLEAN := FALSE;
19   g_inquiry_pkg_itm_inc           BOOLEAN := FALSE;
20   g_inquiry_info_type_inc         BOOLEAN := FALSE;
21   g_inquiry_char_inc              BOOLEAN := FALSE;
22 
23 
24   PROCEDURE update_parent_record_status ( p_interface_run_id  IN NUMBER ) AS
25   /*************************************************************
26    Created By : rbezawad
27    Date Created By :  27-Feb-05
28    Purpose : Procedure to set the IGR_I_APPL_INT.STATUS value to Warning (status='4') when IGR_I_APPL_INT record
29              is processed successfully (status='1') but processing of any of the child interface records is not
30              successful (status<>'1').  Also set the IGS_AD_INTERFACE.STATUS to Error (Status='3') when processing any
31 	     of the child interface records (IGR_I_APPL_INT) is not successful (status<>'1').
32    Know limitations, enhancements or remarks
33    Change History
34    Who             When            What
35    (reverse chronological order - newest change first)
36   ***************************************************************/
37   BEGIN
38 
39     -- Based upon inquiry child
40     UPDATE igr_i_appl_int iappl
41     SET    status = '4',
42            error_code = 'E347',
43            error_text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E347', 8405)
44     WHERE  status = '1'
45     AND    interface_run_id = p_interface_run_id
46     AND    (
47                 EXISTS (SELECT 1 FROM igr_i_lines_int WHERE status <> '1' AND interface_inq_appl_id = iappl.interface_inq_appl_id)
48             OR  EXISTS (SELECT 1 FROM igr_i_pkg_int WHERE status <> '1' AND interface_inq_appl_id = iappl.interface_inq_appl_id)
49             OR  EXISTS (SELECT 1 FROM igr_i_info_int WHERE status <> '1' AND interface_inq_appl_id = iappl.interface_inq_appl_id)
50             OR  EXISTS (SELECT 1 FROM igr_i_char_int WHERE status <> '1' AND interface_inq_appl_id = iappl.interface_inq_appl_id)
51            );
52     COMMIT;
53 
54     -- Based upon person child
55     UPDATE igs_ad_interface ad
56     SET    record_status = '3',
57            status = '4',
58            error_code = 'E347'
59     WHERE  status = '1'
60     AND    interface_run_id = p_interface_run_id
61     AND    (EXISTS (SELECT 1 FROM igr_i_appl_int WHERE status <> '1' AND interface_id = ad.interface_id));
62     COMMIT;
63 
64   END update_parent_record_status;
65 
66 
67   PROCEDURE prc_ad_category (p_source_type_id IN NUMBER,
68                              p_interface_run_id  IN NUMBER,
69                              p_enable_log IN VARCHAR2,
70                              p_schema IN VARCHAR2
71   ) AS
72   /*************************************************************
73    Created By : rbezawad
74    Date Created By :  27-Feb-05
75    Purpose : This procedure is used to call the procedures in related inquiry source category (INQUIRY_INSTANCE)
76              to import each entity (INQUIRY_DETAILS, INQUIRY_ACADEMIC_INTEREST, INQUIRY_PACKAGE_ITEMS, INQUIRY_INFORMATION_TYPES
77 	     and INQUIRY_CHARACTERISTICS).
78    Know limitations, enhancements or remarks
79    Change History
80    Who             When            What
81    (reverse chronological order - newest change first)
82   ***************************************************************/
83 
84     l_meaning     igs_lookup_values.meaning%TYPE;
85 
86   BEGIN
87 
88     g_inquiry_inst_inc            := igs_ad_gen_016.chk_src_cat (p_source_type_id, 'INQUIRY_INSTANCE');
89     IF g_inquiry_inst_inc THEN
90       g_inquiry_dtls_inc            := TRUE;
91       g_inquiry_acad_int_inc        := TRUE;
92       g_inquiry_pkg_itm_inc         := TRUE;
93       g_inquiry_info_type_inc       := TRUE;
94       g_inquiry_char_inc            := TRUE;
95     ELSE
96       g_inquiry_dtls_inc            := igs_ad_gen_016.chk_src_cat (p_source_type_id, 'INQUIRY_DETAILS');
97       g_inquiry_acad_int_inc        := igs_ad_gen_016.chk_src_cat (p_source_type_id, 'INQUIRY_ACADEMIC_INTEREST');
98       g_inquiry_pkg_itm_inc         := igs_ad_gen_016.chk_src_cat (p_source_type_id, 'INQUIRY_PACKAGE_ITEMS');
99       g_inquiry_info_type_inc       := igs_ad_gen_016.chk_src_cat (p_source_type_id, 'INQUIRY_INFORMATION_TYPES');
100       g_inquiry_char_inc            := igs_ad_gen_016.chk_src_cat (p_source_type_id, 'INQUIRY_CHARACTERISTICS');
101     END IF;
102 
103     IF g_inquiry_inst_inc THEN
104       l_meaning := igs_ad_gen_016.get_lkup_meaning ('IMP_CATEGORIES', 'INQUIRY_INSTANCE', 8405);
105 
106       IF p_enable_log = 'Y' THEN
107         igs_ad_imp_001.set_message (p_name        => 'IGS_PE_BEG_IMP',
108                                     p_token_name  => 'TYPE_NAME',
109                                     p_token_value => l_meaning);
110       END IF;
111       -- Would need to process all inquiry entities since INQUIRY_INSTANCE includes all entities
112       -- Processing would take place through the below mentioned category handling
113       -- g_inquiry_dtls_inc (INQUIRY_DETAILS)
114       -- g_inquiry_acad_int_inc (INQUIRY_ACADEMIC_INTEREST)
115       -- g_inquiry_pkg_itm_inc (INQUIRY_PACKAGE_ITEMS)
116       -- g_inquiry_info_type_inc (INQUIRY_INFORMATION_TYPES)
117       -- g_inquiry_char_inc (INQUIRY_CHARACTERISTICS)
118     END IF; -- g_inquiry_inst_inc
119 
120     IF g_inquiry_dtls_inc THEN
121       l_meaning := igs_ad_gen_016.get_lkup_meaning ('IMP_CATEGORIES', 'INQUIRY_DETAILS', 8405);
122 
123       IF p_enable_log = 'Y' THEN
124         igs_ad_imp_001.set_message (p_name        => 'IGS_PE_BEG_IMP',
125                                     p_token_name  => 'TYPE_NAME',
126                                     p_token_value => l_meaning);
127       END IF;
128 
129       -- Populating the interface table with the interface_run_id value
130       UPDATE igr_i_appl_int a
131       SET    interface_run_id = p_interface_run_id,
132              person_id = (SELECT person_id
133                           FROM   igs_ad_interface
134                           WHERE  interface_id = a.interface_id)
135       WHERE  interface_id IN (SELECT interface_id
136                               FROM   igs_ad_interface
137                               WHERE  interface_run_id = p_interface_run_id
138                               AND    status IN ('1','4'));
139 
140       -- If record failed only due to child record failure
141       -- then set status back to 1 and nullify error code/text
142       UPDATE igr_i_appl_int
143       SET    error_code = NULL,
144              error_text = NULL,
145              status = '1'
146       WHERE  interface_run_id = p_interface_run_id
147       AND    error_code = 'E347'
148       AND    status = '4';
149 
150       -- Gather statistics of the table
151       FND_STATS.GATHER_TABLE_STATS(ownname => p_schema,
152                                    tabname => 'IGR_I_APPL_INT',
153                                    cascade => TRUE);
154 
155       -- Call category entity import procedure
156       igr_imp_003.process_person_inquiry (p_interface_run_id => p_interface_run_id,
157                                           p_source_type_id   => p_source_type_id,
158                                           p_enable_log       => p_enable_log,
159                                           p_rule             => 'N'); -- Update not yet supported
160 
161     END IF; -- g_inquiry_dtls_inc
162 
163     IF g_inquiry_acad_int_inc THEN
164       l_meaning := igs_ad_gen_016.get_lkup_meaning ('IMP_CATEGORIES', 'INQUIRY_ACADEMIC_INTEREST', 8405);
165 
166       IF p_enable_log = 'Y' THEN
167         igs_ad_imp_001.set_message (p_name        => 'IGS_PE_BEG_IMP',
168                                     p_token_name  => 'TYPE_NAME',
169                                     p_token_value => l_meaning);
170       END IF;
171 
172       -- Populating the interface table with the interface_run_id value
173       UPDATE igr_i_lines_int a
174       SET    interface_run_id = p_interface_run_id,
175              (person_id,enquiry_appl_number,inquiry_date,inquiry_source_type,sales_lead_id)
176              = (SELECT person_id,enquiry_appl_number,inquiry_dt,inquiry_source_type,sales_lead_id
177                 FROM   igr_i_appl_int
178                 WHERE  interface_inq_appl_id = a.interface_inq_appl_id)
179       WHERE  interface_inq_appl_id IN (SELECT interface_inq_appl_id
180                                        FROM   igr_i_appl_int
181                                        WHERE  interface_run_id = p_interface_run_id
182                                        AND    status IN ('1','4'));
183 
184       -- Gather statistics of the table
185       FND_STATS.GATHER_TABLE_STATS(ownname => p_schema,
186                                    tabname => 'IGR_I_LINES_INT',
187                                    cascade => TRUE);
188 
189       -- Call category entity import procedure
190       igr_imp_003.process_inquiry_lines (p_interface_run_id => p_interface_run_id,
191                                          p_enable_log       => p_enable_log,
192                                          p_rule             => 'N'); -- Update not yet supported
193 
194     END IF; -- g_inquiry_acad_int_inc
195 
196     IF g_inquiry_pkg_itm_inc THEN
197       l_meaning := igs_ad_gen_016.get_lkup_meaning ('IMP_CATEGORIES', 'INQUIRY_PACKAGE_ITEMS', 8405);
198 
199       IF p_enable_log = 'Y' THEN
200         igs_ad_imp_001.set_message (p_name        => 'IGS_PE_BEG_IMP',
201                                     p_token_name  => 'TYPE_NAME',
202                                     p_token_value => l_meaning);
203       END IF;
204 
205       -- Populating the interface table with the interface_run_id value
206       UPDATE igr_i_pkg_int a
207       SET    interface_run_id = p_interface_run_id,
208              (person_id,enquiry_appl_number,sales_lead_id)
209              = (SELECT person_id,enquiry_appl_number,sales_lead_id
210                 FROM   igr_i_appl_int
211                 WHERE  interface_inq_appl_id = a.interface_inq_appl_id)
212       WHERE  interface_inq_appl_id IN (SELECT interface_inq_appl_id
213                                        FROM   igr_i_appl_int
214                                        WHERE  interface_run_id = p_interface_run_id
215                                        AND    status IN ('1','4'));
216 
217       -- Gather statistics of the table
218       FND_STATS.GATHER_TABLE_STATS(ownname => p_schema,
219                                    tabname => 'IGR_I_PKG_INT',
220                                    cascade => TRUE);
221 
222       -- Call category entity import procedure
223       igr_imp_004.prc_inq_pkg (p_interface_run_id => p_interface_run_id,
224                                p_enable_log       => p_enable_log,
225                                p_rule             => 'N'); -- Update not yet supported
226 
227     END IF; -- g_inquiry_pkg_itm_inc
228 
229     IF g_inquiry_info_type_inc THEN
230       l_meaning := igs_ad_gen_016.get_lkup_meaning ('IMP_CATEGORIES', 'INQUIRY_INFORMATION_TYPES', 8405);
231 
232       IF p_enable_log = 'Y' THEN
233         igs_ad_imp_001.set_message (p_name        => 'IGS_PE_BEG_IMP',
234                                     p_token_name  => 'TYPE_NAME',
235                                     p_token_value => l_meaning);
236       END IF;
237 
238       -- Populating the interface table with the interface_run_id value
239       UPDATE igr_i_info_int a
240       SET    interface_run_id = p_interface_run_id,
241              (person_id,enquiry_appl_number)
242              = (SELECT person_id,enquiry_appl_number
243                 FROM   igr_i_appl_int
244                 WHERE  interface_inq_appl_id = a.interface_inq_appl_id)
245       WHERE  interface_inq_appl_id IN (SELECT interface_inq_appl_id
246                                        FROM   igr_i_appl_int
247                                        WHERE  interface_run_id = p_interface_run_id
248                                        AND    status IN ('1','4'));
249 
250       -- Gather statistics of the table
251       FND_STATS.GATHER_TABLE_STATS(ownname => p_schema,
252                                    tabname => 'IGR_I_INFO_INT',
253                                    cascade => TRUE);
254 
255       -- Call category entity import procedure
256       igr_imp_004.prc_inq_info (p_interface_run_id => p_interface_run_id,
257                                    p_enable_log       => p_enable_log,
258                                    p_rule             => 'N'); -- Update not yet supported
259 
260     END IF; -- g_inquiry_info_type_inc
261 
262     IF g_inquiry_char_inc THEN
263       l_meaning := igs_ad_gen_016.get_lkup_meaning ('IMP_CATEGORIES', 'INQUIRY_CHARACTERISTICS', 8405);
264 
265       IF p_enable_log = 'Y' THEN
266         igs_ad_imp_001.set_message (p_name        => 'IGS_PE_BEG_IMP',
267                                     p_token_name  => 'TYPE_NAME',
268                                     p_token_value => l_meaning);
269       END IF;
270 
271       -- Populating the interface table with the interface_run_id value
272       UPDATE igr_i_char_int a
273       SET    interface_run_id = p_interface_run_id,
274              (person_id,enquiry_appl_number)
275              = (SELECT person_id,enquiry_appl_number
276                 FROM   igr_i_appl_int
277                 WHERE  interface_inq_appl_id = a.interface_inq_appl_id)
278       WHERE  interface_inq_appl_id IN (SELECT interface_inq_appl_id
279                                        FROM   igr_i_appl_int
280                                        WHERE  interface_run_id = p_interface_run_id
281                                        AND    status IN ('1','4'));
282 
283       -- Gather statistics of the table
284       FND_STATS.GATHER_TABLE_STATS(ownname => p_schema,
285                                    tabname => 'IGR_I_CHAR_INT',
286                                    cascade => TRUE);
287 
288       -- Call category entity import procedure
289       igr_imp_004.prc_inq_char (p_interface_run_id => p_interface_run_id,
290                                    p_enable_log       => p_enable_log,
291                                    p_rule             => 'N'); -- Update not yet supported
292 
293     END IF; -- g_inquiry_char_inc
294 
295   END prc_ad_category;
296 
297 
298   PROCEDURE del_cmpld_rct_records ( p_source_type_id IN NUMBER,
299                                     p_interface_run_id  IN NUMBER  ) AS
300   /*************************************************************
301    Created By : rbezawad
302    Date Created By :  27-Feb-05
303    Purpose : Procedure is used to delete the records from the recruitment interface tables, which are processed successfully.
304    Know limitations, enhancements or remarks
305    Change History
306    Who             When            What
307    (reverse chronological order - newest change first)
308   ***************************************************************/
309 
310   BEGIN
311 
312     IF g_inquiry_acad_int_inc THEN
313       DELETE FROM igr_i_lines_int
314       WHERE  status = '1'
315       AND    interface_run_id = p_interface_run_id;
316       COMMIT;
317     END IF; -- g_inquiry_acad_int_inc
318 
319     IF g_inquiry_pkg_itm_inc THEN
320       DELETE FROM igr_i_pkg_int
321       WHERE  status = '1'
322       AND    interface_run_id = p_interface_run_id;
323       COMMIT;
324     END IF; -- g_inquiry_pkg_itm_inc
325 
326     IF g_inquiry_info_type_inc THEN
327       DELETE FROM igr_i_info_int
328       WHERE  status = '1'
329       AND    interface_run_id = p_interface_run_id;
330       COMMIT;
331     END IF; -- g_inquiry_info_type_inc
332 
333     IF g_inquiry_char_inc THEN
334       DELETE FROM igr_i_char_int
335       WHERE  status = '1'
336       AND    interface_run_id = p_interface_run_id;
337       COMMIT;
338     END IF; -- g_inquiry_char_inc
339 
340     IF g_inquiry_dtls_inc THEN
341       DELETE FROM igr_i_appl_int
342       WHERE  status = '1'
343       AND    interface_run_id = p_interface_run_id;
344       COMMIT;
345     END IF; -- g_inquiry_dtls_inc
346 
347   END del_cmpld_rct_records;
348 
349 
350 END IGR_IMP_002;