[Home] [Help]
PACKAGE BODY: APPS.CSL_FND_USER_ACC_PKG
Source
1 PACKAGE BODY CSL_FND_USER_ACC_PKG AS
2 /* $Header: cslusacb.pls 115.3 2002/08/21 07:49:22 rrademak ship $ */
3
4 /*** Globals ***/
5 g_acc_table_name CONSTANT VARCHAR2(30) := 'JTM_FND_USER_ACC';
6 g_publication_item_name CONSTANT JTM_HOOK_UTIL_PKG.t_publication_item_list :=
7 JTM_HOOK_UTIL_PKG.t_publication_item_list('FND_USER');
8 g_table_name CONSTANT VARCHAR2(30) := 'FND_USER';
9 g_pk_name CONSTANT VARCHAR2(30) := 'USER_ID';
10
11 g_debug_level NUMBER; -- debug level
12
13 /*** Function that checks if user should be replicated. Returns TRUE if it should ***/
14 FUNCTION Replicate_Record
15 ( p_user_id NUMBER
16 )
17 RETURN BOOLEAN
18 IS
19 CURSOR c_user (b_user_id NUMBER) IS
20 SELECT *
21 FROM FND_USER
22 WHERE user_id = b_user_id;
23 r_user c_user%ROWTYPE;
24
25 BEGIN
26 /*** get debug level ***/
27 g_debug_level := JTM_HOOK_UTIL_PKG.Get_Debug_Level;
28
29 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
30 jtm_message_log_pkg.Log_Msg
31 ( p_user_id
32 , g_table_name
33 , 'Entering Replicate_Record'
34 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
35 END IF;
36
37 OPEN c_user( p_user_id );
38 FETCH c_user INTO r_user;
39 IF c_user%NOTFOUND THEN
40 /*** could not find user record -> exit ***/
41 IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_ERROR THEN
42 jtm_message_log_pkg.Log_Msg
43 ( p_user_id
44 , g_table_name
45 , 'Replicate_Record error: Could not find user_id ' || p_user_id
46 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
47 END IF;
48
49 CLOSE c_user;
50 RETURN FALSE;
51 END IF;
52 CLOSE c_user;
53
54 IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
55 jtm_message_log_pkg.Log_Msg
56 ( p_user_id
57 , g_table_name
58 , 'Replicate_Record returned TRUE'
59 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
60 END IF;
61
62 /** Record matched criteria -> return true ***/
63 RETURN TRUE;
64 END Replicate_Record;
65
66
67 /*** Private procedure that replicates given user related data for resource ***/
68 PROCEDURE Insert_ACC_Record
69 ( p_user_id IN NUMBER
70 ,p_resource_id IN NUMBER
71 )
72 IS
73 BEGIN
74 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
75 jtm_message_log_pkg.Log_Msg
76 ( p_user_id
77 , g_table_name
78 , 'Entering Insert_ACC_Record'
79 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
80 END IF;
81
82 IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
83 jtm_message_log_pkg.Log_Msg
84 ( p_user_id
85 , g_table_name
86 , 'Inserting ACC record for resource_id = ' || p_resource_id
87 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
88 END IF;
89
90 /*** Insert user ACC record ***/
91 JTM_HOOK_UTIL_PKG.Insert_Acc
92 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name
93 ,P_ACC_TABLE_NAME => g_acc_table_name
94 ,P_PK1_NAME => g_pk_name
95 ,P_PK1_NUM_VALUE => p_user_id
96 ,P_RESOURCE_ID => p_resource_id
97 );
98
99 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
100 jtm_message_log_pkg.Log_Msg
101 ( p_user_id
102 , g_table_name
103 , 'Leaving Insert_ACC_Record'
104 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
105 END IF;
106 END Insert_ACC_Record;
107
108 /*** Private procedure that re-sends given user to mobile ***/
109 PROCEDURE Update_ACC_Record
110 ( p_user_id IN NUMBER
111 ,p_resource_id IN NUMBER
112 ,p_acc_id IN NUMBER
113 )
114 IS
115 BEGIN
116 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
117 jtm_message_log_pkg.Log_Msg
118 ( p_user_id
119 , g_table_name
120 , 'Entering Update_ACC_Record'
121 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
122 END IF;
123
124 IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
125 jtm_message_log_pkg.Log_Msg
126 ( p_user_id
127 , g_table_name
128 , 'Updating ACC record for resource_id = ' || p_resource_id || fnd_global.local_chr(10) || 'access_id = ' || p_acc_id
129 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
130 END IF;
131
132 /*** Update user ACC record ***/
133 JTM_HOOK_UTIL_PKG.Update_Acc
134 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name
135 ,P_ACC_TABLE_NAME => g_acc_table_name
136 ,P_RESOURCE_ID => p_resource_id
137 ,P_ACCESS_ID => p_acc_id
138 );
139
140 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
141 jtm_message_log_pkg.Log_Msg
142 ( p_user_id
143 , g_table_name
144 , 'Leaving Update_ACC_Record'
145 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
146 END IF;
147 END Update_ACC_Record;
148
149 /*** Private procedure that deletes user for resource from acc table ***/
150 PROCEDURE Delete_ACC_Record
151 ( p_user_id IN NUMBER
152 ,p_resource_id IN NUMBER
153 )
154 IS
155 BEGIN
156 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
157 jtm_message_log_pkg.Log_Msg
158 ( p_user_id
159 , g_table_name
160 , 'Entering Delete_ACC_Record'
161 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
162 END IF;
163
164 IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
165 jtm_message_log_pkg.Log_Msg
166 ( p_user_id
167 , g_table_name
168 , 'Deleting ACC record for resource_id = ' || p_resource_id
169 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
170 END IF;
171
172 /*** Delete user ACC record ***/
173 JTM_HOOK_UTIL_PKG.Delete_Acc
174 ( P_PUBLICATION_ITEM_NAMES => g_publication_item_name
175 ,P_ACC_TABLE_NAME => g_acc_table_name
176 ,P_PK1_NAME => g_pk_name
177 ,P_PK1_NUM_VALUE => p_user_id
178 ,P_RESOURCE_ID => p_resource_id
179 );
180
181 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
182 jtm_message_log_pkg.Log_Msg
183 ( p_user_id
184 , g_table_name
185 , 'Leaving Delete_ACC_Record'
186 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
187 END IF;
188 END Delete_ACC_Record;
189
190 /***
191 Public function that gets called when a user needs to be inserted into ACC table.
192 ***/
193 PROCEDURE Insert_User
194 ( p_user_id IN NUMBER
195 ,p_resource_id IN NUMBER
196 )
197 IS
198 BEGIN
199 /*** get debug level ***/
200 g_debug_level := JTM_HOOK_UTIL_PKG.Get_Debug_Level;
201
202 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
203 jtm_message_log_pkg.Log_Msg
204 ( p_user_id
205 , g_table_name
206 , 'Entering Insert_User procedure'
207 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
208 END IF;
209
210 /*** does record match criteria? ***/
211 IF Replicate_Record( p_user_id ) THEN
212 /*** yes -> insert user acc record ***/
213 Insert_ACC_Record
214 ( p_user_id
215 ,p_resource_id
216 );
217
218 END IF;
219
220 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
221 jtm_message_log_pkg.Log_Msg
222 ( p_user_id
223 , g_table_name
224 , 'Leaving Insert_User procedure'
225 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
226 END IF;
227
228 END Insert_User;
229
230 /***
231 Public procedure that gets called when a user needs to be updated from ACC table.
232 ***/
233 PROCEDURE Update_User
234 ( p_user_id IN NUMBER
235 ,p_resource_id IN NUMBER
236 )
237 IS
238 l_acc_id NUMBER;
239 l_success BOOLEAN;
240 BEGIN
241 /*** get debug level ***/
242 g_debug_level := JTM_HOOK_UTIL_PKG.Get_Debug_Level;
243
244 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
245 jtm_message_log_pkg.Log_Msg
246 ( p_user_id
247 , g_table_name
248 , 'Entering Update_User'
249 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
250 END IF;
251
252 l_acc_id := JTM_HOOK_UTIL_PKG.Get_Acc_Id(
253 P_ACC_TABLE_NAME => g_acc_table_name
254 ,P_PK1_NAME => g_pk_name
255 ,P_PK1_NUM_VALUE => p_user_id
256 ,P_RESOURCE_ID => p_resource_id);
257
258 /*** is record already in ACC table? ***/
259 IF l_acc_id <> -1 THEN
260 /*** no -> does record match criteria? ***/
261 IF Replicate_Record( p_user_id ) THEN
262 /*** yes -> update user acc record ***/
263 Update_ACC_Record
264 ( p_user_id
265 ,p_resource_id
266 ,l_acc_id
267 );
268
269 END IF;
270 END IF;
271
272 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
273 jtm_message_log_pkg.Log_Msg
274 ( p_user_id
275 , g_table_name
276 , 'Leaving Update_User'
277 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
278 END IF;
279 END Update_User;
280
281 /***
282 Public procedure that gets called when a user needs to be deleted from ACC table.
283 ***/
284 PROCEDURE Delete_User
285 ( p_user_id IN NUMBER
286 ,p_resource_id IN NUMBER
287 )
288 IS
289 l_acc_id NUMBER;
290 l_success BOOLEAN;
291 BEGIN
292 /*** get debug level ***/
293 g_debug_level := JTM_HOOK_UTIL_PKG.Get_Debug_Level;
294
295 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
296 jtm_message_log_pkg.Log_Msg
297 ( p_user_id
298 , g_table_name
299 , 'Entering Delete_User'
300 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
301 END IF;
302
303 l_acc_id := JTM_HOOK_UTIL_PKG.Get_Acc_Id(
304 P_ACC_TABLE_NAME => g_acc_table_name
305 ,P_PK1_NAME => g_pk_name
306 ,P_PK1_NUM_VALUE => p_user_id
307 ,P_RESOURCE_ID => p_resource_id);
308
309 /*** is record already in ACC table? ***/
310 IF l_acc_id <> -1 THEN
311 /*** yes -> delete user acc record ***/
312 Delete_ACC_Record
313 ( p_user_id
314 ,p_resource_id
315 );
316
317 END IF;
318
319 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
320 jtm_message_log_pkg.Log_Msg
321 ( p_user_id
322 , g_table_name
323 , 'Leaving Delete_User'
324 , JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
325 END IF;
326 END Delete_User;
327
328 END CSL_FND_USER_ACC_PKG;