DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEU_TASKS_WR_MIG_PVT

Source


1 PACKAGE BODY IEU_TASKS_WR_MIG_PVT AS
2 /* $Header: IEUVTWRB.pls 120.7 2006/08/18 05:03:33 msathyan noship $ */
3 
4 l_not_valid_flag VARCHAR2(1);
5 l_workitem_obj_code VARCHAR2(30);
6 l_owner_type_actual VARCHAR2(30);
7 
8 l_assignee_role        VARCHAR2(30);
9 l_resource_type_code_1 VARCHAR2(30);
10 l_resource_type_code_2 VARCHAR2(30);
11 l_delete_flag          VARCHAR2(1);
12 l_closed_flag          VARCHAR2(1);
13 l_completed_flag       VARCHAR2(1);
14 l_cancelled_flag       VARCHAR2(1);
15 l_rejected_flag        VARCHAR2(1);
16 l_rownum               NUMBER(1);
17 
18 PROCEDURE IEU_SYNCH_WR_DIST_STATUS(ERRBUF OUT NOCOPY VARCHAR2, RETCODE OUT NOCOPY VARCHAR2) IS
19 
20   l_assignee_id  number;
21   l_assignee_type varchar2(25);
22   l_task_priority_id number;
23   l_date_selected   varchar2(1);
24   l_task_status varchar2(10);
25   l_return_status varchar2(1);
26   l_msg_count NUMBER;
27   l_msg_data VARCHAR2(2000);
28   l_work_item_id NUMBER;
29   l_count number;
30   l_err_msg varchar2(4000);
31 
32   -- Reqd for Distribution Rules
33   l_ws_id1            NUMBER;
34   l_ws_id2            NUMBER := null;
35   l_association_ws_id NUMBER;
36   l_dist_from         IEU_UWQM_WORK_SOURCES_B.DISTRIBUTE_FROM%TYPE;
37   l_dist_to           IEU_UWQM_WORK_SOURCES_B.DISTRIBUTE_TO%TYPE;
38 
39   l_uwqm_count number := 0;
40   l_uwqm_open_count number := 0;
41   l_task_open_count number := 0;
42   l_task_dist_count number := 0;
43   l_run_script_flag varchar2(1);
44   l_orig_grp_owner  number;
45   l_tasks_rules_func varchar2(256);
46   l_tasks_data_list  SYSTEM.WR_TASKS_DATA_NST;
47   l_def_data_list    SYSTEM.DEF_WR_DATA_NST;
48 
49   l_child_ws_id       NUMBER;
50   l_object_code_match varchar2(1);
51   l_failed_counter NUMBER := 0;
52   l_success_counter NUMBER := 0;
53   l_ws_act_failed_msg Varchar2(4000);
54   l_message varchar2(4000);
55   l_ws_act_success_msg varchar2(4000);
56   l_workitem_fail_msg varchar2(4000);
57   l_workitem_sum_msg varchar2(4000);
58   l_obj_code_lst VARCHAR2(1000);
59   x_msg_count    NUMBER;
60   x_msg_data     VARCHAR2(4000);
61   err_flag       VARCHAR2(1);
62 
63 
64   type t_task_details_1 is ref cursor;
65 
66   c_task_details_1 t_task_details_1;
67   v_task_details_1 varchar2(4000) ;
68   v_task_details_2 varchar2(4000) ;
69   v_task_details_3 varchar2(4000) ;
70 
71 --	and   tb.source_object_type_code not in ('SR');
72    l_c_task_details_1_var varchar2(100);
73 
74   CURSOR c_task_asg_det IS
75     SELECT resource_id, task_id, resource_type_code
76     from (SELECT  /*+ parallel(TASKS) parallel(ASG) pq_distribute(ASG hash,hash) */
77                   tasks.task_id, TASKS.owner_id,
78                   tasks.owner_type_code, asg.resource_id, asg.resource_type_code, asg.task_assignment_id,
79                   max(asg.last_update_date) over (partition by asg.task_id) max_update_date, asg.last_update_date
80                  FROM JTF_TASKS_B TASKS , JTF_TASK_ASSIGNMENTS ASG
81                  WHERE TASKS.TASK_ID = ASG.TASK_ID
82                  AND NVL(TASKS.DELETED_FLAG,'N') = 'N'
83                  AND TASKS.OPEN_FLAG = 'Y'
84                  AND TASKS.entity = 'TASK'
85                  and tasks.owner_type_code = 'RS_GROUP'
86                  and asg.resource_type_code not in ('RS_GROUP', 'RS_TEAM')
87                  and asg.assignee_role = 'ASSIGNEE'
88                  and exists
89                  (SELECT /*+ index(a,JTF_RS_GROUP_MEMBERS_N1) */ null
90                     FROM JTF_RS_GROUP_MEMBERS a
91                    WHERE a.group_id=tasks.owner_id
92                    and a.RESOURCE_ID = asg.resource_id
93                    AND NVL(DELETE_FLAG,'N') <> 'Y' )
94                  and exists
95                  (select  1
96                   from jtf_task_statuses_b sts
97                   where sts.task_status_id = asg.assignment_status_id
98                   and (nvl(sts.closed_flag, 'N') = 'N'
99                   and nvl(sts.completed_flag, 'N') = 'N'
100                   and nvl(sts.cancelled_flag, 'N') = 'N'
101                   and nvl(sts.rejected_flag, 'N') = 'N'))) a
102       where a.last_update_date = a.max_update_date;
103 
104 CURSOR c_task_due_date IS
105  SELECT booking_end_date, task_id
106  FROM   JTF_TASK_ALL_ASSIGNMENTS
107  WHERE  assignee_role = 'OWNER';
108 
109 CURSOR c_task_status IS
110  SELECT TASK_ID,
111         DECODE(DELETED_FLAG, 'Y', 4, 3) "STATUS_ID"
112  FROM JTF_TASKS_B
113  WHERE ((OPEN_FLAG = 'N' AND DELETED_FLAG = 'N') OR (DELETED_FLAG = 'Y'))
114  AND ENTITY = 'TASK';
115 
116 /**      select resource_id, task_id, resource_type_code
117       from
118 	(
119 	SELECT  tasks.task_id, TASKS.owner_id, tasks.owner_type_code, asg.resource_id, asg.resource_type_code, asg.task_assignment_id,
120 			  max(asg.last_update_date) over (partition by asg.task_id) max_update_date, asg.last_update_date
121 			  FROM JTF_TASK_ASSIGNMENTS ASG, JTF_TASKS_B TASKS
122 			  WHERE TASKS.TASK_ID = ASG.TASK_ID
123 			  AND NVL(TASKS.DELETED_FLAG,'N') = 'N'
124 			  AND TASKS.OPEN_FLAG = 'Y'
125 			  AND TASKS.entity = 'TASK'
126 			  and tasks.owner_type_code = 'RS_GROUP'
127 			  and asg.resource_type_code not in ('RS_GROUP', 'RS_TEAM')
128 			  and asg.assignee_role = 'ASSIGNEE'
129 			  and exists
130 			  (SELECT null
131 			     FROM JTF_RS_GROUP_MEMBERS
132 			    WHERE group_id=tasks.owner_id
133 			    and RESOURCE_ID = asg.resource_id
134 			    AND NVL(DELETE_FLAG,'N') <> 'Y' )
135 			  and exists
136 			  (select 1
137 			   from jtf_task_statuses_b sts
138 			   where sts.task_status_id = asg.assignment_status_id
139 			   and (nvl(sts.closed_flag, 'N') = 'N'
140 			   and nvl(sts.completed_flag, 'N') = 'N'
141 			   and nvl(sts.cancelled_flag, 'N') = 'N'
142 			   and nvl(sts.rejected_flag, 'N') = 'N') )
143 	--and tasks.task_id = 17234
144 	) a
145       where a.last_update_date = a.max_update_date;
146 ***/
147 
148   TYPE NUMBER_TBL   is TABLE OF NUMBER        INDEX BY BINARY_INTEGER;
149   TYPE DATE_TBL     is TABLE OF DATE          INDEX BY BINARY_INTEGER;
150   TYPE VARCHAR2_TBL is TABLE OF VARCHAR2(80)  INDEX BY BINARY_INTEGER;
151 
152   TYPE task_details_rec IS RECORD
153   (
154 	  l_task_id_list                 NUMBER_TBL,
155 	  l_task_number_list             VARCHAR2_TBL,
156 	  l_customer_id_list             NUMBER_TBL,
157 	  l_owner_id_list                NUMBER_TBL,
158 	  l_owner_type_code_list         VARCHAR2_TBL,
159 	  l_owner_type_actual_list       VARCHAR2_TBL,
160 	  l_source_object_id_list        NUMBER_TBL,
161 	  l_source_object_type_code_list VARCHAR2_TBL,
162 --	  l_due_date_list                DATE_TBL,
163 	  l_planned_start_date_list      DATE_TBL,
164 	  l_planned_end_date_list        DATE_TBL,
165 	  l_actual_start_date_list       DATE_TBL,
166 	  l_actual_end_date_list         DATE_TBL,
167 	  l_scheduled_start_date_list    DATE_TBL,
168 	  l_scheduled_end_date_list      DATE_TBL,
169 	  l_task_type_id_list            NUMBER_TBL,
170 	  l_task_name_list               VARCHAR2_TBL,
171 	  l_importance_level_list        NUMBER_TBL,
172 	  l_priority_code_list           VARCHAR2_TBL,
173 	  l_pty_id_list			 VARCHAR2_TBL,
174 	  l_pty_level_list		 VARCHAR2_TBL,
175 	  l_dist_sts_id			 NUMBER_TBL,
176   	  l_task_status_id_list          NUMBER_TBL,
177 	  l_ins_flag			 NUMBER_TBL
178 
179   );
180 
181   l_task_det_rec task_details_rec;
182 
183   TYPE task_asg_rec is RECORD
184   (
185 	  l_asg_id_list			 NUMBER_TBL,
186 	  l_asg_task_id_list		 NUMBER_TBL,
187 	  l_asg_type_act_list		 VARCHAR2_TBL
188   );
189 
190   l_task_asg_rec task_asg_rec;
191 
192   TYPE due_date_rec is RECORD
193   (
194 	  l_due_date_list		DATE_TBL,
195 	  l_task_id_list		NUMBER_TBL
196   );
197 
198   l_task_duedate_rec due_date_rec;
199 
200   TYPE status_rec is RECORD
201   (
202 	  l_task_id_list		NUMBER_TBL,
203 	  l_status_id_list		NUMBER_TBL
204   );
205 
206   l_task_status_rec status_rec;
207 
208   l_array_size			 NUMBER;
209   l_ws_id			 NUMBER;
210   l_total			 NUMBER;
211   l_cnt				 NUMBER;
212   l_ctr_list			 NUMBER_TBL;
213 
214   dml_errors EXCEPTION;
215   PRAGMA exception_init(dml_errors, -24381);
216   errors NUMBER;
217 
218   l_entity             VARCHAR2(10);
219   l_deleted_flag       VARCHAR2(1);
220   l_task_priority_id_1 NUMBER(1);
221   l_open_flag          VARCHAR2(1);
222   l_object_code        VARCHAR2(10);
223 
224   cursor c1(p_child_ws_id IN NUMBER) is
225   select ''''||object_code||'''' object_code
226   from ieu_uwqm_work_sources_b
227   where ws_id in ( select assct_props.parent_ws_id
228                    from   ieu_uwqm_work_sources_b ws, ieu_uwqm_ws_assct_props assct_props
229                    where  ws.ws_id = assct_props.ws_id
230                    and    assct_props.child_ws_id = p_child_ws_id
231                    and    nvl(ws.not_valid_flag,'N') = 'N');
232 
233   l_sql_stmt VARCHAR2(4000);
234   l_ws_exists    VARCHAR2(10);
235 
236   l_done	BOOLEAN;
237   l_cur_name	VARCHAR2(100);
238   l_null_val	VARCHAR2(20);
239 
240   l_user_id	NUMBER;
241   l_login_id	NUMBER;
242   l_assct_ws_cnt NUMBER;
243   l_error_count  NUMBER;
244 
245 
246 begin
247 
248 	  l_error_count := 0;
249 	  l_dist_from := 'GROUP_OWNED';
250 	  l_dist_to   := 'INDIVIDUAL_ASSIGNED';
251 	  l_object_code := 'TASK';
252 
253 	  l_user_id := FND_GLOBAL.USER_ID;
254 	  l_login_id := FND_GLOBAL.LOGIN_ID;
255 	  l_array_size := 2000;
256 	 -- l_ws_id := 10000;
257           l_null_val  := '''NONE''';
258           v_task_details_1 :=   'select  /*+ ordered parallel(tb) parallel(tt) use_nl(tp,ip,sts_b)*/
259         tb.task_id
260       , tb.task_number work_item_number
261       , tb.customer_id
262       , tb.owner_id
263       , decode(tb.owner_type_code, '||''''||'RS_GROUP'||''''||','||''''||'RS_GROUP'||''''||','||''''||'RS_TEAM'||''''||','||
264         ''''||'RS_TEAM'||''''||','||''''|| 'RS_INDIVIDUAL'||''''||')'||' owner_type_code
265       , tb.owner_type_code owner_type_actual
266       , tb.source_object_id
267       , tb.source_object_type_code
268 --      , decode(tb.date_selected,'||''''||'P'||''''||', tb.planned_end_date, '||''''||'A'||''''||', tb.actual_end_date, '||''''||'S'||''''||', tb.scheduled_end_date, null, tb.scheduled_end_date) due_date
269       , tb.planned_start_date
270       , tb.planned_end_date
271       , tb.actual_start_date
272       , tb.actual_end_date
273       , tb.scheduled_start_date
274       , tb.scheduled_end_date
275       , tb.task_type_id
276       , substr(tt.task_name,1,1990) TITLE
277       , tp.importance_level
278       , ip.priority_code
279       , ip.priority_id
280       , ip.priority_level
281       , decode(NVL(tb.owner_type_code,'||''''||'NULL'||''''||'), '||''''||'RS_GROUP'||''''||', 1, 0) distribution_status_id
282       , decode(nvl(sts_b.on_hold_flag, '||''''||'N'||''''||'),'||''''||'Y'||''''||', 5, 0) uwq_status_id
283       , 1 ins_flag
284    from  jtf_tasks_b tb
285      , jtf_tasks_tl tt
286      , jtf_task_priorities_b tp
287      , ieu_uwqm_priorities_b ip
288      , jtf_task_statuses_b sts_b
289    where tb.entity = '||''''||'TASK'||''''||'
290 	and   nvl(tb.deleted_flag, '||''''||'N'||''''||') = '||''''||'N'||''''||'
291 	and   tb.task_id = tt.task_id
292 	and   tt.language =  userenv('||''''||'LANG'||''''||')
293 	and   tp.task_priority_id = nvl(tb.task_priority_id, 4)
294 	and   least(tp.importance_level, 4) = ip.priority_level
295 	and   open_flag = '||''''||'Y'||''''||'
296 	and   tb.task_status_id = sts_b.task_status_id';
297 
298         l_c_task_details_1_var := ' and   tb.source_object_type_code not in (';
299 	  begin
300 	      l_object_code := 'TASK';
301 	      l_not_valid_flag := 'N';
302 	      select ws_id
303 	      into l_ws_id
304 	      from ieu_uwqm_work_sources_b
305 	      where object_code = l_object_code
306 	      and nvl(not_valid_flag, 'N') = l_not_valid_flag;
307 	      exception
308 	      when others then
309 		       errbuf := 'Work Source does not exist';
310 		       retcode := 2;
311 		       l_message := errbuf;
312 --		       dbms_output.put_line('err msg: '||l_message);
313 		       FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
314 		       raise;
315 	  end;
316 
317 	  BEGIN
318                  l_assct_ws_cnt := 0;
319                  l_ws_exists := 'N';
320 
321 		 select count(*)
322 		 into   l_assct_ws_cnt
323 		 from   ieu_uwqm_work_sources_b ws, ieu_uwqm_ws_assct_props assct_props
324 		 where  ws.ws_id = assct_props.ws_id
325 		 and    assct_props.child_ws_id = l_ws_id
326 		 and    nvl(ws.not_valid_flag,'N') = 'N';
327 
328                  if nvl(l_assct_ws_cnt, 0) > 0 then
329                    l_ws_exists := 'Y';
330                  else
331                    l_ws_exists := 'N';
332                  end if;
333 
334 	  EXCEPTION
335 	    WHEN OTHERS THEN
336 	        l_ws_exists := 'N';
337 	  END;
338 
339 --	  dbms_output.put_line('l_ws_exists: '||l_ws_exists);
340 
341           if (l_ws_exists = 'Y')
342 	  then
343 		  for cur_rec in c1(l_ws_id)
344 		  loop
345 			if l_obj_code_lst is null
346 			then
347 			   l_obj_code_lst := cur_rec.object_code;
348 			else
349 			   l_obj_code_lst := l_obj_code_lst || ', '||  cur_rec.object_code;
350 			end if;
351 		  end loop;
352           else
353 	     l_obj_code_lst := l_null_val;
354 	  end if;
355           l_obj_code_lst := NVL(l_obj_code_lst, l_null_val);
356 
357 --	  dbms_output.put_line('Obj Code List: '||l_obj_code_lst);
358 	  --l_total := 0;
359           l_failed_counter := 0;
360 
361 	 -- open c_task_details_1;
362           v_task_details_1 := v_task_details_1||l_c_task_details_1_var||l_obj_code_lst||')';
363           open c_task_details_1 for v_task_details_1;
364 	  loop
365 
366 	     FETCH c_task_details_1
367   	     BULK COLLECT INTO
368 		l_task_det_rec.l_task_id_list,
369 		l_task_det_rec.l_task_number_list,
370 		l_task_det_rec.l_customer_id_list,
371 		l_task_det_rec.l_owner_id_list,
372 		l_task_det_rec.l_owner_type_code_list,
373 		l_task_det_rec.l_owner_type_actual_list,
374 		l_task_det_rec.l_source_object_id_list,
375 		l_task_det_rec.l_source_object_type_code_list,
376 		--l_task_det_rec.l_due_date_list,
377 		l_task_det_rec.l_planned_start_date_list,
378 		l_task_det_rec.l_planned_end_date_list,
379 		l_task_det_rec.l_actual_start_date_list,
380 		l_task_det_rec.l_actual_end_date_list,
381 		l_task_det_rec.l_scheduled_start_date_list,
382 		l_task_det_rec.l_scheduled_end_date_list,
383 		l_task_det_rec.l_task_type_id_list,
384 		l_task_det_rec.l_task_name_list,
385 		l_task_det_rec.l_importance_level_list,
386 		l_task_det_rec.l_priority_code_list,
387 		l_task_det_rec.l_pty_id_list,
388 		l_task_det_rec.l_pty_level_list,
389 		l_task_det_rec.l_dist_sts_id,
390 		l_task_det_rec.l_task_status_id_list,
391 		l_task_det_rec.l_ins_flag
392 	    LIMIT l_array_size;
393 
394             l_done := c_task_details_1%NOTFOUND;
395 
396 	    if ( (l_total is not null) and (l_task_det_rec.l_task_id_list.COUNT is not NULL))
397 	    then
398 		l_total := l_total + l_task_det_rec.l_task_id_list.COUNT;
399 	    elsif (l_task_det_rec.l_task_id_list.COUNT is not NULL)
400 	    then
401 	        l_total := l_task_det_rec.l_task_id_list.COUNT;
402 	    end if;
403 
404 	    BEGIN
405 		FORALL i in 1..l_task_det_rec.l_task_id_list.COUNT SAVE EXCEPTIONS
406 		 insert into ieu_uwqm_items
407 			( WORK_ITEM_ID,
408 			 OBJECT_VERSION_NUMBER,
409 			 CREATED_BY,
410 			 CREATION_DATE,
411 			 LAST_UPDATED_BY,
412 			 LAST_UPDATE_DATE,
413 			 LAST_UPDATE_LOGIN,
414 			 SECURITY_GROUP_ID,
415 			 WORKITEM_OBJ_CODE,
416 			 WORKITEM_PK_ID,
417 			 STATUS_ID,
418 			 PRIORITY_ID,
419 			 PRIORITY_LEVEL,
420 			-- DUE_DATE,
421 			 TITLE,
422 			 PARTY_ID,
423 			 OWNER_TYPE,
424 			 OWNER_ID,
425 			 OWNER_TYPE_ACTUAL,
426 			 SOURCE_OBJECT_ID,
427 			 SOURCE_OBJECT_TYPE_CODE,
428 			 APPLICATION_ID,
429 			 IEU_ENUM_TYPE_UUID,
430 			 STATUS_UPDATE_USER_ID,
431 			 WORK_ITEM_NUMBER,
432 			 RESCHEDULE_TIME,
433 			 WS_ID,
434 			 DISTRIBUTION_STATUS_ID )
435 		values  (
436 			IEU_UWQM_ITEMS_S1.NEXTVAL,
437 			0,
438 			l_user_id,
439 			SYSDATE,
440 			l_user_id,
441 			SYSDATE,
442 			l_login_id,
443 			0,
444 			'TASK',
445 			l_task_det_rec.l_task_id_list(i),
446 			l_task_det_rec.l_task_status_id_list(i),
447 			l_task_det_rec.l_pty_id_list(i),
448 			l_task_det_rec.l_pty_level_list(i),
449 			--l_task_det_rec.l_due_date_list(i),
450 			l_task_det_rec.l_task_name_list(i),
451 			l_task_det_rec.l_customer_id_list(i),
452 			l_task_det_rec.l_owner_type_code_list(i),
453 			l_task_det_rec.l_owner_id_list(i),
454 			l_task_det_rec.l_owner_type_actual_list(i),
455 			l_task_det_rec.l_source_object_id_list(i),
456 			l_task_det_rec.l_source_object_type_code_list(i),
457 			690,
458 			'TASKS',
459 			l_user_id,
460 			l_task_det_rec.l_task_number_list(i),
461 			sysdate,
462 			l_ws_id,
463 			l_task_det_rec.l_dist_sts_id(i));
464 
465 	     EXCEPTION
466 		    WHEN dml_errors THEN
467                    errors := SQL%BULK_EXCEPTIONS.COUNT;
468 		   --fnd_file.put_line(FND_FILE.LOG,'insert failed..');
469 		   FOR i IN 1..errors LOOP
470 		      l_task_det_rec.l_ins_flag(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) := 0;
471                       --dbms_output.put_line(SQLERRM(-1*SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
472 
473                       If SQL%BULK_EXCEPTIONS(i).ERROR_CODE <> 1 then
474                          l_error_count := l_error_count + 1;
475                       --** checking for error threshold **--
476                       IF l_error_count > 1000 THEN
477                          FND_MESSAGE.SET_NAME('IEU', 'IEU_ERROR_THRESHOLD');
478                          FND_MESSAGE.SET_TOKEN('ERROR_COUNT', '1000');
479                          FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
480                          fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
481                          fnd_msg_pub.ADD;
482                          fnd_msg_pub.Count_and_Get
483                          (
484                          p_count   =>   x_msg_count,
485                          p_data    =>   x_msg_data
486                          );
487 
488                         RAISE fnd_api.g_exc_error;
489                       END IF;
490 
491                          err_flag := 'Y';
492                          fnd_file.new_line(FND_FILE.LOG, 1);
493                          FND_MESSAGE.SET_NAME('IEU', 'IEU_CREATE_UWQM_ITEM_FAILED');
494                          FND_MESSAGE.SET_TOKEN('PACKAGE_NAME', 'IEU_TASKS_WR_MIG_PVT');
495                          FND_MESSAGE.SET_TOKEN('DETAILS', 'WORKITEM_PK_ID:'||l_task_det_rec.l_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||' Error: '||SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
496                      fnd_file.put_line(FND_FILE.LOG,SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
497                      fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
498                      fnd_msg_pub.ADD;
499                      fnd_msg_pub.Count_and_Get
500                          (
501                          p_count   =>   x_msg_count,
502                          p_data    =>   x_msg_data
503                          );
504                     END IF;
505 		   END LOOP;
506 
507                    IF err_flag = 'Y' THEN
508 
509                       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATE_FAILED');
510                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
511                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
512                       fnd_msg_pub.ADD;
513                       fnd_msg_pub.Count_and_Get
514                       (
515                       p_count   =>   x_msg_count,
516                       p_data    =>   x_msg_data
517                       );
518 
519                    -- RAISE fnd_api.g_exc_error;
520                    END IF;
521 	    END;
522 
523 
524 
525 
526 	   -- fnd_file.put_line(FND_FILE.LOG,' errors: '||errors);
527 	    if (errors > 0)
528 	    then
529 	     -- fnd_file.put_line(FND_FILE.LOG,'begin update');
530 	      BEGIN
531 		FORALL i in 1..l_task_det_rec.l_task_id_list.COUNT SAVE EXCEPTIONS
532 		    UPDATE IEU_UWQM_ITEMS
533 		    set
534 			OBJECT_VERSION_NUMBER  = OBJECT_VERSION_NUMBER + 1,
535 --			CREATED_BY             = l_user_id,
536 --			CREATION_DATE          = SYSDATE,
537 			LAST_UPDATED_BY        = l_user_id,
538 			LAST_UPDATE_DATE       = SYSDATE,
539 			LAST_UPDATE_LOGIN      = l_login_id,
540 			STATUS_ID              = l_task_det_rec.l_task_status_id_list(i),
541 			PRIORITY_ID            = l_task_det_rec.l_pty_id_list(i),
542 			PRIORITY_LEVEL         = l_task_det_rec.l_pty_level_list(i),
543 			--DUE_DATE               = l_task_det_rec.l_due_date_list(i),
544 			TITLE                  = l_task_det_rec.l_task_name_list(i),
545 			PARTY_ID               = l_task_det_rec.l_customer_id_list(i),
546 			OWNER_TYPE             = l_task_det_rec.l_owner_type_code_list(i),
547 			OWNER_ID               = l_task_det_rec.l_owner_id_list(i),
548 			SOURCE_OBJECT_ID       = l_task_det_rec.l_source_object_id_list(i),
549 			SOURCE_OBJECT_TYPE_CODE = l_task_det_rec.l_source_object_type_code_list(i),
550 			OWNER_TYPE_ACTUAL      = l_task_det_rec.l_owner_type_actual_list(i),
551 			APPLICATION_ID         = 690,
552 			IEU_ENUM_TYPE_UUID     = 'TASKS',
553 			STATUS_UPDATE_USER_ID  = l_user_id,
554 			WORK_ITEM_NUMBER       = l_task_det_rec.l_task_number_list(i),
555 			RESCHEDULE_TIME        = sysdate,
556 			WS_ID                  = l_ws_id,
557 			DISTRIBUTION_STATUS_ID = l_task_det_rec.l_dist_sts_id(i)
558 		     where workitem_obj_code = 'TASK'
559 			 and workitem_pk_id = l_task_det_rec.l_task_id_list(i)
560 			 and l_task_det_rec.l_ins_flag(i) = 0;
561 	       EXCEPTION
562 		    WHEN dml_errors THEN
563  		   errors := SQL%BULK_EXCEPTIONS.COUNT;
564 		   l_failed_counter := SQL%BULK_EXCEPTIONS.COUNT;
565                    l_success_counter := l_task_det_rec.l_task_id_list.COUNT - l_failed_counter;
566 
567 
568 		   FOR i IN 1..errors LOOP
569 		     --** checking for error threshold **--
570 
571                    l_error_count := l_error_count + 1;
572                    IF l_error_count > 1000 THEN
573                       FND_MESSAGE.SET_NAME('IEU', 'IEU_ERROR_THRESHOLD');
574                       FND_MESSAGE.SET_TOKEN('ERROR_COUNT', '1000');
575                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
576                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
577                       fnd_msg_pub.ADD;
578                       fnd_msg_pub.Count_and_Get
579                       (
580                       p_count   =>   x_msg_count,
581                       p_data    =>   x_msg_data
582                       );
583 
584                    RAISE fnd_api.g_exc_error;
585                    END IF;
586 
587                        fnd_file.new_line(FND_FILE.LOG, 1);
588                        FND_MESSAGE.SET_NAME('IEU', 'IEU_UPDATE_UWQM_ITEM_FAILED');
589                        FND_MESSAGE.SET_TOKEN('PACKAGE_NAME', 'IEU_TASKS_WR_MIG_PVT');
590                        FND_MESSAGE.SET_TOKEN('DETAILS', ' WORKITEM_PK_ID:'||l_task_det_rec.l_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||' Error: '||SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
591 
592                       fnd_file.put_line(FND_FILE.LOG,SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
593                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
594                       fnd_msg_pub.ADD;
595                       fnd_msg_pub.Count_and_Get
596                       (
597                       p_count   =>   x_msg_count,
598                       p_data    =>   x_msg_data
599                       );
600 
601                     END LOOP;
602 
603                       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATE_FAILED');
604                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
605                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
606                       fnd_msg_pub.ADD;
607                       fnd_msg_pub.Count_and_Get
608                       (
609                       p_count   =>   x_msg_count,
610                       p_data    =>   x_msg_data
611                       );
612 
613                    -- RAISE fnd_api.g_exc_error;
614 
615 
616 
617 	       END;
618 	    end if;
619 
620 	    COMMIT;
621 
622 		l_task_det_rec.l_task_id_list.DELETE;
623 		l_task_det_rec.l_task_number_list.DELETE;
624 		l_task_det_rec.l_customer_id_list.DELETE;
625 		l_task_det_rec.l_owner_id_list.DELETE;
626 		l_task_det_rec.l_owner_type_code_list.DELETE;
627 		l_task_det_rec.l_owner_type_actual_list.DELETE;
628 		l_task_det_rec.l_source_object_id_list.DELETE;
629 		l_task_det_rec.l_source_object_type_code_list.DELETE;
630 		--l_task_det_rec.l_due_date_list.DELETE;
631 		l_task_det_rec.l_planned_start_date_list.DELETE;
632 		l_task_det_rec.l_planned_end_date_list.DELETE;
633 		l_task_det_rec.l_actual_start_date_list.DELETE;
634 		l_task_det_rec.l_actual_end_date_list.DELETE;
635 		l_task_det_rec.l_scheduled_start_date_list.DELETE;
636 		l_task_det_rec.l_scheduled_end_date_list.DELETE;
637 		l_task_det_rec.l_task_type_id_list.DELETE;
638 		l_task_det_rec.l_task_name_list.DELETE;
639 		l_task_det_rec.l_importance_level_list.DELETE;
640 		l_task_det_rec.l_priority_code_list.DELETE;
641 		l_task_det_rec.l_pty_id_list.DELETE;
642 		l_task_det_rec.l_pty_level_list.DELETE;
643 		l_task_det_rec.l_dist_sts_id.DELETE;
644 		l_task_det_rec.l_task_status_id_list.DELETE;
645 		l_task_det_rec.l_ins_flag.DELETE;
646 
647     	    EXIT WHEN (l_done);
648 
649 	  end loop;
650 	  close c_task_details_1;
651 
652 	    DBMS_STATS.DELETE_TABLE_STATS (
653 		   ownname         => 'IEU',
654 		   tabname         => 'IEU_UWQM_ITEMS');
655 
656 	    DBMS_STATS.GATHER_TABLE_STATS (
657 		   ownname         => 'IEU',
658 		   tabname         => 'IEU_UWQM_ITEMS',
659 		   degree	   => 8,
660 		   cascade         => TRUE);
661 
662 
663           -- Update Due Date based on Booking End Date
664 
665 	  open c_task_due_date;
666 	  loop
667 
668 	     FETCH c_task_due_date
669 	     BULK COLLECT INTO
670 	          l_task_duedate_rec.l_due_date_list,
671 		  l_task_duedate_rec.l_task_id_list
672              LIMIT l_array_size;
673 
674 	     fnd_file.put_line(FND_FILE.LOG,'due date task id cnt: '||l_task_duedate_rec.l_task_id_list.COUNT);
675 	     l_done := c_task_due_date%NOTFOUND;
676 
677 	     BEGIN
678 	--	fnd_file.put_line(FND_FILE.LOG,'Begin update');
679 		     FORALL i in 1..l_task_duedate_rec.l_task_id_list.COUNT SAVE EXCEPTIONS
680 			update IEU_UWQM_ITEMS
681 			set	due_date = l_task_duedate_rec.l_due_date_list(i)
682 			where   workitem_pk_id = l_task_duedate_rec.l_task_id_list(i)
683 			and	workitem_obj_code = 'TASK'
684 			and     ws_id = l_ws_id;
685 	     EXCEPTION
686 		  WHEN dml_errors THEN
687 		   errors := SQL%BULK_EXCEPTIONS.COUNT;
688 		   FOR i IN 1..errors LOOP
689 		  /*    fnd_file.put_line(FND_FILE.LOG,'Error ' || i || ' occurred during '||
690 			 'assignee update for workitem_pk_id ' || l_task_asg_rec.l_asg_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||
691 		         'Oracle error is ' ||
692 			 SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)); */
693 
694                     --** checking for error threshold **--
695 
696                    l_error_count := l_error_count +1;
697                    IF l_error_count > 1000 THEN
698                       FND_MESSAGE.SET_NAME('IEU', 'IEU_ERROR_THRESHOLD');
699                       FND_MESSAGE.SET_TOKEN('ERROR_COUNT', '1000');
700                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
701                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
702                       fnd_msg_pub.ADD;
703                       fnd_msg_pub.Count_and_Get
704                       (
705                       p_count   =>   x_msg_count,
706                       p_data    =>   x_msg_data
707                       );
708 
709                    RAISE fnd_api.g_exc_error;
710                    END IF;
711 
712                        fnd_file.new_line(FND_FILE.LOG, 1);
713                        FND_MESSAGE.SET_NAME('IEU', 'IEU_UPDATE_UWQM_ITEM_FAILED');
714                        FND_MESSAGE.SET_TOKEN('PACKAGE_NAME', 'IEU_TASKS_WR_MIG_PVT');
715                        FND_MESSAGE.SET_TOKEN('DETAILS', ' WORKITEM_PK_ID:'||l_task_duedate_rec.l_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||' Error: '||SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
716 
717                       fnd_file.put_line(FND_FILE.LOG,SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
718                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
719                       fnd_msg_pub.ADD;
720                       fnd_msg_pub.Count_and_Get
721                       (
722                       p_count   =>   x_msg_count,
723                       p_data    =>   x_msg_data
724                       );
725                     END LOOP;
726                       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATE_FAILED');
727                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
728                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
729                       fnd_msg_pub.ADD;
730                       fnd_msg_pub.Count_and_Get
731                       (
732                       p_count   =>   x_msg_count,
733                       p_data    =>   x_msg_data);
734 
735                  --   RAISE fnd_api.g_exc_error;
736 
737 
738 
739 	     END;
740 
741 	     COMMIT;
742 
743              l_task_duedate_rec.l_due_date_list.DELETE;
744              l_task_duedate_rec.l_task_id_list.DELETE;
745 
746 	     exit when (l_done);
747 
748 	   end loop;
749 
750 	   close c_task_due_date;
751 
752 
753           -- Update Close and Delete Statuses
754 
755 	  open c_task_status;
756 	  loop
757 
758 	     FETCH c_task_status
759 	     BULK COLLECT INTO
760 		  l_task_status_rec.l_task_id_list,
761 		  l_task_status_rec.l_status_id_list
762              LIMIT l_array_size;
763 
764 	     fnd_file.put_line(FND_FILE.LOG,'status task id cnt: '||l_task_status_rec.l_task_id_list.COUNT);
765 	     l_done := c_task_status%NOTFOUND;
766 
767 	     BEGIN
768 	--	fnd_file.put_line(FND_FILE.LOG,'Begin update');
769 		     FORALL i in 1..l_task_status_rec.l_task_id_list.COUNT SAVE EXCEPTIONS
770 			update IEU_UWQM_ITEMS
771 			set	status_id = l_task_status_rec.l_status_id_list(i),
772          			LAST_UPDATED_BY        = l_user_id,
773 	        		LAST_UPDATE_DATE       = SYSDATE,
774 		        	LAST_UPDATE_LOGIN      = l_login_id
775 			where   workitem_obj_code = 'TASK'
776                         and     workitem_pk_id = l_task_status_rec.l_task_id_list(i)
777 			and     ws_id = l_ws_id;
778 	     EXCEPTION
779 		  WHEN dml_errors THEN
780 		   errors := SQL%BULK_EXCEPTIONS.COUNT;
781 		   FOR i IN 1..errors LOOP
782 
783                  --** checking for error threshold **--
784 
785                    l_error_count := l_error_count + 1;
786                    IF l_error_count > 1000 THEN
787                       FND_MESSAGE.SET_NAME('IEU', 'IEU_ERROR_THRESHOLD');
788                       FND_MESSAGE.SET_TOKEN('ERROR_COUNT', '1000');
789                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
790                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
791                       fnd_msg_pub.ADD;
792                       fnd_msg_pub.Count_and_Get
793                       (
794                       p_count   =>   x_msg_count,
795                       p_data    =>   x_msg_data
796                       );
797 
798                    RAISE fnd_api.g_exc_error;
799                    END IF;
800 
801                        fnd_file.new_line(FND_FILE.LOG, 1);
802                        FND_MESSAGE.SET_NAME('IEU', 'IEU_UPDATE_UWQM_ITEM_FAILED');
803                        FND_MESSAGE.SET_TOKEN('PACKAGE_NAME', 'IEU_TASKS_WR_MIG_PVT');
804                        FND_MESSAGE.SET_TOKEN('DETAILS', ' WORKITEM_PK_ID:'||l_task_status_rec.l_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||' Error: '||SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
805 
806                       fnd_file.put_line(FND_FILE.LOG,SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
807                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
808                       fnd_msg_pub.ADD;
809                       fnd_msg_pub.Count_and_Get
810                       (
811                       p_count   =>   x_msg_count,
812                       p_data    =>   x_msg_data
813                       );
814                     END LOOP;
815                       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATE_FAILED');
816                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
817                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
818                       fnd_msg_pub.ADD;
819                       fnd_msg_pub.Count_and_Get
820                       (
821                       p_count   =>   x_msg_count,
822                       p_data    =>   x_msg_data);
823 
824                   --  RAISE fnd_api.g_exc_error;
825 
826 
827 	     END;
828 
829 	     COMMIT;
830 
831              l_task_status_rec.l_task_id_list.DELETE;
832              l_task_status_rec.l_status_id_list.DELETE;
833 
834 	     exit when (l_done);
835 
836 	   end loop;
837 
838 	   close c_task_status;
839 
840           -- Update Assignees
841 
842 	  open c_task_asg_det;
843 	  loop
844 
845 	     FETCH c_task_asg_det
846   	     BULK COLLECT INTO
847 		  l_task_asg_rec.l_asg_id_list,
848 		  l_task_asg_rec.l_asg_task_id_list,
849 		  l_task_asg_rec.l_asg_type_act_list
850 	     LIMIT l_array_size;
851 
852 	     fnd_file.put_line(FND_FILE.LOG,'asg task id cnt: '||l_task_asg_rec.l_asg_task_id_list.COUNT||
853 				' asg id cnt: '||l_task_asg_rec.l_asg_id_list.COUNT|| ' asg type cnt: '||l_task_asg_rec.l_asg_type_act_list.COUNT );
854 	     l_done := c_task_asg_det%NOTFOUND;
855 
856 	     BEGIN
857 	--	fnd_file.put_line(FND_FILE.LOG,'Begin update');
858 		     FORALL i in 1..l_task_asg_rec.l_asg_task_id_list.COUNT SAVE EXCEPTIONS
859 			update IEU_UWQM_ITEMS
860 			set	assignee_id = l_task_asg_rec.l_asg_id_list(i),
861 				assignee_type = 'RS_INDIVIDUAL',
862 				assignee_type_actual = l_task_asg_rec.l_asg_type_act_list(i),
863 				DISTRIBUTION_STATUS_ID = 3
864 			where   workitem_pk_id = l_task_asg_rec.l_asg_task_id_list(i)
865 			and	workitem_obj_code = 'TASK'
866 			and	ws_id = l_ws_id;
867 	     EXCEPTION
868 		  WHEN dml_errors THEN
869 		   errors := SQL%BULK_EXCEPTIONS.COUNT;
870 		   FOR i IN 1..errors LOOP
871 		  /*    fnd_file.put_line(FND_FILE.LOG,'Error ' || i || ' occurred during '||
872 			 'assignee update for workitem_pk_id ' || l_task_asg_rec.l_asg_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||
873 		         'Oracle error is ' ||
874 			 SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)); */
875 
876                    --** checking for error threshold **--
877 
878                    l_error_count := l_error_count + 1;
879                    IF l_error_count > 1000 THEN
880                       FND_MESSAGE.SET_NAME('IEU', 'IEU_ERROR_THRESHOLD');
881                       FND_MESSAGE.SET_TOKEN('ERROR_COUNT', '1000');
882                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
883                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
884                       fnd_msg_pub.ADD;
885                       fnd_msg_pub.Count_and_Get
886                       (
887                       p_count   =>   x_msg_count,
888                       p_data    =>   x_msg_data
889                       );
890 
891                    RAISE fnd_api.g_exc_error;
892                    END IF;
893 
894 
895                        fnd_file.new_line(FND_FILE.LOG, 1);
896                        FND_MESSAGE.SET_NAME('IEU', 'IEU_UPDATE_UWQM_ITEM_FAILED');
897                        FND_MESSAGE.SET_TOKEN('PACKAGE_NAME', 'IEU_TASKS_WR_MIG_PVT');
898                        FND_MESSAGE.SET_TOKEN('DETAILS', ' WORKITEM_PK_ID:'||l_task_asg_rec.l_asg_task_id_list(SQL%BULK_EXCEPTIONS(i).ERROR_INDEX) ||' Error: '||SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
899 
900                       fnd_file.put_line(FND_FILE.LOG,SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
901                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
902                       fnd_msg_pub.ADD;
903                       fnd_msg_pub.Count_and_Get
904                       (
905                       p_count   =>   x_msg_count,
906                       p_data    =>   x_msg_data
907                       );
908                     END LOOP;
909                       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATE_FAILED');
910                       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
911                       fnd_file.put_line(FND_FILE.LOG,FND_MESSAGE.GET);
912                       fnd_msg_pub.ADD;
913                       fnd_msg_pub.Count_and_Get
914                       (
915                       p_count   =>   x_msg_count,
916                       p_data    =>   x_msg_data);
917 
918                 --    RAISE fnd_api.g_exc_error;
919 
920 
921 
922 	     END;
923 
924 	     COMMIT;
925 
926 	     l_task_asg_rec.l_asg_id_list.DELETE;
927 	     l_task_asg_rec.l_asg_task_id_list.DELETE;
928 	     l_task_asg_rec.l_asg_type_act_list.DELETE;
929 
930 	     exit when (l_done);
931 
932 	   end loop;
933 
934 	   close c_task_asg_det;
935 
936 	    l_msg_count := null;
937 	    l_msg_data := null;
938 	    l_return_status := null;
939 
940 	    if (l_failed_counter = 0)
941 	    then
942 		IEU_WR_PUB.ACTIVATE_WS
943 			     (p_api_version => 1,
944 			      p_init_msg_list => 'T',
945 			      p_commit => 'T',
946 			      p_ws_code => 'TASK',
947 			      x_msg_count => l_msg_count,
948 			      x_msg_data => l_msg_data,
949 			      x_return_status => l_return_status);
950           else
951    	           IEU_WR_PUB.DEACTIVATE_WS
952 			     (p_api_version => 1,
953 			      p_init_msg_list => 'T',
954 			      p_commit => 'T',
955 			      p_ws_code => 'TASK',
956 			      x_msg_count => l_msg_count,
957 			      x_msg_data => l_msg_data,
958 			      x_return_status => l_return_status);
959 	    end if;
960 
961 	    fnd_file.new_line(FND_FILE.LOG, 1);
962 
963 	    if (l_failed_counter = 0) and (l_return_status = 'S') then
964 
965 	       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATED');
966 	       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
967 	       l_ws_act_success_msg := FND_MESSAGE.GET;
968 	       fnd_file.put_line(FND_FILE.LOG, l_ws_act_success_msg);
969 --	       dbms_output.put_line(l_ws_act_success_msg);
970 
971 	    else
972 	       FND_MESSAGE.SET_NAME('IEU', 'IEU_WS_ACTIVATE_FAILED');
973 	       FND_MESSAGE.SET_TOKEN('WS_CODE', 'TASK');
974 	       l_ws_act_failed_msg := FND_MESSAGE.GET;
975 
976 	       l_ws_act_failed_msg := l_ws_act_failed_msg||' '||l_msg_data;
977 	       fnd_file.put_line(FND_FILE.LOG, l_ws_act_failed_msg);
978                RAISE fnd_api.g_exc_error;
979 
980 --	       dbms_output.put_line(l_ws_act_failed_msg);
981 	    end if;
982 
983 	    fnd_file.new_line(FND_FILE.LOG, 1);
984 	    FND_MESSAGE.SET_NAME('IEU', 'IEU_SYNCH_WR_DIST_STATUS_SUM');
985 	    FND_MESSAGE.SET_TOKEN('SUCCESS_COUNT', (l_total - l_failed_counter));
986 	    FND_MESSAGE.SET_TOKEN('FAILED_COUNT', l_failed_counter);
987 	    FND_MESSAGE.SET_TOKEN('TOTAL_COUNT', l_total );
988 
989 --	    dbms_output.put_line('SUCCESS_COUNT'|| (l_total - l_failed_counter));
990 --	    dbms_output.put_line('FAILED_COUNT'||l_failed_counter);
991 --	    dbms_output.put_line('TOTAL_COUNT'|| l_total );
992 
993 	    l_workitem_sum_msg := FND_MESSAGE.GET;
994 
995 	    fnd_file.put_line(FND_FILE.LOG, l_workitem_sum_msg);
996 --	    dbms_output.put_line(l_workitem_sum_msg);
997 
998 	    DBMS_STATS.DELETE_TABLE_STATS (
999 		   ownname         => 'IEU',
1000 		   tabname         => 'IEU_UWQM_ITEMS');
1001 
1002 	    DBMS_STATS.GATHER_TABLE_STATS (
1003 		   ownname         => 'IEU',
1004 		   tabname         => 'IEU_UWQM_ITEMS',
1005 		   degree	   => 8,
1006 		   cascade         => TRUE);
1007 
1008 EXCEPTION
1009   WHEN fnd_api.g_exc_error THEN
1010 
1011        IEU_WR_PUB.DEACTIVATE_WS
1012 			     (p_api_version => 1,
1013 			      p_init_msg_list => 'T',
1014 			      p_commit => 'T',
1015 			      p_ws_code => 'TASK',
1016 			      x_msg_count => l_msg_count,
1017 			      x_msg_data => l_msg_data,
1018 			      x_return_status => l_return_status);
1019   retcode := 2;
1020 
1021   fnd_msg_pub.Count_and_Get
1022   (
1023     p_count   =>   x_msg_count,
1024     p_data    =>   x_msg_data
1025   );
1026   errbuf :=x_msg_Data;
1027 
1028 WHEN fnd_api.g_exc_unexpected_error THEN
1029 
1030 --  errbuf := sqlcode||' '||sqlerrm;
1031     IEU_WR_PUB.DEACTIVATE_WS
1032 			     (p_api_version => 1,
1033 			      p_init_msg_list => 'T',
1034 			      p_commit => 'T',
1035 			      p_ws_code => 'TASK',
1036 			      x_msg_count => l_msg_count,
1037 			      x_msg_data => l_msg_data,
1038 			      x_return_status => l_return_status);
1039   retcode := 2;
1040 
1041   fnd_msg_pub.Count_and_Get
1042   (
1043     p_count   =>   x_msg_count,
1044     p_data    =>   x_msg_data
1045   );
1046   errbuf :=x_msg_Data;
1047 
1048   WHEN OTHERS THEN
1049 
1050        IEU_WR_PUB.DEACTIVATE_WS
1051 			     (p_api_version => 1,
1052 			      p_init_msg_list => 'T',
1053 			      p_commit => 'T',
1054 			      p_ws_code => 'TASK',
1055 			      x_msg_count => l_msg_count,
1056 			      x_msg_data => l_msg_data,
1057 			      x_return_status => l_return_status);
1058 
1059        errbuf := sqlcode||' '||sqlerrm;
1060        retcode := 2;
1061        l_message := sqlcode || ' '||sqlerrm;
1062        FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
1063        IF FND_MSG_PUB.Check_msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1064        THEN
1065 
1066        fnd_msg_pub.Count_and_Get
1067        (
1068         p_count   =>   x_msg_count,
1069         p_data    =>   x_msg_data
1070        );
1071        errbuf := x_msg_data;
1072       END IF;
1073 
1074 
1075 END IEU_SYNCH_WR_DIST_STATUS;
1076 
1077 END IEU_TASKS_WR_MIG_PVT;