[Home] [Help]
PACKAGE BODY: APPS.XDO_CP_DATA_SECURITY_PKG
Source
1 PACKAGE BODY XDO_CP_DATA_SECURITY_PKG AS
2 ----$Header: XDODSCRB.pls 120.2 2007/10/23 00:57:25 bgkim noship $
3 --+===========================================================================+
4 --| Copyright (c) 2006 Oracle Corporation |
5 --| Redwood Shores, California, USA |
6 --| All rights reserved. |
7 --+===========================================================================+
8 --| |
9 --| FILENAME : |
10 --| XDODSCRB.pls |
11 --| |
12 --| DESCRIPTION: |
13 --| This package is used to get the Concurrent requests based on the |
14 --| data security |
15 --| |
16 --| |
17 --| HISTORY: |
18 --| 05/22/2006 hidekoji Created |
19 --+===========================================================================+
20
21 g_package_name VARCHAR2(100):='oracle.apps.xdo.xdo_cp_data_security.';
22 g_success_status VARCHAR2(1) :='T';
23 g_result_yes VARCHAR2(1) :='Y';
24 g_result_no VARCHAR2(1) :='N';
25
26 --==========================================================================
27 -- FUNCTION NAME:
28 --
29 -- get_concurrent_request_ids Public
30 --
31 -- DESCRIPTION:
32 --
33 -- This function gets the request IDs that can be viewed.
34 -- and stores them into global temporary table
35 --
36 -- PARAMETERS:
37 -- In:
38 --
39 --
40 -- DESIGN REFERENCES:
41 --
42 --
43 -- CHANGE HISTORY:
44 -- 05/22/2006 hidekoji Created
45 --===========================================================================
46 FUNCTION get_concurrent_request_ids RETURN VARCHAR2
47 IS
48 PRAGMA AUTONOMOUS_TRANSACTION;
49 l_procedure_name VARCHAR2(100) :='get_concurrent_request_ids';
50 l_exist_cur VARCHAR2(32767);
51 l_predicate VARCHAR2(32000);
52 l_return_status VARCHAR2(1);
53 l_result VARCHAR2(1);
54 l_separator VARCHAR2(10);
55
56 TYPE t_num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
57 l_request_id_tab t_num_tab;
58
59 BEGIN
60 --log for debug
61 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
62 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT
63 ,g_package_name||l_procedure_name||'.begin'
64 ,'Enter procedure');
65 END IF; --( l_proc_level >= l_dbg_level )
66
67 -- Delete from Global Temporary table
68 delete xdo_concurrent_requests_gt;
69
70
71 -- Call fnd_data_security.get_security_predicate to get the where clause
72 FND_DATA_SECURITY.get_security_predicate(p_api_version => 1.0
73 ,p_function => 'FND_CP_REQ_VIEW'
74 ,p_object_name => 'FND_CONCURRENT_REQUESTS'
75 ,x_predicate => l_predicate
76 ,x_return_status => l_return_status);
77
78 IF l_return_status = g_success_status THEN
79
80 l_exist_cur := 'SELECT request_id '||
81 ' FROM fnd_concurrent_requests '||
82 ' WHERE '|| l_predicate;
83
84 EXECUTE immediate l_exist_cur BULK COLLECT INTO l_request_id_tab;
85
86
87 IF SQL%NOTFOUND THEN
88
89 l_result := g_result_no;
90
91 ELSE
92
93 FOR i in l_request_id_tab.first..l_request_id_tab.last LOOP
94
95 insert into xdo_concurrent_requests_gt(CONC_REQUEST_ID)
96 values (l_request_id_tab(i));
97
98 END LOOP;
99 commit;
100
101 l_result := g_result_yes;
102
103 END IF;
104
105
106 ELSE -- If FND_DATA_SECURITY.get_security_predicate fails, then return ''
107
108 l_result := g_result_no;
109
110 END IF;
111
112 return l_result;
113
114 EXCEPTION
115
116 WHEN OTHERS THEN
117
118 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
119 FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT
120 ,g_package_name||l_procedure_name||':'
121 ,SQLERRM);
122 END IF;
123
124 return g_result_no;
125
126 END;
127
128 END XDO_CP_DATA_SECURITY_PKG;