DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEU_DEFAULT_MEDIA_ENUMS_PVT

Source


1 PACKAGE BODY IEU_DEFAULT_MEDIA_ENUMS_PVT AS
2 /* $Header: IEUENMVB.pls 120.1 2006/02/21 22:54:14 nsardana noship $ */
3 
4 -- Sub-Program Units
5 
6 PROCEDURE UPDATE_SEL_RT_NODE
7   (P_RESOURCE_ID           IN IEU_UWQ_SEL_RT_NODES.RESOURCE_ID%TYPE
8   ,P_SEL_ENUM_ID           IN IEU_UWQ_SEL_RT_NODES.SEL_ENUM_ID%TYPE
9   ,P_NODE_ID               IN IEU_UWQ_SEL_RT_NODES.NODE_ID%TYPE
10   ,P_NODE_TYPE             IN IEU_UWQ_SEL_RT_NODES.NODE_TYPE%TYPE
11   ,P_NODE_LABEL            IN IEU_UWQ_SEL_RT_NODES.NODE_LABEL%TYPE
12   ,P_DATA_SOURCE           IN IEU_UWQ_SEL_RT_NODES.DATA_SOURCE%TYPE
13   ,P_VIEW_NAME             IN IEU_UWQ_SEL_RT_NODES.VIEW_NAME%TYPE
14   ,P_MEDIA_TYPE_ID         IN IEU_UWQ_SEL_RT_NODES.MEDIA_TYPE_ID%TYPE
15   ,P_SEL_ENUM_PID          IN IEU_UWQ_SEL_RT_NODES.SEL_ENUM_PID%TYPE
16   ,P_NODE_PID              IN IEU_UWQ_SEL_RT_NODES.NODE_PID%TYPE
17   ,P_NODE_WEIGHT           IN IEU_UWQ_SEL_RT_NODES.NODE_WEIGHT%TYPE
18   ,P_WHERE_CLAUSE          IN IEU_UWQ_SEL_RT_NODES.WHERE_CLAUSE%TYPE
19   ,P_HIDE_IF_EMPTY         IN IEU_UWQ_SEL_RT_NODES.HIDE_IF_EMPTY%TYPE
20   ,P_REFRESH_VIEW_NAME     IN IEU_UWQ_SEL_RT_NODES.REFRESH_VIEW_NAME%TYPE
21   ,P_REFRESH_VIEW_SUM_COL  IN IEU_UWQ_SEL_RT_NODES.REFRESH_VIEW_SUM_COL%TYPE
22   ,P_NODE_DEPTH	  	   IN IEU_UWQ_SEL_RT_NODES.NODE_DEPTH%TYPE		-- Added for bug 4389449
23   )
24   AS
25   l_node_id	NUMBER;
26 BEGIN
27 
28 
29   IF ( (P_RESOURCE_ID IS NULL) OR
30        (P_SEL_ENUM_ID IS NULL) OR
31        (P_NODE_ID IS NULL) OR
32        (P_NODE_TYPE IS NULL) OR
33        (P_NODE_LABEL IS NULL) )
34   THEN
35     raise_application_error
36       (-20000
37       ,'A required parameter is null' ||
38        '. (P_RESOURCE_ID = ' || P_RESOURCE_ID ||
39        ') (P_SEL_ENUM_ID = ' || P_SEL_ENUM_ID ||
40        ') (P_NODE_ID = ' || P_NODE_ID ||
41        ') (P_NODE_TYPE = ' || P_NODE_TYPE ||
42        ') (P_NODE_LABEL = ' || P_NODE_LABEL ||
43        ')'
44       ,TRUE );
45   END IF;
46 
47 
48   SAVEPOINT start_update;
49 
50 --    All subnodes start with a series under the PID.
51       l_node_id := P_NODE_ID + P_NODE_PID;
52 
53   BEGIN
54     UPDATE IEU_UWQ_SEL_RT_NODES
55       SET
56         LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
57         LAST_UPDATE_DATE = SYSDATE,
58         LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID,
59         NODE_LABEL = P_NODE_LABEL,
60         DATA_SOURCE = P_DATA_SOURCE,
61         VIEW_NAME = P_VIEW_NAME,
62         REFRESH_VIEW_NAME = P_REFRESH_VIEW_NAME,
63         REFRESH_VIEW_SUM_COL = P_REFRESH_VIEW_SUM_COL,
64         NODE_PID = P_NODE_PID,
65         NODE_WEIGHT = P_NODE_WEIGHT,
66         WHERE_CLAUSE = P_WHERE_CLAUSE,
67         HIDE_IF_EMPTY = P_HIDE_IF_EMPTY,
68         COUNT = NULL,
69         NOT_VALID = 'N',
70 	NODE_DEPTH = P_NODE_DEPTH			-- Added for bug 4389449
71       WHERE
72         (RESOURCE_ID = P_RESOURCE_ID) AND
73         (SEL_ENUM_ID = P_SEL_ENUM_ID) AND
74         (NODE_ID = l_node_id) AND
75         (NODE_TYPE = P_NODE_TYPE) AND
76         (NODE_PID = P_NODE_PID);
77 
78 
79     IF (SQL%NOTFOUND OR (SQL%ROWCOUNT <= 0)) THEN
80 
81       INSERT INTO IEU_UWQ_SEL_RT_NODES
82         ( SEL_RT_NODE_ID,
83           CREATED_BY,
84           CREATION_DATE,
85           LAST_UPDATED_BY,
86           LAST_UPDATE_DATE,
87           LAST_UPDATE_LOGIN,
88           RESOURCE_ID,
89           SEL_ENUM_ID,
90           NODE_ID,
91           NODE_TYPE,
92           NODE_LABEL,
93           COUNT,
94           DATA_SOURCE,
95           VIEW_NAME,
96           REFRESH_VIEW_NAME,
97           REFRESH_VIEW_SUM_COL,
98           MEDIA_TYPE_ID,
99           SEL_ENUM_PID,
100           NODE_PID,
101           NODE_WEIGHT,
102           WHERE_CLAUSE,
103           HIDE_IF_EMPTY,
104           NOT_VALID,
105 	  NODE_DEPTH)					-- Added for bug 4389449
106         VALUES (
107           IEU_UWQ_SEL_RT_NODES_S1.NEXTVAL,
108           FND_GLOBAL.USER_ID,
109           SYSDATE,
110           FND_GLOBAL.USER_ID,
111           SYSDATE,
112           FND_GLOBAL.LOGIN_ID,
113           P_RESOURCE_ID,
114           P_SEL_ENUM_ID,
115           l_node_id,
116           P_NODE_TYPE,
117           P_NODE_LABEL,
118           NULL,
119           P_DATA_SOURCE,
120           P_VIEW_NAME,
121           P_REFRESH_VIEW_NAME,
122           P_REFRESH_VIEW_SUM_COL,
123           P_MEDIA_TYPE_ID,
124           P_SEL_ENUM_PID,
125           P_NODE_PID,
126           P_NODE_WEIGHT,
127           P_WHERE_CLAUSE,
128           P_HIDE_IF_EMPTY,
129           'N',
130 	  P_NODE_DEPTH);				-- Added for bug 4389449
131 
132     END IF;
133 
134   EXCEPTION
135     WHEN OTHERS THEN
136       ROLLBACK TO start_update;
137       RAISE;
138 
139   END;
140 
141 END UPDATE_SEL_RT_NODE;
142 
143 PROCEDURE CREATE_MYWORK_NODE
144   (P_RESOURCE_ID      IN NUMBER
145   ,P_LANGUAGE         IN VARCHAR2
146   ,P_SOURCE_LANG      IN VARCHAR2
147   )
148 AS
149 
150 BEGIN
151 	-- Niraj, 21-Feb-2006, Obsoleted procedure
152 	NULL;
153 END CREATE_MYWORK_NODE;
154 
155 PROCEDURE CREATE_BLENDED_NODE
156   (P_RESOURCE_ID      IN NUMBER
157   ,P_LANGUAGE         IN VARCHAR2
158   ,P_SOURCE_LANG      IN VARCHAR2
159   )
160   AS
161 
162   l_node_label       VARCHAR(512);
163   l_blended_node_id  NUMBER := 10000;
164 
165 BEGIN
166 
167   SELECT
168     tl.media_type_name
169   INTO
170     l_node_label
171   FROM
172     IEU_UWQ_MEDIA_TYPES_TL tl
173   WHERE
174     (tl.media_type_id = IEU_CONSTS_PUB.G_MTID_BLENDED) AND
175     (tl.language = userenv('LANG'));
176 
177   UPDATE_SEL_RT_NODE
178     ( P_RESOURCE_ID,
179       0,
180       l_blended_node_id,          -- NODE_ID
181       0,                          -- NODE_TYPE
182       l_node_label,               -- NODE_LABEL
183       'IEU_UWQ_BLENDED_DS',       -- DATA_SOURCE
184       'IEU_UWQ_BLENDED_V',        -- VIEW_NAME
185       NULL,                       -- MEDIA_TYPE_ID
186       0,                          -- SEL_ENUM_PID
187       0,                          -- NODE_PID
188       nvl(IEU_UWQ_UTIL_PUB.to_number_noerr(fnd_profile.value('IEU_QOR_BLENDED')), 6000),          -- NODE_WEIGHT
189       '',                         -- WHERE_CLAUSE
190       NULL,                        -- HIDE_IF_EMPTY
191       'IEU_UWQ_BLENDED_V',        -- REFRESH_VIEW_NAME
192       'QUEUE_COUNT',               -- REFRESH_VIEW_SUM_COL
193       1				  -- NODE_DEPTH		-- Added for bug 4389449
194     );
195 
196 END CREATE_BLENDED_NODE;
197 
198 -- Niraj:  Bug 4389449: Added Node Depth column in this proc for
199 -- handling UWQ Media nodes like Web Callback, Inbound Telephony
200 PROCEDURE ENUMERATE_MEDIA_NODES
201   (P_RESOURCE_ID      IN NUMBER
202   ,P_LANGUAGE         IN VARCHAR2
203   ,P_SOURCE_LANG      IN VARCHAR2
204   ,P_NODE_ID          IN NUMBER
205   ,P_SEL_ENUM_ID      IN NUMBER
206   ,P_SEL_ENUM_PID     IN NUMBER
207   ,P_DATA_SRC         IN VARCHAR2
208   ,P_VIEW_NAME        IN VARCHAR2
209   ,P_MEDIA_TYPE_ID    IN NUMBER
210   ,P_LOOKUP_CODE      IN VARCHAR2
211   ,P_P_LOOKUP_CODE    IN VARCHAR2
212   ,P_HIDE_IF_EMPTY    IN VARCHAR2
213   ,P_NODE_DEPTH	      IN NUMBER		-- Added for bug 4389449
214   )
215   AS
216 
217   l_wb_style       VARCHAR2(2);
218   l_node_label     VARCHAR2(2000);
219   l_media_type_id  NUMBER := 0;
220   l_p_node_label   VARCHAR2(100);
221   l_media_node_id  NUMBER;
222 
223 BEGIN
224 
225   l_media_node_id  := IEU_CONSTS_PUB.G_SNID_MEDIA;
226   -- First we have to check if the agent is blended or not... if they
227   -- are, then any attempt to enumerate media nodes must simply return
228   -- the blended node.
229 
230   l_wb_style := ieu_pvt.determine_wb_style( p_resource_id );
231 
232   if ( (l_wb_style = 'F') or  (l_wb_style = 'SF') )     -- Full/Simple Forced Blending
233   then
234     create_blended_node( p_resource_id, p_language, p_source_lang );
235     return;
236   elsif ( (l_wb_style = 'O') or (l_wb_style = 'SO') )   -- Full/Simple Optional Blending
237   then
238     create_blended_node( p_resource_id, p_language, p_source_lang );
239   end if;
240 
241 
242   -- If we make it this far, then we are insertting media nodes in a
243   -- non-blended fashion (where agents can pick the queues).
244 
245   SELECT
246     tl.media_type_name,
247     b.media_type_id
248   INTO
249     l_node_label,
250     l_media_type_id
251   FROM
252     IEU_UWQ_MEDIA_TYPES_TL tl,
253     IEU_UWQ_MEDIA_TYPES_B b
254   WHERE
255     (tl.media_type_id = b.media_type_id) AND
256     (tl.language = userenv('LANG')) AND
257     (b.media_type_id = p_media_type_id);
258 
259   Select meaning into l_p_node_label
260     from fnd_lookup_values_vl
261     where lookup_type = 'IEU_NODE_LABELS'
262     and view_application_id = 696
263     and lookup_code = P_P_LOOKUP_CODE;
264 
265   UPDATE_SEL_RT_NODE
266     ( P_RESOURCE_ID,
267       P_SEL_ENUM_ID,
268       P_NODE_ID,             -- NODE_ID
269       0,                     -- NODE_TYPE
270       l_node_label,          -- NODE_LABEL
271       P_DATA_SRC,            -- DATA_SOURCE
272       P_VIEW_NAME,           -- VIEW_NAME
273       l_media_type_id,       -- MEDIA_TYPE_ID
274       P_SEL_ENUM_PID,        -- SEL_ENUM_PID
275       l_media_node_id,       -- NODE_PID
276       P_NODE_ID,             -- NODE_WEIGHT
277       '',                    -- WHERE_CLAUSE
278       P_HIDE_IF_EMPTY,       -- HIDE_IF_EMPTY
279       P_VIEW_NAME,           -- REFRESH_VIEW_NAME
280       'QUEUE_COUNT',          -- REFRESH_VIEW_SUM_COL
281       P_NODE_DEPTH	     -- NODE_DEPTH		-- Added for bug 4389449
282     );
283 
284 END ENUMERATE_MEDIA_NODES;
285 
286 
287 PROCEDURE ENUMERATE_OUTBOUND_NODES
288   (P_RESOURCE_ID      IN NUMBER
289   ,P_LANGUAGE         IN VARCHAR2
290   ,P_SOURCE_LANG      IN VARCHAR2
291   ,P_SEL_ENUM_ID      IN NUMBER
292   )
293 AS
294 BEGIN
295  	-- Niraj, 21-Feb-2006, Obsoleted procedure
296 	NULL;
297 END ENUMERATE_OUTBOUND_NODES;
298 
299 
300 PROCEDURE ENUMERATE_INBOUND_NODES
301   (P_RESOURCE_ID      IN NUMBER
302   ,P_LANGUAGE         IN VARCHAR2
303   ,P_SOURCE_LANG      IN VARCHAR2
304   ,P_SEL_ENUM_ID      IN NUMBER
305   )
306   AS
307 
308 BEGIN
309 
310   IF ( FALSE = IEU_PVT.IS_MEDIA_TYPE_ELIGIBLE
311                  (P_RESOURCE_ID
312                  ,IEU_CONSTS_PUB.G_MTID_INBOUND_TELEPHONY)
313      )
314   THEN
315     RETURN;
316   END IF;
317 
318   ENUMERATE_MEDIA_NODES
319     (P_RESOURCE_ID
320     ,P_LANGUAGE
321     ,P_SOURCE_LANG
322     ,20
323     ,P_SEL_ENUM_ID
324     ,P_SEL_ENUM_ID
325     ,'IEU_UWQ_INBOUND_TEL_DS'
326     ,'IEU_UWQ_INBOUND_TEL_V'
327     ,IEU_CONSTS_PUB.G_MTID_INBOUND_TELEPHONY
328     ,'IEU_INBOUND_LBL'
329     ,'IEU_MEDIA_LBL'
330     ,NULL
331     ,2);				-- Added for bug 4389449
332 
333 END ENUMERATE_INBOUND_NODES;
334 
335 
336 PROCEDURE ENUMERATE_EMAIL_NODES
337   (P_RESOURCE_ID      IN NUMBER
338   ,P_LANGUAGE         IN VARCHAR2
339   ,P_SOURCE_LANG      IN VARCHAR2
340   ,P_SEL_ENUM_ID      IN NUMBER
341   )
342 AS
343 BEGIN
344 	-- Niraj, 21-Feb-2006, Obsoleted procedure
345 	NULL;
346 END ENUMERATE_EMAIL_NODES;
347 
348 
349 PROCEDURE ENUMERATE_WEB_CALLBACK_NODES
350   (P_RESOURCE_ID      IN NUMBER
351   ,P_LANGUAGE         IN VARCHAR2
352   ,P_SOURCE_LANG      IN VARCHAR2
353   ,P_SEL_ENUM_ID      IN NUMBER
354   )
355   AS
356 
357 BEGIN
358 
359   IF ( FALSE = IEU_PVT.IS_MEDIA_TYPE_ELIGIBLE
360                  (P_RESOURCE_ID
361                  ,IEU_CONSTS_PUB.G_MTID_WEB_CALLBACK)
362      )
363   THEN
364     RETURN;
365   END IF;
366 
367   ENUMERATE_MEDIA_NODES
368     (P_RESOURCE_ID
369     ,P_LANGUAGE
370     ,P_SOURCE_LANG
371     ,40
372     ,P_SEL_ENUM_ID
373     ,P_SEL_ENUM_ID
374     ,'IEU_UWQ_WEB_CALLBACK_DS'
375     ,'IEU_UWQ_WEB_CALLBACK_V'
376     ,IEU_CONSTS_PUB.G_MTID_WEB_CALLBACK
377     ,'IEU_WEB_CALLBACK_LBL'
378     ,'IEU_MEDIA_LBL'
379     ,NULL
380     ,2);				-- Added for bug 4389449
381 
382 END ENUMERATE_WEB_CALLBACK_NODES;
383 
384 
385 -- PL/SQL Block
386 END IEU_DEFAULT_MEDIA_ENUMS_PVT;