[Home] [Help]
PACKAGE BODY: APPS.IGS_DA_UTILS_PKG
Source
1 PACKAGE BODY IGS_DA_UTILS_PKG AS
2 /* $Header: IGSDA09B.pls 115.4 2004/02/20 15:09:07 kdande noship $ */
3
4 /********************************************************************************************************
5 Created By : Jitendra Handa
6 Date Created By : 27-Mar-2003
7
8 Purpose : This package is to be used for the Self Service
9 activities that happen during the Degree Audit
10 Request Process. The procedures in this package
11 will be using procedures defined for the processing
12 of request information as well.
13
14 remarks :
15
16 Change History
17
18 Who When What
19 ---------------------------------------------------------------
20 smanglm 05-Aug-2003 Bug 3084766: Make use of Dynamic Person ID Group if the igs_pe_persid_group_all.FILE_NAME
21 is not null else make use of static query. Changes made in the CURSOR c_stud_grp_mem of
22 create_req_stdnts_rec procedure
23 Jitendra Handa 27-Mar-2003 New Package Created.
24
25 ***********************************************************************************************************/
26
27 g_pkg_name CONSTANT VARCHAR2(30) := 'IGS_DA_UTILS_PKG';
28
29 -- This procedure is caled to set the STUDENT_RELEASE_IND to Y
30 -- Indicating that the report has been released to students and
31 -- can be viewed by students .
32 PROCEDURE release_report_to_students
33 (
34 p_batch_id IN Number
35 )IS
36 begin
37 DECLARE
38
39 CURSOR c_da_rqst IS
40 SELECT rowid, da.*
41 FROM IGS_DA_RQST da
42 WHERE BATCH_ID = p_batch_id;
43
44 -- Declare local variables :
45 V_RETURN_STATUS VARCHAR2(30);
46 V_MSG_DATA VARCHAR2(100);
47 V_MSG_COUNT NUMBER;
48 V_DA_RQST c_da_rqst%ROWTYPE;
49 BEGIN
50 -- STUDENT_RELEASE_IND flag will be updated to Y
51 OPEN c_da_rqst;
52 FETCH c_da_rqst INTO v_da_rqst;
53 IF c_da_rqst%ROWCOUNT = 1 THEN
54 -- call update_row
55 IGS_DA_RQST_PKG.UPDATE_ROW(
56 X_ROWID => v_da_rqst.ROWID ,
57 X_BATCH_ID => v_da_rqst.BATCH_ID ,
58 X_REQUEST_TYPE_ID => v_da_rqst.REQUEST_TYPE_ID ,
59 X_REQUEST_MODE => v_da_rqst.REQUEST_MODE ,
60 X_PROGRAM_COMPARISON_TYPE => v_da_rqst.PROGRAM_COMPARISON_TYPE ,
61 X_REQUEST_STATUS => v_da_rqst.REQUEST_STATUS ,
62 X_PERSON_ID_GROUP_ID => v_da_rqst.PERSON_ID_GROUP_ID ,
63 X_PERSON_ID => v_da_rqst.PERSON_ID ,
64 X_REQUESTOR_ID => v_da_rqst.REQUESTOR_ID ,
65 X_STUDENT_RELEASE_IND => 'Y' ,
66 X_SPECIAL_PROGRAM => v_da_rqst.SPECIAL_PROGRAM ,
67 X_SPECIAL_PROGRAM_CATALOG => v_da_rqst.SPECIAL_PROGRAM_CATALOG ,
68 X_ATTRIBUTE_CATEGORY => v_da_rqst.ATTRIBUTE_CATEGORY ,
69 X_ATTRIBUTE1 => v_da_rqst.ATTRIBUTE1 ,
70 X_ATTRIBUTE2 => v_da_rqst.ATTRIBUTE2 ,
71 X_ATTRIBUTE3 => v_da_rqst.ATTRIBUTE3 ,
72 X_ATTRIBUTE4 => v_da_rqst.ATTRIBUTE4 ,
73 X_ATTRIBUTE5 => v_da_rqst.ATTRIBUTE5 ,
74 X_ATTRIBUTE6 => v_da_rqst.ATTRIBUTE6 ,
75 X_ATTRIBUTE7 => v_da_rqst.ATTRIBUTE7 ,
76 X_ATTRIBUTE8 => v_da_rqst.ATTRIBUTE8 ,
77 X_ATTRIBUTE9 => v_da_rqst.ATTRIBUTE9 ,
78 X_ATTRIBUTE10 => v_da_rqst.ATTRIBUTE10 ,
79 X_ATTRIBUTE11 => v_da_rqst.ATTRIBUTE11 ,
80 X_ATTRIBUTE12 => v_da_rqst.ATTRIBUTE12 ,
81 X_ATTRIBUTE13 => v_da_rqst.ATTRIBUTE13 ,
82 X_ATTRIBUTE14 => v_da_rqst.ATTRIBUTE14 ,
83 X_ATTRIBUTE15 => v_da_rqst.ATTRIBUTE15 ,
84 X_ATTRIBUTE16 => v_da_rqst.ATTRIBUTE16 ,
85 X_ATTRIBUTE17 => v_da_rqst.ATTRIBUTE17 ,
86 X_ATTRIBUTE18 => v_da_rqst.ATTRIBUTE18 ,
87 X_ATTRIBUTE19 => v_da_rqst.ATTRIBUTE19 ,
88 X_ATTRIBUTE20 => v_da_rqst.ATTRIBUTE20 ,
89 X_MODE => 'R' ,
90 X_RETURN_STATUS => v_RETURN_STATUS ,
91 X_MSG_DATA => v_MSG_DATA ,
92 X_MSG_COUNT => v_MSG_COUNT
93 );
94 END IF;
95
96 CLOSE c_da_rqst;
97
98 EXCEPTION
99 WHEN OTHERS THEN
100 NULL;
101 END;
102
103 END release_report_to_students;
104
105 PROCEDURE create_req_stdnts_rec (p_batch_id IN NUMBER,
106 X_RETURN_STATUS OUT NOCOPY VARCHAR2,
107 X_MSG_DATA OUT NOCOPY VARCHAR2,
108 X_MSG_COUNT OUT NOCOPY NUMBER
109 ) IS
110 l_rowid VARCHAR2(100);
111 l_igs_da_req_stdnts_id NUMBER(30);
112 l_return_status VARCHAR2(100);
113 l_msg_data VARCHAR2(2000);
114 l_msg_count NUMBER(25);
115
116 --
117 -- declare the ref cursor
118 --
119 TYPE REF_CUR IS REF CURSOR;
120
121 --
122 -- now declare the variables for the above ref curosr
123 --
124 c_stud_grp_mem REF_CUR;
125
126 --
127 -- declare the out param for the funtion IGS_PE_DYNAMIC_PERSID_GROUP.IGS_GET_DYNAMIC_SQL
128 --
129 l_status VARCHAR2(2000);
130
131 --
132 -- declare a variablt to store the person_id that would be obtained from the above ref cursors
133 --
134 l_person_id igs_pe_person.person_id%TYPE;
135 --
136 -- cursor to check whether dynamic person_id_group has to be used or not based on the value
137 -- of igs_pe_persid_group_all.file_name for the given group_id
138 --
139 CURSOR c_is_filename_null (cp_group_id igs_pe_persid_group_all.group_id%TYPE) IS
140 SELECT 'Y' FROM igs_pe_persid_group_all WHERE group_id = cp_group_id AND file_name IS NULL;
141 l_is_filename_null varchar2(1) := 'N';
142
143 CURSOR c_igs_da_rqst (cp_batch_id igs_da_rqst.batch_id%TYPE) IS
144 SELECT dr.rowid, dr.*
145 FROM igs_da_rqst dr
146 WHERE batch_id = cp_batch_id;
147 rec_igs_da_rqst c_igs_da_rqst%ROWTYPE;
148
149 l_stc_stud_grp_mem VARCHAR2(2000) := ' SELECT person_id FROM igs_pe_prsid_grp_mem WHERE group_id = :1 ';
150 l_dyn_stud_grp_mem VARCHAR2(2000);
151
152 CURSOR c_igs_da_rec_wif (cp_batch_id igs_da_rqst.batch_id%TYPE) IS
153 SELECT *
154 FROM igs_da_req_wif
155 WHERE batch_id = cp_batch_id;
156
157 CURSOR c_prog_attempt (cp_person_id igs_da_rqst.person_id%TYPE) IS
158 SELECT course_cd
159 FROM igs_en_stdnt_ps_att
160 WHERE person_id = cp_person_id
161 AND course_attempt_status NOT IN ('DISCONTIN','UNCONFIRM');
162
163 CURSOR c_dff (cp_batch_id igs_da_rqst.batch_id%TYPE) IS
164 SELECT crt.*
165 FROM igs_da_cnfg_req_typ crt,
166 igs_da_rqst dr
167 WHERE crt.request_type_id = dr.request_type_id
168 AND dr.batch_id = cp_batch_id;
169 rec_dff c_dff%ROWTYPE;
170
171 CURSOR c_req_ftrs (cp_batch_id igs_da_rqst.batch_id%TYPE) IS
172 SELECT cf.feature_code,
173 cf.feature_value
174 FROM igs_da_cnfg_ftr cf,
175 igs_da_rqst dr
176 WHERE dr.request_type_id = cf.request_type_id
177 AND dr.batch_id = cp_batch_id
178 AND cf.feature_code IN (SELECT feature_code
179 FROM igs_da_cnfg_ftr cf_in
180 WHERE cf_in.request_type_id = dr.request_type_id
181 MINUS
182 SELECT feature_code
183 FROM igs_da_req_ftrs rf_in
184 WHERE rf_in.batch_id = dr.batch_id);
185 BEGIN
186 FND_MSG_PUB.initialize;
187 OPEN c_igs_da_rqst (p_batch_id);
188 LOOP
189 FETCH c_igs_da_rqst INTO rec_igs_da_rqst;
190 EXIT WHEN c_igs_da_rqst%NOTFOUND;
191 -- check whether the dynamic persid group has to be used or not
192 OPEN c_is_filename_null (rec_igs_da_rqst.person_id_group_id);
193 FETCH c_is_filename_null INTO l_is_filename_null;
194 CLOSE c_is_filename_null;
195
196 IF rec_igs_da_rqst.program_comparison_type = 'SP' THEN
197 -- insert a corresponding record in igs_da_req_stdnts if a single student
198 IF rec_igs_da_rqst.request_mode = 'SINGLE' THEN
199 l_rowid := null;
200 l_igs_da_req_stdnts_id := null;
201 igs_da_req_stdnts_pkg.insert_row (
202 X_ROWID => l_rowid,
203 X_BATCH_ID => rec_igs_da_rqst.batch_id,
204 X_IGS_DA_REQ_STDNTS_ID => l_igs_da_req_stdnts_id,
205 X_PERSON_ID => rec_igs_da_rqst.person_id,
206 X_PROGRAM_CODE => NULL,
207 X_WIF_PROGRAM_CODE => NULL,
208 X_SPECIAL_PROGRAM_CODE => rec_igs_da_rqst.special_program,
209 X_MAJOR_UNIT_SET_CD => NULL,
210 X_PROGRAM_MAJOR_CODE => NULL,
211 X_REPORT_TEXT => NULL,
212 X_WIF_ID => NULL,
213 X_MODE => 'R',
214 x_error_code => NULL
215 );
216 ELSE
217 IF l_is_filename_null = 'N' THEN
218 l_dyn_stud_grp_mem := IGS_PE_DYNAMIC_PERSID_GROUP.IGS_GET_DYNAMIC_SQL (rec_igs_da_rqst.person_id_group_id,l_status);
219 IF l_status <> FND_API.G_RET_STS_SUCCESS THEN
220 FND_MESSAGE.SET_NAME('IGS','IGS_AZ_DYN_PERS_ID_GRP_ERR');
221 FND_MSG_PUB.ADD;
222 RAISE FND_API.G_EXC_ERROR;
223 END IF;
224 OPEN c_stud_grp_mem FOR l_dyn_stud_grp_mem;
225 ELSE
226 OPEN c_stud_grp_mem FOR l_stc_stud_grp_mem USING rec_igs_da_rqst.person_id_group_id;
227 END IF;
228 LOOP
229 FETCH c_stud_grp_mem INTO l_person_id;
230 EXIT WHEN c_stud_grp_mem%NOTFOUND;
231 l_rowid := null;
232 l_igs_da_req_stdnts_id := null;
233 igs_da_req_stdnts_pkg.insert_row (
234 X_ROWID => l_rowid,
235 X_BATCH_ID => rec_igs_da_rqst.batch_id,
236 X_IGS_DA_REQ_STDNTS_ID => l_igs_da_req_stdnts_id,
237 X_PERSON_ID => l_person_id,
238 X_PROGRAM_CODE => NULL,
239 X_WIF_PROGRAM_CODE => NULL,
240 X_SPECIAL_PROGRAM_CODE => rec_igs_da_rqst.special_program,
241 X_MAJOR_UNIT_SET_CD => NULL,
242 X_PROGRAM_MAJOR_CODE => NULL,
243 X_REPORT_TEXT => NULL,
244 X_WIF_ID => NULL,
245 X_MODE => 'R',
246 x_error_code => NULL
247 );
248 END LOOP;
249 CLOSE c_stud_grp_mem;
250 END IF; -- rec_igs_da_rqst.request_mode = 'SINGLE' SP
251 ELSIF rec_igs_da_rqst.program_comparison_type = 'WIF' THEN
252 FOR rec_igs_da_rec_wif IN c_igs_da_rec_wif(rec_igs_da_rqst.batch_id) LOOP
253 IF rec_igs_da_rqst.request_mode = 'SINGLE' THEN
254 l_rowid := null;
255 l_igs_da_req_stdnts_id := null;
256 igs_da_req_stdnts_pkg.insert_row (
257 X_ROWID => l_rowid,
258 X_BATCH_ID => rec_igs_da_rqst.batch_id,
259 X_IGS_DA_REQ_STDNTS_ID => l_igs_da_req_stdnts_id,
260 X_PERSON_ID => rec_igs_da_rqst.person_id,
261 X_PROGRAM_CODE => NULL,
262 X_WIF_PROGRAM_CODE => rec_igs_da_rec_wif.program_code,
263 X_SPECIAL_PROGRAM_CODE => NULL,
264 X_MAJOR_UNIT_SET_CD => rec_igs_da_rec_wif.major_unit_set_cd1,
265 X_PROGRAM_MAJOR_CODE => NULL,
266 X_REPORT_TEXT => NULL,
267 X_WIF_ID => rec_igs_da_rec_wif.wif_id,
268 X_MODE => 'R',
269 x_error_code => NULL
270 );
271 ELSE
272 IF l_is_filename_null = 'N' THEN
273 l_dyn_stud_grp_mem := IGS_PE_DYNAMIC_PERSID_GROUP.IGS_GET_DYNAMIC_SQL (rec_igs_da_rqst.person_id_group_id,l_status);
274 IF l_status <> FND_API.G_RET_STS_SUCCESS THEN
275 FND_MESSAGE.SET_NAME('IGS','IGS_AZ_DYN_PERS_ID_GRP_ERR');
276 FND_MSG_PUB.ADD;
277 RAISE FND_API.G_EXC_ERROR;
278 END IF;
279 OPEN c_stud_grp_mem FOR l_dyn_stud_grp_mem;
280 ELSE
281 OPEN c_stud_grp_mem FOR l_stc_stud_grp_mem USING rec_igs_da_rqst.person_id_group_id;
282 END IF;
283 LOOP
284 FETCH c_stud_grp_mem INTO l_person_id;
285 EXIT WHEN c_stud_grp_mem%NOTFOUND;
286 l_rowid := null;
287 l_igs_da_req_stdnts_id := null;
288 igs_da_req_stdnts_pkg.insert_row (
289 X_ROWID => l_rowid,
290 X_BATCH_ID => rec_igs_da_rqst.batch_id,
291 X_IGS_DA_REQ_STDNTS_ID => l_igs_da_req_stdnts_id,
292 X_PERSON_ID => l_person_id,
293 X_PROGRAM_CODE => NULL,
294 X_WIF_PROGRAM_CODE => rec_igs_da_rec_wif.program_code,
295 X_SPECIAL_PROGRAM_CODE => NULL,
296 X_MAJOR_UNIT_SET_CD => rec_igs_da_rec_wif.major_unit_set_cd1,
297 X_PROGRAM_MAJOR_CODE => NULL,
298 X_REPORT_TEXT => NULL,
299 X_WIF_ID => rec_igs_da_rec_wif.wif_id,
300 X_MODE => 'R',
301 x_error_code => NULL
302 );
303 END LOOP;
304 CLOSE c_stud_grp_mem;
305 END IF; -- rec_igs_da_rqst.request_mode = 'SINGLE' WIF
306 END LOOP;
307
308 ELSIF rec_igs_da_rqst.program_comparison_type = 'DP' THEN
309 IF rec_igs_da_rqst.request_mode = 'SINGLE' THEN
310 -- insert each program attempt of the student
311 FOR rec_prog_attempt IN c_prog_attempt (rec_igs_da_rqst.person_id) LOOP
312 l_rowid := null;
313 l_igs_da_req_stdnts_id := null;
314 igs_da_req_stdnts_pkg.insert_row (
315 X_ROWID => l_rowid,
316 X_BATCH_ID => rec_igs_da_rqst.batch_id,
317 X_IGS_DA_REQ_STDNTS_ID => l_igs_da_req_stdnts_id,
318 X_PERSON_ID => rec_igs_da_rqst.person_id,
319 X_PROGRAM_CODE => rec_prog_attempt.course_cd,
320 X_WIF_PROGRAM_CODE => NULL,
321 X_SPECIAL_PROGRAM_CODE => NULL,
322 X_MAJOR_UNIT_SET_CD => NULL,
323 X_PROGRAM_MAJOR_CODE => NULL,
324 X_REPORT_TEXT => NULL,
325 X_WIF_ID => NULL,
326 X_MODE => 'R',
327 x_error_code => NULL
328 );
329 END LOOP;
330 ELSE
331 IF l_is_filename_null = 'N' THEN
332 l_dyn_stud_grp_mem := IGS_PE_DYNAMIC_PERSID_GROUP.IGS_GET_DYNAMIC_SQL (rec_igs_da_rqst.person_id_group_id,l_status);
333 IF l_status <> FND_API.G_RET_STS_SUCCESS THEN
334 FND_MESSAGE.SET_NAME('IGS','IGS_AZ_DYN_PERS_ID_GRP_ERR');
335 FND_MSG_PUB.ADD;
336 RAISE FND_API.G_EXC_ERROR;
337 END IF;
338 OPEN c_stud_grp_mem FOR l_dyn_stud_grp_mem;
339 ELSE
340 OPEN c_stud_grp_mem FOR l_stc_stud_grp_mem USING rec_igs_da_rqst.person_id_group_id;
341 END IF;
342 LOOP
343 FETCH c_stud_grp_mem INTO l_person_id;
344 EXIT WHEN c_stud_grp_mem%NOTFOUND;
345 FOR rec_prog_attempt IN c_prog_attempt (l_person_id) LOOP
346 l_rowid := null;
347 l_igs_da_req_stdnts_id := null;
348 igs_da_req_stdnts_pkg.insert_row (
349 X_ROWID => l_rowid,
350 X_BATCH_ID => rec_igs_da_rqst.batch_id,
351 X_IGS_DA_REQ_STDNTS_ID => l_igs_da_req_stdnts_id,
352 X_PERSON_ID => l_person_id,
353 X_PROGRAM_CODE => rec_prog_attempt.course_cd,
354 X_WIF_PROGRAM_CODE => NULL,
355 X_SPECIAL_PROGRAM_CODE => NULL,
356 X_MAJOR_UNIT_SET_CD => NULL,
357 X_PROGRAM_MAJOR_CODE => NULL,
358 X_REPORT_TEXT => NULL,
359 X_WIF_ID => NULL,
360 X_MODE => 'R',
361 x_error_code => NULL
362 );
363 END LOOP;
364 END LOOP;
365 CLOSE c_stud_grp_mem;
366 END IF; -- rec_igs_da_rqst.request_mode = 'SINGLE' DP
367 END IF; -- rec_igs_da_rqst.program_comparison_type = 'SP''
368 /*
369 copy the DFF values from IGS_DA_CNFG_REQ_TYP to IGS_DARQST
370 */
371 OPEN c_dff(p_batch_id);
372 FETCH c_dff INTO rec_dff;
373 CLOSE c_dff;
374 igs_da_rqst_pkg.update_row
375 (
376 X_ROWID => rec_igs_da_rqst.rowid ,
377 X_BATCH_ID => rec_igs_da_rqst.batch_id ,
378 X_REQUEST_TYPE_ID => rec_igs_da_rqst.request_type_id ,
379 X_REQUEST_MODE => rec_igs_da_rqst.request_mode ,
380 X_PROGRAM_COMPARISON_TYPE => rec_igs_da_rqst.program_comparison_type ,
381 X_REQUEST_STATUS => rec_igs_da_rqst.request_status ,
382 X_PERSON_ID_GROUP_ID => rec_igs_da_rqst.person_id_group_id ,
383 X_PERSON_ID => rec_igs_da_rqst.person_id ,
384 X_REQUESTOR_ID => rec_igs_da_rqst.requestor_id ,
385 X_STUDENT_RELEASE_IND => rec_igs_da_rqst.student_release_ind ,
386 X_SPECIAL_PROGRAM => rec_igs_da_rqst.special_program ,
387 X_SPECIAL_PROGRAM_CATALOG => rec_igs_da_rqst.special_program_catalog ,
388 X_ATTRIBUTE_CATEGORY => rec_dff.attribute_category ,
389 X_ATTRIBUTE1 => rec_dff.attribute1 ,
390 X_ATTRIBUTE2 => rec_dff.attribute2 ,
391 X_ATTRIBUTE3 => rec_dff.attribute3 ,
392 X_ATTRIBUTE4 => rec_dff.attribute4 ,
393 X_ATTRIBUTE5 => rec_dff.attribute5 ,
394 X_ATTRIBUTE6 => rec_dff.attribute6 ,
395 X_ATTRIBUTE7 => rec_dff.attribute7 ,
396 X_ATTRIBUTE8 => rec_dff.attribute8 ,
397 X_ATTRIBUTE9 => rec_dff.attribute9 ,
398 X_ATTRIBUTE10 => rec_dff.attribute10 ,
399 X_ATTRIBUTE11 => rec_dff.attribute11 ,
400 X_ATTRIBUTE12 => rec_dff.attribute12 ,
401 X_ATTRIBUTE13 => rec_dff.attribute13 ,
402 X_ATTRIBUTE14 => rec_dff.attribute14 ,
403 X_ATTRIBUTE15 => rec_dff.attribute15 ,
404 X_ATTRIBUTE16 => rec_dff.attribute16 ,
405 X_ATTRIBUTE17 => rec_dff.attribute17 ,
406 X_ATTRIBUTE18 => rec_dff.attribute18 ,
407 X_ATTRIBUTE19 => rec_dff.attribute19 ,
408 X_ATTRIBUTE20 => rec_dff.attribute20 ,
409 X_MODE => 'R' ,
410 X_RETURN_STATUS => l_return_status ,
411 X_MSG_DATA => l_msg_data ,
412 X_MSG_COUNT => l_msg_count
413 );
414 IF l_return_status <>'S' THEN
415 FND_MESSAGE.SET_NAME('IGS','IGS_DA_CR_PLS_ERROR');
416 FND_MSG_PUB.ADD;
417 RAISE FND_API.G_EXC_ERROR;
418 END IF;
419
420 END LOOP;
421 CLOSE c_igs_da_rqst;
422
423 /*
424 now insert the records (IGS_DA_CNFG_FTR) not shown to the user
425 in the table IGS_DA_REQ_FTRS
426 */
427 FOR rec_req_ftrs IN c_req_ftrs(p_batch_id)
428 LOOP
429 l_rowid := null;
430 igs_da_req_ftrs_pkg.insert_row
431 (
432 X_ROWID => l_rowid ,
433 X_BATCH_ID => p_batch_id ,
434 X_FEATURE_CODE => rec_req_ftrs.feature_code ,
435 X_FEATURE_VALUE => rec_req_ftrs.feature_value,
436 X_MODE => 'R' ,
437 X_RETURN_STATUS => l_return_status,
438 X_MSG_DATA => l_msg_data ,
439 X_MSG_COUNT => l_msg_count
440 );
441 END LOOP;
442
443 -- now raise the business event
444 BEGIN
445 igs_da_xml_pkg.Pre_Submit_Event(p_batch_id => p_batch_id);
446 EXCEPTION
447 WHEN OTHERS THEN
448 FND_MESSAGE.SET_NAME('IGS','IGS_DA_XML_ERROR');
449 FND_MSG_PUB.ADD;
450 RAISE FND_API.G_EXC_ERROR;
451 END;
452
453 -- Initialize API return status to success.
454 X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
455 -- Standard call to get message count and if count is 1, get message
456 -- info.
457 FND_MSG_PUB.Count_And_Get(
458 p_encoded => FND_API.G_TRUE,
459 p_count => x_MSG_COUNT,
460 p_data => X_MSG_DATA);
461
462 EXCEPTION
463 WHEN FND_API.G_EXC_ERROR THEN
464 X_RETURN_STATUS := FND_API.G_RET_STS_ERROR;
465 FND_MSG_PUB.Count_And_Get(
466 p_encoded => FND_API.G_TRUE,
467 p_count => x_MSG_COUNT,
468 p_data => X_MSG_DATA);
469 RETURN;
470 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
471 X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
472 FND_MSG_PUB.Count_And_Get(
473 p_encoded => FND_API.G_TRUE,
474 p_count => x_MSG_COUNT,
475 p_data => X_MSG_DATA);
476 RETURN;
477 WHEN OTHERS THEN
478 X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
479 FND_MESSAGE.SET_NAME('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
480 FND_MESSAGE.SET_TOKEN('NAME','create_req_stdnts_rec : '||SQLERRM);
481 FND_MSG_PUB.ADD;
482 FND_MSG_PUB.Count_And_Get(
483 p_encoded => FND_API.G_TRUE,
484 p_count => x_MSG_COUNT,
485 p_data => X_MSG_DATA);
486 RETURN;
487 END create_req_stdnts_rec;
488
489 END IGS_DA_UTILS_PKG;