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