DBA Data[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;