DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSM_PROFILE_PKG

Source


1 PACKAGE BODY CSM_PROFILE_PKG AS
2 /* $Header: csmuprfb.pls 120.9.12020000.2 2013/04/09 11:05:18 saradhak ship $ */
3 
4 -- MODIFICATION HISTORY
5 -- Person      Date    Comments
6 --	Melvin P	04/30/02	Base creation
7 -- ---------   ------  ------------------------------------------
8    -- Enter procedure, function bodies as shown below
9 
10 v_DefaultStatusResponsibility number;
11 v_CurrentUser varchar2(30);
12 
13 G_RESP_LEVEL_ID    CONSTANT NUMBER := 10003;
14 G_USER_LEVEL_ID    CONSTANT NUMBER := 10004;
15 
16 Function value_specific(p_profile_option_name in varchar2,
17                         p_user_id in fnd_user.user_id%type,
18                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
19                         p_application_id fnd_application.application_id%type default null)
20 return varchar2
21 is
22 l_retvalue varchar2(255);
23 l_user_id fnd_user.user_id%type;
24 l_responsibility_id fnd_user_resp_groups.responsibility_id%type;
25 l_application_id fnd_application.application_id%type;
26 
27 -- will always return 1 row as of now for a publication
28 cursor l_resp_app_id_csr(c_user_id NUMBER)
29 is
30 SELECT responsibility_id,app_id
31 FROM   asg_user
32 WHERE  user_id = c_user_id;
33 
34 
35 begin
36  -- initialize the user_id and the application_id
37  l_user_id := p_user_id;
38 
39     -- R12 get the responsibility_id and application_id for the publication
40  open  l_resp_app_id_csr(l_user_id);
41  fetch l_resp_app_id_csr into l_responsibility_id,l_application_id;
42  close l_resp_app_id_csr;
43 
44  if p_application_id is not null THEN
45      l_application_id := p_application_id;
46  end if;
47 
48  if p_responsibility_id is not null then
49     l_responsibility_id := p_responsibility_id;
50  end if;
51 
52  l_retvalue := fnd_profile.value_specific(p_profile_option_name, l_user_id,
53                                      l_responsibility_id, l_application_id);
54 
55  return l_retvalue;
56 end value_specific;
57 
58 function get_master_organization_id (p_user_id in fnd_user.user_id%type,
59                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
60                         p_application_id fnd_application.application_id%type default null)
61 return number
62 IS
63 begin
64 --	return fnd_profile.value('ASO_PRODUCT_ORGANIZATION_ID');
65   return value_specific('ASO_PRODUCT_ORGANIZATION_ID', p_user_id,
66                             p_responsibility_id, p_application_id);
67 end get_master_organization_id;
68 
69 function get_service_validation_org(p_user_id in fnd_user.user_id%type,
70                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
71                         p_application_id fnd_application.application_id%type default null)
72 return number
73 IS
74 l_profile_option_value NUMBER;
75 
76 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
77 SELECT acc.profile_option_value
78 FROM csm_profile_option_values_acc acc,
79      fnd_profile_options po
80 WHERE acc.user_id = p_user_id
81 AND acc.profile_option_id = po.profile_option_id
82 AND po.profile_option_name = 'CS_INV_VALIDATION_ORG';
83 
84 BEGIN
85     -- get profile option from acc table to improve performance
86     OPEN l_profile_opt_value_csr(p_user_id);
87     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
88     IF l_profile_opt_value_csr%FOUND THEN
89         CLOSE l_profile_opt_value_csr;
90         RETURN l_profile_option_value;
91     END IF;
92     CLOSE l_profile_opt_value_csr;
93 
94 	return value_specific('CS_INV_VALIDATION_ORG', p_user_id,
95                        p_responsibility_id, p_application_id);
96 end get_service_validation_org;
97 
98 function get_organization_id(p_user_id in fnd_user.user_id%type,
99                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
100                         p_application_id fnd_application.application_id%type default null)
101 return number
102 IS
103 l_profile_option_value NUMBER;
104 
105 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
106 SELECT acc.profile_option_value
107 FROM csm_profile_option_values_acc acc,
108      fnd_profile_options po
109 WHERE acc.user_id = p_user_id
110 AND acc.profile_option_id = po.profile_option_id
111 AND po.profile_option_name = 'CS_INV_VALIDATION_ORG';
112 
113 BEGIN
114     -- get profile option from acc table to improve performance
115     OPEN l_profile_opt_value_csr(p_user_id);
116     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
117     IF l_profile_opt_value_csr%FOUND THEN
118         CLOSE l_profile_opt_value_csr;
119         RETURN l_profile_option_value;
120     END IF;
121     CLOSE l_profile_opt_value_csr;
122 
123 	return value_specific('CS_INV_VALIDATION_ORG', p_user_id,
124                        p_responsibility_id, p_application_id);
125 end get_organization_id;
126 
127 Function get_category_set_id(p_user_id fnd_user.user_id%type,
128                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
129                         p_application_id fnd_application.application_id%type default null
130                         )
131 return number
132 IS
133 l_profile_option_value NUMBER;
134 
135 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
136 SELECT acc.profile_option_value
137 FROM csm_profile_option_values_acc acc,
138      fnd_profile_options po
139 WHERE acc.user_id = p_user_id
140 AND acc.profile_option_id = po.profile_option_id
141 AND po.profile_option_name = 'CSM_ITEM_CATEGORY_SET_FILTER';
142 
143 BEGIN
144     -- get profile option from acc table to improve performance
145     OPEN l_profile_opt_value_csr(p_user_id);
146     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
147     IF l_profile_opt_value_csr%FOUND THEN
148         CLOSE l_profile_opt_value_csr;
149         RETURN l_profile_option_value;
150     END IF;
151     CLOSE l_profile_opt_value_csr;
152 
153 	return value_specific('CSM_ITEM_CATEGORY_SET_FILTER', p_user_id,
154                        p_responsibility_id, p_application_id);
155 END get_category_set_id;
156 
157 Function get_category_id(p_user_id fnd_user.user_id%type,
158                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
159                         p_application_id fnd_application.application_id%type default null
160                         )
161 return number
162 IS
163 l_profile_option_value NUMBER;
164 
165 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
166 SELECT acc.profile_option_value
167 FROM csm_profile_option_values_acc acc,
168      fnd_profile_options po
169 WHERE acc.user_id = p_user_id
170 AND acc.profile_option_id = po.profile_option_id
171 AND po.profile_option_name = 'CSM_ITEM_CATEGORY_FILTER';
172 
173 BEGIN
174     -- get profile option from acc table to improve performance
175     OPEN l_profile_opt_value_csr(p_user_id);
176     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
177     IF l_profile_opt_value_csr%FOUND THEN
178         CLOSE l_profile_opt_value_csr;
179         RETURN l_profile_option_value;
180     END IF;
181     CLOSE l_profile_opt_value_csr;
182 
183 	return value_specific('CSM_ITEM_CATEGORY_FILTER', p_user_id,
184                        p_responsibility_id, p_application_id);
185 END get_category_id;
186 
187 Function get_history_count(p_user_id fnd_user.user_id%type,
188                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
189                         p_application_id fnd_application.application_id%type default null
190                         )
191 return NUMBER
192 IS
193 l_profile_option_value NUMBER;
194 
195 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
196 SELECT NVL(acc.profile_option_value,0)
197 FROM csm_profile_option_values_acc acc,
198      fnd_profile_options po
199 WHERE acc.user_id = p_user_id
200 AND acc.profile_option_id = po.profile_option_id
201 AND po.profile_option_name = 'CSM_HISTORY_COUNT';
202 
203 BEGIN
204     -- get profile option from acc table to improve performance
205     OPEN l_profile_opt_value_csr(p_user_id);
206     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
207     IF l_profile_opt_value_csr%FOUND THEN
208         CLOSE l_profile_opt_value_csr;
209         RETURN round(l_profile_option_value);
210     END IF;
211     CLOSE l_profile_opt_value_csr;
212 
213 	l_profile_option_value := value_specific('CSM_HISTORY_COUNT', p_user_id,
214                                     p_responsibility_id, p_application_id);
215 
216     RETURN round(NVL(l_profile_option_value,0));
217 EXCEPTION
218   WHEN OTHERS THEN
219      RETURN 0;
220 END get_history_count;
221 
222 function get_org_id(p_user_id in fnd_user.user_id%type,
223                     p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
224                     p_application_id fnd_application.application_id%type default null)
225 return number
226 is
227 begin
228     return value_specific('CS_SR_ORG_ID', p_user_id, p_responsibility_id,
229                            p_application_id);
230 end get_org_id;
231 
232 function GetProfileAt( x_name in varchar2
233                     , x_user_id in number default null
234                     , x_resp_id in number default null
235                     , x_site_level in BOOLEAN default false )
236 return number
237 is
238 CURSOR c_profile ( p_profile_option_name VARCHAR2,
239                    p_resp_level_value    NUMBER,
240                    p_user_level_value    NUMBER
241                  ) IS
242   SELECT val.profile_option_value
243     FROM fnd_profile_options       opt,
244          fnd_profile_option_values val
245     WHERE NVL(opt.start_date_active, SYSDATE) <= SYSDATE
246      AND NVL(opt.end_date_active,   SYSDATE) >= SYSDATE
247      AND opt.profile_option_name = p_profile_option_name
248      AND opt.application_id      = val.application_id
249      AND opt.profile_option_id   = val.profile_option_id
250      AND ( ( val.level_id    = G_RESP_LEVEL_ID    AND
251              val.level_value = p_resp_level_value
252            ) OR
253            ( val.level_id    = G_USER_LEVEL_ID    AND
254              val.level_value = p_user_level_value
255            )
256          )
257          ORDER BY val.level_id DESC;
258 
259    l_profile_option_value VARCHAR2(240);
260    l_return_val NUMBER;
261 
262 BEGIN
263   OPEN c_profile ( x_name,
264                    x_resp_id,
265                    x_user_id
266                  );
267   FETCH c_profile INTO l_profile_option_value;
268   CLOSE c_profile;
269 
270   l_return_val := TO_NUMBER( l_profile_option_value);
271   IF l_return_val IS NULL AND x_site_level = TRUE THEN
272      fnd_profile.GET(NAME => x_name, VAL => l_profile_option_value );
273      l_return_val := TO_NUMBER(l_profile_option_value);
274   END IF;
275   RETURN l_return_val;
276 end GetProfileAt;
277 
278 
279 function GetDefaultStatusResponsibility(p_user_id fnd_user.user_id%type) return number IS
280 BEGIN
281 -- commented for bug 3255962
282 -- IF v_CurrentUser <> nvl(ASG_BASE.get_user_name, csm_util_pkg.get_user_name(p_user_id)) THEN
283 --   v_CurrentUser := nvl(ASG_BASE.get_user_name, csm_util_pkg.get_user_name(p_user_id));
284    v_DefaultStatusResponsibility := GetProfileAt( x_name =>'CSF_STATUS_RESPONSIBILITY'
285                                                 , x_user_id => nvl(ASG_BASE.get_user_Id, p_user_id)
286                                                 , x_site_level => TRUE );
287 -- END IF;
288  return v_DefaultStatusResponsibility;
289 end GetDefaultStatusResponsibility;
290 
291 Function get_change_completed_tasks (p_user_id in fnd_user.user_id%type,
292                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
293                         p_application_id fnd_application.application_id%type default null)
294 return varchar2 IS
295 l_profile_option_value NUMBER;
296 
297 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
298 SELECT acc.profile_option_value
299 FROM csm_profile_option_values_acc acc,
300      fnd_profile_options po
301 WHERE acc.user_id = p_user_id
302 AND acc.profile_option_id = po.profile_option_id
303 AND po.profile_option_name = 'CSF_M_CHANGE_COMPLETED_TASKS';
304 
305 BEGIN
306     -- get profile option from acc table to improve performance
307     OPEN l_profile_opt_value_csr(p_user_id);
308     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
309     IF l_profile_opt_value_csr%FOUND THEN
310         CLOSE l_profile_opt_value_csr;
311         RETURN l_profile_option_value;
312     END IF;
313     CLOSE l_profile_opt_value_csr;
314 
315 	return value_specific('CSF_M_CHANGE_COMPLETED_TASKS', p_user_id,
316                        p_responsibility_id, p_application_id);
317 end get_change_completed_tasks;
318 
319 Function show_new_mail_only(p_user_id in fnd_user.user_id%type,
320                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
321                         p_application_id fnd_application.application_id%type default null)
322 return varchar2 IS
323 l_profile_option_value NUMBER;
324 
325 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
326 SELECT acc.profile_option_value
327 FROM csm_profile_option_values_acc acc,
328      fnd_profile_options po
329 WHERE acc.user_id = p_user_id
330 AND acc.profile_option_id = po.profile_option_id
331 AND po.profile_option_name = 'CSF_M_SHOW_NEW_MAIL_ONLY';
332 
333 BEGIN
334     -- get profile option from acc table to improve performance
335     OPEN l_profile_opt_value_csr(p_user_id);
336     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
337     IF l_profile_opt_value_csr%FOUND THEN
338         CLOSE l_profile_opt_value_csr;
339         RETURN l_profile_option_value;
340     END IF;
341     CLOSE l_profile_opt_value_csr;
342 
343 	return value_specific('CSF_M_SHOW_NEW_MAIL_ONLY', p_user_id,
344                         p_responsibility_id, p_application_id);
345 end show_new_mail_only;
346 
347 
348 Function get_task_history_days(p_user_id in fnd_user.user_id%type,
349                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
350                         p_application_id fnd_application.application_id%type default null)
351 return number IS
352 l_profile_option_value NUMBER;
353 
354 BEGIN
355 --this profile is not downloaded to client so it wont be there in acc..
356 
357 	l_profile_option_value := value_specific('CSM_PURGE_INTERVAL', p_user_id,
358                         p_responsibility_id, p_application_id);
359 
360     RETURN ROUND(NVL(l_profile_option_value,0));
361 EXCEPTION
362   WHEN OTHERS THEN
363      RETURN 0;
364 end get_task_history_days;
365 
366 Function get_max_attachment_size(p_user_id fnd_user.user_id%type,
367                         p_responsibility_id fnd_user_resp_groups.responsibility_id%type default null,
368                         p_application_id fnd_application.application_id%type default null
369                         )
370 return NUMBER
371 IS
372 l_profile_option_value NUMBER;
373 
374 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
375 SELECT acc.profile_option_value
376 FROM csm_profile_option_values_acc acc,
377      fnd_profile_options po
378 WHERE acc.user_id = p_user_id
379 AND acc.profile_option_id = po.profile_option_id
380 AND po.profile_option_name = 'CSM_MAX_ATTACHMENT_SIZE';
381 
382 BEGIN
383     -- get profile option from acc table to improve performance
384     OPEN l_profile_opt_value_csr(p_user_id);
385     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
386     IF l_profile_opt_value_csr%FOUND THEN
387         CLOSE l_profile_opt_value_csr;
388         RETURN l_profile_option_value;
389     END IF;
390     CLOSE l_profile_opt_value_csr;
391 
392 	return value_specific('CSM_MAX_ATTACHMENT_SIZE', p_user_id,
393                        p_responsibility_id, p_application_id);
394 END get_max_attachment_size;
395 
396 FUNCTION get_max_ib_at_location(p_user_id fnd_user.user_id%TYPE,
397                         p_responsibility_id fnd_user_resp_groups.responsibility_id%TYPE DEFAULT NULL,
398                         p_application_id fnd_application.application_id%TYPE DEFAULT NULL
399                         )
400 RETURN NUMBER
401 IS
402 l_profile_option_value NUMBER;
403 
404 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
405 SELECT NVL(acc.profile_option_value,0)
406 FROM csm_profile_option_values_acc acc,
407      fnd_profile_options po
408 WHERE acc.user_id = p_user_id
409 AND acc.profile_option_id = po.profile_option_id
410 AND po.profile_option_name = 'CSM_IB_ITEMS_AT_LOCATION';
411 
412 BEGIN
413     -- get profile option from acc table to improve performance
414     OPEN l_profile_opt_value_csr(p_user_id);
415     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
416     IF l_profile_opt_value_csr%FOUND THEN
417         CLOSE l_profile_opt_value_csr;
418         RETURN ROUND(l_profile_option_value);
419     END IF;
420     CLOSE l_profile_opt_value_csr;
421 
422 	l_profile_option_value := value_specific('CSM_IB_ITEMS_AT_LOCATION', p_user_id,
423                                               p_responsibility_id, p_application_id);
424 
425     RETURN ROUND(NVL(l_profile_option_value,0));
426 EXCEPTION
427   WHEN OTHERS THEN
428      RETURN 0;
429 END get_max_ib_at_location;
430 
431 FUNCTION get_max_readings_per_counter(p_user_id fnd_user.user_id%TYPE,
432                                       p_responsibility_id fnd_user_resp_groups.responsibility_id%TYPE DEFAULT NULL,
433                                       p_application_id fnd_application.application_id%TYPE DEFAULT NULL
434                                       )
435 RETURN NUMBER
436 IS
437 l_profile_option_value NUMBER;
438 
439 CURSOR l_profile_opt_value_csr(p_userid IN NUMBER) IS
440 SELECT NVL(acc.profile_option_value,3) -- download just 3 readings if profile is not set
441 FROM csm_profile_option_values_acc acc,
442      fnd_profile_options po
443 WHERE acc.user_id = p_user_id
444 AND acc.profile_option_id = po.profile_option_id
445 AND po.profile_option_name = 'CSM_MAX_READINGS_PER_COUNTER';
446 
447 BEGIN
448     -- get profile option from acc table to improve performance
449     OPEN l_profile_opt_value_csr(p_user_id);
450     FETCH l_profile_opt_value_csr INTO l_profile_option_value;
451     IF l_profile_opt_value_csr%FOUND THEN
452         CLOSE l_profile_opt_value_csr;
453         RETURN l_profile_option_value;
454     END IF;
455     CLOSE l_profile_opt_value_csr;
456 
457 	l_profile_option_value := value_specific('CSM_MAX_READINGS_PER_COUNTER', p_user_id,
458                                               p_responsibility_id, p_application_id);
459 
460     -- if profile is not set, download only 3 readings for performance
461     RETURN ROUND(NVL(l_profile_option_value,3));
462 
463 EXCEPTION
464   WHEN OTHERS THEN
465      RETURN 0;
466 END get_max_readings_per_counter;
467 
468 FUNCTION Get_Route_Data_To_Owner(p_user_id fnd_user.user_id%TYPE DEFAULT NULL,
469                                       p_responsibility_id fnd_user_resp_groups.responsibility_id%TYPE DEFAULT NULL,
470                                       p_application_id fnd_application.application_id%TYPE DEFAULT NULL
471                                       )
472 RETURN VARCHAR2
473 IS
474 l_profile_option_value VARCHAR2(1);
475 
476 BEGIN
477 	l_profile_option_value := value_specific('CSM_DATA_ROUTED_TO_GRP_OWNER', p_user_id,
478                                               p_responsibility_id, p_application_id);
479     -- if profile is not set then return 'N'
480     RETURN NVL(l_profile_option_value,'N');
481 
482 EXCEPTION
483   WHEN OTHERS THEN
484      RETURN 'N';
485 END Get_Route_Data_To_Owner;
486 
487 --This function is used by Mobile Query and should not be used by others.
488 --The function gets the profile value for csm mobile query schema directly from the base table
489 --without using FND API
490 
491 FUNCTION Get_Mobile_Query_Schema( p_responsibility_id fnd_user_resp_groups.responsibility_id%TYPE DEFAULT NULL
492                                  )
493 RETURN VARCHAR2
494 IS
495 l_profile_option_value VARCHAR2(255) := NULL;
496 l_profile_option_NAME  VARCHAR2(255) := 'CSM_MOBILE_QUERY_SCHEMA';
497 
498 CURSOR c_get_resp_value (c_resp_id NUMBER)
499 IS
500 SELECT val.PROFILE_OPTION_VALUE
501 FROM   FND_PROFILE_OPTION_VALUES val,
502        FND_PROFILE_OPTIONS prf
503 WHERE  prf.PROFILE_OPTION_ID   =  val.PROFILE_OPTION_ID
504 AND    prf.PROFILE_OPTION_NAME = 'CSM_MOBILE_QUERY_SCHEMA'
505 AND    LEVEL_ID    = 10003
506 AND    LEVEL_VALUE = c_resp_id;
507 
508 CURSOR c_get_site_value
509 IS
510 SELECT val.PROFILE_OPTION_VALUE
511 FROM   FND_PROFILE_OPTION_VALUES val,
512        FND_PROFILE_OPTIONS prf
513 WHERE  prf.PROFILE_OPTION_ID   =  val.PROFILE_OPTION_ID
514 AND    prf.PROFILE_OPTION_NAME = 'CSM_MOBILE_QUERY_SCHEMA'
515 AND    LEVEL_ID    = 10001
516 AND    LEVEL_VALUE = 0;
517 
518 BEGIN
519 
520   IF p_responsibility_id IS NOT NULL THEN
521       OPEN  c_get_resp_value (p_responsibility_id);
522       FETCH c_get_resp_value INTO l_profile_option_value;
523       CLOSE c_get_resp_value;
524   ELSE
525       OPEN  c_get_site_value;
526       FETCH c_get_site_value INTO l_profile_option_value;
527       CLOSE c_get_site_value;
528   END IF;
529 
530     -- if profile is not set then return Null
531    RETURN l_profile_option_value;
532 
533 EXCEPTION
534   WHEN OTHERS THEN
535      RETURN NULL;
536 END Get_Mobile_Query_Schema;
537 
538 FUNCTION Get_download_inventory_flag(p_user_id fnd_user.user_id%TYPE DEFAULT NULL,
539                         p_responsibility_id fnd_user_resp_groups.responsibility_id%TYPE DEFAULT NULL,
540                         p_application_id fnd_application.application_id%TYPE DEFAULT NULL
541                         )
542 RETURN VARCHAR2
543 IS
544   l_profile_option_value VARCHAR2(255) := NULL;
545   l_profile_option_NAME  VARCHAR2(255) := 'CSM_DWLD_ORG_LEVEL_INV';
546   l_user_id NUMBER;
547   l_responsibility_id NUMBER;
548   l_application_id    NUMBER;
549 
550   CURSOR l_get_resp_id
551   IS
552   SELECT resp.APPLICATION_ID, resp.RESPONSIBILITY_ID
553   FROM FND_RESPONSIBILITY resp, fnd_application app
554   WHERE resp.RESPONSIBILITY_KEY = 'OMFS_PALM'
555   AND SYSDATE BETWEEN nvl(resp.start_date, sysdate) AND nvl(resp.end_date, sysdate)
556   AND app.application_id = resp.application_id
557   AND app.application_short_name = 'CSM';
558 
559 BEGIN
560   l_user_id := p_user_id;
561   l_responsibility_id := p_responsibility_id;
562   l_application_id    := p_application_id;
563   IF p_responsibility_id IS NULL AND p_application_id IS NULL THEN
564 
565     OPEN  l_get_resp_id;
566     FETCH l_get_resp_id INTO l_application_id,l_responsibility_id;
567     CLOSE l_get_resp_id;
568 
569   END IF;
570 
571  l_profile_option_value := fnd_profile.value_specific(l_profile_option_NAME, l_user_id,
572                                      l_responsibility_id, l_application_id);
573     -- if profile is not set then return Null
574    RETURN l_profile_option_value;
575 
576 EXCEPTION
577   WHEN OTHERS THEN
578      RETURN NULL;
579 END Get_download_inventory_flag;
580 
581 END CSM_PROFILE_PKG;