DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASK_TEMPLATES_PVT

Source


1 PACKAGE BODY jtf_task_templates_pvt AS
2 /* $Header: jtfvtkmb.pls 120.1 2005/07/02 01:45:52 appldev ship $ */
3    g_pkg_name   CONSTANT VARCHAR2(30) := 'JTF_TASK_TEMPLATES_PVT';
4 
5    PROCEDURE create_task (
6       p_api_version               IN       NUMBER,
7       p_init_msg_list             IN       VARCHAR2 DEFAULT fnd_api.g_false,
8       p_commit                    IN       VARCHAR2 DEFAULT fnd_api.g_false,
9       p_task_id                   IN       NUMBER DEFAULT NULL,
10       p_task_name                 IN       VARCHAR2,
11       p_task_group_id             IN       NUMBER,
12       p_task_type_id              IN       NUMBER DEFAULT NULL,
13       p_description               IN       VARCHAR2 DEFAULT NULL,
14       p_task_status_id            IN       NUMBER DEFAULT NULL,
15       p_task_priority_id          IN       NUMBER DEFAULT NULL,
16       p_duration                  IN       NUMBER DEFAULT NULL,
17       p_duration_uom              IN       VARCHAR2 DEFAULT NULL,
18       p_planned_effort            IN       NUMBER DEFAULT NULL,
19       p_planned_effort_uom        IN       VARCHAR2 DEFAULT NULL,
20       p_private_flag              IN       VARCHAR2 DEFAULT NULL,
21       p_publish_flag              IN       VARCHAR2 DEFAULT NULL,
22       p_restrict_closure_flag     IN       VARCHAR2 DEFAULT NULL,
23       p_multi_booked_flag         IN       VARCHAR2 DEFAULT NULL,
24       p_milestone_flag            IN       VARCHAR2 DEFAULT NULL,
25       p_holiday_flag              IN       VARCHAR2 DEFAULT NULL,
26       p_billable_flag             IN       VARCHAR2 DEFAULT NULL,
27       p_notification_flag         IN       VARCHAR2 DEFAULT NULL,
28       p_notification_period       IN       NUMBER DEFAULT NULL,
29       p_notification_period_uom   IN       VARCHAR2 DEFAULT NULL,
30       p_alarm_start               IN       NUMBER DEFAULT NULL,
31       p_alarm_start_uom           IN       VARCHAR2 DEFAULT NULL,
32       p_alarm_on                  IN       VARCHAR2 DEFAULT NULL,
33       p_alarm_count               IN       NUMBER DEFAULT NULL,
34       p_alarm_interval            IN       NUMBER DEFAULT NULL,
35       p_alarm_interval_uom        IN       VARCHAR2 DEFAULT NULL,
36       x_return_status             OUT NOCOPY      VARCHAR2,
37       x_msg_count                 OUT NOCOPY      NUMBER,
38       x_msg_data                  OUT NOCOPY      VARCHAR2,
39       x_task_id                   OUT NOCOPY      NUMBER,
40         p_attribute1              IN       VARCHAR2 DEFAULT null ,
41         p_attribute2              IN       VARCHAR2 DEFAULT null ,
42         p_attribute3              IN       VARCHAR2 DEFAULT null ,
43         p_attribute4              IN       VARCHAR2 DEFAULT null ,
44         p_attribute5              IN       VARCHAR2 DEFAULT null ,
45         p_attribute6              IN       VARCHAR2 DEFAULT null ,
46         p_attribute7              IN       VARCHAR2 DEFAULT null ,
47         p_attribute8              IN       VARCHAR2 DEFAULT null ,
48         p_attribute9              IN       VARCHAR2 DEFAULT null ,
49         p_attribute10             IN       VARCHAR2 DEFAULT null ,
50         p_attribute11             IN       VARCHAR2 DEFAULT null ,
51         p_attribute12             IN       VARCHAR2 DEFAULT null ,
52         p_attribute13             IN       VARCHAR2 DEFAULT null ,
53         p_attribute14             IN       VARCHAR2 DEFAULT null ,
54         p_attribute15             IN       VARCHAR2 DEFAULT null ,
55         p_attribute_category      IN       VARCHAR2 DEFAULT null
56    )
57    IS
58       l_api_version   CONSTANT NUMBER                              := 1.0;
59       l_api_name      CONSTANT VARCHAR2(30)
60                := 'CREATE_TASK_TEMPLATES';
61 
62 
63    BEGIN
64       SAVEPOINT create_task_pvt1;
65       x_return_status := fnd_api.g_ret_sts_success;
66 
67       IF NOT fnd_api.compatible_api_call (
68                 l_api_version,
69                 p_api_version,
70                 l_api_name,
71                 g_pkg_name
72              )
73       THEN
74          RAISE fnd_api.g_exc_unexpected_error;
75       END IF;
76 
77       IF fnd_api.to_boolean (p_init_msg_list)
78       THEN
79          fnd_msg_pub.initialize;
80       END IF;
81 
82       jtf_task_templates_pvt.create_task
83       (
84       p_api_version          => p_api_version,
85       p_init_msg_list        => p_init_msg_list,
86       p_commit               => p_commit,
87       p_task_id              => p_task_id,
88       p_task_name            => p_task_name,
89       p_task_group_id        => p_task_group_id,
90       p_task_type_id         => p_task_type_id,
91       p_description          => p_description,
92       p_task_status_id       => p_task_status_id,
93       p_task_priority_id	 => p_task_priority_id,
94       p_duration	    => p_duration,
95 	  p_duration_uom 	=> p_duration_uom,
96       p_planned_effort	=> p_planned_effort,
97 	  p_planned_effort_uom	    => p_planned_effort_uom,
98       p_private_flag 	=> p_private_flag,
99 	  p_publish_flag 	=> p_publish_flag,
100       p_restrict_closure_flag    => p_restrict_closure_flag,
101 	  p_multi_booked_flag	    => p_multi_booked_flag,
102       p_milestone_flag	=> p_milestone_flag,
103 	  p_holiday_flag 	=> p_holiday_flag,
104 	  p_billable_flag	=> p_billable_flag,
105       p_notification_flag	    => p_notification_flag,
106 	  p_notification_period	    => p_notification_period,
107 	  p_notification_period_uom  => p_notification_period_uom,
108       p_alarm_start		=> p_alarm_start,
109 	  p_alarm_start_uom	=> p_alarm_start_uom,
110 	  p_alarm_on	    => p_alarm_on,
111 	  p_alarm_count		=> p_alarm_count,
112       p_alarm_interval	=> p_alarm_interval,
113 	  p_alarm_interval_uom	    => p_alarm_interval_uom,
114       x_return_status	=> x_return_status,
115 	  x_msg_count		=> x_msg_count,
116 	  x_msg_data	    => x_msg_data,
117 	  x_task_id	        => x_task_id,
118       p_attribute1		=> p_attribute1,
119 	  p_attribute2		=> p_attribute2,
120 	  p_attribute3		=> p_attribute3,
121 	  p_attribute4		=> p_attribute4,
122 	  p_attribute5		=> p_attribute5,
123 	  p_attribute6		=> p_attribute6,
124 	  p_attribute7		=> p_attribute7,
125 	  p_attribute8		=> p_attribute8,
126 	  p_attribute9		=> p_attribute9,
127 	  p_attribute10		=> p_attribute10,
128 	  p_attribute11		=> p_attribute11,
129 	  p_attribute12		=> p_attribute12,
130 	  p_attribute13		=> p_attribute13,
131 	  p_attribute14		=> p_attribute14,
132 	  p_attribute15		=> p_attribute15,
133       p_attribute_category	=> p_attribute_category,
134       p_task_confirmation_status => 'N'
135 
136    );
137 
138      IF NOT (x_return_status = fnd_api.g_ret_sts_success)
139      THEN
140        x_return_status := fnd_api.g_ret_sts_unexp_error;
141      RAISE fnd_api.g_exc_unexpected_error;
142      END IF;
143 
144       IF fnd_api.to_boolean (p_commit)
145       THEN
146       COMMIT WORK;
147       END IF;
148 
149       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
150    EXCEPTION
151       WHEN fnd_api.g_exc_unexpected_error
152       THEN
153          ROLLBACK TO create_task_pvt1;
154          x_return_status := fnd_api.g_ret_sts_unexp_error;
155          fnd_msg_pub.count_and_get (
156             p_count => x_msg_count,
157             p_data => x_msg_data
158          );
159       WHEN OTHERS
160       THEN
161          ROLLBACK TO create_task_pvt1;
162          fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
163          fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
164          x_return_status := fnd_api.g_ret_sts_unexp_error;
165          fnd_msg_pub.count_and_get (
166             p_count => x_msg_count,
167             p_data => x_msg_data
168          );
169    END;
170    -- Overloading for Simplex.
171    PROCEDURE create_task (
172       p_api_version               IN       NUMBER,
173       p_init_msg_list             IN       VARCHAR2 DEFAULT fnd_api.g_false,
174       p_commit                    IN       VARCHAR2 DEFAULT fnd_api.g_false,
175       p_task_id                   IN       NUMBER DEFAULT NULL,
176       p_task_name                 IN       VARCHAR2,
177       p_task_group_id             IN       NUMBER,
178       p_task_type_id              IN       NUMBER DEFAULT NULL,
179       p_description               IN       VARCHAR2 DEFAULT NULL,
180       p_task_status_id            IN       NUMBER DEFAULT NULL,
181       p_task_priority_id          IN       NUMBER DEFAULT NULL,
182       p_duration                  IN       NUMBER DEFAULT NULL,
183       p_duration_uom              IN       VARCHAR2 DEFAULT NULL,
184       p_planned_effort            IN       NUMBER DEFAULT NULL,
185       p_planned_effort_uom        IN       VARCHAR2 DEFAULT NULL,
186       p_private_flag              IN       VARCHAR2 DEFAULT NULL,
187       p_publish_flag              IN       VARCHAR2 DEFAULT NULL,
188       p_restrict_closure_flag     IN       VARCHAR2 DEFAULT NULL,
189       p_multi_booked_flag         IN       VARCHAR2 DEFAULT NULL,
190       p_milestone_flag            IN       VARCHAR2 DEFAULT NULL,
191       p_holiday_flag              IN       VARCHAR2 DEFAULT NULL,
192       p_billable_flag             IN       VARCHAR2 DEFAULT NULL,
193       p_notification_flag         IN       VARCHAR2 DEFAULT NULL,
194       p_notification_period       IN       NUMBER DEFAULT NULL,
195       p_notification_period_uom   IN       VARCHAR2 DEFAULT NULL,
196       p_alarm_start               IN       NUMBER DEFAULT NULL,
197       p_alarm_start_uom           IN       VARCHAR2 DEFAULT NULL,
198       p_alarm_on                  IN       VARCHAR2 DEFAULT NULL,
199       p_alarm_count               IN       NUMBER DEFAULT NULL,
200       p_alarm_interval            IN       NUMBER DEFAULT NULL,
201       p_alarm_interval_uom        IN       VARCHAR2 DEFAULT NULL,
202       x_return_status             OUT NOCOPY      VARCHAR2,
203       x_msg_count                 OUT NOCOPY      NUMBER,
204       x_msg_data                  OUT NOCOPY      VARCHAR2,
205       x_task_id                   OUT NOCOPY      NUMBER,
206         p_attribute1              IN       VARCHAR2 DEFAULT null ,
207         p_attribute2              IN       VARCHAR2 DEFAULT null ,
208         p_attribute3              IN       VARCHAR2 DEFAULT null ,
209         p_attribute4              IN       VARCHAR2 DEFAULT null ,
210         p_attribute5              IN       VARCHAR2 DEFAULT null ,
211         p_attribute6              IN       VARCHAR2 DEFAULT null ,
212         p_attribute7              IN       VARCHAR2 DEFAULT null ,
213         p_attribute8              IN       VARCHAR2 DEFAULT null ,
214         p_attribute9              IN       VARCHAR2 DEFAULT null ,
215         p_attribute10             IN       VARCHAR2 DEFAULT null ,
216         p_attribute11             IN       VARCHAR2 DEFAULT null ,
217         p_attribute12             IN       VARCHAR2 DEFAULT null ,
218         p_attribute13             IN       VARCHAR2 DEFAULT null ,
219         p_attribute14             IN       VARCHAR2 DEFAULT null ,
220         p_attribute15             IN       VARCHAR2 DEFAULT null ,
221         p_attribute_category      IN       VARCHAR2 DEFAULT null ,
222         p_task_confirmation_status IN	   VARCHAR2
223    )
224    IS
225       l_api_version   CONSTANT NUMBER                              := 1.0;
226       l_api_name      CONSTANT VARCHAR2(30)
227                := 'CREATE_TASK_TEMPLATES';
228       l_rowid                  ROWID;
229       l_task_id                jtf_tasks_b.task_id%TYPE
230                := p_task_id;
231       l_task_number            jtf_tasks_b.task_number%TYPE;
232       l_task_type_id           jtf_tasks_b.task_type_id%TYPE
233                := p_task_type_id;
234       l_task_status_id         jtf_tasks_b.task_status_id%TYPE
235                := p_task_status_id;
236       l_task_priority_id       jtf_tasks_b.task_priority_id%TYPE
237                := p_task_priority_id;
238       l_duration               jtf_tasks_b.duration%TYPE
239                := p_duration;
240       l_duration_uom           jtf_tasks_b.duration_uom%TYPE
241                := p_duration_uom;
242       l_planned_effort         jtf_tasks_b.planned_effort%TYPE
243                := p_planned_effort;
244       l_planned_effort_uom     jtf_tasks_b.planned_effort_uom%TYPE
245                := p_planned_effort_uom;
246       l_task_confirmation_status jtf_tasks_b.task_confirmation_status%TYPE
247                := p_task_confirmation_status;
248 
249       CURSOR c_jtf_tasks (l_rowid IN ROWID)
250       IS
251          SELECT 1
252            FROM jtf_task_templates_b
253           WHERE ROWID = l_rowid;
254 
255       x                        CHAR;
256    BEGIN
257 
258       null;
259 
260       SAVEPOINT create_task_pvt;
261       x_return_status := fnd_api.g_ret_sts_success;
262 
263       IF NOT fnd_api.compatible_api_call (
264                 l_api_version,
265                 p_api_version,
266                 l_api_name,
267                 g_pkg_name
268              )
269       THEN
270          RAISE fnd_api.g_exc_unexpected_error;
271       END IF;
272 
273       IF fnd_api.to_boolean (p_init_msg_list)
274       THEN
275          fnd_msg_pub.initialize;
276       END IF;
277 
278       IF l_task_id IS NOT NULL
279       THEN
280          IF l_task_id < 1e+12
281          THEN
282             fnd_message.set_name ('JTF', 'JTF_TASK_TEMP_OUT_OF_RANGE');
283             fnd_msg_pub.add;
284             x_return_status := fnd_api.g_ret_sts_unexp_error;
285             RAISE fnd_api.g_exc_unexpected_error;
286          END IF;
287 
288          SELECT jtf_task_template_number_s.nextval
289            INTO l_task_number
290            FROM dual;
291       ELSE
292          SELECT jtf_task_templates_s.nextval
293            INTO l_task_id
294            FROM dual;
295          SELECT jtf_task_template_number_s.nextval
296            INTO l_task_number
297            FROM dual;
298       END IF;
299 
300       BEGIN
301          SELECT 1
302            INTO x
303            FROM jtf_task_temp_groups_vl
304           WHERE task_template_group_id = p_task_group_id
305             AND NVL (end_date_active, SYSDATE) >= SYSDATE
306             AND NVL (start_date_active, SYSDATE) <= SYSDATE;
307       EXCEPTION
308          WHEN NO_DATA_FOUND
309          THEN
310             fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TEMP_GRP_ID');
311             fnd_msg_pub.add;
312             x_return_status := fnd_api.g_ret_sts_unexp_error;
313             RAISE fnd_api.g_exc_unexpected_error;
314          WHEN TOO_MANY_ROWS
315          THEN
316             NULL;
317       END;
318 
319       jtf_task_templates_pkg.insert_row (
320          x_rowid => l_rowid,
321          x_task_template_id => l_task_id,
322          x_task_group_id => p_task_group_id,
323          x_duration => l_duration,
324          x_duration_uom => l_duration_uom,
325          x_planned_effort => l_planned_effort,
326          x_planned_effort_uom => l_planned_effort_uom,
327          x_private_flag => p_private_flag,
328          x_publish_flag => p_publish_flag,
329          x_restrict_closure_flag => p_restrict_closure_flag,
330          x_multi_booked_flag => p_multi_booked_flag,
331          x_milestone_flag => p_milestone_flag,
332          x_holiday_flag => p_holiday_flag,
333          x_billable_flag => p_billable_flag,
334          x_notification_flag => p_notification_flag,
335          x_notification_period => p_notification_period,
336          x_notification_period_uom => p_notification_period_uom,
337          x_recurrence_rule_id => NULL,
338          x_alarm_start => p_alarm_start,
339          x_alarm_start_uom => p_alarm_start_uom,
340          x_alarm_on => p_alarm_on,
341          x_alarm_count => p_alarm_count,
342          x_alarm_interval => p_alarm_interval,
343          x_alarm_interval_uom => p_alarm_interval_uom,
344          x_deleted_flag => jtf_task_utl.g_no,
345             x_attribute1 => p_attribute1 ,
346             x_attribute2 => p_attribute2 ,
347             x_attribute3 => p_attribute3 ,
348             x_attribute4 => p_attribute4 ,
349             x_attribute5 => p_attribute5 ,
350             x_attribute6 => p_attribute6 ,
351             x_attribute7 => p_attribute7 ,
352             x_attribute8 => p_attribute8 ,
353             x_attribute9 => p_attribute9 ,
354             x_attribute10 => p_attribute10 ,
355             x_attribute11 => p_attribute11 ,
356             x_attribute12 => p_attribute12 ,
357             x_attribute13 => p_attribute13 ,
358             x_attribute14 => p_attribute14 ,
359             x_attribute15 => p_attribute15,
360             x_attribute_category => p_attribute_category ,
361          x_task_number => l_task_number,
362          x_task_type_id => l_task_type_id,
363          x_task_status_id => l_task_status_id,
364          x_task_priority_id => l_task_priority_id,
365          x_task_name => p_task_name,
366          x_description => p_description,
367          x_task_confirmation_status => l_task_confirmation_status,
368          x_creation_date => SYSDATE,
369          x_created_by => jtf_task_utl.created_by,
370          x_last_update_date => SYSDATE,
371          x_last_updated_by => jtf_task_utl.updated_by,
372          x_last_update_login => jtf_task_utl.login_id
373 
374       );
375       OPEN c_jtf_tasks (l_rowid);
376       FETCH c_jtf_tasks INTO x;
377 
378       IF c_jtf_tasks%NOTFOUND
379       THEN
380          x_return_status := fnd_api.g_ret_sts_unexp_error;
381          fnd_message.set_name ('JTF', 'JTF_TASK_ERROR_CREATION_TEMP');
382          fnd_msg_pub.add;
383          RAISE fnd_api.g_exc_unexpected_error;
384       ELSE
385          x_task_id := l_task_id;
386       END IF;
387 
388       IF fnd_api.to_boolean (p_commit)
389       THEN
390          COMMIT WORK;
391       END IF;
392 
393       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
394    EXCEPTION
395       WHEN fnd_api.g_exc_unexpected_error
396       THEN
397          ROLLBACK TO create_task_pvt;
398          x_return_status := fnd_api.g_ret_sts_unexp_error;
399          fnd_msg_pub.count_and_get (
400             p_count => x_msg_count,
401             p_data => x_msg_data
402          );
403       WHEN OTHERS
404       THEN
405          ROLLBACK TO create_task_pvt;
406          fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
407          fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
408          x_return_status := fnd_api.g_ret_sts_unexp_error;
409          fnd_msg_pub.count_and_get (
410             p_count => x_msg_count,
411             p_data => x_msg_data
412          );
413    END;
414 
415     PROCEDURE update_task (
416       p_api_version               IN       NUMBER,
417       p_init_msg_list             IN       VARCHAR2 DEFAULT fnd_api.g_false,
418       p_commit                    IN       VARCHAR2 DEFAULT fnd_api.g_false,
419       p_object_version_number     IN OUT NOCOPY   NUMBER,
420       p_task_id                   IN       NUMBER DEFAULT fnd_api.g_miss_num,
421       p_task_name                 IN       VARCHAR2
422             DEFAULT fnd_api.g_miss_char,
423       p_description               IN       VARCHAR2
424             DEFAULT fnd_api.g_miss_char,
425       p_task_type_id              IN       NUMBER DEFAULT fnd_api.g_miss_num,
426       p_task_status_id            IN       NUMBER DEFAULT fnd_api.g_miss_num,
427       p_task_priority_id          IN       NUMBER DEFAULT fnd_api.g_miss_num,
428       p_duration                  IN       NUMBER DEFAULT fnd_api.g_miss_num,
429       p_duration_uom              IN       VARCHAR2
430             DEFAULT fnd_api.g_miss_char,
431       p_planned_effort            IN       NUMBER DEFAULT fnd_api.g_miss_num,
432       p_planned_effort_uom        IN       VARCHAR2
433             DEFAULT fnd_api.g_miss_char,
434       p_private_flag              IN       VARCHAR2
435             DEFAULT fnd_api.g_miss_char,
436       p_publish_flag              IN       VARCHAR2
437             DEFAULT fnd_api.g_miss_char,
438       p_restrict_closure_flag     IN       VARCHAR2
439             DEFAULT fnd_api.g_miss_char,
440       p_multi_booked_flag         IN       VARCHAR2
441             DEFAULT fnd_api.g_miss_char,
442       p_milestone_flag            IN       VARCHAR2
443             DEFAULT fnd_api.g_miss_char,
444       p_holiday_flag              IN       VARCHAR2
445             DEFAULT fnd_api.g_miss_char,
446       p_billable_flag             IN       VARCHAR2
447             DEFAULT fnd_api.g_miss_char,
448       p_notification_flag         IN       VARCHAR2
449             DEFAULT fnd_api.g_miss_char,
450       p_notification_period       IN       NUMBER DEFAULT fnd_api.g_miss_num,
451       p_notification_period_uom   IN       VARCHAR2
452             DEFAULT fnd_api.g_miss_char,
453       p_alarm_start               IN       NUMBER DEFAULT fnd_api.g_miss_num,
454       p_alarm_start_uom           IN       VARCHAR2
455             DEFAULT fnd_api.g_miss_char,
456       p_alarm_on                  IN       VARCHAR2
457             DEFAULT fnd_api.g_miss_char,
458       p_alarm_count               IN       NUMBER DEFAULT fnd_api.g_miss_num,
459       p_alarm_fired_count         IN       NUMBER DEFAULT fnd_api.g_miss_num,
460       p_alarm_interval            IN       NUMBER DEFAULT fnd_api.g_miss_num,
461       p_alarm_interval_uom        IN       VARCHAR2
462             DEFAULT fnd_api.g_miss_char,
463       x_return_status             OUT NOCOPY      VARCHAR2,
464       x_msg_count                 OUT NOCOPY      NUMBER,
465       x_msg_data                  OUT NOCOPY      VARCHAR2,
466         p_attribute1              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
467         p_attribute2              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
468         p_attribute3              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
469         p_attribute4              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
470         p_attribute5              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
471         p_attribute6              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
472         p_attribute7              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
473         p_attribute8              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
474         p_attribute9              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
475         p_attribute10             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
476         p_attribute11             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
477         p_attribute12             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
478         p_attribute13             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
479         p_attribute14             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
480         p_attribute15             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
481         p_attribute_category      IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char
482    )
483    IS
484      l_api_version	 CONSTANT NUMBER := 1.0;
485       l_api_name	 CONSTANT VARCHAR2(30) := 'UPDATE_TASK';
486    BEGIN
487       SAVEPOINT update_task_pvt1;
488       x_return_status := fnd_api.g_ret_sts_success;
489 
490       IF NOT fnd_api.compatible_api_call (
491                 l_api_version,
492                 p_api_version,
493                 l_api_name,
494                 g_pkg_name
495              )
496       THEN
497          RAISE fnd_api.g_exc_unexpected_error;
498       END IF;
499 
500       IF fnd_api.to_boolean (p_init_msg_list)
501       THEN
502          fnd_msg_pub.initialize;
503       END IF;
504 
505       jtf_task_templates_pvt.update_task (
506 	    p_api_version		=> p_api_version,
507 	    p_init_msg_list		=>  p_init_msg_list,
508 	    p_commit			=>  p_commit,
509 	    p_object_version_number	=> p_object_version_number,
510 	    p_task_id			=> p_task_id,
511 	    p_task_name 		=> p_task_name,
512         p_description		=> p_description,
513 	    p_task_type_id		=> p_task_type_id,
514         p_task_status_id		=> p_task_status_id,
515 	    p_task_priority_id		=> p_task_priority_id,
516         p_duration			=> p_duration,
517 	    p_duration_uom		=> p_duration_uom,
518 	    p_planned_effort		=> p_planned_effort,
519 	    p_planned_effort_uom	=> p_planned_effort_uom,
520         p_private_flag		=> p_private_flag,
521 	    p_publish_flag		=> p_publish_flag,
522 	    p_restrict_closure_flag	=> p_restrict_closure_flag,
523         p_multi_booked_flag 	=> p_multi_booked_flag,
524 	    p_milestone_flag		=> p_milestone_flag,
525 	    p_holiday_flag		=> p_holiday_flag,
526 	    p_billable_flag		=> p_billable_flag,
527 	    p_notification_flag 	=> p_notification_flag,
528 	    p_notification_period	=> p_notification_period,
529 	    p_notification_period_uom	=> p_notification_period_uom,
530 	    p_alarm_start		=> p_alarm_start,
531 	    p_alarm_start_uom		=> p_alarm_start_uom,
532 	    p_alarm_on			=> p_alarm_on,
533 	    p_alarm_count		=> p_alarm_count,
534         p_alarm_fired_count 	=> p_alarm_fired_count,
535 	    p_alarm_interval		=> p_alarm_interval,
536 	    p_alarm_interval_uom	=> p_alarm_interval_uom,
537         x_return_status		=> x_return_status,
538 	    x_msg_count 		=> x_msg_count,
539 	    x_msg_data			=> x_msg_data,
540 	    p_attribute1		=> p_attribute1,
541 	    p_attribute2		=> p_attribute2,
542 	    p_attribute3		=> p_attribute3,
543 	    p_attribute4		=> p_attribute4,
544 	    p_attribute5		=> p_attribute5,
545 	    p_attribute6		=> p_attribute6,
546 	    p_attribute7		=> p_attribute7,
547 	    p_attribute8		=> p_attribute8,
548 	    p_attribute9		=> p_attribute9,
549 	    p_attribute10		=> p_attribute10,
550 	    p_attribute11		=> p_attribute11,
551 	    p_attribute12		=> p_attribute12,
552 	    p_attribute13		=> p_attribute13,
553 	    p_attribute14		=> p_attribute14,
554 	    p_attribute15		=> p_attribute15,
555 	    p_attribute_category	=> p_attribute_category,
556         p_task_confirmation_status => 'N'
557       );
558 
559      IF NOT (x_return_status = fnd_api.g_ret_sts_success)
560      THEN
561        x_return_status := fnd_api.g_ret_sts_unexp_error;
562      RAISE fnd_api.g_exc_unexpected_error;
563      END IF;
564 
565      IF fnd_api.to_boolean (p_commit)
566      THEN
567      COMMIT WORK;
568      END IF;
569 
570      fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
571    EXCEPTION
572       WHEN fnd_api.g_exc_unexpected_error
573       THEN
574          ROLLBACK TO update_task_pvt1;
575          x_return_status := fnd_api.g_ret_sts_unexp_error;
576          fnd_msg_pub.count_and_get (
577             p_count => x_msg_count,
578             p_data => x_msg_data
579          );
580       WHEN OTHERS
581       THEN
582          ROLLBACK TO update_task_pvt1;
583          fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
584          fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
585          x_return_status := fnd_api.g_ret_sts_unexp_error;
586          fnd_msg_pub.count_and_get (
587             p_count => x_msg_count,
588             p_data => x_msg_data
589          );
590    END;
591 
592    PROCEDURE update_task (
593       p_api_version               IN       NUMBER,
594       p_init_msg_list             IN       VARCHAR2 DEFAULT fnd_api.g_false,
595       p_commit                    IN       VARCHAR2 DEFAULT fnd_api.g_false,
596       p_object_version_number     IN OUT NOCOPY   NUMBER,
597       p_task_id                   IN       NUMBER DEFAULT fnd_api.g_miss_num,
598       p_task_name                 IN       VARCHAR2
599             DEFAULT fnd_api.g_miss_char,
600       p_description               IN       VARCHAR2
601             DEFAULT fnd_api.g_miss_char,
602       p_task_type_id              IN       NUMBER DEFAULT fnd_api.g_miss_num,
603       p_task_status_id            IN       NUMBER DEFAULT fnd_api.g_miss_num,
604       p_task_priority_id          IN       NUMBER DEFAULT fnd_api.g_miss_num,
605       p_duration                  IN       NUMBER DEFAULT fnd_api.g_miss_num,
606       p_duration_uom              IN       VARCHAR2
607             DEFAULT fnd_api.g_miss_char,
608       p_planned_effort            IN       NUMBER DEFAULT fnd_api.g_miss_num,
609       p_planned_effort_uom        IN       VARCHAR2
610             DEFAULT fnd_api.g_miss_char,
611       p_private_flag              IN       VARCHAR2
612             DEFAULT fnd_api.g_miss_char,
613       p_publish_flag              IN       VARCHAR2
614             DEFAULT fnd_api.g_miss_char,
615       p_restrict_closure_flag     IN       VARCHAR2
616             DEFAULT fnd_api.g_miss_char,
617       p_multi_booked_flag         IN       VARCHAR2
618             DEFAULT fnd_api.g_miss_char,
619       p_milestone_flag            IN       VARCHAR2
620             DEFAULT fnd_api.g_miss_char,
621       p_holiday_flag              IN       VARCHAR2
622             DEFAULT fnd_api.g_miss_char,
623       p_billable_flag             IN       VARCHAR2
624             DEFAULT fnd_api.g_miss_char,
625       p_notification_flag         IN       VARCHAR2
626             DEFAULT fnd_api.g_miss_char,
627       p_notification_period       IN       NUMBER DEFAULT fnd_api.g_miss_num,
628       p_notification_period_uom   IN       VARCHAR2
629             DEFAULT fnd_api.g_miss_char,
630       p_alarm_start               IN       NUMBER DEFAULT fnd_api.g_miss_num,
631       p_alarm_start_uom           IN       VARCHAR2
632             DEFAULT fnd_api.g_miss_char,
633       p_alarm_on                  IN       VARCHAR2
634             DEFAULT fnd_api.g_miss_char,
635       p_alarm_count               IN       NUMBER DEFAULT fnd_api.g_miss_num,
636       p_alarm_fired_count         IN       NUMBER DEFAULT fnd_api.g_miss_num,
637       p_alarm_interval            IN       NUMBER DEFAULT fnd_api.g_miss_num,
638       p_alarm_interval_uom        IN       VARCHAR2
639             DEFAULT fnd_api.g_miss_char,
640       x_return_status             OUT NOCOPY      VARCHAR2,
641       x_msg_count                 OUT NOCOPY      NUMBER,
642       x_msg_data                  OUT NOCOPY      VARCHAR2,
643         p_attribute1              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
644         p_attribute2              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
645         p_attribute3              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
646         p_attribute4              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
647         p_attribute5              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
648         p_attribute6              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
649         p_attribute7              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
650         p_attribute8              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
651         p_attribute9              IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
652         p_attribute10             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
653         p_attribute11             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
654         p_attribute12             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
655         p_attribute13             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
656         p_attribute14             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
657         p_attribute15             IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
658         p_attribute_category      IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
659         p_task_confirmation_status IN      VARCHAR2
660    )
661    IS
662       l_task_id                   jtf_task_templates_b.task_template_id%TYPE;
663       l_task_group_id             jtf_task_templates_b.task_group_id%TYPE;
664       l_task_number               jtf_task_templates_b.task_number%TYPE;
665       l_task_type_id              jtf_task_templates_b.task_type_id%TYPE;
666       l_task_status_id            jtf_task_templates_b.task_status_id%TYPE;
667       l_task_priority_id          jtf_task_templates_b.task_priority_id%TYPE;
668       l_duration                  jtf_task_templates_b.duration%TYPE;
669       l_duration_uom              jtf_task_templates_b.duration_uom%TYPE;
670       l_planned_effort            jtf_task_templates_b.planned_effort%TYPE;
671       l_planned_effort_uom        jtf_task_templates_b.planned_effort_uom%TYPE;
672       l_private_flag              jtf_task_templates_b.private_flag%TYPE;
673       l_publish_flag              jtf_task_templates_b.publish_flag%TYPE;
674       l_restrict_closure_flag     jtf_task_templates_b.restrict_closure_flag%TYPE;
675       l_multi_booked_flag         jtf_task_templates_b.multi_booked_flag%TYPE;
676       l_milestone_flag            jtf_task_templates_b.milestone_flag%TYPE;
677       l_holiday_flag              jtf_task_templates_b.holiday_flag%TYPE;
678       l_billable_flag             jtf_task_templates_b.billable_flag%TYPE;
679       l_notification_flag         jtf_task_templates_b.notification_flag%TYPE;
680       l_notification_period       jtf_task_templates_b.notification_period%TYPE;
681       l_notification_period_uom   jtf_task_templates_b.notification_period_uom%TYPE;
682       l_alarm_start               jtf_task_templates_b.alarm_start%TYPE;
683       l_alarm_start_uom           jtf_task_templates_b.alarm_start_uom%TYPE;
684       l_alarm_on                  jtf_task_templates_b.alarm_on%TYPE;
685       l_alarm_count               jtf_task_templates_b.alarm_count%TYPE;
686       l_alarm_interval            jtf_task_templates_b.alarm_interval%TYPE;
687       l_alarm_interval_uom        jtf_task_templates_b.alarm_interval_uom%TYPE;
688       l_task_name                 jtf_task_templates_tl.task_name%TYPE;
689       l_description               jtf_task_templates_tl.description%TYPE;
690       l_task_confirmation_status  jtf_task_templates_b.task_confirmation_status%TYPE;
691 
692       CURSOR c_task
693       IS
694          SELECT task_number,
695                 recurrence_rule_id,
696                 task_group_id,
697                 DECODE (
698                    p_task_name,
699                    fnd_api.g_miss_char, task_name,
700                    p_task_name
701                 ) task_name,
702                 DECODE (
703                    p_task_type_id,
704                    fnd_api.g_miss_num, task_type_id,
705                    p_task_type_id
706                 ) task_type_id,
707                 DECODE (
708                    p_description,
709                    fnd_api.g_miss_char, description,
710                    p_description
711                 ) description,
712                 DECODE (
713                    p_task_status_id,
714                    fnd_api.g_miss_num, task_status_id,
715                    p_task_status_id
716                 ) task_status_id,
717                 DECODE (
718                    p_task_priority_id,
719                    fnd_api.g_miss_num, task_priority_id,
720                    p_task_priority_id
721                 ) task_priority_id,
722                 DECODE (
723                    p_duration,
724                    fnd_api.g_miss_num,
725                    duration,
726                    p_duration
727                 ) duration,
728                 DECODE (
729                    p_duration_uom,
730                    fnd_api.g_miss_char,
731                    duration_uom,
732                    p_duration_uom
733                 ) duration_uom,
734                 DECODE (
735                    p_planned_effort,
736                    fnd_api.g_miss_num,
737                    planned_effort,
738                    p_planned_effort
739                 ) planned_effort,
740                 DECODE (
741                    p_planned_effort_uom,
742                    fnd_api.g_miss_char,
743                    planned_effort_uom,
744                    p_planned_effort_uom
745                 ) planned_effort_uom,
746                 DECODE (
747                    p_private_flag,
748                    fnd_api.g_miss_char,
749                    private_flag,
750                    p_private_flag
751                 ) private_flag,
752                 DECODE (
753                    p_publish_flag,
754                    fnd_api.g_miss_char,
755                    publish_flag,
756                    p_publish_flag
757                 ) publish_flag,
758                 DECODE (
759                    p_restrict_closure_flag,
760                    fnd_api.g_miss_char,
761                    restrict_closure_flag,
762                    p_restrict_closure_flag
763                 ) restrict_closure_flag,
764                 DECODE (
765                    p_multi_booked_flag,
766                    fnd_api.g_miss_char,
767                    multi_booked_flag,
768                    p_multi_booked_flag
769                 ) multi_booked_flag,
770                 DECODE (
771                    p_milestone_flag,
772                    fnd_api.g_miss_char,
773                    milestone_flag,
774                    p_milestone_flag
775                 ) milestone_flag,
776                 DECODE (
777                    p_holiday_flag,
778                    fnd_api.g_miss_char,
779                    holiday_flag,
780                    p_holiday_flag
781                 ) holiday_flag,
782                 DECODE (
783                    p_billable_flag,
784                    fnd_api.g_miss_char,
785                    billable_flag,
786                    p_billable_flag
787                 ) billable_flag,
788                 DECODE (
789                    p_notification_flag,
790                    fnd_api.g_miss_char,
791                    notification_flag,
792                    p_notification_flag
793                 ) notification_flag,
794                 DECODE (
795                    p_notification_period,
796                    fnd_api.g_miss_num,
797                    notification_period,
798                    p_notification_period
799                 ) notification_period,
800                 DECODE (
801                    p_notification_period_uom,
802                    fnd_api.g_miss_char,
803                    notification_period_uom,
804                    p_notification_period_uom
805                 ) notification_period_uom,
806                 DECODE (
807                    p_alarm_start,
808                    fnd_api.g_miss_num,
809                    alarm_start,
810                    p_alarm_start
811                 ) alarm_start,
812                 DECODE (
813                    p_alarm_start_uom,
814                    fnd_api.g_miss_char,
815                    alarm_start_uom,
816                    p_alarm_start_uom
817                 ) alarm_start_uom,
818                 DECODE (
819                    p_alarm_on,
820                    fnd_api.g_miss_char,
821                    alarm_on,
822                    p_alarm_on
823                 ) alarm_on,
824                 DECODE (
825                    p_alarm_count,
826                    fnd_api.g_miss_num,
827                    alarm_count,
828                    p_alarm_count
829                 ) alarm_count,
830                 DECODE (
831                    p_alarm_interval,
832                    fnd_api.g_miss_num,
833                    alarm_interval,
834                    p_alarm_interval
835                 ) alarm_interval,
836                 DECODE (
837                    p_alarm_interval_uom,
838                    fnd_api.g_miss_char,
839                    alarm_interval_uom,
840                    p_alarm_interval_uom
841                 ) alarm_interval_uom,
842 decode( p_attribute1 , fnd_api.g_miss_char , attribute1 , p_attribute1 )  attribute1  ,
843 decode( p_attribute2 , fnd_api.g_miss_char , attribute2 , p_attribute2 )  attribute2  ,
844 decode( p_attribute3 , fnd_api.g_miss_char , attribute3 , p_attribute3 )  attribute3  ,
845 decode( p_attribute4 , fnd_api.g_miss_char , attribute4 , p_attribute4 )  attribute4  ,
846 decode( p_attribute5 , fnd_api.g_miss_char , attribute5 , p_attribute5 )  attribute5  ,
847 decode( p_attribute6 , fnd_api.g_miss_char , attribute6 , p_attribute6 )  attribute6  ,
848 decode( p_attribute7 , fnd_api.g_miss_char , attribute7 , p_attribute7 )  attribute7  ,
849 decode( p_attribute8 , fnd_api.g_miss_char , attribute8 , p_attribute8 )  attribute8  ,
850 decode( p_attribute9 , fnd_api.g_miss_char , attribute9 , p_attribute9 )  attribute9  ,
851 decode( p_attribute10 , fnd_api.g_miss_char , attribute10 , p_attribute10 )  attribute10  ,
852 decode( p_attribute11 , fnd_api.g_miss_char , attribute11 , p_attribute11 )  attribute11  ,
853 decode( p_attribute12 , fnd_api.g_miss_char , attribute12 , p_attribute12 )  attribute12  ,
854 decode( p_attribute13 , fnd_api.g_miss_char , attribute13 , p_attribute13 )  attribute13  ,
855 decode( p_attribute14 , fnd_api.g_miss_char , attribute14 , p_attribute14 )  attribute14  ,
856 decode( p_attribute15 , fnd_api.g_miss_char , attribute15 , p_attribute15 )  attribute15 ,
857 decode( p_attribute_category,fnd_api.g_miss_char,attribute_category,p_attribute_category) attribute_category,
858 decode( p_task_confirmation_status,jtf_task_utl.g_miss_char,task_confirmation_status,p_task_confirmation_status)
859       task_confirmation_status
860            FROM jtf_task_templates_vl
861           WHERE task_template_id =
862                    p_task_id;
863 
864       tasks                       c_task%ROWTYPE;
865    BEGIN
866       OPEN c_task;
867       FETCH c_task INTO tasks;
868 
869       IF c_task%NOTFOUND
870       THEN
871          fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TEMP');
872          fnd_message.set_token ('JTF_TASK_INVALID_TEMP', p_task_id);
873          fnd_msg_pub.add;
874          x_return_status := fnd_api.g_ret_sts_unexp_error;
875          RAISE fnd_api.g_exc_unexpected_error;
876       END IF;
877 
878       l_task_id := p_task_id;
879       l_task_name := tasks.task_name;
880       l_task_number := tasks.task_number;
881       l_task_type_id := tasks.task_type_id;
882       l_description := tasks.description;
883       l_task_status_id := tasks.task_status_id;
884       l_task_priority_id := tasks.task_priority_id;
885       l_duration := tasks.duration;
886       l_duration_uom := tasks.duration_uom;
887       l_private_flag := tasks.private_flag;
888       l_publish_flag := tasks.publish_flag;
889       l_planned_effort := tasks.planned_effort;
890       l_planned_effort_uom := tasks.planned_effort_uom;
891       l_restrict_closure_flag := tasks.restrict_closure_flag;
892       l_multi_booked_flag := tasks.multi_booked_flag;
893       l_milestone_flag := tasks.milestone_flag;
894       l_holiday_flag := tasks.holiday_flag;
895       l_billable_flag := tasks.billable_flag;
896       l_notification_flag := tasks.notification_flag;
897       l_notification_period := tasks.notification_period;
898       l_notification_period_uom := tasks.notification_period_uom;
899       l_alarm_start := tasks.alarm_start;
900       l_alarm_start_uom := tasks.alarm_start_uom;
901       l_alarm_on := tasks.alarm_on;
902       l_alarm_count := tasks.alarm_count;
903       l_alarm_interval := tasks.alarm_interval;
904       l_alarm_interval_uom := tasks.alarm_interval_uom;
905       l_task_confirmation_status := tasks.task_confirmation_status;
906 
907       jtf_task_templates_pub.lock_task
908       ( P_API_VERSION                 =>	1.0 ,
909        P_INIT_MSG_LIST                =>	fnd_api.g_false ,
910        P_COMMIT                       =>	fnd_api.g_false ,
911        P_TASK_ID                      =>	l_task_id ,
912        P_OBJECT_VERSION_NUMBER        =>	p_object_version_number,
913        X_RETURN_STATUS                =>	x_return_status ,
914        X_MSG_DATA                     =>	x_msg_data ,
915        X_MSG_COUNT                    =>	x_msg_count ) ;
916 
917       IF NOT (x_return_status = fnd_api.g_ret_sts_success)
918       THEN
919           x_return_status := fnd_api.g_ret_sts_unexp_error;
920           RAISE fnd_api.g_exc_unexpected_error;
921       END IF;
922 
923       jtf_task_templates_pkg.update_row (
924          x_task_template_id => l_task_id,
925          x_object_version_number => p_object_version_number + 1,
926             x_attribute1 => tasks.attribute1 ,
927             x_attribute2 => tasks.attribute2 ,
928             x_attribute3 => tasks.attribute3 ,
929             x_attribute4 => tasks.attribute4 ,
930             x_attribute5 => tasks.attribute5 ,
931             x_attribute6 => tasks.attribute6 ,
932             x_attribute7 => tasks.attribute7 ,
933             x_attribute8 => tasks.attribute8 ,
934             x_attribute9 => tasks.attribute9 ,
935             x_attribute10 => tasks.attribute10 ,
936             x_attribute11 => tasks.attribute11 ,
937             x_attribute12 => tasks.attribute12 ,
938             x_attribute13 => tasks.attribute13 ,
939             x_attribute14 => tasks.attribute14 ,
940             x_attribute15 => tasks.attribute15 ,
941             x_attribute_category => tasks.attribute_category ,
942          x_task_number => l_task_number,
943          x_task_group_id => tasks.task_group_id,
944          x_task_type_id => l_task_type_id,
945          x_task_status_id => l_task_status_id,
946          x_task_priority_id => l_task_priority_id,
947          x_duration => l_duration,
948          x_duration_uom => l_duration_uom,
949          x_planned_effort => l_planned_effort,
950          x_planned_effort_uom => l_planned_effort_uom,
951          x_private_flag => l_private_flag,
952          x_publish_flag => l_publish_flag,
953          x_restrict_closure_flag => l_restrict_closure_flag,
954          x_multi_booked_flag => l_multi_booked_flag,
955          x_milestone_flag => l_milestone_flag,
956          x_holiday_flag => l_holiday_flag,
957          x_billable_flag => l_billable_flag,
958          x_notification_flag => l_notification_flag,
959          x_notification_period => l_notification_period,
960          x_notification_period_uom => l_notification_period_uom,
961          x_recurrence_rule_id => tasks.recurrence_rule_id,
962          x_alarm_start => l_alarm_start,
963          x_alarm_start_uom => l_alarm_start_uom,
964          x_alarm_on => l_alarm_on,
965          x_alarm_count => l_alarm_count,
966          x_alarm_interval => l_alarm_interval,
967          x_alarm_interval_uom => l_alarm_interval_uom,
968          x_deleted_flag => 'N',
969          x_task_name => l_task_name,
970          x_description => l_description,
971          x_task_confirmation_status => l_task_confirmation_status,
972          x_last_update_date => SYSDATE,
973          x_last_updated_by => jtf_task_utl.updated_by,
974          x_last_update_login => jtf_task_utl.login_id
975       );
976 
977       p_object_version_number := p_object_version_number + 1;
978 
979    END;
980 
981    PROCEDURE delete_task (
982       p_api_version     IN       NUMBER,
983       p_init_msg_list   IN       VARCHAR2 DEFAULT fnd_api.g_false,
984       p_commit          IN       VARCHAR2 DEFAULT fnd_api.g_false,
985       p_object_version_number IN NUMBER,
986       p_task_id         IN       NUMBER,
987       x_return_status   OUT NOCOPY      VARCHAR2,
988       x_msg_count       OUT NOCOPY      NUMBER,
989       x_msg_data        OUT NOCOPY      VARCHAR2
990    )
991    IS
992       l_task_id   jtf_task_templates_b.task_template_id%TYPE := p_task_id;
993 
994       CURSOR c_dependencies
995       IS
996          SELECT dependency_id, object_version_number
997            FROM jtf_task_depends
998           WHERE (  task_id = l_task_id
999                 OR dependent_on_task_id = l_task_id)
1000             AND (template_flag = jtf_task_utl.g_yes);
1001    BEGIN
1002       SAVEPOINT delete_task_pvt;
1003       x_return_status := fnd_api.g_ret_sts_success;
1004 
1005             ---------------------------
1006       ---- delete dependencies
1007             ---------------------------
1008       FOR a IN c_dependencies
1009       LOOP
1010          jtf_task_dependency_pub.delete_task_dependency (
1011             p_api_version => 1.0,
1012             p_init_msg_list => fnd_api.g_false,
1013             p_commit => fnd_api.g_false,
1014             p_object_version_number => a.object_version_number,
1015             p_dependency_id => a.dependency_id,
1016             x_return_status => x_return_status,
1017             x_msg_count => x_msg_count,
1018             x_msg_data => x_msg_data
1019          );
1020 
1021          IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1022          THEN
1023             x_return_status := fnd_api.g_ret_sts_unexp_error;
1024             RAISE fnd_api.g_exc_unexpected_error;
1025          END IF;
1026       END LOOP;
1027 
1028       jtf_task_templates_pub.lock_task
1029       ( P_API_VERSION                 =>	1.0 ,
1030        P_INIT_MSG_LIST                =>	fnd_api.g_false ,
1031        P_COMMIT                       =>	fnd_api.g_false ,
1032        P_TASK_ID                      =>	l_task_id ,
1033        P_OBJECT_VERSION_NUMBER        =>	p_object_version_number,
1034        X_RETURN_STATUS                =>	x_return_status ,
1035        X_MSG_DATA                     =>	x_msg_data ,
1036        X_MSG_COUNT                    =>	x_msg_count ) ;
1037 
1038       IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1039       THEN
1040           x_return_status := fnd_api.g_ret_sts_unexp_error;
1041           RAISE fnd_api.g_exc_unexpected_error;
1042       END IF;
1043 
1044       UPDATE jtf_task_templates_b
1045          SET deleted_flag = 'Y'
1046        WHERE task_template_id = l_task_id;
1047 
1048       IF SQL%NOTFOUND
1049       THEN
1050          fnd_message.set_name ('JTF', 'JTF_TASK_ERROR_DELETING_TEMP');
1051          fnd_msg_pub.add;
1052          x_return_status := fnd_api.g_ret_sts_unexp_error;
1053          RAISE fnd_api.g_exc_unexpected_error;
1054       END IF;
1055 
1056       IF fnd_api.to_boolean (p_commit)
1057       THEN
1058          COMMIT WORK;
1059       END IF;
1060 
1061       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1062    EXCEPTION
1063       WHEN fnd_api.g_exc_unexpected_error
1064       THEN
1065          ROLLBACK TO delete_task_pvt;
1066          x_return_status := fnd_api.g_ret_sts_unexp_error;
1067          fnd_msg_pub.count_and_get (
1068             p_count => x_msg_count,
1069             p_data => x_msg_data
1070          );
1071       WHEN OTHERS
1072       THEN
1073          ROLLBACK TO delete_task_pvt;
1074          x_return_status := fnd_api.g_ret_sts_unexp_error;
1075 
1076          fnd_msg_pub.count_and_get (
1077             p_count => x_msg_count,
1078             p_data => x_msg_data
1079          );
1080    END;
1081 END;   -- CREATE OR REPLACE PACKAGE spec