[Home] [Help]
PACKAGE BODY: APPS.BIS_PMV_PORTAL_UTIL_PUB
Source
1 package body BIS_PMV_PORTAL_UTIL_PUB as
2 /* $Header: BISPPUTB.pls 120.3 2005/12/01 15:18:28 serao noship $ */
3 -- dbdrv: sql ~PROD ~PATH ~FILE none none none package &phase=plb \
4 -- dbdrv: checkfile(115.28=120.3):~PROD:~PATH:~FILE
5
6 /*
7 REM +=======================================================================+
8 REM | Copyright (c) 1998 Oracle Corporation, Redwood Shores, CA, USA |
9 REM | All rights reserved. |
10 REM +=======================================================================+
11 REM | FILENAME |
12 REM | BISVPARB.pls |
13 REM | |
14 REM | DESCRIPTION |
15 REM | This is the Query Pkg. for PMV. |
16 REM | |
17 REM | HISTORY |
18 REM | amkulkar, 04/06/2002, Initial Creation |
19 REM | nkishore, 12/26/2002, bug 2726787 - Java Api returns As of Date as |
20 REM | ranking parameter
21 REM +=======================================================================+
22 */
23
24 TYPE CHAR_TABLE IS TABLE OF VARCHAR2(150);
25
26 DIMENSION_GROUP CHAR_TABLE := CHAR_TABLE('ISC_DBI_PLAN_PERF_GROUP' );
27 RANK_PARAM CHAR_TABLE := CHAR_TABLE('ORGANIZATION+ORGANIZATION');
28
29
30 PROCEDURE GET_DIMENSION_GROUP ( pRegionCode In VARCHAR2
31 ,xDimensionGroup OUT NOCOPY VARCHAR2)
32 IS
33
34 CURSOR getDimensionGroup IS
35 SELECT attribute12
36 FROM ak_regions
37 WHERE region_code = pRegionCode;
38 BEGIN
39
40 IF (getDimensionGroup%ISOPEN ) THEN
41 CLOSE getDimensionGroup;
42 END IF;
43 OPEN getDimensionGroup;
44 FETCH getDimensionGroup INTO xDimensionGroup;
45 CLOSE getDimensionGroup;
46
47 EXCEPTION
48 WHEN OTHERS THEN
49 IF (getDimensionGroup%ISOPEN ) THEN
50 CLOSE getDimensionGroup;
51 END IF;
52 NULL;
53 END GET_DIMENSION_GROUP;
54
55
56 FUNCTION GET_DIM_GROUP_RANK (pDimensionGroup IN VARCHAR2 )
57 RETURN VARCHAR2
58 IS
59 BEGIN
60
61 IF pDimensionGroup IS NOT NULL THEN
62 IF (DIMENSION_GROUP IS NOT NULL AND DIMENSION_GROUP.COUNT > 0) THEN
63 FOR i IN DIMENSION_GROUP.FIRST..DIMENSION_GROUP.LAST LOOP
64 IF (DIMENSION_GROUP(i)= pDimensionGroup) THEN
65 IF (RANK_PARAM.EXISTS(i)) THEN
66 RETURN RANK_PARAM(i);
67 END IF;
68 END IF;
69 END LOOP;
70 END IF;
71 END IF;
72
73 RETURN NULL;
74
75 EXCEPTION
76 WHEN OTHERS THEN
77 NULL;
78 END GET_DIM_GROUP_RANK;
79
80
81 PROCEDURE GET_RANKING_AND_REGION_CODE( p_page_id IN VARCHAR2
82 ,p_user_id IN VARCHAR2
83 ,x_ranking_param OUT NOCOPY VARCHAR2
84 ,x_region_code OUT NOCOPY VARCHAR2
85 ,x_function_name OUT NOCOPY VARCHAR2
86 ,x_lov_where OUT NOCOPY VARCHAR2
87 ,x_return_Status OUT NOCOPY VARCHAR2
88 ,x_msg_count OUT NOCOPY NUMBER
89 ,x_msg_data OUT NOCOPY VARCHAR2
90 )
91 IS
92 -- get the first pop down which is the first dimnsion other than time, time_comaprison_type
93 CURSOR c_akitems(pRegionCode in varchar2) IS
94 select nvl(attribute2, attribute_code), attribute4
95 from ak_region_items
96 where region_code = pRegionCode
97 and display_sequence = (
98 select min(display_sequence)
99 from ak_region_items
100 where region_code = pRegionCode
101 and node_query_flag = 'Y'
102 and nvl( substr(attribute2, 1, instr(attribute2, '+')-1), attribute_code) NOT IN ('TIME', 'TIME_COMPARISON_TYPE', 'EDW_TIME_M', 'CURRENCY', 'FII_CURRENCIES','AS_OF_DATE')
103 -- and nvl(attribute2, attribute_code) <> 'AS_OF_DATE' (reverting the fix for 2726787)
104 ); --BugFix 2726787, filtered As Of Date
105
106 CURSOR c_func IS
107 SELECT function_name
108 FROM bis_user_Attributes
109 where page_id = p_page_id
110 and user_id=p_user_id;
111
112 l_param_name VARCHAR2(32000);
113 lDimensionGroup VARCHAR2(150);
114
115 BEGIN
116
117 x_return_Status := FND_API.G_RET_STS_SUCCESS;
118
119 --First get the function_name for this pagE_id
120 IF (c_func%ISOPEN ) THEN
121 CLOSE c_func;
122 END IF;
123
124 OPEN c_func;
125 FETCH c_func INTO x_function_name;
126 CLOSE c_func;
127
128 --Get the region code
129 x_region_code := BIS_PMV_UTIL.getReportRegion(x_function_name);
130
131 -- dimension group changes
132 GET_DIMENSION_GROUP (x_region_code, lDimensionGroup);
133 IF lDImensionGroup IS NOT NULL THEN
134 x_ranking_param := GET_DIM_GROUP_RANK (lDimensionGroup);
135 END IF;
136
137 IF (x_Ranking_param IS NULL ) THEN
138 OPEN c_akitems(x_region_code);
139 FETCH c_akitems INTO x_ranking_param, x_lov_where;
140 CLOSE c_akitems;
141 END IF;
142
143 EXCEPTION
144
145 WHEN FND_API.G_EXC_ERROR THEN
146 x_return_status := FND_API.G_RET_STS_ERROR;
147 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
148 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
149 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
150 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
151 WHEN OTHERS THEN
152 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
153 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
154
155 END GET_RANKING_AND_REGION_CODE;
156
157
158 PROCEDURE GET_RANKING_PARAMETER(
159 p_page_id IN VARCHAR2
160 ,p_user_id IN VARCHAR2
161 ,x_ranking_param OUT NOCOPY VARCHAR2
162 ,x_return_Status OUT NOCOPY VARCHAR2
163 ,x_msg_count OUT NOCOPY NUMBER
164 ,x_msg_data OUT NOCOPY VARCHAR2
165 )
166 IS
167
168 l_region_code VARCHAR2(30);
169 l_function_name VARCHAR2(32000);
170 l_param_name VARCHAR2(32000);
171 l_lov_where VARCHAR2(150);
172 BEGIN
173 GET_RANKING_AND_REGION_CODE( p_page_id => p_page_id,
174 p_useR_id => p_user_id
175 ,x_ranking_param => x_ranking_param
176 ,x_region_code => l_region_code
177 ,x_function_name => l_function_name
178 ,x_lov_where => l_lov_where
179 ,x_return_Status => x_return_status
180 ,x_msg_count => x_msg_count
181 ,x_msg_data => x_msg_data
182 );
183
184 END;
185
186 PROCEDURE GET_TIME_LEVEL_LABEL
187 (p_page_id IN VARCHAR2
188 ,p_user_id IN VARCHAR2
189 ,x_time_level_label OUT NOCOPY VARCHAR2
190 ,x_return_Status OUT NOCOPY VARCHAR2
191 ,x_msg_count OUT NOCOPY NUMBER
192 ,x_msg_data OUT NOCOPY VARCHAR2
193 )
194 IS
195 CURSOR c_time IS
196 SELECT attribute_name FROM
197 bis_user_attributes
198 WHERE page_id = p_page_id and
199 user_id = p_user_id and
200 attribute_name like '%_FROM' and
201 dimension in ('TIME','EDW_TIME_M');
202 l_time_level_label varchar2(2000);
203 l_time_param_name varchar2(2000);
204 BEGIN
205 IF (c_time%ISOPEN) THEN
206 close c_time;
207 END IF;
208 OPEN c_time;
209 FETCH c_time INTO l_time_param_name;
210 CLOSE c_time;
211 l_time_level_label := UPPER(BIS_PMV_QUERY_PVT.getParameterAcronym('BIS_TIME_LEVEL_VALUES', l_time_param_name));
212 x_time_level_label := l_time_level_label;
213 EXCEPTION
214 WHEN FND_API.G_EXC_ERROR THEN
215 x_return_status := FND_API.G_RET_STS_ERROR;
216 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
217 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
218 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
219 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
220 WHEN OTHERS THEN
221 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
222 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
223 END;
224
225 -- added user_id for bug 4752246
226 PROCEDURE GET_TIME_LABEL_FROM_SESSION
227 (p_session_id IN VARCHAR2
228 ,p_function_name IN VARCHAR2
229 ,p_user_id IN VARCHAR2
230 ,x_time_level_label OUT NOCOPY VARCHAR2
231 ,x_return_Status OUT NOCOPY VARCHAR2
232 ,x_msg_count OUT NOCOPY NUMBER
233 ,x_msg_data OUT NOCOPY VARCHAR2
234 )
235 IS
236 CURSOR c_time IS
237 SELECT attribute_name FROM
238 bis_user_attributes
239 WHERE session_id = p_session_id and
240 function_name = p_function_name and
241 user_id = p_user_id and
242 attribute_name like '%_FROM' and
243 dimension in ('TIME','EDW_TIME_M');
244 l_time_level_label varchar2(2000);
245 l_time_param_name varchar2(2000);
246 BEGIN
247 IF (c_time%ISOPEN) THEN
248 close c_time;
249 END IF;
250 OPEN c_time;
251 FETCH c_time INTO l_time_param_name;
252 CLOSE c_time;
253 l_time_level_label := UPPER(BIS_PMV_QUERY_PVT.getParameterAcronym('BIS_TIME_LEVEL_VALUES', l_time_param_name));
254 x_time_level_label := l_time_level_label;
255 EXCEPTION
256 WHEN FND_API.G_EXC_ERROR THEN
257 x_return_status := FND_API.G_RET_STS_ERROR;
258 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
259 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
260 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
261 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
262 WHEN OTHERS THEN
263 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
264 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
265 END GET_TIME_LABEL_FROM_SESSION;
266
267
268 --creating a wrap ard the procedure since the getDyanamicLabel call in java expects a function
269 FUNCTION getTimeLevelLabel (
270 p_page_id IN VARCHAR2
271 ,p_user_id IN VARCHAR2
272 ,p_session_id IN VARCHAR2
273 ,p_function_name IN VARCHAR2
274 ) RETURN VARCHAR2
275 IS
276 lLabel VARCHAR2(2000);
277 l_return_status VARCHAR2(80);
278 l_msg_data VARCHAR2(80);
279 l_msg_count NUMBER;
280 BEGIN
281 if (p_page_id IS NOT NULL) THEN
282 GET_TIME_LEVEL_LABEL(p_page_id => p_page_id
283 ,p_user_id =>p_user_id
284 ,x_time_level_label => lLabel
285 ,x_return_Status => l_return_status
286 ,x_msg_count => l_msg_count
287 ,x_msg_data => l_msg_data
288 );
289 ELSE
290 GET_TIME_LABEL_FROM_SESSION(
291 p_session_id => p_session_id
292 ,p_function_name => p_function_name
293 ,p_user_id => p_user_id
294 ,x_time_level_label => lLabel
295 ,x_return_Status => l_return_status
296 ,x_msg_count => l_msg_count
297 ,x_msg_data => l_msg_data
298 );
299 END IF;
300 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
301 lLabel := '';
302 END IF;
303
304 RETURN lLabel ;
305 END getTimeLevelLabel;
306
307 --This pvt funnction added to handle exceptins thrown by the fii api
308 FUNCTION get_asOfDate_Label (
309 pAsOfDate IN DATE
310 ) RETURN VARCHAR2 IS
311 lASOfDateLabel VARCHAR2(80);
312 lASOfDateLabel_function VARCHAR2(2000);
313 BEGIN
314 --lASOfDateLabel := FII_TIME_API.day_left_in_qtr(pAsOfDate);
315 lASOfDateLabel_function := 'begin :1 := FII_TIME_API.day_left_in_qtr(:2); end;';
316 execute immediate lASOfDateLabel_function using OUT lasofdateLabel , IN pAsOfDate ;
317 RETURN lASOfDateLabel;
318 EXCEPTION
319 WHEN OTHERS THEN
320 lASOfDateLabel :='';
321 END get_asOfDate_Label;
322
323 PROCEDURE getAsOfDateAndLabel(
324 pAsOfDate IN VARCHAR2,
325 xAsOfDate OUT NOCOPY VARCHAR2,
326 xAsOfDateLabel OUT NOCOPY VARCHAR2
327 ) IS
328 lDate DATE;
329 --l_date_format varchar2(2000) := 'Mon dd,yyyy';
330 BEGIN
331
332 IF (pAsOfDate IS NULL) THEN
333 SELECT TRUNC(SYSDATE, 'DD') INTO lDate FROM dual;
334 --xAsOfDate := TO_CHAR(lDate, l_date_format);
335 xAsOfDate := TO_CHAR(lDate);
336 xASOfDateLabel := get_asOfDate_Label(lDate);
337 ELSE
338 xAsOfDate := pAsOfDate;
339 --xASOfDateLabel := get_asOfDate_Label(to_date(xAsOfDate,l_date_format));
340 xASOfDateLabel := get_asOfDate_Label(xAsOfDate);
341 END IF;
342
343 EXCEPTION
344 WHEN OTHERS THEN
345 xAsOfDate := pAsOfDate;
346 xAsOfDateLabel := '';
347 END getAsOfDateAndLabel;
348
349
350 --KPI Portlet Pesonalization -ansingh
351 PROCEDURE GET_RANK_LEVEL_SHRT_NAME
352 ( p_region_code IN VARCHAR2,
353 x_rank_level_shrt_name OUT NOCOPY VARCHAR2,
354 x_return_status OUT NOCOPY VARCHAR2,
355 x_msg_count OUT NOCOPY NUMBER,
356 x_msg_data OUT NOCOPY VARCHAR2
357 ) IS
358
359 l_dimension_group VARCHAR2(150);
360
361 CURSOR c_RnkLvlShrtName (pRegionCode IN VARCHAR2) IS
362 SELECT nvl(attribute2, attribute_code)
363 FROM ak_region_items
364 WHERE region_code = pRegionCode
365 AND display_sequence = (
366 SELECT min(display_sequence)
367 FROM ak_region_items
368 WHERE region_code = pRegionCode
369 AND NVL(substr(attribute2, 1, instr(attribute2, '+')-1), attribute_code)
370 NOT IN ('TIME', 'TIME_COMPARISON_TYPE', 'EDW_TIME_M', 'AS_OF_DATE')
371 );
372
373
374 BEGIN
375
376 GET_DIMENSION_GROUP (p_region_code, l_dimension_group);
377 IF l_dimension_group IS NOT NULL THEN
378 x_rank_level_shrt_name := GET_DIM_GROUP_RANK (l_dimension_group);
379 END IF;
380
381 IF (x_rank_level_shrt_name IS NULL) THEN
382 OPEN c_RnkLvlShrtName(p_region_code);
383 FETCH c_RnkLvlShrtName INTO x_rank_level_shrt_name;
384 CLOSE c_RnkLvlShrtName;
385 END IF;
386
387 x_return_status := FND_API.G_RET_STS_SUCCESS;
388
389 EXCEPTION
390
391 WHEN FND_API.G_EXC_ERROR THEN
392 x_return_status := FND_API.G_RET_STS_ERROR;
393 FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
394 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
395 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
396 FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
397 WHEN OTHERS THEN
398 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
399 FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
400
401 END GET_RANK_LEVEL_SHRT_NAME;
402
403
404
405
406
407 -- This should actually be in the pmv portal pub package
408 PROCEDURE get_rank_level_and_num_values(
409 p_page_id IN VARCHAR2
410 ,p_user_id IN VARCHAR2
411 ,p_responsibility_id IN VARCHAR2
412 ,x_ranking_param OUT NOCOPY VARCHAR2
413 ,x_number_values OUT NOCOPY NUMBER
414 ,x_return_Status OUT NOCOPY VARCHAR2
415 ,x_msg_count OUT NOCOPY NUMBER
416 ,x_msg_data OUT NOCOPY VARCHAR2
417 ) IS
418 l_return_status VARCHAR2(80);
419 l_msg_count NUMBER;
420 l_msg_data VARCHAR2(2000);
421 l_region_code VARCHAR2(30);
422 l_function_name fnd_form_functions.function_name%TYPE;
423 l_parameter_rec BIS_PMV_PARAMETERS_PVT.parameter_rec_type;
424 l_user_session_rec BIS_PMV_SESSION_PVT.SESSION_REC_TYPE;
425 v_lov_sql_stmt VARCHAR2(32000);
426 v_bind_sql VARCHAR2(32000);
427 v_bind_variables VARCHAR2(32000);
428 v_bind_count NUMBER;
429 l_lov_where VARCHAR2(150);
430 BEGIN
431
432 -- get the rank level
433 GET_RANKING_AND_REGION_CODE( p_page_id => p_page_id
434 ,p_user_id => p_user_id
435 ,x_ranking_param => x_ranking_param
436 ,x_region_code => l_region_code
437 , x_function_name => l_function_name
438 , x_lov_where => l_lov_where
439 ,x_return_Status => x_return_status
440 ,x_msg_count => x_msg_count
441 ,x_msg_data => x_msg_data
442 );
443 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
444 RETURN;
445 END IF;
446 /* PMF team no longer needs the number of values for that dimension level . Commenting this code
447 out
448 l_user_session_rec.function_name := l_function_name;
449 l_user_session_rec.region_code := l_region_code;
450 l_user_session_rec.page_id := p_page_id;
451 l_user_session_rec.user_id := p_user_id;
452 l_user_session_rec.responsibility_id := p_responsibility_id;
453
454 l_parameter_rec.parameter_name := x_ranking_param;
455 BIS_PMV_PARAMETERS_PVT.RETRIEVE_PAGE_PARAMETER(p_parameter_rec => l_parameter_rec
456 ,p_schedule_id => NULL
457 ,p_user_session_rec => l_user_session_rec
458 ,p_page_dims => NULL
459 ,x_return_status => l_return_status
460 ,x_msg_count => l_msg_count
461 ,x_msg_data => l_msg_data );
462
463 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
464 RETURN;
465 END IF;
466
467 -- replace with all so that the query picks up all the values,
468 -- restricted only by the lov where clause
469 l_parameter_rec.parameter_description := BIS_PMV_PARAMETERS_PVT.G_ALL;
470 -- get the lov sql for this level
471 IF (x_ranking_param = 'TIME' OR x_ranking_param = 'EDW_TIME') THEN
472 BIS_PMV_PARAMETERS_PVT.getTimeLovSql(p_parameter_name => x_ranking_param
473 ,p_parameter_description => l_parameter_rec.parameter_description
474 ,p_region_code => l_region_code
475 ,p_responsibility_id => l_user_session_rec.responsibility_id
476 ,p_org_name => NULL
477 ,p_org_value => NULL
478 ,x_sql_statement => v_lov_sql_stmt
479 ,x_bind_sql => v_bind_sql
480 ,x_bind_variables => v_bind_variables
481 ,x_bind_count => v_bind_count
482 ,x_return_status => l_return_status
483 ,x_msg_count => l_msg_count
484 ,x_msg_data => l_msg_data
485 );
486 ELSE
487 BIS_PMV_PARAMETERS_PVT.getLovSql(p_parameter_name => x_ranking_param
488 ,p_parameter_description => l_parameter_rec.parameter_description
489 ,p_sql_type => NULL
490 ,p_region_code => l_region_code
491 ,p_responsibility_id => l_user_session_rec.responsibility_id
492 ,x_sql_statement => v_lov_sql_stmt
493 ,x_bind_sql => v_bind_sql
494 ,x_bind_variables => v_bind_variables
495 ,x_bind_count => v_bind_count
496 ,x_return_status => l_return_status
497 ,x_msg_count => l_msg_count
498 ,x_msg_data => l_msg_data);
499 END IF;
500
501 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
502 RETURN;
503 END IF;
504
505 BIS_PMV_QUERY_PVT.substitute_lov_where (
506 pUserSession_rec => l_user_session_rec,
507 pSchedule_id => NULL,
508 pSource => NULL,
509 x_lov_where => l_lov_where,
510 x_return_status => l_return_status,
511 x_msg_count => l_msg_count,
512 x_msg_data => l_msg_data
513 ) ;
514
515 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
516 RETURN;
517 END IF;
518
519 -- remove the order by from the lov_sql_stmt and append the lov where to it
520 v_lov_sql_stmt := substr( v_lov_sql_stmt, 1, instr (v_lov_sql_stmt, 'order by')-1);
521 v_lov_sql_stmt := v_lov_sql_stmt || ' '||l_lov_where;
522
523 -- run the sql and obtain the count
524 execute immediate 'SELECT count(*) FROM ('||v_lov_sql_stmt||') ' INTO x_number_values;*/
525 EXCEPTION
526
527 WHEN FND_API.G_EXC_ERROR THEN
528 x_return_status := FND_API.G_RET_STS_ERROR;
529 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
530 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
531 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
532 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
533 WHEN OTHERS THEN
534 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
535 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
536
537 END get_rank_level_and_num_values;
538
539 -- jprabhud - 04/23/04 - Bug 3573468
540 PROCEDURE clean_portlets
541 (
542 p_user_name in VARCHAR2 DEFAULT NULL-- jprabhud - 04/23/04 - Bug 3573468
543 ,p_page_id in NUMBER DEFAULT NULL-- jprabhud - 04/23/04 - Bug 3573468
544 ,p_page_name in VARCHAR2 DEFAULT NULL-- jprabhud - 04/23/04 - Bug 3573468
545 ,p_function_name in VARCHAR2 DEFAULT NULL-- jprabhud - 04/23/04 - Bug 3573468
546 ,x_return_status OUT NOCOPY VARCHAR2
547 ,x_msg_count OUT NOCOPY NUMBER
548 ,x_msg_data OUT NOCOPY VARCHAR2
549 )
550 IS
551 BEGIN
552
553 BIS_PMV_PORTAL_UTIL_PVT.clean_portlets
554 ( p_user_name => p_user_name
555 ,p_page_id => p_page_id
556 ,p_page_name => p_page_name
557 ,x_return_status => x_return_status
558 ,x_msg_count => x_msg_count
559 ,x_msg_data => x_msg_data
560 ,p_function_name => p_function_name
561 );
562
563
564 EXCEPTION
565 WHEN FND_API.G_EXC_ERROR THEN
566 x_return_status := FND_API.G_RET_STS_ERROR;
567 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data) ;
568
569 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
570 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
571 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data) ;
572 WHEN OTHERS THEN
573 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
574 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data);
575
576 END clean_portlets ;
577
578 END BIS_PMV_PORTAL_UTIL_PUB;