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