[Home] [Help]
PACKAGE BODY: APPS.CSM_SERVICEP_WRAPPER_PKG
Source
1 PACKAGE BODY CSM_SERVICEP_WRAPPER_PKG AS
2 /* $Header: csmuspwb.pls 120.15.12020000.2 2013/04/09 11:05:54 saradhak ship $ */
3
4 -- MODIFICATION HISTORY
5 -- Anurag 06/09/02 Created
6 -- --------- ------ ------------------------------------------
7 -- Enter procedure, function bodies as shown below
8
9 /*** Globals ***/
10 g_debug_level NUMBER; -- debug level
11 g_object_name CONSTANT VARCHAR2(30) := 'CSM_SERVICEP_WRAPPER_PKG';
12 --bug4233613
13 g_olite_schema CONSTANT VARCHAR2(15) := 'MOBILEADMIN';
14
15
16 PROCEDURE GET_ALL_DEFERRED_PUB_ITEMS(p_username IN VARCHAR2,
17 p_tranid IN NUMBER,
18 p_pubname IN VARCHAR2,
19 x_pubitems_tbl OUT NOCOPY asg_apply.vc2_tbl_type,
20 x_return_status OUT NOCOPY VARCHAR2)
21 IS
22 l_defer_count pls_integer;
23 l_all_pubitems_tbl asg_apply.vc2_tbl_type;
24 l_null_pubitems_tbl asg_apply.vc2_tbl_type;
25 l_return_status varchar2(1);
26 l_dummy number;
27
28 CURSOR c_isdeferred(p_user_name VARCHAR2, p_tran_id NUMBER, p_pubitem VARCHAR2)
29 IS
30 SELECT 1
31 FROM asg_deferred_traninfo
32 WHERE device_user_name = p_user_name
33 AND deferred_tran_id = p_tranid
34 AND object_name = p_pubitem
35 ;
36
37 BEGIN
38 x_return_status := FND_API.G_RET_STS_ERROR;
39
40 /** initialize tables **/
41 l_all_pubitems_tbl := l_null_pubitems_tbl;
42 x_pubitems_tbl := l_null_pubitems_tbl;
43
44 /*** retrieve names of deferred dirty SERVICEP publication items ***/
45 asg_apply.get_all_pub_items(p_username,
46 p_tranid,
47 'SERVICEP',
48 l_all_pubitems_tbl,
49 l_return_status);
50
51 /*** successfully retrieved item names? ***/
52 IF l_return_status <> FND_API.G_RET_STS_SUCCESS OR l_all_pubitems_tbl.COUNT = 0 THEN
53 NULL;
54 ELSE
55 l_defer_count := 0;
56 FOR i IN 1..l_all_pubitems_tbl.count LOOP
57 OPEN c_isdeferred(p_username,p_tranid, l_all_pubitems_tbl(i));
58 FETCH c_isdeferred INTO l_dummy;
59 IF c_isdeferred%FOUND THEN
60 l_defer_count := l_defer_count + 1;
61 x_pubitems_tbl(l_defer_count) := l_all_pubitems_tbl(i);
62 END IF;
63 CLOSE c_isdeferred;
64 END LOOP;
65 END IF;
66
67 x_return_status := FND_API.G_RET_STS_SUCCESS;
68
69 END GET_ALL_DEFERRED_PUB_ITEMS;
70
71
72 /***
73 This function accepts a list of publication items and a publication item name and
74 returns whether the item name was found within the item list.
75 When the item name was found, it will be removed from the list.
76 ***/
77 FUNCTION ITEM_EXISTS
78 (
79 p_pubitems_tbl IN OUT nocopy asg_apply.vc2_tbl_type,
80 p_item_name IN VARCHAR2
81 )
82 RETURN BOOLEAN IS
83 l_index BINARY_INTEGER;
84 BEGIN
85
86
87 IF p_pubitems_tbl.COUNT <= 0 THEN
88 /*** no items in list -> item name not found ***/
89 RETURN FALSE;
90 END IF;
91 FOR l_index IN p_pubitems_tbl.FIRST..p_pubitems_tbl.LAST LOOP
92 IF p_pubitems_tbl.EXISTS(l_index) THEN
93 IF p_pubitems_tbl( l_index ) = p_item_name THEN
94 /*** found item -> delete from array and return TRUE ***/
95 p_pubitems_tbl.DELETE( l_index );
96
97 RETURN TRUE;
98 END IF;
99 END IF;
100 END LOOP;
101 /*** item name not found ***/
102
103 RETURN FALSE;
104 EXCEPTION WHEN OTHERS THEN
105 CSM_UTIL_PKG.log( 'Exception occurred in CSM_SERVICEP_WRAPPER_PKG.ITEM_EXISTS:' || fnd_global.local_chr(10) || SQLERRM,
106 'CSM_SERVICEP_WRAPPER_PKG.ITEM_EXISTS',FND_LOG.LEVEL_EXCEPTION);
107
108 RETURN FALSE;
109 END ITEM_EXISTS;
110
111 /***
112 This procedure is called by ASG_APPLY.APPLY_CLIENT_CHANGES if a list of dirty publication items
113 has been retrieved for a user/tranid combination. This procedure gets called for both
114 deferred and non-deferred publication items.
115 ***/
116 PROCEDURE APPLY_DIRTY_PUBITEMS
117 (
118 p_user_name IN VARCHAR2,
119 p_tranid IN NUMBER,
120 p_pubitems_tbl IN OUT nocopy asg_apply.vc2_tbl_type,
121 x_return_status IN OUT nocopy VARCHAR2
122 ) IS
123 l_index BINARY_INTEGER;
124 BEGIN
125
126 x_return_status := FND_API.G_RET_STS_SUCCESS;
127
128 /*** call appropriate wrapper ***/
129
130 /*** process Deferred first***/
131 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_DEFERRED_TRANSACTIONS') THEN
132 CSM_DEFERRED_TXNS_PKG.APPLY_CLIENT_CHANGES
133 (
134 p_user_name,
135 p_tranid,
136 g_debug_level,
137 x_return_status
138 );
139 END IF;
140 --we should process undo before all PI inorder to effectively call undo
141
142 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_CLIENT_UNDO_REQUEST') THEN
143 CSM_UNDO_PKG.APPLY_CLIENT_CHANGES
144 (
145 p_user_name,
146 p_tranid,
147 g_debug_level,
148 x_return_status
149 );
150 END IF;
151
152 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_HZ_LOCATIONS') THEN
153 CSM_HZ_LOCATION_PKG.APPLY_CLIENT_CHANGES
154 (
155 p_user_name,
156 p_tranid,
157 g_debug_level,
158 x_return_status
159 );
160 END IF;
161 /*** call incident wrapper
162 We should process 'CSM_INCIDENTS_ALL' before CSM_TASKS because
163 CSM_TASKS might be refering to locally created INCIDENT_ID.
164 ***/
165 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_INCIDENTS_ALL') THEN
166 CSM_SERVICE_REQUESTS_PKG.APPLY_CLIENT_CHANGES
167 (
168 p_user_name,
169 p_tranid,
170 g_debug_level,
171 x_return_status
172 );
173 END IF;
174
175 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_TASKS') THEN
176 CSM_TASKS_PKG.APPLY_CLIENT_CHANGES
177 (
178 p_user_name,
179 p_tranid,
180 g_debug_level,
181 x_return_status
182 );
183 END IF;
184
185
186 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_TASK_ASSIGNMENTS') THEN
187
188 CSM_TASK_ASSIGNMENTS_PKG.APPLY_CLIENT_CHANGES
189 (
190 p_user_name,
191 p_tranid,
192 g_debug_level,
193 x_return_status
194 );
195 END IF;
196
197 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_COUNTER_VALUES') THEN
198
199 CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES
200 (
201 p_user_name,
202 p_tranid,
203 g_debug_level,
204 x_return_status
205 );
206 END IF;
207
208 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_DEBRIEF_HEADERS') THEN
209
210 CSM_DEBRIEF_HEADERS_PKG.APPLY_CLIENT_CHANGES
211 (
212 p_user_name,
213 p_tranid,
214 g_debug_level,
215 x_return_status
216 );
217 END IF;
218
219 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_DEBRIEF_EXPENSES') THEN
220
221 CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES
222 (
223 p_user_name,
224 p_tranid,
225 g_debug_level,
226 x_return_status
227 );
228 END IF;
229
230 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_DEBRIEF_LABOR') THEN
231
232 CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES
233 (
234 p_user_name,
235 p_tranid,
236 g_debug_level,
237 x_return_status
238 );
239 END IF ;
240
241 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_DEBRIEF_PARTS') THEN
242
243 CSM_DEBRIEF_PARTS_PKG.APPLY_CLIENT_CHANGES
244 (
245 p_user_name,
246 p_tranid,
247 g_debug_level,
248 x_return_status
249 );
250 END IF;
251
252 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_NOTES') THEN
253 CSM_NOTES_PKG.APPLY_CLIENT_CHANGES
254 (
255 p_user_name,
256 p_tranid,
257 g_debug_level,
258 x_return_status
259 );
260 END IF;
261
262 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_LOBS') THEN
263
264 CSM_LOBS_PKG.APPLY_CLIENT_CHANGES
265 (
266 p_user_name,
267 p_tranid,
268 g_debug_level,
269 x_return_status
270 );
271 END IF;
272
273 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_MAIL_MESSAGES') THEN
274 CSM_MAIL_MESSAGES_PKG.APPLY_CLIENT_CHANGES
275 (
276 p_user_name,
277 p_tranid,
278 g_debug_level,
279 x_return_status
280 );
281 END IF;
282
283 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_MAIL_RECIPIENTS') THEN
284 CSM_MAIL_RECIPIENTS_PKG.APPLY_CLIENT_CHANGES
285 (
286 p_user_name,
287 p_tranid,
288 g_debug_level,
289 x_return_status
290 );
291 END IF;
292
293 /*** call requirements wrapper ***/
294 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_REQ_LINES') THEN
295 CSM_REQUIREMENTS_PKG.APPLY_CLIENT_CHANGES
296 (
297 p_user_name,
298 p_tranid,
299 g_debug_level,
300 x_return_status
301 );
302 END IF;
303
304 /*** call requirements wrapper ***/
305 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_INVENTORY') THEN
306 CSM_INVENTORY_PKG.APPLY_CLIENT_CHANGES
307 (
308 p_user_name,
309 p_tranid,
310 g_debug_level,
311 x_return_status
312 );
313 END IF;
314
315 IF ITEM_EXISTS( p_pubitems_tbl, 'CSF_M_USER') THEN
316 CSM_USER_PKG.APPLY_CLIENT_CHANGES
317 (
318 p_user_name,
319 p_tranid,
320 g_debug_level,
321 x_return_status
322 );
323 END IF;
324
325 --Support for Parts Transfer
326 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_MTL_MATERIAL_TXNS') THEN
327 CSM_MATERIAL_TRANSACTION_PKG.APPLY_CLIENT_CHANGES
328 (
329 p_user_name,
330 p_tranid,
331 g_debug_level,
332 x_return_status
333 );
334 END IF;
335
336
337 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_AUTO_SYNC_NFN') THEN
338
339
340 CSM_UTIL_PKG.log('Entered CSM_AUTO_SYNC_NFN .Will apply_client_changes' );
341 CSM_AUTO_SYNC_NFN_PKG.APPLY_CLIENT_CHANGES
342 (
343 p_user_name,
344 p_tranid,
345 g_debug_level,
346 x_return_status
347 );
348 END IF;
349
350 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_CLIENT_NFN_LOG') THEN
351 CSM_CLIENT_NFN_LOG_PKG.APPLY_CLIENT_CHANGES
352 (
353 p_user_name,
354 p_tranid,
355 g_debug_level,
356 x_return_status
357 );
358 END IF;
359
360 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_AUTO_SYNC_LOG') THEN
361 CSM_AUTO_SYNC_LOG_PKG.APPLY_CLIENT_CHANGES
362 (
363 p_user_name,
364 p_tranid,
365 g_debug_level,
366 x_return_status
367 );
368 END IF;
369
370
371 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_AUTO_SYNC') THEN
372 CSM_AUTO_SYNC_PKG.APPLY_CLIENT_CHANGES
373 (
374 p_user_name,
375 p_tranid,
376 g_debug_level,
377 x_return_status
378 );
379 END IF;
380
381 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_QUERY') THEN
382 CSM_MOBILE_QUERY_PKG.APPLY_CLIENT_CHANGES
383 (
384 p_user_name,
385 p_tranid,
386 g_debug_level,
387 x_return_status
388 );
389 END IF;
390
391 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_QUERY_INSTANCES') THEN
392 CSM_QUERY_INSTANCE_PKG.APPLY_CLIENT_CHANGES
393 (
394 p_user_name,
395 p_tranid,
396 g_debug_level,
397 'N', --p_from_sync
398 x_return_status
399 );
400 END IF;
401
402 IF ITEM_EXISTS( p_pubitems_tbl, 'CSM_ORDER_LINES') THEN
403 CSM_ORDERS_PKG.APPLY_CLIENT_CHANGES
404 (
405 p_user_name,
406 p_tranid,
407 g_debug_level,
408 x_return_status
409 );
410 END IF;
411
412 --TODO: call other wrappers for other updatable PIs
413
414
415 EXCEPTION WHEN OTHERS THEN
416 CSM_UTIL_PKG.log('Exception occurred in CSM_SERVICEP_WRAPPER_PKG.APPLY_DIRTY_PUBITEMS:' || fnd_global.local_chr(10) || SQLERRM,
417 'CSM_SERVICEP_WRAPPER_PKG.APPLY_DIRTY_PUBITEMS',FND_LOG.LEVEL_EXCEPTION );
418
419 END APPLY_DIRTY_PUBITEMS;
420
421 /***
422 This procedure is called by ASG_APPLY.PROCESS_UPLOAD when a publication item for publication SERVICEL
423 is dirty. This happens when a mobile field service device executed DML on an updatable table and did
424 a fast sync. This procedure will detect which publication items got dirty and will execute the wrapper
425 procedures which will insert the data that came from mobile into the backend tables using public APIs.
426 ***/
427 PROCEDURE APPLY_CLIENT_CHANGES
428 (
429 p_user_name IN VARCHAR2,
430 p_tranid IN NUMBER
431 ) IS
432 l_pubitems_tbl asg_apply.vc2_tbl_type;
433 l_return_status VARCHAR2(1);
434 BEGIN
435
436 /*** retrieve names of all dirty SERVICEP publication items ***/
437 /*** get_all_dirty and get_all_defered_pub_items is replaced by get_all_pub_items ***/
438 asg_apply.get_all_pub_items(p_user_name,
439 p_tranid,
440 'SERVICEP',
441 l_pubitems_tbl,
442 l_return_status);
443
444 FOR i IN 1..l_pubitems_tbl.count LOOP
445
446 csm_util_pkg.log('Dirty Pub items for tranid: ' || p_tranid || ' : ' || l_pubitems_tbl(i),'CSM_SERVICEP_WRAPPER_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_PROCEDURE);
447 -- logm('Dirty Pub items for tranid: ' || p_tranid || ' : ' || l_pubitems_tbl(i));
448 END LOOP;
449
450 /*** successfully retrieved item names? ***/
451 IF l_return_status <> FND_API.G_RET_STS_SUCCESS OR l_pubitems_tbl.COUNT = 0 THEN
452 NULL;
453 ELSE
454 /*** yes -> process them ***/
455
456 APPLY_DIRTY_PUBITEMS
457 ( p_user_name
458 , p_tranid
459 , l_pubitems_tbl
460 , l_return_status
461 );
462 END IF;
463
464 /*** retrieve names of deferred dirty SERVICEP publication items ***/
465 /*
466 get_all_deferred_pub_items(p_user_name,
467 p_tranid,
468 'SERVICEP',
469 l_pubitems_tbl,
470 l_return_status);
471
472
473
474 IF l_return_status <> FND_API.G_RET_STS_SUCCESS OR l_pubitems_tbl.COUNT = 0 THEN
475 NULL;
476 ELSE
477
478
479 APPLY_DIRTY_PUBITEMS
480 ( p_user_name
481 , p_tranid
482 , l_pubitems_tbl
483 , l_return_status
484 );
485 END IF;
486 */
487
488 EXCEPTION WHEN OTHERS THEN
489 /*** catch and log exceptions ***/
490 CSM_UTIL_PKG.log('Exception occurred in CSM_SERVICEP_WRAPPER_PKG.Apply_Client_Changes: ' || sqlerrm
491 || ' for User: ' || p_user_name ,'CSM_SERVICEP_WRAPPER_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_EXCEPTION);
492
493
494 END APPLY_CLIENT_CHANGES;
495
496
497
498
499 /**
500 * POPULATE_ACCESS_RECORDS
501 * is the bootstrap procedure called by MDG upon CSM user creation
502 * we need to iterate over the responsibilities assigned to this CSM user
503 * and call the CSM_WF_PKG.User_Resp_Post_Ins(user_id, resp_id)
504 */
505 PROCEDURE POPULATE_ACCESS_RECORDS ( p_userid IN NUMBER)
506 IS
507 CURSOR l_resp_csr(b_userid NUMBER) IS
508 SELECT DISTINCT aupr.RESPONSIBILITY_ID AS RESPONSIBILITY_ID
509 FROM ASG_USER au
510 , asg_user_pub_resps aupr
511 WHERE au.USER_ID = b_userid
512 AND aupr.pub_name = 'SERVICEP'
513 AND au.user_name = aupr.user_name;
514
515 l_resp_rec l_resp_csr%ROWTYPE;
516
517 BEGIN
518 csm_util_pkg.log('insert called','CSM_SERVICEP_WRAPPER_PKG.POPULATE_ACCESS_RECORDS',FND_LOG.LEVEL_PROCEDURE);
519
520 csm_util_pkg.pvt_log('insert called' || 'CSM_SERVICEP_WRAPPER_PKG.POPULATE_ACCESS_RECORDS');
521 FOR l_resp_rec IN l_resp_csr(p_userid) LOOP
522 csm_util_pkg.pvt_log('POPULATE_ACCESS_RECORDS: USER_ID = ' || p_userid || ' RESP_ID = ' || l_resp_rec.RESPONSIBILITY_ID);
523 csm_util_pkg.log('POPULATE_ACCESS_RECORDS: USER_ID = ' || p_userid || ' RESP_ID = ' || l_resp_rec.RESPONSIBILITY_ID
524 ,FND_LOG.LEVEL_STATEMENT );
525 CSM_WF_PKG.User_Resp_Post_Ins(p_user_id => p_userid,
526 p_responsibility_id => l_resp_rec.RESPONSIBILITY_ID );
527 END LOOP;
528 END POPULATE_ACCESS_RECORDS; -- end POPULATE_ACCESS_RECORDS
529
530 /**
531 * DELETE_ACCESS_RECORDS
532 * is the bootstrap procedure called by MDG upon CSM user deletion
533 * we need to iterate over the responsibilities assigned to this CSM user
534 * and call the CSM_WF_PKG.User_Resp_Post_Ins(user_id, resp_id)
535 */
536 PROCEDURE DELETE_ACCESS_RECORDS ( p_userid in number)
537 IS
538 BEGIN
539 csm_util_pkg.log('delete called','CSM_SERVICEP_WRAPPER_PKG.DELETE_ACCESS_RECORDS',FND_LOG.LEVEL_PROCEDURE);
540 CSM_WF_PKG.User_Del(p_user_id => p_userid);
541 END DELETE_ACCESS_RECORDS; -- end DELETE_ACCESS_RECORDS
542
543 /*
544 Call back function for ASG. used for create synonyms / grant accesses in mobileadmin schema
545 before running installation manager
546 */
547 FUNCTION CHECK_OLITE_SCHEMA RETURN VARCHAR2 IS
548 l_count NUMBER;
549 BEGIN
550 SELECT count(1) INTO l_count
551 FROM all_synonyms
552 WHERE owner = g_olite_schema AND SYNONYM_NAME = 'FND_GLOBAL';
553 IF l_count = 0 THEN
554 -- csm_util_pkg.log(' synonym mobileadmin.FND_GLOBAL does not exist');
555 --EXECUTE IMMEDIATE 'create synonym mobileadmin.FND_GLOBAL for FND_GLOBAL';
556 EXECUTE IMMEDIATE 'create synonym '
557 ||g_olite_schema||'.FND_GLOBAL for FND_GLOBAL';
558 END IF;
559 SELECT count(1) INTO l_count
560 FROM all_synonyms
561 WHERE owner = g_olite_schema AND SYNONYM_NAME = 'CSM_PROFILE_PKG';
562 IF l_count = 0 THEN
563 -- csm_util_pkg.log(' synonym mobileadmin.csm_profile_pkg does not exist');
564 --EXECUTE IMMEDIATE 'create synonym mobileadmin.csm_profile_pkg for csm_profile_pkg';
565
566 EXECUTE IMMEDIATE 'create synonym '
567 ||g_olite_schema||'.csm_profile_pkg for csm_profile_pkg';
568 END IF;
569 SELECT count(1) INTO l_count
570 FROM all_synonyms
571 WHERE owner = g_olite_schema AND SYNONYM_NAME = 'CSM_UTIL_PKG';
572 IF l_count = 0 THEN
573 -- csm_util_pkg.log(' synonym mobileadmin.csm_profile_pkg does not exist');
574 --EXECUTE IMMEDIATE 'create synonym mobileadmin.csm_util_pkg for csm_util_pkg';
575
576 EXECUTE IMMEDIATE 'create synonym '
577 ||g_olite_schema||'.csm_util_pkg for csm_util_pkg';
578 END IF;
579
580 RETURN 'Y';
581
582 EXCEPTION
583 WHEN OTHERS THEN
584 RETURN 'N';
585 END CHECK_OLITE_SCHEMA;
586
587 FUNCTION detect_conflict(p_user_name IN VARCHAR2) RETURN VARCHAR2 IS
588 BEGIN
589 CSM_UTIL_PKG.LOG('Entering CSM_SERVICEP_WRAPPER_PKG.DETECT_CONFLICT for user ' || p_user_name ,
590 'CSM_SERVICEP_WRAPPER_PKG.DETECT_CONFLICT',FND_LOG.LEVEL_PROCEDURE);
591
592 RETURN 'Y' ;
593 EXCEPTION
594 WHEN OTHERS THEN
595 RETURN 'Y';
596 END ;
597
598 FUNCTION CONFLICT_RESOLUTION_METHOD (p_user_name IN VARCHAR2,
599 p_tran_id IN NUMBER,
600 p_sequence IN NUMBER)
601 RETURN VARCHAR2 IS
602 l_profile_value VARCHAR2(30) ;
603 BEGIN
604 CSM_UTIL_PKG.LOG('Entering CSM_SERVICEP_WRAPPER_PKG.CONFLICT_RESOLUTION_METHOD for user ' || p_user_name ,
605 'CSM_SERVICEP_WRAPPER_PKG.CONFLICT_RESOLUTION_METHOD',FND_LOG.LEVEL_PROCEDURE);
606 l_profile_value := fnd_profile.value(csm_profile_pkg.g_JTM_APPL_CONFLICT_RULE);
607
608 if l_profile_value = 'SERVER_WINS' then
609 RETURN 'S' ;
610 else
611 RETURN 'C' ;
612 END IF ;
613 EXCEPTION
614 WHEN OTHERS THEN
615 RETURN 'C';
616 END ;
617
618 PROCEDURE APPLY_HTML5_CHANGES(p_user_name IN VARCHAR2,p_tranid IN NUMBER)
619 IS
620
621 l_return_status varchar2(100);
622 l_pubitems_tbl asg_apply.vc2_tbl_type;
623 BEGIN
624
625 /*** retrieve names of all dirty SERVICEP publication items ***/
626 /*** get_all_dirty and get_all_defered_pub_items is replaced by get_all_pub_items ***/
627 csm_html5_pkg.get_all_pub_items(p_user_name,p_tranid,l_pubitems_tbl,l_return_status);
628
629 FOR i IN 1..l_pubitems_tbl.count LOOP
630 csm_util_pkg.log('Dirty Pub items for tranid: ' || p_tranid || ' : ' || l_pubitems_tbl(i),'CSM_SERVICEP_WRAPPER_PKG.APPLY_HTML5_CHANGES',FND_LOG.LEVEL_PROCEDURE);
631 END LOOP;
632
633 /*** successfully retrieved item names? ***/
634 IF l_pubitems_tbl.COUNT > 0 THEN
635 /*** yes -> process them ***/
636
637 APPLY_DIRTY_PUBITEMS
638 ( p_user_name
639 , p_tranid
640 , l_pubitems_tbl
641 , l_return_status
642 );
643 ELSE
644 CSM_UTIL_PKG.log('No data found for User: ' || p_user_name || ' in txn-id:'|| p_tranid,'CSM_SERVICEP_WRAPPER_PKG.APPLY_HTML5_CHANGES',FND_LOG.LEVEL_EXCEPTION);
645 END IF;
646
647 EXCEPTION WHEN OTHERS THEN
648 /*** catch and log exceptions ***/
649 CSM_UTIL_PKG.log('Exception occurred in CSM_SERVICEP_WRAPPER_PKG.APPLY_HTML5_CHANGES: ' || sqlerrm || ' for User: ' || p_user_name ,'CSM_SERVICEP_WRAPPER_PKG.APPLY_HTML5_CHANGES',FND_LOG.LEVEL_EXCEPTION);
650
651 END APPLY_HTML5_CHANGES;
652
653
654 END CSM_SERVICEP_WRAPPER_PKG;