[Home] [Help]
PACKAGE BODY: APPS.JTM_WRAPPER_PKG
Source
1 PACKAGE BODY JTM_WRAPPER_PKG AS
2 /* $Header: jtmwrppb.pls 120.1 2005/08/24 02:21:12 saradhak noship $ */
3
4 FUNCTION CREATE_ENTRY(p_LangCode IN VARCHAR2, p_nls_language IN VARCHAR2) RETURN VARCHAR2;
5 PROCEDURE Init_Olite_All_Entries;
6
7 TYPE Olite_Entry_Type IS RECORD(
8 Lang_Code VARCHAR2(30),
9 Bundle_ID VARCHAR2(30),
10 Bundle_Name VARCHAR2(300),
11 Bundle_Link VARCHAR2(2000)
12 );
13
14 TYPE Olite_Entry_Table_Type IS TABLE of Olite_Entry_Type;
15
16 G_Entry_Table Olite_Entry_Table_Type := Olite_Entry_Table_Type();
17
18 PROCEDURE Init_Olite_All_Entries is
19 lang_code VARCHAR2(200);
20 bundle_name VARCHAR2(100);
21 BEGIN
22 lang_code := 'US';
23 bundle_name := 'Mobile Client for Laptop';
24 if (G_Entry_Table.count = 0) then
25
26 G_Entry_Table.extend(18);
27 lang_code := 'US';
28 G_Entry_Table(1).Lang_Code := lang_code;
29 G_Entry_Table(1).Bundle_ID := 'JTM_' || lang_code;
30 G_Entry_Table(1).Bundle_Name := bundle_name;
31 G_Entry_Table(1).Bundle_Link := 'Please click ' ||
32 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
33 lang_code := 'PTB';
34 G_Entry_Table(2).Lang_Code := lang_code;
35 G_Entry_Table(2).Bundle_ID := 'JTM_' || lang_code;
36 G_Entry_Table(2).Bundle_Name := bundle_name;
37 G_Entry_Table(2).Bundle_Link := 'Please click ' ||
38 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
39 lang_code := 'FRC';
40 G_Entry_Table(3).Lang_Code := lang_code;
41 G_Entry_Table(3).Bundle_ID := 'JTM_' || lang_code;
42 G_Entry_Table(3).Bundle_Name := bundle_name;
43 G_Entry_Table(3).Bundle_Link := 'Please click ' ||
44 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
45 lang_code := 'DK';
46 G_Entry_Table(4).Lang_Code := lang_code;
47 G_Entry_Table(4).Bundle_ID := 'JTM_' || lang_code;
48 G_Entry_Table(4).Bundle_Name := bundle_name;
49 G_Entry_Table(4).Bundle_Link := 'Please click ' ||
50 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
51 lang_code := 'NL';
52 G_Entry_Table(5).Lang_Code := lang_code;
53 G_Entry_Table(5).Bundle_ID := 'JTM_' || lang_code;
54 G_Entry_Table(5).Bundle_Name := bundle_name;
55 G_Entry_Table(5).Bundle_Link := 'Please click ' ||
56 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
57 lang_code := 'SF';
58 G_Entry_Table(6).Lang_Code := lang_code;
59 G_Entry_Table(6).Bundle_ID := 'JTM_' || lang_code;
60 G_Entry_Table(6).Bundle_Name := bundle_name;
61 G_Entry_Table(6).Bundle_Link := 'Please click ' ||
62 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
63 lang_code := 'FR';
64 G_Entry_Table(7).Lang_Code := lang_code;
65 G_Entry_Table(7).Bundle_ID := 'JTM_' || lang_code;
66 G_Entry_Table(7).Bundle_Name := bundle_name;
67 G_Entry_Table(7).Bundle_Link := 'Please click ' ||
68 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
69 lang_code := 'DE';
70 G_Entry_Table(8).Lang_Code := lang_code;
71 G_Entry_Table(8).Bundle_ID := 'JTM_' || lang_code;
72 G_Entry_Table(8).Bundle_Name := bundle_name;
73 G_Entry_Table(8).Bundle_Link := 'Please click ' ||
74 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
75 lang_code := 'IT';
76 G_Entry_Table(9).Lang_Code := lang_code;
77 G_Entry_Table(9).Bundle_ID := 'JTM_' || lang_code;
78 G_Entry_Table(9).Bundle_Name := bundle_name;
79 G_Entry_Table(9).Bundle_Link := 'Please click ' ||
80 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
81 lang_code := 'JA';
82 G_Entry_Table(10).Lang_Code := lang_code;
83 G_Entry_Table(10).Bundle_ID := 'JTM_' || lang_code;
84 G_Entry_Table(10).Bundle_Name := bundle_name;
85 G_Entry_Table(10).Bundle_Link := 'Please click ' ||
86 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
87 lang_code := 'KO';
88 G_Entry_Table(11).Lang_Code := lang_code;
89 G_Entry_Table(11).Bundle_ID := 'JTM_' || lang_code;
90 G_Entry_Table(11).Bundle_Name := bundle_name;
91 G_Entry_Table(11).Bundle_Link := 'Please click ' ||
92 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
93 lang_code := 'ESA';
94 G_Entry_Table(12).Lang_Code := lang_code;
95 G_Entry_Table(12).Bundle_ID := 'JTM_' || lang_code;
96 G_Entry_Table(12).Bundle_Name := bundle_name;
97 G_Entry_Table(12).Bundle_Link := 'Please click ' ||
98 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
99 lang_code := 'N';
100 G_Entry_Table(13).Lang_Code := lang_code;
101 G_Entry_Table(13).Bundle_ID := 'JTM_' || lang_code;
102 G_Entry_Table(13).Bundle_Name := bundle_name;
103 G_Entry_Table(13).Bundle_Link := 'Please click ' ||
104 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
105 lang_code := 'PT';
106 G_Entry_Table(14).Lang_Code := lang_code;
107 G_Entry_Table(14).Bundle_ID := 'JTM_' || lang_code;
108 G_Entry_Table(14).Bundle_Name := bundle_name;
109 G_Entry_Table(14).Bundle_Link := 'Please click ' ||
110 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
111 lang_code := 'ZHS';
112 G_Entry_Table(15).Lang_Code := lang_code;
113 G_Entry_Table(15).Bundle_ID := 'JTM_' || lang_code;
114 G_Entry_Table(15).Bundle_Name := bundle_name;
115 G_Entry_Table(15).Bundle_Link := 'Please click ' ||
116 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
117 lang_code := 'E';
118 G_Entry_Table(16).Lang_Code := lang_code;
119 G_Entry_Table(16).Bundle_ID := 'JTM_' || lang_code;
120 G_Entry_Table(16).Bundle_Name := bundle_name;
121 G_Entry_Table(16).Bundle_Link := 'Please click ' ||
122 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
123 lang_code := 'S';
124 G_Entry_Table(17).Lang_Code := lang_code;
125 G_Entry_Table(17).Bundle_ID := 'JTM_' || lang_code;
126 G_Entry_Table(17).Bundle_Name := bundle_name;
127 G_Entry_Table(17).Bundle_Link := 'Please click ' ||
128 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
129 lang_code := 'ZHT';
130 G_Entry_Table(18).Lang_Code := lang_code;
131 G_Entry_Table(18).Bundle_ID := 'JTM_' || lang_code;
132 G_Entry_Table(18).Bundle_Name := bundle_name;
133 G_Entry_Table(18).Bundle_Link := 'Please click ' ||
134 ' <A HREF="/webtogo/setup/setup.exe">here</A> to download ';
135 end if;
136
137 END Init_Olite_All_Entries;
138
139 FUNCTION CREATE_ENTRY(p_LangCode VARCHAR2, p_nls_language IN VARCHAR2) RETURN VARCHAR2 IS
140 l_count NUMBER;
141 l_return_val varchar2(30);
142 l_execute_status number;
143 l_cursorid INTEGER;
144 l_query_statement varchar2(300);
145 l_execute_statement varchar2(300);
146 BEGIN
147 l_count := -1;
148 l_return_val := 'Y';
149 l_query_statement := 'SELECT count(*) FROM mobileadmin.BUNDLES WHERE BUNDLE_ID = :1 ';
150 l_execute_statement := ' begin ' ||
151 'mobileadmin.setup.addBundle(:1,:2,:3); ' ||
152 'mobileadmin.setup.targetBundle(:3,:4); ' ||
153 'mobileadmin.setup.targetBundle(:3,:5); ' ||
154 ' end; ';
155 Init_Olite_All_Entries;
156
157 FOR i in G_Entry_Table.first..G_Entry_Table.last LOOP
158 if (G_Entry_Table(i).Lang_Code = p_LangCode) then
159 EXECUTE IMMEDIATE l_query_statement
160 INTO l_count USING G_Entry_Table(i).Bundle_ID;
161 IF l_count = 0 THEN
162
163 l_cursorid := DBMS_SQL.open_cursor;
164 DBMS_SQL.parse (l_cursorid, l_execute_statement, DBMS_SQL.v7);
165 DBMS_SQL.bind_variable (l_cursorid, ':1',
166 G_Entry_Table(i).Bundle_Name || p_nls_language);
167 DBMS_SQL.bind_variable (l_cursorid, ':2', G_Entry_Table(i).Bundle_Link);
168 DBMS_SQL.bind_variable (l_cursorid, ':3', G_Entry_Table(i).Bundle_ID);
169 DBMS_SQL.bind_variable (l_cursorid, ':4', 'WinNT');
170 DBMS_SQL.bind_variable (l_cursorid, ':5', 'Win9x');
171
172 begin
173 l_execute_status := DBMS_SQL.execute (l_cursorid);
174 exception
175 when others then
176 l_return_val := 'N';
177 end;
178 DBMS_SQL.close_cursor (l_cursorid);
179 END IF;
180 Exit;
181 END IF;
182 END LOOP;
183
184 RETURN l_return_val;
185 EXCEPTION
186 WHEN OTHERS THEN
187 RETURN 'N';
188 END CREATE_ENTRY;
189
190
191
192 PROCEDURE INSERT_RESOURCE_RECORD( P_RESOURCE_ID IN NUMBER )
193 IS
194 BEGIN
195 /*** Insert current user's resource record ***/
196 JTM_HOOK_UTIL_PKG.Insert_Acc
197 ( P_PUBLICATION_ITEM_NAMES => JTM_HOOK_UTIL_PKG.t_publication_item_list('JTF_RS_RESOURCE_EXTNS')
198 ,P_ACC_TABLE_NAME => 'JTM_JTF_RS_RESOURCE_EXTNS_ACC'
199 ,P_PK1_NAME => 'RESOURCE_PK'
200 ,P_PK1_NUM_VALUE => P_RESOURCE_ID
201 ,P_RESOURCE_ID => P_RESOURCE_ID
202 );
203 END INSERT_RESOURCE_RECORD;
204
205 PROCEDURE DELETE_RESOURCE_RECORD( P_RESOURCE_ID IN NUMBER )
206 IS
207 BEGIN
208 /*** Delete current user's resource record ***/
209 JTM_HOOK_UTIL_PKG.Delete_Acc
210 ( P_PUBLICATION_ITEM_NAMES => JTM_HOOK_UTIL_PKG.t_publication_item_list('JTF_RS_RESOURCE_EXTNS')
211 ,P_ACC_TABLE_NAME => 'JTM_JTF_RS_RESOURCE_EXTNS_ACC'
212 ,P_PK1_NAME => 'RESOURCE_PK'
213 ,P_PK1_NUM_VALUE => P_RESOURCE_ID
214 ,P_RESOURCE_ID => P_RESOURCE_ID
215 );
216 END DELETE_RESOURCE_RECORD;
217
218 PROCEDURE INSERT_USER_RECORD( P_USER_ID IN NUMBER, P_RESOURCE_ID IN NUMBER )
219 IS
220 l_count number;
221 BEGIN
222 l_count := 0;
223 JTM_HOOK_UTIL_PKG.Insert_Acc
224 ( P_PUBLICATION_ITEM_NAMES => JTM_HOOK_UTIL_PKG.t_publication_item_list('FND_USER')
225 ,P_ACC_TABLE_NAME => 'JTM_FND_USER_ACC'
226 ,P_PK1_NAME => 'USER_ID'
227 ,P_PK1_NUM_VALUE => P_USER_ID
228 ,P_RESOURCE_ID => P_RESOURCE_ID
229 );
230 BEGIN
231 select count(*) into l_count
232 from JTM_ASG_USER_ACC
233 where USER_ID = P_USER_ID;
234 if (l_count = 0) then
235 Insert into JTM_ASG_USER_ACC
236 (ACCESS_ID,USER_ID,COUNTER,
237 LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATION_DATE,CREATED_BY)
238 VALUES (JTM_ACC_TABLE_S.NEXTVAL,P_USER_ID,1,sysdate,1,sysdate,1);
239 end if;
240 EXCEPTION
241 when others then
242 NULL;
243 END;
244 END INSERT_USER_RECORD;
245
246 PROCEDURE DELETE_USER_RECORD( P_USER_ID IN NUMBER, P_RESOURCE_ID IN NUMBER )
247 IS
248 BEGIN
249 /*** Delete current user user's record ***/
250 JTM_HOOK_UTIL_PKG.Delete_Acc
251 ( P_PUBLICATION_ITEM_NAMES => JTM_HOOK_UTIL_PKG.t_publication_item_list('FND_USER')
252 ,P_ACC_TABLE_NAME => 'JTM_FND_USER_ACC'
253 ,P_PK1_NAME => 'USER_ID'
254 ,P_PK1_NUM_VALUE => P_USER_ID
255 ,P_RESOURCE_ID => P_RESOURCE_ID
256 );
257 delete from JTM_ASG_USER_ACC where user_id = P_USER_ID;
258 END DELETE_USER_RECORD;
259
260
261 PROCEDURE POPULATE_ACCESS_RECORDS( P_USER_ID IN NUMBER )
262 IS
263 PRAGMA AUTONOMOUS_TRANSACTION;
264 CURSOR c_user( b_user_id NUMBER ) IS
265 SELECT RESOURCE_ID
266 FROM ASG_USER
267 WHERE USER_ID = b_user_id;
268 r_user c_user%ROWTYPE;
269
270 return_value1 BOOLEAN ;
271 return_value2 BOOLEAN ;
272 p_errtable JTM_CHECK_ACC_PKG.ERRTAB;
273 g_debug_level NUMBER;
274 l_log_id NUMBER;
275 l_status VARCHAR2(1);
276 l_message VARCHAR2(2000);
277
278 BEGIN
279 return_value1 := TRUE;
280 return_value2 := TRUE;
281 OPEN c_user( P_USER_ID );
282 FETCH c_user INTO r_user;
283 IF c_user%FOUND THEN
284 INSERT_RESOURCE_RECORD( r_user.RESOURCE_ID );
285 INSERT_USER_RECORD( P_USER_ID, r_user.RESOURCE_ID );
286 END IF;
287 CLOSE c_user;
288
289 return_value1 := jtm_check_acc_pkg.check_profile_acc(p_errtable);
290
291 return_value2 := jtm_check_acc_pkg.check_jtf_acc(p_errtable);
292
293 IF return_value1 AND return_value2 THEN
294 ASG_HELPER.enable_pub_synch('JTM');
295 ELSE
296 ASG_HELPER.disable_pub_synch('JTM');
297 END IF;
298
299 IF p_errtable.count > 0 THEN
300 FOR i IN p_errtable.first..p_errtable.last LOOP
301 IF p_errtable.exists(i) THEN
302 IF g_debug_level = JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL THEN
303 JTM_message_log_pkg.Log_Msg
304 ( v_object_id => null
305 , v_object_name => p_errtable(i)
306 , v_message => 'Entering ' || p_errtable(i) ||' Check data if get populated'
307 , v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL
308 , v_module => 'jtm_wrapper_pkg');
309 END IF;
310
311 JTM_MESSAGE_LOG_PKG.INSERT_CONC_STATUS_LOG
312 (v_package_name => NULL
313 ,v_procedure_name => NULL
314 ,v_con_query_id => NULL
315 ,v_query_stmt => p_errtable(i)
316 ,v_start_time => NULL
317 ,v_end_time => NULL
318 ,v_status => 'FAILED'
319 ,v_message => 'Fail to populate data into' || p_errtable(i)
320 ,x_log_id => l_log_id
321 ,x_status => l_status
322 ,x_msg_data => l_message);
323
324 IF (l_status = 'E') THEN
325 RAISE JTM_MESSAGE_LOG_PKG.G_EXC_ERROR;
326 END IF;
327
328 END IF;
329 END LOOP;
330
331 END IF;
332
333
334 COMMIT;
335 EXCEPTION WHEN OTHERS THEN
336 ROLLBACK;
337 RAISE FND_API.G_EXC_ERROR;
338 END POPULATE_ACCESS_RECORDS;
339
340 PROCEDURE DELETE_ACCESS_RECORDS( P_USER_ID IN NUMBER )
341 IS
342 PRAGMA AUTONOMOUS_TRANSACTION;
343 CURSOR c_user( b_user_id NUMBER ) IS
344 SELECT RESOURCE_ID
345 FROM ASG_USER
346 WHERE USER_ID = b_user_id;
347 r_user c_user%ROWTYPE;
348 BEGIN
349 OPEN c_user( P_USER_ID );
350 FETCH c_user INTO r_user;
351 IF c_user%FOUND THEN
352 /* comment out this problem due to the MDG issue */
353 /*DELETE_RESOURCE_RECORD( r_user.RESOURCE_ID ); */
354 DELETE_USER_RECORD( P_USER_ID, r_user.RESOURCE_ID );
355 END IF;
356 CLOSE c_user;
357 COMMIT;
358 EXCEPTION WHEN OTHERS THEN
359 ROLLBACK;
360 RAISE FND_API.G_EXC_ERROR;
361 END DELETE_ACCESS_RECORDS;
362
363 PROCEDURE APPLY_CLIENT_CHANGES( P_USER_NAME IN VARCHAR2
364 , P_TRAN_ID IN NUMBER )
365 IS
366 BEGIN
367 NULL;
368 END APPLY_CLIENT_CHANGES;
369
370 FUNCTION CHECK_OLITE_SCHEMA RETURN VARCHAR2 IS
371
372 l_return_val varchar2(30);
373 l_bundle_id varchar2(30);
374 cursor get_lang_code is
375 select language_code, ' ('||decode(nls_language, 'AMERICAN', 'ENGLISH', nls_language)||')' as nls_language
376 from fnd_languages where installed_flag in ('I', 'B');
377
378 BEGIN
379
380 l_return_val := 'Y';
381 l_bundle_id := 'JTM_US';
382 EXECUTE IMMEDIATE 'BEGIN mobileadmin.setup.removeBundleById(''jtm''); end;';
383 for c in get_lang_code loop
384 l_bundle_id := 'JTM_' || c.language_code;
385 EXECUTE IMMEDIATE 'DELETE MOBILEADMIN.bundles WHERE bundle_id = :1'
386 USING l_bundle_id;
387
388 /*
389 if (CREATE_ENTRY(c.language_code, c.nls_language) = 'N') then
390 l_return_val := 'N';
391 end if;
392 */
393 end loop;
394 commit;
395 RETURN l_return_val;
396 EXCEPTION
397 WHEN OTHERS THEN
398 RETURN 'N';
399 END CHECK_OLITE_SCHEMA;
400
401 END JTM_WRAPPER_PKG;