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