[Home] [Help]
PACKAGE BODY: APPS.IEU_PLGN_FUNC_PVT
Source
1 PACKAGE BODY IEU_PLGN_FUNC_PVT AS
2 /* $Header: IEUVPLGB.pls 120.2 2006/01/18 07:33:35 smeade ship $ */
3
4
5 FUNCTION DO_LAUNCH_SR_PLG
6 (
7 P_RESOURCE_ID NUMBER
8 ,P_AGENT_EXTN NUMBER
9 ,P_USER_ID NUMBER
10 ,P_RESP_ID NUMBER
11 ,P_RESP_APPL_ID NUMBER
12 ,P_USER_LANG VARCHAR2
13 ) RETURN VARCHAR2
14 IS
15 l_retval VARCHAR2(1);
16 BEGIN
17
18 l_retval := 'N';
19 --insert into plsqldbug values( sysdate, 'inside do_launch' );
20 --commit;
21
22 IF( FND_PROFILE.VALUE( 'IEU_MSG_ENABLE_PLUGIN' ) = 'Y' )
23 THEN
24 l_retval := 'Y';
25 END IF;
26
27 RETURN l_retval;
28
29 EXCEPTION
30 WHEN OTHERS THEN
31 RETURN null;
32
33 END DO_LAUNCH_SR_PLG;
34
35 FUNCTION DO_LAUNCH_EVENT_VIEWER
36 (
37 P_RESOURCE_ID NUMBER
38 ,P_AGENT_EXTN NUMBER
39 ,P_USER_ID NUMBER
40 ,P_RESP_ID NUMBER
41 ,P_RESP_APPL_ID NUMBER
42 ,P_USER_LANG VARCHAR2
43 ) RETURN VARCHAR2
44 IS
45 l_retval VARCHAR2(1);
46
47 BEGIN
48 l_retval := 'N';
49 --insert into plsqldbug values( sysdate, 'inside do_launch' );
50 --commit;
51
52 IF( FND_PROFILE.VALUE( 'IEU_CTRL_EVENT_VIEWER' ) = 'Y' AND
53 ( IEU_PUB.IS_AGENT_ELIGIBLE_FOR_MEDIA( P_RESOURCE_ID ) = TRUE OR
54 FND_PROFILE.VALUE( 'IEU_MSG_ENABLE_PLUGIN' ) = 'Y' ) )
55 THEN
56 l_retval := 'Y';
57 END IF;
58
59 RETURN l_retval;
60
61 EXCEPTION
62 WHEN OTHERS THEN
63 RETURN null;
64
65 END DO_LAUNCH_EVENT_VIEWER;
66
67 FUNCTION DO_LAUNCH_SOFTPHONE
68 (
69 P_RESOURCE_ID NUMBER
70 ,P_AGENT_EXTN NUMBER
71 ,P_USER_ID NUMBER
72 ,P_RESP_ID NUMBER
73 ,P_RESP_APPL_ID NUMBER
74 ,P_USER_LANG VARCHAR2
75 ) RETURN VARCHAR2
76 IS
77 l_retval VARCHAR2(1);
78 l_classes IEU_PVT.ClientClasses;
79 l_media_types IEU_PVT.EligibleAllMediaList;
80 l_tel_eligible_flag VARCHAR2(1) := 'N';
81 l_ao_man_mode BOOLEAN := False;
82 l_nosoft_mode VARCHAR2(5);
83 l_deleted_flag VARCHAR2(1);
84 l_soft_disabled_param VARCHAR2(32);
85
86 BEGIN
87
88 l_retval := 'N';
89 l_nosoft_mode := 'FALSE';
90 l_deleted_flag := 'D';
91 l_soft_disabled_param := 'DISABLE_SOFTPHONE';
92
93 IEU_PVT.DETERMINE_ALL_MEDIA_TYPES_EXTN(P_RESOURCE_ID, l_media_types, l_tel_eligible_flag);
94
95 IEU_PVT.DETERMINE_CLI_PLUGINS(
96 P_RESOURCE_ID,
97 l_classes );
98
99 IF (l_classes is not null and l_classes.COUNT > 0) THEN
100 FOR i IN l_classes.FIRST..l_classes.LAST LOOP
101 IF ( (l_tel_eligible_flag = 'Y') AND
102 (l_classes(i) =
103 'oracle.apps.cct.softphone.SoftphoneWrap')
104 )
105 THEN
106 l_retval := 'Y';
107 EXIT;
108 END IF;
109 END LOOP;
110 END IF;
111
112 IF (l_retval = 'Y' and P_AGENT_EXTN is not null)
113 THEN
114
115 BEGIN
116
117 SELECT val.value
118 INTO l_nosoft_mode
119 FROM CCT_MIDDLEWARE_PARAMS par,
120 CCT_MIDDLEWARE_VALUES val,
121 CCT_MIDDLEWARES mid
122 WHERE mid.MIDDLEWARE_ID = val.MIDDLEWARE_ID
123 AND par.MIDDLEWARE_PARAM_ID = val.MIDDLEWARE_PARAM_ID
124 AND (mid.F_DELETEDFLAG is null OR mid.F_DELETEDFLAG <> l_deleted_flag)
125 AND (par.F_DELETEDFLAG is null OR par.F_DELETEDFLAG <> l_deleted_flag)
126 AND (val.F_DELETEDFLAG is null OR val.F_DELETEDFLAG <> l_deleted_flag)
127 AND par.NAME = l_soft_disabled_param
128 AND mid.MIDDLEWARE_ID =
129 (SELECT tel.MIDDLEWARE_ID
130 FROM CCT_TELESETS tel
131 WHERE tel.TELESET_HARDWARE_NUMBER = to_char(P_AGENT_EXTN)
132 AND (tel.F_DELETEDFLAG is null OR tel.F_DELETEDFLAG <> l_deleted_flag)
133 AND tel.SERVER_GROUP_ID =
134 (SELECT res.SERVER_GROUP_ID
135 FROM JTF_RS_RESOURCE_EXTNS res
136 WHERE res.RESOURCE_ID = P_RESOURCE_ID) );
137
138 EXCEPTION
139 WHEN OTHERS THEN
140 NULL;
141 END;
142
143 IF (l_nosoft_mode = 'TRUE')
144 THEN
145 l_retval := 'N';
146 END IF;
147
148 END IF;
149
150 RETURN l_retval;
151
152 EXCEPTION
153 WHEN OTHERS THEN
154 RETURN null;
155
156 END DO_LAUNCH_SOFTPHONE;
157
158
159 PROCEDURE GET_NON_CONTROLLER_PLUGINS
160 (
161 P_RESOURCE_ID IN NUMBER
162 ,P_USER_ID IN NUMBER
163 ,P_RESP_ID IN NUMBER
164 ,P_RESP_APPL_ID IN NUMBER
165 ,X_CLASSES OUT NOCOPY SYSTEM.IEU_CTRL_STRING_NST
166 )
167 AS
168 l_classes IEU_PVT.ClientClasses;
169 l_class IEU_UWQ_CLI_MED_PLUGINS.CLI_PLUGIN_CLASS%TYPE;
170
171 BEGIN
172
173 FND_GLOBAL.APPS_INITIALIZE( P_USER_ID, P_RESP_ID, P_RESP_APPL_ID );
174
175 IEU_PVT.DETERMINE_CLI_PLUGINS(
176 P_RESOURCE_ID,
177 l_classes );
178
179 X_CLASSES := SYSTEM.IEU_CTRL_STRING_NST();
180
181 IF (l_classes IS NOT NULL and l_classes.COUNT > 0) THEN
182
183 FOR i IN l_classes.FIRST..l_classes.LAST LOOP
184
185 BEGIN
186 SELECT DISTINCT
187 ptable.class_name
188 INTO
189 l_class
190 FROM
191 IEU_CTL_PLUGINS_B ptable
192 WHERE
193 l_classes(i) = ptable.class_name;
194
195 EXCEPTION
196 WHEN OTHERS THEN
197 l_class := '';
198
199 END;
200
201 IF (l_class IS NULL) THEN
202 X_CLASSES.extend( 1 );
203 X_CLASSES( X_CLASSES.LAST ) := SYSTEM.IEU_CTRL_STRING_OBJ( l_classes(i) );
204 END IF;
205
206 END LOOP;
207
208 END IF;
209
210 END GET_NON_CONTROLLER_PLUGINS;
211
212 -- loads client side media provider plugins
213 PROCEDURE GET_CLI_PROV_PLUGINS
214 (
215 P_RESOURCE_ID IN NUMBER
216 ,P_USER_ID IN NUMBER
217 ,P_RESP_ID IN NUMBER
218 ,P_RESP_APPL_ID IN NUMBER
219 ,X_CLASSES OUT NOCOPY SYSTEM.IEU_CTRL_STRING_NST
220 )
221 AS
222 l_media_types IEU_PVT.EligibleMediaList;
223 l_class IEU_CLI_PROV_PLUGINS.PLUGIN_CLASS_NAME%TYPE;
224 l_cond_launch_func VARCHAR2(255);
225 j NUMBER := 0;
226 l_func_call VARCHAR2(1000);
227 l_launch_func_return VARCHAR2(1);
228
229 BEGIN
230
231 FND_GLOBAL.APPS_INITIALIZE( P_USER_ID, P_RESP_ID, P_RESP_APPL_ID );
232 X_CLASSES := SYSTEM.IEU_CTRL_STRING_NST();
233
234 -- IEU_CLI_PROV_PLUGIN_MED_MAPS.CONDITIONAL_FUNC:
235 -- This may contain the fully qualified name of a
236 -- function w/ the following signature:
237 -- FUNCTION <func_name>( P_RESOURCE_ID IN NUMBER,
238 -- P_USER_ID IN NUMBER,
239 -- P_RESP_ID IN NUMBER,
240 -- P_RESP_APPL_ID IN NUMBER,
241 -- P_MEDIA_TYPE_ID IN NUMBER
242 -- RETURN BOOLEAN;
243 --
244 IEU_PVT.DETERMINE_ELIGIBLE_MEDIA_TYPES(
245 P_RESOURCE_ID,
246 l_media_types );
247
248 IF (l_media_types is NOT NULL AND l_media_types.COUNT > 0) THEN
249
250 FOR i IN l_media_types.FIRST..l_media_types.LAST
251 LOOP
252 BEGIN
253 l_launch_func_return := 'N';
254
255 SELECT DISTINCT
256 cliprov.PLUGIN_CLASS_NAME,
257 climap.CONDITIONAL_FUNC
258 INTO
259 l_class,
260 l_cond_launch_func
261 FROM
262 IEU_CLI_PROV_PLUGINS cliprov,
263 IEU_CLI_PROV_PLUGIN_MED_MAPS climap
264 WHERE
265 climap.MEDIA_TYPE_ID = l_media_types(i).media_type_id
266 AND climap.PLUGIN_ID = cliprov.PLUGIN_ID;
267
268 EXCEPTION
269 WHEN OTHERS THEN
270 l_class := NULL;
271 END;
272
273 IF ( l_class IS NOT NULL )
274 THEN
275 l_launch_func_return := 'Y';
276
277 IF ( l_cond_launch_func IS NOT NULL )
278 THEN
279 BEGIN
280 l_func_call := ':l_launch_func_return = call ' || l_cond_launch_func
281 || '(' || P_RESOURCE_ID || ','
282 || P_USER_ID || ','
283 || P_RESP_ID || ','
284 || P_RESP_APPL_ID || ','
285 || l_media_types(i).media_type_id || '); ';
286 EXECUTE IMMEDIATE l_func_call USING OUT l_launch_func_return;
287
288 EXCEPTION
289 WHEN OTHERS THEN
290 l_launch_func_return := 'N';
291 END;
292 END IF;
293
294 IF ( l_launch_func_return = 'Y' )
295 THEN
296 X_CLASSES.extend( 1 );
297 X_CLASSES( X_CLASSES.LAST ) := SYSTEM.IEU_CTRL_STRING_OBJ(l_class);
298 END IF;
299 END IF;
300
301 END LOOP;
302
303 END IF;
304
305 END GET_CLI_PROV_PLUGINS;
306
307 END IEU_PLGN_FUNC_PVT;
308