DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASKS_PKG

Source


1 PACKAGE BODY jtf_tasks_pkg AS
2 /* $Header: jtftktab.pls 120.2.12010000.6 2010/04/01 05:50:26 anangupt ship $ */
3    PROCEDURE insert_row (
4       x_rowid                     IN OUT NOCOPY   VARCHAR2,
5       x_task_id                   IN       NUMBER,
6       x_attribute4                IN       VARCHAR2,
7       x_attribute5                IN       VARCHAR2,
8       x_attribute6                IN       VARCHAR2,
9       x_attribute7                IN       VARCHAR2,
10       x_attribute8                IN       VARCHAR2,
11       x_attribute9                IN       VARCHAR2,
12       x_attribute10               IN       VARCHAR2,
13       x_attribute11               IN       VARCHAR2,
14       x_attribute12               IN       VARCHAR2,
15       x_attribute13               IN       VARCHAR2,
16       x_attribute14               IN       VARCHAR2,
17       x_attribute15               IN       VARCHAR2,
18       x_attribute_category        IN       VARCHAR2,
19       x_task_number               IN       VARCHAR2,
20       x_task_type_id              IN       NUMBER,
21       x_task_status_id            IN       NUMBER,
22       x_task_priority_id          IN       NUMBER,
23       x_owner_id                  IN       NUMBER,
24       x_owner_type_code           IN       VARCHAR2,
25       x_assigned_by_id            IN       NUMBER,
26       x_cust_account_id           IN       NUMBER,
27       x_customer_id               IN       NUMBER,
28       x_address_id                IN       NUMBER,
29       x_planned_start_date        IN       DATE,
30       x_palm_flag                 IN       VARCHAR2,
31       x_wince_flag                IN       VARCHAR2,
32       x_laptop_flag               IN       VARCHAR2,
33       x_device1_flag              IN       VARCHAR2,
34       x_device2_flag              IN       VARCHAR2,
35       x_device3_flag              IN       VARCHAR2,
36       x_costs                     IN       NUMBER,
37       x_currency_code             IN       VARCHAR2,
38       x_attribute1                IN       VARCHAR2,
39       x_attribute2                IN       VARCHAR2,
40       x_attribute3                IN       VARCHAR2,
41       x_notification_period       IN       NUMBER,
42       x_notification_period_uom   IN       VARCHAR2,
43       x_parent_task_id            IN       NUMBER,
44       x_recurrence_rule_id        IN       NUMBER,
45       x_alarm_start               IN       NUMBER,
46       x_alarm_start_uom           IN       VARCHAR2,
47       x_alarm_on                  IN       VARCHAR2,
48       x_alarm_count               IN       NUMBER,
49       x_alarm_fired_count         IN       NUMBER,
50       x_alarm_interval            IN       NUMBER,
51       x_alarm_interval_uom        IN       VARCHAR2,
52       x_deleted_flag              IN       VARCHAR2,
53       x_actual_start_date         IN       DATE,
54       x_actual_end_date           IN       DATE,
55       x_source_object_type_code   IN       VARCHAR2,
56       x_timezone_id               IN       NUMBER,
57       x_source_object_id          IN       NUMBER,
58       x_source_object_name        IN       VARCHAR2,
59       x_duration                  IN       NUMBER,
60       x_duration_uom              IN       VARCHAR2,
61       x_planned_effort            IN       NUMBER,
62       x_planned_effort_uom        IN       VARCHAR2,
63       x_actual_effort             IN       NUMBER,
64       x_actual_effort_uom         IN       VARCHAR2,
65       x_percentage_complete       IN       NUMBER,
66       x_reason_code               IN       VARCHAR2,
67       x_private_flag              IN       VARCHAR2,
68       x_publish_flag              IN       VARCHAR2,
69       x_restrict_closure_flag     IN       VARCHAR2,
70       x_multi_booked_flag         IN       VARCHAR2,
71       x_milestone_flag            IN       VARCHAR2,
72       x_holiday_flag              IN       VARCHAR2,
73       x_billable_flag             IN       VARCHAR2,
74       x_bound_mode_code           IN       VARCHAR2,
75       x_soft_bound_flag           IN       VARCHAR2,
76       x_workflow_process_id       IN       NUMBER,
77       x_notification_flag         IN       VARCHAR2,
78       x_planned_end_date          IN       DATE,
79       x_scheduled_start_date      IN       DATE,
80       x_scheduled_end_date        IN       DATE,
81       x_task_name                 IN       VARCHAR2,
82       x_description               IN       VARCHAR2,
83       x_creation_date             IN       DATE,
84       x_created_by                IN       NUMBER,
85       x_last_update_date          IN       DATE,
86       x_last_updated_by           IN       NUMBER,
87       x_last_update_login         IN       NUMBER,
88       x_owner_territory_id        IN       NUMBER,
89       x_escalation_level          IN       VARCHAR2,
90       x_calendar_start_date       IN       DATE ,
91       x_calendar_end_date         IN       DATE ,
92       x_date_selected             IN       VARCHAR2 ,
93       x_template_id               IN       NUMBER ,
94       x_template_group_id         IN       NUMBER ,
95       x_open_flag                 IN       VARCHAR2,
96       x_entity                    IN       VARCHAR2,
97       x_task_confirmation_status  IN       VARCHAR2,
98       x_task_confirmation_counter IN       NUMBER,
99       x_task_split_flag           IN       VARCHAR2,
100       x_child_position            IN       VARCHAR2,
101       x_child_sequence_num        IN       NUMBER,
102       x_location_id               IN       NUMBER
103    )
104    IS
105       CURSOR c
106       IS
107          SELECT ROWID
108            FROM jtf_tasks_b
109           WHERE task_id = x_task_id;
110 
111       x_return_status varchar2(1);
112       x_msg_data        VARCHAR2(2000);
113       x_msg_count       NUMBER;
114 
115       l_task_audit_id 		NUMBER;
116       l_enable_audit    varchar2(5);
117 
118       l_source_object_type_code    jtf_tasks_b.source_object_type_code%type ;
119       l_source_object_id    jtf_tasks_b.source_object_id%type ;
120       l_source_object_name    jtf_tasks_b.source_object_name%type ;
121 
122    BEGIN
123     l_enable_audit := Upper(nvl(fnd_profile.Value('JTF_TASK_ENABLE_AUDIT'),'Y'));
124     IF(l_enable_audit = 'Y') THEN
125 	    jtf_task_audits_pvt.create_task_audits (
126 	      p_api_version => 1,
127 	      p_init_msg_list => fnd_api.g_false,
128 	      p_commit => fnd_api.g_false,
129 	      p_object_version_number => 1,
130 	      p_task_id => x_task_id,
131 	      p_new_billable_flag => x_billable_flag,
132 	      p_new_device1_flag => x_device1_flag,
133 	      p_new_device2_flag => x_device2_flag,
134 	      p_new_device3_flag => x_device3_flag,
135 	      p_new_holiday_flag => x_holiday_flag,
136 	      p_new_laptop_flag => x_laptop_flag,
137 	      p_new_milestone_flag => x_milestone_flag,
138 	      p_new_multi_booked_flag => x_multi_booked_flag,
139 	      p_new_not_flag => x_notification_flag,
140 	      p_new_palm_flag => x_palm_flag,
141 	      p_new_private_flag => x_private_flag,
142 	      p_new_publish_flag => x_publish_flag,
143 	      p_new_restrict_closure_flag => x_restrict_closure_flag,
144 	      p_new_wince_flag => x_wince_flag,
145 	      p_new_soft_bound_flag => x_soft_bound_flag,
146 	      p_new_actual_effort => x_actual_effort,
147 	      p_new_actual_effort_uom => x_actual_effort_uom,
148 	      p_new_actual_end_date => x_actual_end_date,
149 	      p_new_actual_start_date => x_actual_start_date,
150 	      p_new_address_id => x_address_id,
151 	      p_new_assigned_by_id => x_assigned_by_id,
152 	      p_new_bound_mode_code => x_bound_mode_code,
153 	      p_new_costs => x_costs,
154 	      p_new_currency_code => x_currency_code,
155 	      p_new_customer_id => x_customer_id,
156 	      p_new_cust_account_id => x_cust_account_id,
157 	      p_new_duration => x_duration,
158 	      p_new_duration_uom => x_duration_uom,
159 	      p_new_not_period => x_notification_period,
160 	      p_new_not_period_uom => x_notification_period_uom,
161 	      p_new_owner_id => x_owner_id,
162 	      p_new_owner_type_code => x_owner_type_code,
163 	      p_new_parent_task_id => x_parent_task_id,
164 	      p_new_per_complete => x_percentage_complete,
165 	      p_new_planned_effort => x_planned_effort,
166 	      p_new_planned_effort_uom => x_planned_effort_uom,
167 	      p_new_planned_end_date => x_planned_end_date,
168 	      p_new_planned_start_date => x_planned_start_date,
169 	      p_new_reason_code => x_reason_code,
170 	      p_new_recurrence_rule_id => x_recurrence_rule_id,
171 	      p_new_sched_end_date => x_scheduled_end_date,
172 	      p_new_sched_start_date => x_scheduled_start_date,
173 	      p_new_src_obj_id => x_source_object_id,
174 	      p_new_src_obj_name => x_source_object_name,
175 	      p_new_src_obj_type_code => x_source_object_type_code,
176 	      p_new_task_priority_id => x_task_priority_id,
177 	      p_new_task_status_id => x_task_status_id,
178 	      p_new_task_type_id => x_task_type_id,
179 	      p_new_timezone_id => x_timezone_id,
180 	      p_new_workflow_process_id => x_workflow_process_id,
181 	      p_not_chan_flag => NULL,
182 	      p_new_description => x_description,
183 	      p_new_task_name => x_task_name,
184 	      p_new_escalation_level => x_escalation_level,
185 	      p_new_owner_territory_id => x_owner_territory_id,
186 	      p_new_date_selected => x_date_selected,
187 	      p_new_location_id => x_location_id,
188 	   -- p_new_task_conf_status => l_Task_Upd_Rec.task_confirmation_status,
189 	   -- p_new_task_conf_counter => l_Task_Upd_Rec.task_confirmation_counter,
190 	   -- p_new_task_split_flag	=> l_Task_Upd_Rec.task_split_flag,
191 	      x_return_status => x_return_status,
192 	      x_msg_count => x_msg_count,
193 	      x_msg_data => x_msg_data,
194 	      x_task_audit_id => l_task_audit_id
195 	    );
196     END IF;
197 
198       INSERT INTO jtf_tasks_b (
199                      attribute4,
200                      attribute5,
201                      attribute6,
202                      attribute7,
203                      attribute8,
204                      attribute9,
205                      attribute10,
206                      attribute11,
207                      attribute12,
208                      attribute13,
209                      attribute14,
210                      attribute15,
211                      attribute_category,
212                      task_id,
213                      task_number,
214                      task_type_id,
215                      task_status_id,
216                      task_priority_id,
217                      owner_id,
218                      owner_type_code,
219                      assigned_by_id,
220                      cust_account_id,
221                      customer_id,
222                      address_id,
223                      planned_start_date,
224                      palm_flag,
225                      wince_flag,
226                      laptop_flag,
227                      device1_flag,
228                      device2_flag,
229                      device3_flag,
230                      costs,
231                      currency_code,
232                      attribute1,
233                      attribute2,
234                      attribute3,
235                      notification_period,
236                      notification_period_uom,
237                      parent_task_id,
238                      recurrence_rule_id,
239                      alarm_start,
240                      alarm_start_uom,
241                      alarm_on,
242                      alarm_count,
243                      alarm_fired_count,
244                      alarm_interval,
245                      alarm_interval_uom,
246                      deleted_flag,
247                      actual_start_date,
248                      actual_end_date,
249                      source_object_type_code,
250                      timezone_id,
251                      source_object_id,
252                      source_object_name,
253                      duration,
254                      duration_uom,
255                      planned_effort,
256                      planned_effort_uom,
257                      actual_effort,
258                      actual_effort_uom,
259                      percentage_complete,
260                      reason_code,
261                      private_flag,
262                      publish_flag,
263                      restrict_closure_flag,
264                      multi_booked_flag,
265                      milestone_flag,
266                      holiday_flag,
267                      billable_flag,
268                      bound_mode_code,
269                      soft_bound_flag,
270                      workflow_process_id,
271                      notification_flag,
272                      planned_end_date,
273                      scheduled_start_date,
274                      scheduled_end_date,
275                      creation_date,
276                      created_by,
277                      last_update_date,
278                      last_updated_by,
279                      last_update_login,
280                      object_version_number,
281                      owner_territory_id,
282                      escalation_level,
283                      calendar_start_date,
284                      calendar_end_date,
285                      date_selected,
286                      template_id,
287                      template_group_id,
288                      object_changed_date,
289                      open_flag,
290                      entity,
291                      task_confirmation_status,
292                      task_confirmation_counter,
293                      task_split_flag,
294                      child_position,
295                      child_sequence_num,
296 			   location_id
297                   )
298            VALUES (
299               x_attribute4,
300               x_attribute5,
301               x_attribute6,
302               x_attribute7,
303               x_attribute8,
304               x_attribute9,
305               x_attribute10,
306               x_attribute11,
307               x_attribute12,
308               x_attribute13,
309               x_attribute14,
310               x_attribute15,
311               x_attribute_category,
312               x_task_id,
313               x_task_number,
314               x_task_type_id,
315               x_task_status_id,
316               x_task_priority_id,
317               x_owner_id,
318               x_owner_type_code,
319               x_assigned_by_id,
320               x_cust_account_id,
321               x_customer_id,
322               x_address_id,
323               x_planned_start_date,
324               x_palm_flag,
325               x_wince_flag,
326               x_laptop_flag,
327               x_device1_flag,
328               x_device2_flag,
329               x_device3_flag,
330               x_costs,
331               x_currency_code,
332               x_attribute1,
333               x_attribute2,
334               x_attribute3,
335               x_notification_period,
336               x_notification_period_uom,
337               x_parent_task_id,
338               x_recurrence_rule_id,
339               x_alarm_start,
340               x_alarm_start_uom,
341               x_alarm_on,
342               x_alarm_count,
343               x_alarm_fired_count,
344               x_alarm_interval,
345               x_alarm_interval_uom,
346               x_deleted_flag,
347               x_actual_start_date,
348               x_actual_end_date,
349               x_source_object_type_code,
350               x_timezone_id,
351               x_source_object_id,
352               x_source_object_name,
353               x_duration,
354               x_duration_uom,
355               x_planned_effort,
356               x_planned_effort_uom,
357               x_actual_effort,
358               x_actual_effort_uom,
359               x_percentage_complete,
360               x_reason_code,
361               x_private_flag,
362               x_publish_flag,
363               x_restrict_closure_flag,
364               x_multi_booked_flag,
365               x_milestone_flag,
366               x_holiday_flag,
367               x_billable_flag,
368               x_bound_mode_code,
369               x_soft_bound_flag,
370               x_workflow_process_id,
371               x_notification_flag,
372               x_planned_end_date,
373               x_scheduled_start_date,
374               x_scheduled_end_date,
375               x_creation_date,
376               x_created_by,
377               x_last_update_date,
378               x_last_updated_by,
379               x_last_update_login,
380               1,
381               x_owner_territory_id,
382               x_escalation_level,
383               x_calendar_start_date,
384               x_calendar_end_date,
385               x_date_selected,
386               x_template_id,
387               x_template_group_id,
388               SYSDATE,
389               x_open_flag,
390               x_entity,
391               x_task_confirmation_status,
392               x_task_confirmation_counter,
393               x_task_split_flag,
394               x_child_position,
395               x_child_sequence_num,
396 		  x_location_id
397            );
398 
399 
400 
401 
402       OPEN c;
403       FETCH c INTO x_rowid;
404 
405       IF (c%NOTFOUND)
406       THEN
407          CLOSE c;
408 
409          RAISE NO_DATA_FOUND;
410       END IF;
411 
412       CLOSE c;
413 
414       INSERT INTO jtf_tasks_tl
415                   (task_name,
416                    description,
417                    created_by,
418                    creation_date,
419                    last_updated_by,
420                    last_update_date,
421                    last_update_login,
422                    task_id,
423                    language,
424                    source_lang
425                   )
426          SELECT x_task_name,
427                 x_description,
428                 x_created_by,
429                 x_creation_date,
430                 x_last_updated_by,
431                 x_last_update_date,
432                 x_last_update_login,
433                 x_task_id,
434                 l.language_code,
435                 USERENV ('LANG')
436            FROM fnd_languages l
437           WHERE l.installed_flag IN ('I', 'B')
438             AND NOT EXISTS (SELECT NULL
439                               FROM jtf_tasks_tl t
440                              WHERE t.task_id = x_task_id
441                                AND t.language = l.language_code);
442       OPEN c;
443       FETCH c INTO x_rowid;
444 
445       IF (c%NOTFOUND)
446       THEN
447          CLOSE c;
448 
449          RAISE NO_DATA_FOUND;
450       END IF;
451 
452       CLOSE c;
453 	END insert_row;
454 
455    PROCEDURE lock_row (x_task_id IN NUMBER, x_object_version_number IN NUMBER)
456    IS
457       CURSOR c
458       IS
459          SELECT object_version_number
460            FROM jtf_tasks_vl
461           WHERE task_id = x_task_id
462             FOR UPDATE OF task_id NOWAIT;
463 
464       recinfo   c%ROWTYPE;
465 
466       CURSOR c1
467       IS
468          SELECT task_name, description, DECODE (language, USERENV ('LANG'), 'Y', 'N') baselang
469            FROM jtf_tasks_tl
470           WHERE task_id = x_task_id
471             AND USERENV ('LANG') IN (language, source_lang)
472             FOR UPDATE OF task_id NOWAIT;
473 
474       e_resource_busy                exception;
475       pragma exception_init(e_resource_busy, -54);
476 
477    BEGIN
478       OPEN c;
479       FETCH c INTO recinfo;
480 
481       IF (c%NOTFOUND)
482       THEN
483          CLOSE c;
484          fnd_message.set_name ('JTF', 'JTF_API_RECORD_NOT_FOUND');
485          app_exception.raise_exception;
486       END IF;
487 
488       CLOSE c;
489 
490       IF (recinfo.object_version_number = x_object_version_number)
491       THEN
492          NULL;
493       ELSE
494          fnd_message.set_name ('JTF', 'JTF_API_RECORD_NOT_FOUND');
495          fnd_msg_pub.add;
496          app_exception.raise_exception;
497       END IF;
498 
499       FOR tlinfo IN c1
500       LOOP
501          IF (tlinfo.baselang = 'Y')
502          THEN
503             NULL;
504          END IF;
505       END LOOP;
506 
507       RETURN;
508 
509    exception
510       when e_resource_busy then
511          fnd_message.set_name('FND', 'FND_LOCK_RECORD_ERROR');
512          fnd_msg_pub.add;
513          app_exception.raise_exception;
514 
515    END lock_row;
516 
517 --BES Changes
518     -- original version to call the new version which has task_audit_id
519 
520    PROCEDURE update_row (
521       x_task_id                   IN   NUMBER,
522       x_object_version_number     IN   NUMBER,
523       x_attribute4                IN   VARCHAR2,
524       x_attribute5                IN   VARCHAR2,
525       x_attribute6                IN   VARCHAR2,
526       x_attribute7                IN   VARCHAR2,
527       x_attribute8                IN   VARCHAR2,
528       x_attribute9                IN   VARCHAR2,
529       x_attribute10               IN   VARCHAR2,
530       x_attribute11               IN   VARCHAR2,
531       x_attribute12               IN   VARCHAR2,
532       x_attribute13               IN   VARCHAR2,
533       x_attribute14               IN   VARCHAR2,
534       x_attribute15               IN   VARCHAR2,
535       x_attribute_category        IN   VARCHAR2,
536       x_task_number               IN   VARCHAR2,
537       x_task_type_id              IN   NUMBER,
538       x_task_status_id            IN   NUMBER,
539       x_task_priority_id          IN   NUMBER,
540       x_owner_id                  IN   NUMBER,
541       x_owner_type_code           IN   VARCHAR2,
542       x_assigned_by_id            IN   NUMBER,
543       x_cust_account_id           IN   NUMBER,
544       x_customer_id               IN   NUMBER,
545       x_address_id                IN   NUMBER,
546       x_planned_start_date        IN   DATE,
547       x_palm_flag                 IN   VARCHAR2,
548       x_wince_flag                IN   VARCHAR2,
549       x_laptop_flag               IN   VARCHAR2,
550       x_device1_flag              IN   VARCHAR2,
551       x_device2_flag              IN   VARCHAR2,
552       x_device3_flag              IN   VARCHAR2,
553       x_costs                     IN   NUMBER,
554       x_currency_code             IN   VARCHAR2,
555       x_attribute1                IN   VARCHAR2,
556       x_attribute2                IN   VARCHAR2,
557       x_attribute3                IN   VARCHAR2,
558       x_notification_period       IN   NUMBER,
559       x_notification_period_uom   IN   VARCHAR2,
560       x_parent_task_id            IN   NUMBER,
561       x_recurrence_rule_id        IN   NUMBER,
562       x_alarm_start               IN   NUMBER,
563       x_alarm_start_uom           IN   VARCHAR2,
564       x_alarm_on                  IN   VARCHAR2,
565       x_alarm_count               IN   NUMBER,
566       x_alarm_fired_count         IN   NUMBER,
567       x_alarm_interval            IN   NUMBER,
568       x_alarm_interval_uom        IN   VARCHAR2,
569       x_deleted_flag              IN   VARCHAR2,
570       x_actual_start_date         IN   DATE,
571       x_actual_end_date           IN   DATE,
572       x_source_object_type_code   IN   VARCHAR2,
573       x_timezone_id               IN   NUMBER,
574       x_source_object_id          IN   NUMBER,
575       x_source_object_name        IN   VARCHAR2,
576       x_duration                  IN   NUMBER,
577       x_duration_uom              IN   VARCHAR2,
578       x_planned_effort            IN   NUMBER,
579       x_planned_effort_uom        IN   VARCHAR2,
580       x_actual_effort             IN   NUMBER,
581       x_actual_effort_uom         IN   VARCHAR2,
582       x_percentage_complete       IN   NUMBER,
583       x_reason_code               IN   VARCHAR2,
584       x_private_flag              IN   VARCHAR2,
585       x_publish_flag              IN   VARCHAR2,
586       x_restrict_closure_flag     IN   VARCHAR2,
587       x_multi_booked_flag         IN   VARCHAR2,
588       x_milestone_flag            IN   VARCHAR2,
589       x_holiday_flag              IN   VARCHAR2,
590       x_billable_flag             IN   VARCHAR2,
591       x_bound_mode_code           IN   VARCHAR2,
592       x_soft_bound_flag           IN   VARCHAR2,
593       x_workflow_process_id       IN   NUMBER,
594       x_notification_flag         IN   VARCHAR2,
595       x_planned_end_date          IN   DATE,
596       x_scheduled_start_date      IN   DATE,
597       x_scheduled_end_date        IN   DATE,
598       x_task_name                 IN   VARCHAR2,
599       x_description               IN   VARCHAR2,
600       x_last_update_date          IN   DATE,
601       x_last_updated_by           IN   NUMBER,
602       x_last_update_login         IN   NUMBER,
603       x_owner_territory_id        IN   NUMBER,
604       x_escalation_level          IN   VARCHAR2,
605       x_calendar_start_date       IN   DATE ,
606       x_calendar_end_date         IN   DATE ,
607       x_date_selected             IN   VARCHAR2 ,
608       x_open_flag                 IN   VARCHAR2,
609       x_task_confirmation_status  IN	 VARCHAR2,
610       x_task_confirmation_counter IN  NUMBER,
611       x_task_split_flag           IN VARCHAR2,
612       x_child_position            IN VARCHAR2,
613       x_child_sequence_num        IN NUMBER,
614 	x_location_id		    IN NUMBER
615    )
616    IS
617       x_return_status   VARCHAR2(1);
618       x_msg_data        VARCHAR2(2000);
619       x_msg_count       NUMBER;
620 
621       l_task_audit_id   number ;
622 
623       my_message           VARCHAR2(2000);
624       l_count                  NUMBER;
625       l_msg_count            NUMBER;
626       l_msg_data             VARCHAR2(2000);
627 
628 --BES enh 2391065
629       l_Task_Upd_Rec       JTF_TASKS_PKG.Task_Upd_Rec;
630 
631 
632    BEGIN
633 
634 
635       l_Task_Upd_Rec.TASK_ID	:= x_task_id;
636       l_Task_Upd_Rec.OBJECT_VERSION_NUMBER	:= x_object_version_number;
637       l_Task_Upd_Rec.ATTRIBUTE4		:= x_attribute4;
638       l_Task_Upd_Rec.ATTRIBUTE5		:= x_attribute5;
639       l_Task_Upd_Rec.ATTRIBUTE6		:= x_attribute6;
640       l_Task_Upd_Rec.ATTRIBUTE7		:= x_attribute7;
641       l_Task_Upd_Rec.ATTRIBUTE8		:= x_attribute8;
642       l_Task_Upd_Rec.ATTRIBUTE9		:= x_attribute9;
643       l_Task_Upd_Rec.ATTRIBUTE10	:= x_attribute10;
644       l_Task_Upd_Rec.ATTRIBUTE11	:= x_attribute11;
645       l_Task_Upd_Rec.ATTRIBUTE12	:= x_attribute12;
646       l_Task_Upd_Rec.ATTRIBUTE13	:= x_attribute13;
647       l_Task_Upd_Rec.ATTRIBUTE14	:= x_attribute14;
648       l_Task_Upd_Rec.ATTRIBUTE15	:= x_attribute15;
649       l_Task_Upd_Rec.ATTRIBUTE_CATEGORY	:= x_attribute_category;
650       l_Task_Upd_Rec.TASK_NUMBER	:= x_task_number;
651       l_Task_Upd_Rec.TASK_TYPE_ID	:= x_task_type_id;
652       l_Task_Upd_Rec.TASK_STATUS_ID	:= x_task_status_id;
653       l_Task_Upd_Rec.TASK_PRIORITY_ID	:= x_task_priority_id;
654       l_Task_Upd_Rec.OWNER_ID		:= x_owner_id;
655       l_Task_Upd_Rec.OWNER_TYPE_CODE	:= x_owner_type_code;
656       l_Task_Upd_Rec.ASSIGNED_BY_ID	:= x_assigned_by_id;
657       l_Task_Upd_Rec.CUST_ACCOUNT_ID	:= x_cust_account_id;
658       l_Task_Upd_Rec.CUSTOMER_ID	:= x_customer_id;
659       l_Task_Upd_Rec.ADDRESS_ID	:= x_address_id;
660       l_Task_Upd_Rec.PLANNED_START_DATE	:= x_planned_start_date;
661       l_Task_Upd_Rec.PALM_FLAG	:= x_palm_flag;
662       l_Task_Upd_Rec.WINCE_FLAG	:= x_wince_flag;
663       l_Task_Upd_Rec.LAPTOP_FLAG	:= x_laptop_flag;
664       l_Task_Upd_Rec.DEVICE1_FLAG	:= x_device1_flag;
665       l_Task_Upd_Rec.DEVICE2_FLAG	:= x_device2_flag;
666       l_Task_Upd_Rec.DEVICE3_FLAG	:= x_device3_flag;
667       l_Task_Upd_Rec.COSTS		:= x_costs;
668       l_Task_Upd_Rec.CURRENCY_CODE	:= x_currency_code;
669       l_Task_Upd_Rec.ATTRIBUTE1		:= x_attribute1;
670       l_Task_Upd_Rec.ATTRIBUTE2		:= x_attribute2;
671       l_Task_Upd_Rec.ATTRIBUTE3		:= x_attribute3;
672       l_Task_Upd_Rec.NOTIFICATION_PERIOD	:= x_notification_period;
673       l_Task_Upd_Rec.NOTIFICATION_PERIOD_UOM	:= x_notification_period_uom;
674       l_Task_Upd_Rec.PARENT_TASK_ID	:= x_parent_task_id;
675       l_Task_Upd_Rec.RECURRENCE_RULE_ID	:= x_recurrence_rule_id;
676       l_Task_Upd_Rec.ALARM_START	:= x_alarm_start;
677       l_Task_Upd_Rec.ALARM_START_UOM	:= x_alarm_start_uom;
678       l_Task_Upd_Rec.ALARM_ON		:= x_alarm_on;
679       l_Task_Upd_Rec.ALARM_COUNT	:= x_alarm_count;
680       l_Task_Upd_Rec.ALARM_FIRED_COUNT	:= x_alarm_fired_count;
681       l_Task_Upd_Rec.ALARM_INTERVAL	:= x_alarm_interval;
682       l_Task_Upd_Rec.ALARM_INTERVAL_UOM	:= x_alarm_interval_uom;
683       l_Task_Upd_Rec.DELETED_FLAG	:= x_deleted_flag;
684       l_Task_Upd_Rec.ACTUAL_START_DATE	:= x_actual_start_date;
685       l_Task_Upd_Rec.ACTUAL_END_DATE	:= x_actual_end_date;
686       l_Task_Upd_Rec.SOURCE_OBJECT_TYPE_CODE	:= x_source_object_type_code;
687       l_Task_Upd_Rec.TIMEZONE_ID	:= x_timezone_id;
688       l_Task_Upd_Rec.SOURCE_OBJECT_ID	:= x_source_object_id;
689       l_Task_Upd_Rec.SOURCE_OBJECT_NAME	:= x_source_object_name;
690       l_Task_Upd_Rec.DURATION		:= x_duration;
691       l_Task_Upd_Rec.DURATION_UOM	:= x_duration_uom;
692       l_Task_Upd_Rec.PLANNED_EFFORT	:= x_planned_effort;
693       l_Task_Upd_Rec.PLANNED_EFFORT_UOM	:= x_planned_effort_uom;
694       l_Task_Upd_Rec.ACTUAL_EFFORT	:= x_actual_effort;
695       l_Task_Upd_Rec.ACTUAL_EFFORT_UOM	:= x_actual_effort_uom;
696       l_Task_Upd_Rec.PERCENTAGE_COMPLETE	:= x_percentage_complete;
697       l_Task_Upd_Rec.REASON_CODE	:= x_reason_code;
698       l_Task_Upd_Rec.PRIVATE_FLAG	:= x_private_flag;
699       l_Task_Upd_Rec.PUBLISH_FLAG	:= x_publish_flag;
700       l_Task_Upd_Rec.RESTRICT_CLOSURE_FLAG	:= x_restrict_closure_flag;
701       l_Task_Upd_Rec.MULTI_BOOKED_FLAG	:= x_multi_booked_flag;
702       l_Task_Upd_Rec.MILESTONE_FLAG	:= x_milestone_flag;
703       l_Task_Upd_Rec.HOLIDAY_FLAG	:= x_holiday_flag;
704       l_Task_Upd_Rec.BILLABLE_FLAG	:= x_billable_flag;
705       l_Task_Upd_Rec.BOUND_MODE_CODE	:= x_bound_mode_code;
706       l_Task_Upd_Rec.SOFT_BOUND_FLAG	:= x_soft_bound_flag;
707       l_Task_Upd_Rec.WORKFLOW_PROCESS_ID	:= x_workflow_process_id;
708       l_Task_Upd_Rec.NOTIFICATION_FLAG	:= x_notification_flag;
709       l_Task_Upd_Rec.PLANNED_END_DATE	:= x_planned_end_date;
710       l_Task_Upd_Rec.SCHEDULED_START_DATE	:= x_scheduled_start_date;
711       l_Task_Upd_Rec.SCHEDULED_END_DATE	:= x_scheduled_end_date;
712       l_Task_Upd_Rec.TASK_NAME		:= x_task_name;
713       l_Task_Upd_Rec.DESCRIPTION	:= x_description;
714       l_Task_Upd_Rec.LAST_UPDATE_DATE	:= x_last_update_date;
715       l_Task_Upd_Rec.LAST_UPDATED_BY	:= x_last_updated_by;
716       l_Task_Upd_Rec.LAST_UPDATE_LOGIN	:= x_last_update_login;
717       l_Task_Upd_Rec.OWNER_TERRITORY_ID	:= x_owner_territory_id;
718       l_Task_Upd_Rec.ESCALATION_LEVEL	:= x_escalation_level;
719       l_Task_Upd_Rec.calendar_start_date	:= x_calendar_start_date;
720       l_Task_Upd_Rec.calendar_end_date	:= x_calendar_end_date;
721       l_Task_Upd_Rec.date_selected	:= x_date_selected;
722       l_Task_Upd_Rec.open_flag		:= x_open_flag;
723       l_Task_Upd_Rec.task_audit_id     := FND_API.G_MISS_NUM;
724       l_Task_Upd_Rec.task_confirmation_status := x_task_confirmation_status;
725       l_Task_Upd_Rec.task_confirmation_counter := x_task_confirmation_counter;
726       l_Task_Upd_Rec.task_split_flag  := x_task_split_flag;
727       l_Task_Upd_Rec.child_position   := x_child_position;
728       l_Task_Upd_Rec.child_sequence_num := x_child_sequence_num;
729 	l_Task_Upd_Rec.location_id := x_location_id;
730 
731     -- call new version
732 
733 	update_row ( p_Task_Upd_Rec => l_Task_Upd_Rec,
734                      p_task_audit_id => l_task_audit_id);
735 
736 
737    END update_row;
738 
739 
740     -- new version which has task_audit_id
741 
742    PROCEDURE update_row (
743 	p_Task_Upd_Rec	IN 	JTF_TASKS_PKG.Task_Upd_Rec,
744 	p_Task_Audit_Id	OUT NOCOPY 	JTF_TASK_AUDITS_B.TASK_AUDIT_ID%TYPE
745    )
746    IS
747       x_return_status   VARCHAR2(1);
748       x_msg_data        VARCHAR2(2000);
749       x_msg_count       NUMBER;
750 
751       l_source_object_type_code    jtf_tasks_b.source_object_type_code%type ;
752       l_source_object_id    jtf_tasks_b.source_object_id%type ;
753       l_source_object_name    jtf_tasks_b.source_object_name%type ;
754 
755       l_task_audit_id   number :=-1;
756       my_message           VARCHAR2(2000);
757       l_count                  NUMBER;
758       l_msg_count            NUMBER;
759       l_msg_data             VARCHAR2(2000);
760       l_enable_audit         varchar2(5);
761 
762       l_Task_Upd_Rec       JTF_TASKS_PKG.Task_Upd_Rec := p_Task_Upd_Rec;
763 
764    BEGIN
765     l_enable_audit := Upper(nvl(fnd_profile.Value('JTF_TASK_ENABLE_AUDIT'),'Y'));
766     IF(l_enable_audit = 'Y') THEN
767       jtf_task_audits_pvt.create_task_audits (
768          p_api_version => 1,
769          p_init_msg_list => fnd_api.g_false,
770          p_commit => fnd_api.g_false,
771          p_object_version_number => l_Task_Upd_Rec.object_version_number,
772          p_task_id => l_Task_Upd_Rec.task_id,
773          p_new_billable_flag => l_Task_Upd_Rec.billable_flag,
774          p_new_device1_flag => l_Task_Upd_Rec.device1_flag,
775          p_new_device2_flag => l_Task_Upd_Rec.device2_flag,
776          p_new_device3_flag => l_Task_Upd_Rec.device3_flag,
777          p_new_holiday_flag => l_Task_Upd_Rec.holiday_flag,
778          p_new_laptop_flag => l_Task_Upd_Rec.laptop_flag,
779          p_new_milestone_flag => l_Task_Upd_Rec.milestone_flag,
780          p_new_multi_booked_flag => l_Task_Upd_Rec.multi_booked_flag,
781          p_new_not_flag => l_Task_Upd_Rec.notification_flag,
782          p_new_palm_flag => l_Task_Upd_Rec.palm_flag,
783          p_new_private_flag => l_Task_Upd_Rec.private_flag,
784          p_new_publish_flag => l_Task_Upd_Rec.publish_flag,
785          p_new_restrict_closure_flag => l_Task_Upd_Rec.restrict_closure_flag,
786          p_new_wince_flag => l_Task_Upd_Rec.wince_flag,
787          p_new_soft_bound_flag => l_Task_Upd_Rec.soft_bound_flag,
788          p_new_actual_effort => l_Task_Upd_Rec.actual_effort,
789          p_new_actual_effort_uom => l_Task_Upd_Rec.actual_effort_uom,
790          p_new_actual_end_date => l_Task_Upd_Rec.actual_end_date,
791          p_new_actual_start_date => l_Task_Upd_Rec.actual_start_date,
792          p_new_address_id => l_Task_Upd_Rec.address_id,
793          p_new_assigned_by_id => l_Task_Upd_Rec.assigned_by_id,
794          p_new_bound_mode_code => l_Task_Upd_Rec.bound_mode_code,
795          p_new_costs => l_Task_Upd_Rec.costs,
796          p_new_currency_code => l_Task_Upd_Rec.currency_code,
797          p_new_customer_id => l_Task_Upd_Rec.customer_id,
798          p_new_cust_account_id => l_Task_Upd_Rec.cust_account_id,
799          p_new_duration => l_Task_Upd_Rec.duration,
800          p_new_duration_uom => l_Task_Upd_Rec.duration_uom,
801          p_new_not_period => l_Task_Upd_Rec.notification_period,
802          p_new_not_period_uom => l_Task_Upd_Rec.notification_period_uom,
803          p_new_owner_id => l_Task_Upd_Rec.owner_id,
804          p_new_owner_type_code => l_Task_Upd_Rec.owner_type_code,
805          p_new_parent_task_id => l_Task_Upd_Rec.parent_task_id,
806          p_new_per_complete => l_Task_Upd_Rec.percentage_complete,
807          p_new_planned_effort => l_Task_Upd_Rec.planned_effort,
808          p_new_planned_effort_uom => l_Task_Upd_Rec.planned_effort_uom,
809          p_new_planned_end_date => l_Task_Upd_Rec.planned_end_date,
810          p_new_planned_start_date => l_Task_Upd_Rec.planned_start_date,
811          p_new_reason_code => l_Task_Upd_Rec.reason_code,
812          p_new_recurrence_rule_id => l_Task_Upd_Rec.recurrence_rule_id,
813          p_new_sched_end_date => l_Task_Upd_Rec.scheduled_end_date,
814          p_new_sched_start_date => l_Task_Upd_Rec.scheduled_start_date,
815          p_new_src_obj_id => l_Task_Upd_Rec.source_object_id,
816          p_new_src_obj_name => l_Task_Upd_Rec.source_object_name,
817          p_new_src_obj_type_code => l_Task_Upd_Rec.source_object_type_code,
818          p_new_task_priority_id => l_Task_Upd_Rec.task_priority_id,
819          p_new_task_status_id => l_Task_Upd_Rec.task_status_id,
820          p_new_task_type_id => l_Task_Upd_Rec.task_type_id,
821          p_new_timezone_id => l_Task_Upd_Rec.timezone_id,
822          p_new_workflow_process_id => l_Task_Upd_Rec.workflow_process_id,
823          p_not_chan_flag => NULL,
824          p_new_description => l_Task_Upd_Rec.description,
825          p_new_task_name => l_Task_Upd_Rec.task_name,
826          p_new_escalation_level => l_Task_Upd_Rec.escalation_level,
827          p_new_owner_territory_id => l_Task_Upd_Rec.owner_territory_id,
828          p_new_date_selected => l_Task_Upd_Rec.date_selected,
829          p_new_location_id => l_Task_Upd_Rec.location_id,
830         -- p_new_task_conf_status => l_Task_Upd_Rec.task_confirmation_status,
831         -- p_new_task_conf_counter => l_Task_Upd_Rec.task_confirmation_counter,
832         -- p_new_task_split_flag	=> l_Task_Upd_Rec.task_split_flag,
833          x_return_status => x_return_status,
834          x_msg_count => x_msg_count,
835          x_msg_data => x_msg_data,
836          x_task_audit_id => l_task_audit_id
837       );
838     END IF;
839       p_task_audit_id	:= l_task_audit_id;
840 
841       UPDATE jtf_tasks_b
842          SET attribute4 = l_Task_Upd_Rec.attribute4,
843              object_version_number = l_Task_Upd_Rec.object_version_number,
844              attribute5 = l_Task_Upd_Rec.attribute5,
845              attribute6 = l_Task_Upd_Rec.attribute6,
846              attribute7 = l_Task_Upd_Rec.attribute7,
847              attribute8 = l_Task_Upd_Rec.attribute8,
848              attribute9 = l_Task_Upd_Rec.attribute9,
849              attribute10 = l_Task_Upd_Rec.attribute10,
850              attribute11 = l_Task_Upd_Rec.attribute11,
851              attribute12 = l_Task_Upd_Rec.attribute12,
852              attribute13 = l_Task_Upd_Rec.attribute13,
853              attribute14 = l_Task_Upd_Rec.attribute14,
854              attribute15 = l_Task_Upd_Rec.attribute15,
855              attribute_category = l_Task_Upd_Rec.attribute_category,
856              task_number = l_Task_Upd_Rec.task_number,
857              task_type_id = l_Task_Upd_Rec.task_type_id,
858              task_status_id = l_Task_Upd_Rec.task_status_id,
859              task_priority_id = l_Task_Upd_Rec.task_priority_id,
860              owner_id = l_Task_Upd_Rec.owner_id,
861              owner_type_code = l_Task_Upd_Rec.owner_type_code,
862              assigned_by_id = l_Task_Upd_Rec.assigned_by_id,
863              cust_account_id = l_Task_Upd_Rec.cust_account_id,
864              customer_id = l_Task_Upd_Rec.customer_id,
865              address_id = l_Task_Upd_Rec.address_id,
866              planned_start_date = l_Task_Upd_Rec.planned_start_date,
867              palm_flag = l_Task_Upd_Rec.palm_flag,
868              wince_flag = l_Task_Upd_Rec.wince_flag,
869              laptop_flag = l_Task_Upd_Rec.laptop_flag,
870              device1_flag = l_Task_Upd_Rec.device1_flag,
871              device2_flag = l_Task_Upd_Rec.device2_flag,
872              device3_flag = l_Task_Upd_Rec.device3_flag,
873              costs = l_Task_Upd_Rec.costs,
874              currency_code = l_Task_Upd_Rec.currency_code,
875              attribute1 = l_Task_Upd_Rec.attribute1,
876              attribute2 = l_Task_Upd_Rec.attribute2,
877              attribute3 = l_Task_Upd_Rec.attribute3,
878              notification_period = l_Task_Upd_Rec.notification_period,
879              notification_period_uom = l_Task_Upd_Rec.notification_period_uom,
880              parent_task_id = l_Task_Upd_Rec.parent_task_id,
881              recurrence_rule_id = l_Task_Upd_Rec.recurrence_rule_id,
882              alarm_start = l_Task_Upd_Rec.alarm_start,
883              alarm_start_uom = l_Task_Upd_Rec.alarm_start_uom,
884              alarm_on = l_Task_Upd_Rec.alarm_on,
885              alarm_count = l_Task_Upd_Rec.alarm_count,
886              alarm_fired_count = l_Task_Upd_Rec.alarm_fired_count,
887              alarm_interval = l_Task_Upd_Rec.alarm_interval,
888              alarm_interval_uom = l_Task_Upd_Rec.alarm_interval_uom,
889              deleted_flag = l_Task_Upd_Rec.deleted_flag,
890              actual_start_date = l_Task_Upd_Rec.actual_start_date,
891              actual_end_date = l_Task_Upd_Rec.actual_end_date,
892              source_object_type_code = l_Task_Upd_Rec.source_object_type_code,
893              timezone_id = l_Task_Upd_Rec.timezone_id,
894              source_object_id = l_Task_Upd_Rec.source_object_id,
895              source_object_name = l_Task_Upd_Rec.source_object_name,
896              duration = l_Task_Upd_Rec.duration,
897              duration_uom = l_Task_Upd_Rec.duration_uom,
898              planned_effort = l_Task_Upd_Rec.planned_effort,
899              planned_effort_uom = l_Task_Upd_Rec.planned_effort_uom,
900              actual_effort = l_Task_Upd_Rec.actual_effort,
901              actual_effort_uom = l_Task_Upd_Rec.actual_effort_uom,
902              percentage_complete = l_Task_Upd_Rec.percentage_complete,
903              reason_code = l_Task_Upd_Rec.reason_code,
904              private_flag = l_Task_Upd_Rec.private_flag,
905              publish_flag = l_Task_Upd_Rec.publish_flag,
906              restrict_closure_flag = l_Task_Upd_Rec.restrict_closure_flag,
907              multi_booked_flag = l_Task_Upd_Rec.multi_booked_flag,
908              milestone_flag = l_Task_Upd_Rec.milestone_flag,
909              holiday_flag = l_Task_Upd_Rec.holiday_flag,
910              billable_flag = l_Task_Upd_Rec.billable_flag,
911              bound_mode_code = l_Task_Upd_Rec.bound_mode_code,
912              soft_bound_flag = l_Task_Upd_Rec.soft_bound_flag,
913              workflow_process_id = l_Task_Upd_Rec.workflow_process_id,
914              notification_flag = l_Task_Upd_Rec.notification_flag,
915              planned_end_date = l_Task_Upd_Rec.planned_end_date,
916              scheduled_start_date = l_Task_Upd_Rec.scheduled_start_date,
917              scheduled_end_date = l_Task_Upd_Rec.scheduled_end_date,
918              last_update_date = l_Task_Upd_Rec.last_update_date,
919              last_updated_by = l_Task_Upd_Rec.last_updated_by,
920              last_update_login = l_Task_Upd_Rec.last_update_login,
921              owner_territory_id = l_Task_Upd_Rec.owner_territory_id,
922              escalation_level = l_Task_Upd_Rec.escalation_level,
923              calendar_start_date = decode(calendar_start_date, jtf_task_utl.g_miss_date, calendar_start_date, l_Task_Upd_Rec.calendar_start_date),
924              calendar_end_date = decode(calendar_end_date, jtf_task_utl.g_miss_date, calendar_end_date, l_Task_Upd_Rec.calendar_end_date),
925              date_selected = decode(date_selected, jtf_task_utl.g_miss_char, date_selected, l_Task_Upd_Rec.date_selected),
926              object_changed_date = SYSDATE,
927              open_flag = l_Task_Upd_Rec.open_flag,
928              task_confirmation_status  =  l_Task_Upd_Rec.task_confirmation_status,
929              task_confirmation_counter = l_Task_Upd_Rec.task_confirmation_counter,
930              task_split_flag	       = l_Task_Upd_Rec.task_split_flag,
931              child_position            = l_Task_Upd_Rec.child_position,
932              child_sequence_num        = l_Task_Upd_Rec.child_sequence_num,
933 		--task_audit_id = p_task_audit_id
934              location_id = l_Task_Upd_Rec.location_id
935        WHERE task_id = l_Task_Upd_Rec.task_id;
936 
937       IF (SQL%NOTFOUND)
938       THEN
939          RAISE NO_DATA_FOUND;
940       END IF;
941 
942       UPDATE jtf_tasks_tl
943          SET task_name = l_Task_Upd_Rec.task_name,
944              description = l_Task_Upd_Rec.description,
945              last_update_date = l_Task_Upd_Rec.last_update_date,
946              last_updated_by = l_Task_Upd_Rec.last_updated_by,
947              last_update_login = l_Task_Upd_Rec.last_update_login,
948              source_lang = USERENV ('LANG')
949        WHERE task_id = l_Task_Upd_Rec.task_id
950          AND USERENV ('LANG') IN (language, source_lang);
951 
952       IF (SQL%NOTFOUND)
953       THEN
954          RAISE NO_DATA_FOUND;
955       END IF;
956 
957    END update_row;
958 
959 --End BES Changes
960 
961    PROCEDURE delete_row (x_task_id IN NUMBER)
962    IS
963 
964    x_return_status   varchar2(1);
965 
966    BEGIN
967       null;
968    END delete_row;
969 
970    PROCEDURE add_language
971    IS
972    BEGIN
973 
974      /* Solving Perf. Bug 3723927*/
975      /* The following delete and update statements are commented out */
976      /* as a quick workaround to fix the time-consuming table handler issue */
977      /*
978 
979      /* DELETE
980         FROM jtf_tasks_tl t
981        WHERE NOT EXISTS (SELECT NULL
982                            FROM jtf_tasks_b b
983                           WHERE b.task_id = t.task_id);
984       UPDATE jtf_tasks_tl t
985          SET (task_name, description) = ( SELECT b.task_name, b.description
986                                             FROM jtf_tasks_tl b
987                                            WHERE b.task_id = t.task_id
988                                              AND b.language = t.source_lang)
989        WHERE (t.task_id, t.language) IN (SELECT subt.task_id, subt.language
990                                            FROM jtf_tasks_tl subb, jtf_tasks_tl subt
991                                           WHERE subb.task_id = subt.task_id
992                                             AND subb.language = subt.source_lang
993                                             AND (  subb.task_name <> subt.task_name
994                                                 OR subb.description <> subt.description
995                                                 OR (   subb.description IS NULL
996                                                    AND subt.description IS NOT NULL)
997                                                 OR (   subb.description IS NOT NULL
998                                                    AND subt.description IS NULL)));
999 
1000       INSERT INTO jtf_tasks_tl
1001                   (task_name,
1002                    description,
1003                    created_by,
1004                    creation_date,
1005                    last_updated_by,
1006                    last_update_date,
1007                    last_update_login,
1008                    task_id,
1009                    language,
1010                    source_lang
1011                   )
1012          SELECT b.task_name,
1013                 b.description,
1014                 b.created_by,
1015                 b.creation_date,
1016                 b.last_updated_by,
1017                 b.last_update_date,
1018                 b.last_update_login,
1019                 b.task_id,
1020                 l.language_code,
1021                 b.source_lang
1022            FROM jtf_tasks_tl b, fnd_languages l
1023           WHERE l.installed_flag IN ('I', 'B')
1024             AND b.language = USERENV ('LANG')
1025             AND NOT EXISTS (SELECT NULL
1026                               FROM jtf_tasks_tl t
1027                              WHERE t.task_id = b.task_id
1028                                AND t.language = l.language_code);
1029 
1030       *** Additional fix for the same bug is to add parallel hints to insert.
1031       *** Replaced the original query with one below (mmmarovic on 3/7/05)
1032       */
1033         INSERT /*+ append parallel(tl) */ INTO jtf_tasks_tl tl
1034  	      (task_name, description, created_by, creation_date,
1035 	       last_updated_by, last_update_date, last_update_login,
1036 	       task_id, language, source_lang)
1037  	   SELECT /*+ parallel(v) parallel(t) use_nl(t) */ v.*
1038  	     FROM ( SELECT /*+ no_merge ordered parallel(b) */
1039  	                   b.task_name, b.description, b.created_by, b.creation_date,
1040 			   b.last_updated_by, b.last_update_date, b.last_update_login,
1041 			   b.task_id, l.language_code, b.source_lang
1042  	              FROM fnd_languages l, jtf_tasks_tl b
1043  	             WHERE l.installed_flag IN ('I', 'B')
1044  	               AND b.language = USERENV ('LANG')
1045  	           ) v, jtf_tasks_tl t
1046  	    WHERE t.task_id(+) = v.task_id
1047  	      AND t.language(+) = v.language_code
1048  	      AND t.task_id IS NULL;
1049 
1050    END add_language;
1051 
1052 procedure translate_row(
1053    x_task_id in number,
1054    x_task_name   in varchar2,
1055    x_description   in varchar2,
1056    x_owner   in varchar2 )
1057 as
1058 begin
1059   update jtf_tasks_tl set
1060     task_name = nvl(x_task_name,task_name),
1061     description = nvl(x_description,description),
1062     LAST_UPDATE_DATE = sysdate,
1063     LAST_UPDATEd_by = decode(x_owner,'SEED',1,0),
1064     LAST_UPDATE_LOGIN = 0,
1065     SOURCE_LANG = userenv('LANG')
1066   where task_id = X_task_id
1067   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
1068 
1069   if (sql%notfound) then
1070     raise no_data_found;
1071   end if;
1072 
1073 end;
1074 
1075 END jtf_tasks_pkg;