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