[Home] [Help]
PACKAGE BODY: APPS.IGS_SC_GRANTS_TBL_PVT
Source
1 PACKAGE BODY IGS_SC_GRANTS_TBL_PVT AS
2 /* $Header: IGSSC04B.pls 120.1 2005/06/03 08:30:48 appldev $ */
3
4 /******************************************************************
5
6 Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
7 All rights reserved.
8
9 Created By : Arkadi Tereshenkov
10
11 Date Created By : Oct-01-2002
12
13
14 Purpose : This is a package used for a grant model for each object
15
16 remarks :
17
18 Change History
19
20 Who When What
21 -----------------------------------------------------------
22 Arkadi Tereshenkov Apr-10-2002 New Package created.
23
24 ******************************************************************/
25
26
27 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IGS_SC_GRANTS_TBL_PVT';
28
29 FUNCTION Generate_and_raise (p_object IN VARCHAR2)
30 RETURN VARCHAR2
31 IS
32
33 l_msg_count NUMBER;
34 l_msg_data VARCHAR2(2000);
35 l_parameter_list wf_parameter_list_t := wf_parameter_list_t();
36 l_event_name VARCHAR2(255) := 'oracle.apps.igs.sc.error';
37 l_event_key VARCHAR2(255);
38
39 BEGIN
40
41 FND_MSg_PUB.Count_And_Get ( p_count => l_msg_count,
42 p_data => l_msg_data );
43
44 IF (l_msg_count > 0) THEN
45
46 l_msg_data := '';
47
48 FOR l_cur IN 1..l_msg_count LOOP
49
50 l_msg_data :=l_msg_data||' '|| FND_MSg_PUB.GET(l_cur, FND_API.g_FALSE);
51
52 END LOOP;
53
54 ELSE
55
56 l_msg_data := 'Error Returned but Error stack has no data';
57 END IF;
58
59
60 RETURN l_msg_data;
61
62 wf_event.AddParameterToList(p_name=>'OBJECT_NAME',p_value=>p_object,p_parameterlist=>l_parameter_list);
63 wf_event.AddParameterToList(p_name=>'ERROR_TEXT',p_value=>l_msg_data,p_parameterlist=>l_parameter_list);
64
65 wf_event.raise( p_event_name => l_event_name,
66 p_event_key => l_event_key,
67 p_parameters => l_parameter_list);
68
69
70 l_parameter_list.DELETE;
71
72 RETURN l_msg_data;
73
74 END Generate_and_raise;
75
76
77 FUNCTION get_grant
78 ( p_schema IN VARCHAR2,
79 p_object IN VARCHAR2,
80 p_action IN VARCHAR2 )
81 RETURN VARCHAR2 IS
82
83 l_return_status VARCHAR2(1);
84 l_msg_count NUMBER;
85 l_msg_data VARCHAR(2000);
86 l_where_clause VARCHAR2(32000);
87
88
89 BEGIN
90 /* Call get grant main procedure */
91
92 -- Check if the tables are SECURITY tables:
93
94 IF SUBSTR(p_object,1,6) = 'IGS_SC' THEN
95
96 IF p_action = 'S' THEN
97
98 RETURN '1=1';
99
100 ELSE
101
102 RETURN '1=2';
103
104 END IF;
105
106 END IF;
107
108 IF SYS_CONTEXT('OSS_APP_CTX','SECURITY') IS NULL THEN
109 RETURN NULL;
110 ELSE
111 -- If not
112
113 IGS_SC_GRANTS_PVT.generate_grant(
114 p_api_version => 1.0,
115 p_object_name => p_object,
116 p_function_type => p_action,
117 x_where_clause => l_where_clause,
118 x_return_status => l_return_status,
119 x_msg_count => l_msg_count,
120 x_msg_data => l_msg_data );
121
122 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
123 raise FND_API.G_EXC_ERROR;
124 END IF;
125 RETURN l_where_clause;
126 END IF;
127 EXCEPTION
128 WHEN FND_API.G_EXC_ERROR THEN
129
130 l_where_clause := Generate_and_raise(p_object);
131
132 RETURN '1=2';
133
134 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
135
136 l_where_clause := Generate_and_raise(p_object);
137
138 RETURN '1=2';
139
140 WHEN OTHERS THEN
141
142 -- Unexpected error during the execution. We need to return no wrows to the caller and raise business event
143
144 IF (FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)) THEN
145 FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, 'GET_GRANT');
146 END IF;
147
148 l_where_clause := Generate_and_raise(p_object);
149
150 RETURN l_where_clause;
151
152 END get_grant;
153
154
155
156 FUNCTION insert_row
157 ( p_schema IN VARCHAR2,
158 p_object IN VARCHAR2 )
159 RETURN VARCHAR2
160 IS
161 BEGIN
162
163 RETURN GET_GRANT ( p_schema => p_schema,
164 p_object => p_object,
165 p_action => 'I');
166
167 END insert_row;
168
169 FUNCTION select_row
170 ( p_schema IN VARCHAR2,
171 p_object IN VARCHAR2 )
172 RETURN VARCHAR2
173 IS
174 BEGIN
175
176 RETURN GET_GRANT ( p_schema => p_schema,
177 p_object => p_object,
178 p_action => 'S');
179
180 END select_row;
181
182
183 FUNCTION update_row
184 ( p_schema IN VARCHAR2,
185 p_object IN VARCHAR2 )
186 RETURN VARCHAR2
187 IS
188 BEGIN
189
190 RETURN GET_GRANT ( p_schema => p_schema,
191 p_object => p_object,
192 p_action => 'U');
193
194 END update_row;
195
196
197 FUNCTION delete_row
198 ( p_schema IN VARCHAR2,
199 p_object IN VARCHAR2 )
200 RETURN VARCHAR2
201 IS
202 BEGIN
203
204 RETURN GET_GRANT ( p_schema => p_schema,
205 p_object => p_object,
206 p_action => 'D');
207
208 END delete_row;
209
210
211
212 END IGS_SC_GRANTS_TBL_PVT;
213