[Home] [Help]
PACKAGE BODY: APPS.JTF_TASK_TEMPLATES_PUB
Source
1 PACKAGE BODY jtf_task_templates_pub AS
2 /* $Header: jtfptkmb.pls 120.1 2005/07/02 00:59:31 appldev ship $ */
3 g_pkg_name CONSTANT VARCHAR2(30) := 'JTF_TASK_TEMPLATES_PUB';
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_group_id IN NUMBER DEFAULT NULL,
11 p_task_group_name IN VARCHAR2 DEFAULT NULL,
12 p_task_name IN VARCHAR2,
13 p_task_type_name IN VARCHAR2 DEFAULT NULL,
14 p_task_type_id IN NUMBER DEFAULT NULL,
15 p_description IN VARCHAR2 DEFAULT NULL,
16 p_task_status_name IN VARCHAR2 DEFAULT NULL,
17 p_task_status_id IN NUMBER DEFAULT NULL,
18 p_task_priority_name IN VARCHAR2 DEFAULT NULL,
19 p_task_priority_id IN NUMBER DEFAULT NULL,
20 p_duration IN NUMBER DEFAULT NULL,
21 p_duration_uom IN VARCHAR2 DEFAULT NULL,
22 p_planned_effort IN NUMBER DEFAULT NULL,
23 p_planned_effort_uom IN VARCHAR2 DEFAULT NULL,
24 p_private_flag IN VARCHAR2 DEFAULT NULL,
25 p_publish_flag IN VARCHAR2 DEFAULT NULL,
26 p_restrict_closure_flag IN VARCHAR2 DEFAULT NULL,
27 p_multi_booked_flag IN VARCHAR2 DEFAULT NULL,
28 p_milestone_flag IN VARCHAR2 DEFAULT NULL,
29 p_holiday_flag IN VARCHAR2 DEFAULT NULL,
30 p_billable_flag IN VARCHAR2 DEFAULT NULL,
31 p_notification_flag IN VARCHAR2 DEFAULT NULL,
32 p_notification_period IN NUMBER DEFAULT NULL,
33 p_notification_period_uom IN VARCHAR2 DEFAULT NULL,
34 p_alarm_start IN NUMBER DEFAULT NULL,
35 p_alarm_start_uom IN VARCHAR2 DEFAULT NULL,
36 p_alarm_on IN VARCHAR2 DEFAULT NULL,
37 p_alarm_count IN NUMBER DEFAULT NULL,
38 p_alarm_interval IN NUMBER DEFAULT NULL,
39 p_alarm_interval_uom IN VARCHAR2 DEFAULT NULL,
40 p_task_depends_tbl IN task_depends_tbl
41 DEFAULT g_miss_task_depends_tbl,
42 p_task_rsrc_req_tbl IN task_rsrc_req_tbl
43 DEFAULT g_miss_task_rsrc_req_tbl,
44 p_task_recur_rec IN task_recur_rec
45 DEFAULT g_miss_task_recur_rec,
46 x_return_status OUT NOCOPY VARCHAR2,
47 x_msg_count OUT NOCOPY NUMBER,
48 x_msg_data OUT NOCOPY VARCHAR2,
49 x_task_id OUT NOCOPY NUMBER,
50 p_attribute1 IN VARCHAR2 DEFAULT null ,
51 p_attribute2 IN VARCHAR2 DEFAULT null ,
52 p_attribute3 IN VARCHAR2 DEFAULT null ,
53 p_attribute4 IN VARCHAR2 DEFAULT null ,
54 p_attribute5 IN VARCHAR2 DEFAULT null ,
55 p_attribute6 IN VARCHAR2 DEFAULT null ,
56 p_attribute7 IN VARCHAR2 DEFAULT null ,
57 p_attribute8 IN VARCHAR2 DEFAULT null ,
58 p_attribute9 IN VARCHAR2 DEFAULT null ,
59 p_attribute10 IN VARCHAR2 DEFAULT null ,
60 p_attribute11 IN VARCHAR2 DEFAULT null ,
61 p_attribute12 IN VARCHAR2 DEFAULT null ,
62 p_attribute13 IN VARCHAR2 DEFAULT null ,
63 p_attribute14 IN VARCHAR2 DEFAULT null ,
64 p_attribute15 IN VARCHAR2 DEFAULT null ,
65 p_attribute_category IN VARCHAR2 DEFAULT null
66 )
67 IS
68 l_api_version CONSTANT NUMBER := 1.0;
69 l_api_name CONSTANT VARCHAR2(30)
70 := 'CREATE_TASK_TEMPLATES';
71
72
73 BEGIN
74 SAVEPOINT create_task_pub1;
75 x_return_status := fnd_api.g_ret_sts_success;
76
77 IF NOT fnd_api.compatible_api_call (
78 l_api_version,
79 p_api_version,
80 l_api_name,
81 g_pkg_name
82 )
83 THEN
84 RAISE fnd_api.g_exc_unexpected_error;
85 END IF;
86
87 IF fnd_api.to_boolean (p_init_msg_list)
88 THEN
89 fnd_msg_pub.initialize;
90 END IF;
91
92 jtf_task_templates_pvt.create_task
93 (
94 p_api_version => p_api_version,
95 p_init_msg_list => p_init_msg_list,
96 p_commit => p_commit,
97 p_task_id => p_task_id,
98 p_task_name => p_task_name,
99 p_task_group_id => p_task_group_id,
100 p_task_type_id => p_task_type_id,
101 p_description => p_description,
102 p_task_status_id => p_task_status_id,
103 p_task_priority_id => p_task_priority_id,
104 p_duration => p_duration,
105 p_duration_uom => p_duration_uom,
106 p_planned_effort => p_planned_effort,
107 p_planned_effort_uom => p_planned_effort_uom,
108 p_private_flag => p_private_flag,
109 p_publish_flag => p_publish_flag,
110 p_restrict_closure_flag => p_restrict_closure_flag,
111 p_multi_booked_flag => p_multi_booked_flag,
112 p_milestone_flag => p_milestone_flag,
113 p_holiday_flag => p_holiday_flag,
114 p_billable_flag => p_billable_flag,
115 p_notification_flag => p_notification_flag,
116 p_notification_period => p_notification_period,
117 p_notification_period_uom => p_notification_period_uom,
118 p_alarm_start => p_alarm_start,
119 p_alarm_start_uom => p_alarm_start_uom,
120 p_alarm_on => p_alarm_on,
121 p_alarm_count => p_alarm_count,
122 p_alarm_interval => p_alarm_interval,
123 p_alarm_interval_uom => p_alarm_interval_uom,
124 x_return_status => x_return_status,
125 x_msg_count => x_msg_count,
126 x_msg_data => x_msg_data,
127 x_task_id => x_task_id,
128 p_attribute1 => p_attribute1,
129 p_attribute2 => p_attribute2,
130 p_attribute3 => p_attribute3,
131 p_attribute4 => p_attribute4,
132 p_attribute5 => p_attribute5,
133 p_attribute6 => p_attribute6,
134 p_attribute7 => p_attribute7,
135 p_attribute8 => p_attribute8,
136 p_attribute9 => p_attribute9,
137 p_attribute10 => p_attribute10,
138 p_attribute11 => p_attribute11,
139 p_attribute12 => p_attribute12,
140 p_attribute13 => p_attribute13,
141 p_attribute14 => p_attribute14,
142 p_attribute15 => p_attribute15,
143 p_attribute_category => p_attribute_category,
144 p_task_confirmation_status => 'N'
145
146 );
147
148 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
149 THEN
150 x_return_status := fnd_api.g_ret_sts_unexp_error;
151 RAISE fnd_api.g_exc_unexpected_error;
152 END IF;
153
154 IF fnd_api.to_boolean (p_commit)
155 THEN
156 COMMIT WORK;
157 END IF;
158
159 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
160 EXCEPTION
161 WHEN fnd_api.g_exc_unexpected_error
162 THEN
163 ROLLBACK TO create_task_pub1;
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 WHEN OTHERS
170 THEN
171 ROLLBACK TO create_task_pub1;
172 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
173 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
174 x_return_status := fnd_api.g_ret_sts_unexp_error;
175 fnd_msg_pub.count_and_get (
176 p_count => x_msg_count,
177 p_data => x_msg_data
178 );
179 END;
180
181 -- Overloading for Simplex
182 PROCEDURE create_task (
183 p_api_version IN NUMBER,
184 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
185 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
186 p_task_id IN NUMBER DEFAULT NULL,
187 p_task_group_id IN NUMBER default null,
188 p_task_group_name IN VARCHAR2 DEFAULT NULL,
189 p_task_name IN VARCHAR2,
190 p_task_type_name IN VARCHAR2 DEFAULT NULL,
191 p_task_type_id IN NUMBER DEFAULT NULL,
192 p_description IN VARCHAR2 DEFAULT NULL,
193 p_task_status_name IN VARCHAR2 DEFAULT NULL,
194 p_task_status_id IN NUMBER DEFAULT NULL,
195 p_task_priority_name IN VARCHAR2 DEFAULT NULL,
196 p_task_priority_id IN NUMBER DEFAULT NULL,
197 p_duration IN NUMBER DEFAULT NULL,
198 p_duration_uom IN VARCHAR2 DEFAULT NULL,
199 p_planned_effort IN NUMBER DEFAULT NULL,
200 p_planned_effort_uom IN VARCHAR2 DEFAULT NULL,
201 p_private_flag IN VARCHAR2 DEFAULT NULL,
202 p_publish_flag IN VARCHAR2 DEFAULT NULL,
203 p_restrict_closure_flag IN VARCHAR2 DEFAULT NULL,
204 p_multi_booked_flag IN VARCHAR2 DEFAULT NULL,
205 p_milestone_flag IN VARCHAR2 DEFAULT NULL,
206 p_holiday_flag IN VARCHAR2 DEFAULT NULL,
207 p_billable_flag IN VARCHAR2 DEFAULT NULL,
208 p_notification_flag IN VARCHAR2 DEFAULT NULL,
209 p_notification_period IN NUMBER DEFAULT NULL,
210 p_notification_period_uom IN VARCHAR2 DEFAULT NULL,
211 p_alarm_start IN NUMBER DEFAULT NULL,
212 p_alarm_start_uom IN VARCHAR2 DEFAULT NULL,
213 p_alarm_on IN VARCHAR2 DEFAULT NULL,
214 p_alarm_count IN NUMBER DEFAULT NULL,
215 p_alarm_interval IN NUMBER DEFAULT NULL,
216 p_alarm_interval_uom IN VARCHAR2 DEFAULT NULL,
217 p_task_depends_tbl IN task_depends_tbl DEFAULT g_miss_task_depends_tbl,
218 p_task_rsrc_req_tbl IN task_rsrc_req_tbl DEFAULT g_miss_task_rsrc_req_tbl,
219 p_task_recur_rec IN task_recur_rec DEFAULT g_miss_task_recur_rec,
220 x_return_status OUT NOCOPY VARCHAR2,
221 x_msg_count OUT NOCOPY NUMBER,
222 x_msg_data OUT NOCOPY VARCHAR2,
223 x_task_id OUT NOCOPY NUMBER,
224 p_attribute1 IN VARCHAR2 DEFAULT null ,
225 p_attribute2 IN VARCHAR2 DEFAULT null ,
226 p_attribute3 IN VARCHAR2 DEFAULT null ,
227 p_attribute4 IN VARCHAR2 DEFAULT null ,
228 p_attribute5 IN VARCHAR2 DEFAULT null ,
229 p_attribute6 IN VARCHAR2 DEFAULT null ,
230 p_attribute7 IN VARCHAR2 DEFAULT null ,
231 p_attribute8 IN VARCHAR2 DEFAULT null ,
232 p_attribute9 IN VARCHAR2 DEFAULT null ,
233 p_attribute10 IN VARCHAR2 DEFAULT null ,
234 p_attribute11 IN VARCHAR2 DEFAULT null ,
235 p_attribute12 IN VARCHAR2 DEFAULT null ,
236 p_attribute13 IN VARCHAR2 DEFAULT null ,
237 p_attribute14 IN VARCHAR2 DEFAULT null ,
238 p_attribute15 IN VARCHAR2 DEFAULT null ,
239 p_attribute_category IN VARCHAR2 DEFAULT null ,
240 p_task_confirmation_status IN VARCHAR2
241 )
242 IS
243 l_api_version CONSTANT NUMBER := 1.0;
244 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TASK_TEMPLATES';
245 l_task_id jtf_tasks_b.task_id%TYPE;
246 l_task_number jtf_tasks_b.task_number%TYPE;
247 l_task_name jtf_tasks_tl.task_name%TYPE := p_task_name;
248 l_task_type_id jtf_tasks_b.task_type_id%TYPE := p_task_type_id;
249 l_task_priority_id jtf_tasks_b.task_priority_id%TYPE := p_task_priority_id;
250 l_task_status_id jtf_tasks_b.task_status_id%TYPE := p_task_status_id;
251 l_dependency_id jtf_task_depends.dependency_id%TYPE;
252 l_recurrence_rule_id jtf_task_recur_rules.recurrence_rule_id%TYPE;
253 l_task_rec jtf_task_recurrences_pub.task_details_rec;
254 l_task_group_id jtf_task_templates_b.task_group_id%TYPE;
255 l_description jtf_task_templates_tl.description%TYPE := p_description;
256 l_reccurence_generated NUMBER;
257 l_type VARCHAR2(10);
258 current_record INTEGER;
259 x CHAR;
260 l_task_confirmation_status jtf_task_templates_b.task_confirmation_status%TYPE;
261
262 CURSOR c_task_templates
263 IS
264 SELECT 1
265 FROM jtf_task_templates_b
266 WHERE task_template_id = x_task_id;
267 BEGIN
268 SAVEPOINT create_task_pub;
269 x_return_status := fnd_api.g_ret_sts_success;
270
271
272 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
273 THEN
274 RAISE fnd_api.g_exc_unexpected_error;
275 END IF;
276
277 IF fnd_api.to_boolean (p_init_msg_list)
278 THEN
279 fnd_msg_pub.initialize;
280 END IF;
281
282 -------
283 ------- Validate Task Type
284 -------
285 jtf_task_utl.validate_task_type (
286 p_task_type_id => p_task_type_id,
287 p_task_type_name => p_task_type_name,
288 x_return_status => x_return_status,
289 x_task_type_id => l_task_type_id
290 );
291
292 IF l_task_type_id IS NULL
293 THEN
294 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TYPE');
295 fnd_msg_pub.add;
296 RAISE fnd_api.g_exc_unexpected_error;
297 END IF;
298
299 -------
300 ------- Validate Task Status
301 -------
302 if l_task_type_id = '22' then
303 l_type := 'ESCALATION';
304 else
305 l_type := 'TASK';
306 end if;
307
308 jtf_task_utl.validate_task_status (
309 p_task_status_id => p_task_status_id,
310 p_task_status_name => p_task_status_name,
311 p_validation_type => l_type,
312 x_return_status => x_return_status,
313 x_task_status_id => l_task_status_id
314 );
315
316 IF l_task_status_id IS NULL
317 THEN
318 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_STATUS');
319 fnd_msg_pub.add;
320 RAISE fnd_api.g_exc_unexpected_error;
321 END IF;
322
323
324 -------
325 ------- Validate Task Priority
326 -------
327 jtf_task_utl.validate_task_priority (
328 p_task_priority_id => p_task_priority_id,
329 p_task_priority_name => p_task_priority_name,
330 x_return_status => x_return_status,
331 x_task_priority_id => l_task_priority_id
332 );
333
334
335 -------
336 ------- Validate Duration
337 -------
338 jtf_task_utl.validate_effort (
339 p_tag => 'Duration',
340 p_tag_uom => 'Duration UOM',
341 x_return_status => x_return_status,
342 p_effort => p_duration,
343 p_effort_uom => p_duration_uom
344 );
345
346 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
347 THEN
348 x_return_status := fnd_api.g_ret_sts_unexp_error;
349 RAISE fnd_api.g_exc_unexpected_error;
350 END IF;
351
352 -------
353 ------- Validate Planned Effort
354 -------
355 jtf_task_utl.validate_effort (
356 p_tag => 'Planned Effort',
357 p_tag_uom => 'Planned Effort Unit of Measure',
358 x_return_status => x_return_status,
359 p_effort => p_planned_effort,
360 p_effort_uom => p_planned_effort_uom);
361
362 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
363 THEN
364 x_return_status := fnd_api.g_ret_sts_unexp_error;
365 RAISE fnd_api.g_exc_unexpected_error;
366 END IF;
367
368 -------
369 ------- Call the private flag
370 -------
371 jtf_task_utl.validate_flag (x_return_status => x_return_status, p_flag_name => 'Private Flag', p_flag_value => p_private_flag);
372
373 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
374 THEN
375 x_return_status := fnd_api.g_ret_sts_unexp_error;
376 RAISE fnd_api.g_exc_unexpected_error;
377 END IF;
378
379
380
381 -------
382 ------- Call the publish flag
383 -------
384 jtf_task_utl.validate_flag (x_return_status => x_return_status, p_flag_name => 'Publish Flag', p_flag_value => p_publish_flag);
385
386 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
387 THEN
388 x_return_status := fnd_api.g_ret_sts_unexp_error;
389 RAISE fnd_api.g_exc_unexpected_error;
390 END IF;
391
392 -------
393 ------- Call the Restrict closure flag
394 -------
395 jtf_task_utl.validate_flag (
396 p_api_name => l_api_name,
397 p_init_msg_list => fnd_api.g_false,
398 x_return_status => x_return_status,
399 p_flag_name => 'Restrict Closure Flag',
400 p_flag_value => p_restrict_closure_flag
401 );
402
403 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
404 THEN
405 x_return_status := fnd_api.g_ret_sts_unexp_error;
406 RAISE fnd_api.g_exc_unexpected_error;
407 END IF;
408
409 -------
410 ------- Call the Multi Booked flag
411 -------
412 jtf_task_utl.validate_flag (
413 p_api_name => l_api_name,
414 p_init_msg_list => fnd_api.g_false,
415 x_return_status => x_return_status,
416 p_flag_name => 'Multi Booked Flag',
417 p_flag_value => p_multi_booked_flag
418 );
419
420 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
421 THEN
422 x_return_status := fnd_api.g_ret_sts_unexp_error;
423 RAISE fnd_api.g_exc_unexpected_error;
424 END IF;
425
426 -------
427 ------- Call the milestone flag
428 -------
429 jtf_task_utl.validate_flag (
430 p_api_name => l_api_name,
431 p_init_msg_list => fnd_api.g_false,
432 x_return_status => x_return_status,
433 p_flag_name => 'Milestone Flag',
434 p_flag_value => p_milestone_flag
435 );
436
437 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
438 THEN
439 x_return_status := fnd_api.g_ret_sts_unexp_error;
440 RAISE fnd_api.g_exc_unexpected_error;
441 END IF;
442
443 -------
444 ------- Call the Holiday Flag
445 -------
446 jtf_task_utl.validate_flag (
447 p_api_name => l_api_name,
448 p_init_msg_list => fnd_api.g_false,
449 x_return_status => x_return_status,
450 p_flag_name => 'Holiday Flag',
451 p_flag_value => p_holiday_flag
452 );
453
454 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
455 THEN
456 x_return_status := fnd_api.g_ret_sts_unexp_error;
457 RAISE fnd_api.g_exc_unexpected_error;
458 END IF;
459
460 -------
461 ------- Call the Billable Flag
462 -------
463 jtf_task_utl.validate_flag (x_return_status => x_return_status, p_flag_name => 'Billable Flag', p_flag_value => p_billable_flag);
464
465 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
466 THEN
467 x_return_status := fnd_api.g_ret_sts_unexp_error;
468 RAISE fnd_api.g_exc_unexpected_error;
469 END IF;
470
471 -------
472 ------- Call the Validate Notification Parameters
473 -------
474 jtf_task_utl.validate_notification (
475 p_notification_flag => p_notification_flag,
476 p_notification_period => p_notification_period,
477 p_notification_period_uom => p_notification_period_uom,
478 x_return_status => x_return_status
479 );
480
481 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
482 THEN
483 x_return_status := fnd_api.g_ret_sts_unexp_error;
484 RAISE fnd_api.g_exc_unexpected_error;
485 END IF;
486
487
488 -------
489 ------- Call the Validate Task Template Group
490 -------
491 jtf_task_utl.validate_task_template_group (
492 p_task_template_group_id => p_task_group_id ,
493 p_task_template_group_name => p_task_group_name,
494 x_return_status => x_return_status ,
495 x_task_template_group_id => l_task_group_id );
496
497 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
498 THEN
499 x_return_status := fnd_api.g_ret_sts_unexp_error;
500 RAISE fnd_api.g_exc_unexpected_error;
501 END IF;
502
503 if l_task_group_id is null then
504 fnd_message.set_name('JTF', 'JTF_TASK_MISSING_GROUP');
505 fnd_msg_pub.add ;
506 x_return_status := fnd_api.g_ret_sts_unexp_error;
507 RAISE fnd_api.g_exc_unexpected_error;
508 end if ;
509
510
511
512 jtf_task_templates_pvt.create_task (
513 p_api_version => 1.0,
514 p_init_msg_list => fnd_api.g_false,
515 p_commit => fnd_api.g_false,
516 p_task_id => l_task_id,
517 p_task_name => l_task_name,
518 p_task_group_id => l_task_group_id,
519 p_task_type_id => l_task_type_id,
520 p_description => l_description,
521 p_task_status_id => l_task_status_id,
522 p_task_priority_id => l_task_priority_id,
523 p_duration => p_duration,
524 p_duration_uom => p_duration_uom,
525 p_planned_effort => p_planned_effort,
526 p_planned_effort_uom => p_planned_effort_uom,
527 p_private_flag => p_private_flag,
528 p_publish_flag => p_publish_flag,
529 p_restrict_closure_flag => p_restrict_closure_flag,
530 p_multi_booked_flag => p_multi_booked_flag,
531 p_milestone_flag => p_milestone_flag,
532 p_holiday_flag => p_holiday_flag,
533 p_billable_flag => p_billable_flag,
534 p_notification_flag => p_notification_flag,
535 p_notification_period => p_notification_period,
536 p_notification_period_uom => p_notification_period_uom,
537 p_alarm_start => p_alarm_start,
538 p_alarm_start_uom => p_alarm_start_uom,
539 p_alarm_on => p_alarm_on,
540 p_alarm_count => p_alarm_count,
541 p_alarm_interval => p_alarm_interval,
542 p_alarm_interval_uom => p_alarm_interval_uom,
543 x_return_status => x_return_status,
544 x_msg_count => x_msg_count,
545 x_msg_data => x_msg_data,
546 x_task_id => x_task_id,
547 p_attribute1 => p_attribute1 ,
548 p_attribute2 => p_attribute2 ,
549 p_attribute3 => p_attribute3 ,
550 p_attribute4 => p_attribute4 ,
551 p_attribute5 => p_attribute5 ,
552 p_attribute6 => p_attribute6 ,
553 p_attribute7 => p_attribute7 ,
554 p_attribute8 => p_attribute8 ,
555 p_attribute9 => p_attribute9 ,
556 p_attribute10 => p_attribute10 ,
557 p_attribute11 => p_attribute11 ,
558 p_attribute12 => p_attribute12 ,
559 p_attribute13 => p_attribute13 ,
560 p_attribute14 => p_attribute14 ,
561 p_attribute15 => p_attribute15,
562 p_attribute_category => p_attribute_category,
563 p_task_confirmation_status => l_task_confirmation_status
564 );
565
566
567
568
569
570 OPEN c_task_templates;
571 FETCH c_task_templates INTO x;
572
573 IF c_task_templates%NOTFOUND
574 THEN
575 fnd_message.set_name ('JTF', 'JTF_TASK_ERROR_CREATING_TEMP');
576 fnd_msg_pub.add;
577 x_return_status := fnd_api.g_ret_sts_unexp_error;
578 RAISE fnd_api.g_exc_unexpected_error;
579 END IF;
580
581 -------
582 -------
583 ------- Create the dependencies
584 -------
585 -------
586
587 IF p_task_depends_tbl.COUNT > 0
588 THEN
589
590 current_record := p_task_depends_tbl.FIRST;
591
592 FOR i IN 1 .. p_task_depends_tbl.COUNT
593 LOOP
594
595 jtf_task_dependency_pub.create_task_dependency (
596 p_api_version => 1.0,
597 p_init_msg_list => fnd_api.g_false,
598 p_commit => fnd_api.g_false,
599 p_validation_level => fnd_api.g_valid_level_full,
600 p_task_id => x_task_id,
601 p_dependent_on_task_id => p_task_depends_tbl (current_record).dependent_on_task_id,
602 p_dependent_on_task_number => p_task_depends_tbl (current_record).dependent_on_task_number,
603 p_dependency_type_code => p_task_depends_tbl (current_record).dependency_type_code,
604 p_template_flag => jtf_task_utl.g_yes,
605 p_adjustment_time => p_task_depends_tbl (current_record).adjustment_time,
606 p_adjustment_time_uom => p_task_depends_tbl (current_record).adjustment_time_uom,
607 p_validated_flag => p_task_depends_tbl (current_record).validated_flag,
608 x_dependency_id => l_dependency_id,
609 x_return_status => x_return_status,
610 x_msg_count => x_msg_count,
611 x_msg_data => x_msg_data
612 );
613
614
615 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
616 THEN
617 x_return_status := fnd_api.g_ret_sts_unexp_error;
618 RAISE fnd_api.g_exc_unexpected_error;
619 END IF;
620
621 current_record := p_task_depends_tbl.NEXT (current_record);
622 END LOOP;
623 END IF;
624
625 -------
626 -------
627 ------- Create recurrences
628 -------
629 ------- Creatinf Recurrence rule
630
631 IF ( p_task_recur_rec.occurs_which IS NOT NULL
632 OR p_task_recur_rec.day_of_week IS NOT NULL
633 OR p_task_recur_rec.date_of_month IS NOT NULL
634 OR p_task_recur_rec.occurs_month IS NOT NULL
635 OR p_task_recur_rec.occurs_uom IS NOT NULL
636 OR p_task_recur_rec.occurs_every IS NOT NULL
637 OR p_task_recur_rec.occurs_number IS NOT NULL
638 OR p_task_recur_rec.start_date_active IS NOT NULL
639 OR p_task_recur_rec.end_date_active IS NOT NULL)
640 THEN
641 jtf_task_recurrences_pub.create_task_recurrence (
642 p_api_version => 1.0,
643 p_init_msg_list => fnd_api.g_false,
644 p_commit => fnd_api.g_false,
645 p_task_id => x_task_id,
646 p_occurs_which => p_task_recur_rec.occurs_which,
647 p_template_flag => jtf_task_utl.g_yes,
648 p_day_of_week => p_task_recur_rec.day_of_week,
649 p_date_of_month => p_task_recur_rec.date_of_month,
650 p_occurs_month => p_task_recur_rec.occurs_month,
651 p_occurs_uom => p_task_recur_rec.occurs_uom,
652 p_occurs_every => p_task_recur_rec.occurs_every,
653 p_occurs_number => p_task_recur_rec.occurs_number,
654 p_start_date_active => p_task_recur_rec.start_date_active,
655 p_end_date_active => p_task_recur_rec.end_date_active,
656 x_return_status => x_return_status,
657 x_msg_count => x_msg_count,
658 x_msg_data => x_msg_data,
659 x_recurrence_rule_id => l_recurrence_rule_id,
660 x_task_rec => l_task_rec,
661 x_reccurences_generated => l_reccurence_generated
662 );
663
664 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
665 THEN
666 x_return_status := fnd_api.g_ret_sts_unexp_error;
667 RAISE fnd_api.g_exc_unexpected_error;
668 END IF;
669 END IF;
670
671
672
673 IF fnd_api.to_boolean (p_commit)
674 THEN
675 COMMIT WORK;
676 END IF;
677
678 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
679 EXCEPTION
680 WHEN fnd_api.g_exc_unexpected_error
681 THEN
682
683
684 ROLLBACK TO create_task_pub;
685 x_return_status := fnd_api.g_ret_sts_unexp_error;
686 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
687 WHEN OTHERS
688 THEN
689
690
691
692 ROLLBACK TO create_task_pub;
693 x_return_status := fnd_api.g_ret_sts_unexp_error;
694 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
695 END;
696
697 PROCEDURE lock_task (
698 p_api_version IN NUMBER,
699 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
700 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
701 p_task_id IN NUMBER,
702 p_object_version_number IN NUMBER,
703 x_return_status OUT NOCOPY VARCHAR2,
704 x_msg_data OUT NOCOPY VARCHAR2,
705 x_msg_count OUT NOCOPY NUMBER
706 ) is
707 l_api_version CONSTANT NUMBER := 1.0;
708 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_TASK_TEMPLATES';
709
710
711 Resource_Locked exception ;
712
713 PRAGMA EXCEPTION_INIT ( Resource_Locked , - 54 ) ;
714
715 begin
716 SAVEPOINT lock_task_pub;
717
718 x_return_status := fnd_api.g_ret_sts_success;
719
720 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
721 THEN
722 RAISE fnd_api.g_exc_unexpected_error;
723 END IF;
724
725 IF fnd_api.to_boolean (p_init_msg_list)
726 THEN
727 fnd_msg_pub.initialize;
728 END IF;
729
730 x_return_status := fnd_api.g_ret_sts_success;
731
732 jtf_task_templates_pkg.lock_row(
733 x_task_template_id => p_task_id ,
734 x_object_version_number => p_object_version_number );
735
736
737 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
738
739 EXCEPTION
740 WHEN Resource_Locked then
741 ROLLBACK TO lock_task_pub;
742 fnd_message.set_name ('JTF', 'JTF_TASK_RESOURCE_LOCKED');
743 fnd_message.set_token ('P_LOCKED_RESOURCE', 'Contacts');
744 x_return_status := fnd_api.g_ret_sts_unexp_error;
745 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
746
747 WHEN fnd_api.g_exc_unexpected_error
748 THEN
749 ROLLBACK TO lock_task_pub;
750 x_return_status := fnd_api.g_ret_sts_unexp_error;
751 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
752 WHEN OTHERS
753 THEN
754 ROLLBACK TO lock_task_pub;
755 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
756 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
757 x_return_status := fnd_api.g_ret_sts_unexp_error;
758 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
759 END;
760
761
762
763 PROCEDURE update_task (
764 p_api_version IN NUMBER,
765 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
766 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
767 p_object_version_number IN OUT NOCOPY NUMBER ,
768 p_task_id IN NUMBER DEFAULT fnd_api.g_miss_num,
769 p_task_number IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
770 p_task_group_id IN NUMBER DEFAULT fnd_api.g_miss_num,
771 p_task_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
772 p_task_type_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
773 p_task_type_id IN NUMBER DEFAULT fnd_api.g_miss_num,
774 p_description IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
775 p_task_status_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
776 p_task_status_id IN NUMBER DEFAULT fnd_api.g_miss_num,
777 p_task_priority_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
778 p_task_priority_id IN NUMBER DEFAULT fnd_api.g_miss_num,
779 p_duration IN NUMBER DEFAULT fnd_api.g_miss_num,
780 p_duration_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
781 p_planned_effort IN NUMBER DEFAULT fnd_api.g_miss_num,
782 p_planned_effort_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
783 p_private_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
784 p_publish_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
785 p_restrict_closure_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
786 p_multi_booked_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
787 p_milestone_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
788 p_holiday_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
789 p_billable_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
790 p_notification_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
791 p_notification_period IN NUMBER DEFAULT fnd_api.g_miss_num,
792 p_notification_period_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
793 p_alarm_start IN NUMBER DEFAULT fnd_api.g_miss_num,
794 p_alarm_start_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
795 p_alarm_on IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
796 p_alarm_count IN NUMBER DEFAULT fnd_api.g_miss_num,
797 p_alarm_interval IN NUMBER DEFAULT fnd_api.g_miss_num,
798 p_alarm_interval_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
799 x_return_status OUT NOCOPY VARCHAR2,
800 x_msg_count OUT NOCOPY NUMBER,
801 x_msg_data OUT NOCOPY VARCHAR2,
802 p_attribute1 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
803 p_attribute2 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
804 p_attribute3 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
805 p_attribute4 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
806 p_attribute5 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
807 p_attribute6 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
808 p_attribute7 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
809 p_attribute8 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
810 p_attribute9 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
811 p_attribute10 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
812 p_attribute11 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
813 p_attribute12 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
814 p_attribute13 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
815 p_attribute14 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
816 p_attribute15 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
817 p_attribute_category IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
818 p_task_confirmation_status IN VARCHAR2
819 ) is
820 l_api_version CONSTANT NUMBER := 1.0;
821 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_TASK_TEMPLATE';
822 l_task_id jtf_task_templates_b.task_template_id%TYPE := p_task_id;
823 l_task_number jtf_task_templates_b.task_number%TYPE := p_task_number;
824 l_task_name jtf_task_templates_tl.task_name%TYPE := p_task_name;
825 l_task_type_name jtf_task_types_tl.name%TYPE := p_task_type_name;
826 l_task_type_id jtf_task_types_b.task_type_id%TYPE := p_task_type_id;
827 l_task_status_name jtf_task_statuses_tl.name%TYPE := p_task_status_name;
828 l_task_status_id jtf_task_statuses_b.task_status_id%TYPE := p_task_status_id;
829 l_task_priority_name jtf_task_priorities_tl.name%TYPE := p_task_priority_name;
830 l_task_priority_id jtf_task_priorities_b.task_priority_id%TYPE := p_task_priority_id;
831 l_duration jtf_task_templates_b.duration%TYPE;
832 l_duration_uom jtf_task_templates_b.duration_uom%TYPE;
833 l_private_flag jtf_task_templates_b.private_flag%TYPE;
834 l_publish_flag jtf_task_templates_b.publish_flag%TYPE;
835 l_restrict_closure_flag jtf_task_templates_b.restrict_closure_flag%TYPE;
836 l_multi_booked_flag jtf_task_templates_b.multi_booked_flag%TYPE;
837 l_description jtf_task_templates_tl.description%TYPE;
838 l_planned_effort jtf_task_templates_b.planned_effort%TYPE;
839 l_planned_effort_uom jtf_task_templates_b.planned_effort_uom%TYPE;
840 l_milestone_flag jtf_task_templates_b.milestone_flag%TYPE;
841 l_holiday_flag jtf_task_templates_b.holiday_flag%TYPE;
842 l_notification_flag jtf_task_templates_b.notification_flag%TYPE;
843 l_notification_period jtf_task_templates_b.notification_period%TYPE;
844 l_notification_period_uom jtf_task_templates_b.notification_period_uom%TYPE;
845 l_billable_flag jtf_task_templates_b.billable_flag%TYPE;
846 l_alarm_start jtf_task_templates_b.alarm_start%TYPE;
847 l_alarm_start_uom jtf_task_templates_b.alarm_start_uom%TYPE;
848 l_alarm_on jtf_task_templates_b.alarm_on%TYPE;
849 l_alarm_count jtf_task_templates_b.alarm_count%TYPE;
850 l_alarm_interval jtf_task_templates_b.alarm_interval%TYPE;
851 l_alarm_interval_uom jtf_task_templates_b.alarm_interval_uom%TYPE;
852 l_type varchar2(10);
853 l_task_confirmation_status jtf_task_templates_b.task_confirmation_status%TYPE;
854
855
856 CURSOR c_task_update (
857 l_task_id IN NUMBER
858 )
859 IS
860 SELECT DECODE (p_task_id, fnd_api.g_miss_num, task_template_id, p_task_id) task_id,
861 DECODE (p_task_number, fnd_api.g_miss_char, task_number, p_task_number) task_number,
862 DECODE (p_task_name, fnd_api.g_miss_char, task_name, p_task_name) task_name,
863 DECODE (p_task_type_id, fnd_api.g_miss_num, task_type_id, p_task_type_id) task_type_id,
864 DECODE (p_description, fnd_api.g_miss_char, description, p_description) description,
865 DECODE (p_task_status_id, fnd_api.g_miss_num, task_status_id, p_task_status_id) task_status_id,
866 DECODE (p_task_priority_id, fnd_api.g_miss_num, task_priority_id, p_task_priority_id) task_priority_id,
867 DECODE (p_duration, fnd_api.g_miss_num, duration, p_duration) duration,
868 DECODE (p_duration_uom, fnd_api.g_miss_char, duration_uom, p_duration_uom) duration_uom,
869 DECODE (p_planned_effort, fnd_api.g_miss_num, planned_effort, p_planned_effort) planned_effort,
870 DECODE (p_planned_effort_uom, fnd_api.g_miss_char, planned_effort_uom, p_planned_effort_uom) planned_effort_uom,
871 DECODE (p_private_flag, fnd_api.g_miss_char, private_flag, p_private_flag) private_flag,
872 DECODE (p_publish_flag, fnd_api.g_miss_char, publish_flag, p_publish_flag) publish_flag,
873 DECODE (p_restrict_closure_flag, fnd_api.g_miss_char, restrict_closure_flag, p_restrict_closure_flag) restrict_closure_flag,
874 DECODE (p_multi_booked_flag, fnd_api.g_miss_char, multi_booked_flag, p_multi_booked_flag) multi_booked_flag,
875 DECODE (p_milestone_flag, fnd_api.g_miss_char, milestone_flag, p_milestone_flag) milestone_flag,
876 DECODE (p_holiday_flag, fnd_api.g_miss_char, holiday_flag, p_holiday_flag) holiday_flag,
877 DECODE (p_billable_flag, fnd_api.g_miss_char, billable_flag, p_billable_flag) billable_flag,
878 DECODE (p_notification_flag, fnd_api.g_miss_char, notification_flag, p_notification_flag) notification_flag,
879 DECODE (p_notification_period, fnd_api.g_miss_num, notification_period, p_notification_period) notification_period,
880 DECODE (p_notification_period_uom, fnd_api.g_miss_char, notification_period_uom, p_notification_period_uom) notification_period_uom,
881 DECODE (p_alarm_start, fnd_api.g_miss_num, alarm_start, p_alarm_start) alarm_start,
882 DECODE (p_alarm_start_uom, fnd_api.g_miss_char, alarm_start_uom, p_alarm_start_uom) alarm_start_uom,
883 DECODE (p_alarm_on, fnd_api.g_miss_char, alarm_on, p_alarm_on) alarm_on,
884 DECODE (p_alarm_count, fnd_api.g_miss_num, alarm_count, p_alarm_count) alarm_count,
885 DECODE (p_alarm_interval, fnd_api.g_miss_num, alarm_interval, p_alarm_interval) alarm_interval,
886 DECODE (p_alarm_interval_uom, fnd_api.g_miss_char, alarm_interval_uom, p_alarm_interval_uom) alarm_interval_uom,
887 decode( p_attribute1 , fnd_api.g_miss_char , attribute1 , p_attribute1 ) attribute1 ,
888 decode( p_attribute2 , fnd_api.g_miss_char , attribute2 , p_attribute2 ) attribute2 ,
889 decode( p_attribute3 , fnd_api.g_miss_char , attribute3 , p_attribute3 ) attribute3 ,
890 decode( p_attribute4 , fnd_api.g_miss_char , attribute4 , p_attribute4 ) attribute4 ,
891 decode( p_attribute5 , fnd_api.g_miss_char , attribute5 , p_attribute5 ) attribute5 ,
892 decode( p_attribute6 , fnd_api.g_miss_char , attribute6 , p_attribute6 ) attribute6 ,
893 decode( p_attribute7 , fnd_api.g_miss_char , attribute7 , p_attribute7 ) attribute7 ,
894 decode( p_attribute8 , fnd_api.g_miss_char , attribute8 , p_attribute8 ) attribute8 ,
895 decode( p_attribute9 , fnd_api.g_miss_char , attribute9 , p_attribute9 ) attribute9 ,
896 decode( p_attribute10 , fnd_api.g_miss_char , attribute10 , p_attribute10 ) attribute10 ,
897 decode( p_attribute11 , fnd_api.g_miss_char , attribute11 , p_attribute11 ) attribute11 ,
898 decode( p_attribute12 , fnd_api.g_miss_char , attribute12 , p_attribute12 ) attribute12 ,
899 decode( p_attribute13 , fnd_api.g_miss_char , attribute13 , p_attribute13 ) attribute13 ,
900 decode( p_attribute14 , fnd_api.g_miss_char , attribute14 , p_attribute14 ) attribute14 ,
901 decode( p_attribute15 , fnd_api.g_miss_char , attribute15 , p_attribute15 ) attribute15 ,
902 decode( p_attribute_category,fnd_api.g_miss_char,attribute_category,p_attribute_category) attribute_category,
903 decode( p_task_confirmation_status,jtf_task_utl.g_miss_char,task_confirmation_status,p_task_confirmation_status)
904 task_confirmation_status
905 FROM jtf_task_templates_vl
906 WHERE task_template_id = l_task_id;
907
908 task_rec c_task_update%ROWTYPE;
909
910 BEGIN
911
912 SAVEPOINT update_task_pub;
913
914 x_return_status := fnd_api.g_ret_sts_success;
915
916 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
917 THEN
918 RAISE fnd_api.g_exc_unexpected_error;
919 END IF;
920
921 IF fnd_api.to_boolean (p_init_msg_list)
922 THEN
923 fnd_msg_pub.initialize;
924 END IF;
925
926
927
928 -----
929 ----- Validate Tasks
930 -----
931 IF ( l_task_id = fnd_api.g_miss_num
932 AND l_task_number = fnd_api.g_miss_char)
933 THEN
934 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP');
935 fnd_msg_pub.add;
936 x_return_status := fnd_api.g_ret_sts_unexp_error;
937 RAISE fnd_api.g_exc_unexpected_error;
938 ELSE
939 SELECT DECODE (l_task_id, fnd_api.g_miss_num, NULL, l_task_id)
940 INTO l_task_id
941 FROM dual;
942 SELECT DECODE (l_task_number, fnd_api.g_miss_char, NULL, l_task_number)
943 INTO l_task_number
944 FROM dual;
945 jtf_task_utl.validate_task_template (
946 p_task_id => l_task_id,
947 p_task_number => l_task_number,
948 x_task_id => l_task_id,
949 x_return_status => x_return_status
950 );
951
952
953
954 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
955 THEN
956 x_return_status := fnd_api.g_ret_sts_unexp_error;
957 RAISE fnd_api.g_exc_unexpected_error;
958 END IF;
959
960 IF l_task_id IS NULL
961 THEN
962 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP');
963 fnd_msg_pub.add;
964 x_return_status := fnd_api.g_ret_sts_unexp_error;
965 RAISE fnd_api.g_exc_unexpected_error;
966 END IF;
967 END IF;
968
969
970
971 -----
972 ----- Task Name
973 -----
974 IF l_task_name IS NULL
975 THEN
976 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP_NAME');
977 fnd_msg_pub.add;
978 x_return_status := fnd_api.g_ret_sts_unexp_error;
979 RAISE fnd_api.g_exc_unexpected_error;
980 END IF;
981
982 -----
983 ----- Task Description
984 -----
985 OPEN c_task_update (l_task_id);
986 FETCH c_task_update INTO task_rec;
987
988 IF c_task_update%NOTFOUND
989 THEN
990 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TEMP');
991 fnd_msg_pub.add;
992 x_return_status := fnd_api.g_ret_sts_unexp_error;
993 RAISE fnd_api.g_exc_unexpected_error;
994 END IF;
995
996
997
998
999 -----
1000 ----- Task Type
1001 -----
1002 IF ( l_task_type_name = fnd_api.g_miss_char
1003 AND l_task_type_id = fnd_api.g_miss_num)
1004 THEN
1005 l_task_type_id := task_rec.task_type_id;
1006 ELSIF ( l_task_type_name = fnd_api.g_miss_char
1007 AND l_task_type_id <> fnd_api.g_miss_num)
1008 THEN
1009 jtf_task_utl.validate_task_type (
1010 p_task_type_id => l_task_type_id,
1011 p_task_type_name => NULL,
1012 x_return_status => x_return_status,
1013 x_task_type_id => l_task_type_id
1014 );
1015 ELSIF ( l_task_type_name <> fnd_api.g_miss_char
1016 AND l_task_type_id = fnd_api.g_miss_num)
1017 THEN
1018 jtf_task_utl.validate_task_type (
1019 p_task_type_id => NULL,
1020 p_task_type_name => l_task_type_name,
1021 x_return_status => x_return_status,
1022 x_task_type_id => l_task_type_id
1023 );
1024 ELSE
1025 jtf_task_utl.validate_task_type (
1026 p_task_type_id => l_task_type_id,
1027 p_task_type_name => l_task_type_name,
1028 x_return_status => x_return_status,
1029 x_task_type_id => l_task_type_id
1030 );
1031 END IF;
1032
1033 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1034 THEN
1035 x_return_status := fnd_api.g_ret_sts_unexp_error;
1036 RAISE fnd_api.g_exc_unexpected_error;
1037 END IF;
1038
1039 IF l_task_type_id IS NULL
1040 THEN
1041 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TYPE');
1042 fnd_msg_pub.add;
1043 RAISE fnd_api.g_exc_unexpected_error;
1044 END IF;
1045
1046
1047
1048 -----
1049 ----- Task Status
1050 -----
1051 if l_task_type_id = '22' then
1052 l_type := 'ESCALATION';
1053 else
1054 l_type := 'TASK';
1055 end if;
1056
1057 IF ( l_task_status_name = fnd_api.g_miss_char
1058 AND l_task_status_id = fnd_api.g_miss_num)
1059 THEN
1060 l_task_status_id := task_rec.task_status_id;
1061 ELSIF ( l_task_status_name = fnd_api.g_miss_char
1062 AND l_task_status_id <> fnd_api.g_miss_num)
1063 THEN
1064 jtf_task_utl.validate_task_status (
1065 p_task_status_id => l_task_status_id,
1066 p_task_status_name => NULL,
1067 p_validation_type => l_type,
1068 x_return_status => x_return_status,
1069 x_task_status_id => l_task_status_id
1070 );
1071 ELSIF ( l_task_status_name <> fnd_api.g_miss_char
1072 AND l_task_status_id = fnd_api.g_miss_num)
1073 THEN
1074 jtf_task_utl.validate_task_status (
1075 p_task_status_id => NULL,
1076 p_task_status_name => l_task_status_name,
1077 p_validation_type => l_type,
1078 x_return_status => x_return_status,
1079 x_task_status_id => l_task_status_id
1080 );
1081 ELSE
1082 jtf_task_utl.validate_task_status (
1083 p_task_status_id => l_task_status_id,
1084 p_task_status_name => l_task_status_name,
1085 p_validation_type => l_type,
1086 x_return_status => x_return_status,
1087 x_task_status_id => l_task_status_id
1088 );
1089 END IF;
1090
1091 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1092 THEN
1093 x_return_status := fnd_api.g_ret_sts_unexp_error;
1094 RAISE fnd_api.g_exc_unexpected_error;
1095 END IF;
1096
1097 IF l_task_status_id IS NULL
1098 THEN
1099 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_STATUS');
1100 fnd_msg_pub.add;
1101 RAISE fnd_api.g_exc_unexpected_error;
1102 END IF;
1103
1104
1105
1106 --------
1107 -------- Task Priority
1108 --------
1109 IF ( l_task_priority_name = fnd_api.g_miss_char
1110 AND l_task_priority_id = fnd_api.g_miss_num)
1111 THEN
1112 l_task_priority_id := task_rec.task_priority_id;
1113 ELSIF ( l_task_priority_name = fnd_api.g_miss_char
1114 AND l_task_priority_id <> fnd_api.g_miss_num)
1115 THEN
1116 jtf_task_utl.validate_task_priority (
1117 p_task_priority_id => l_task_priority_id,
1118 p_task_priority_name => NULL,
1119 x_return_status => x_return_status,
1120 x_task_priority_id => l_task_priority_id
1121 );
1122 ELSIF ( l_task_priority_name <> fnd_api.g_miss_char
1123 AND l_task_priority_id = fnd_api.g_miss_num)
1124 THEN
1125 jtf_task_utl.validate_task_priority (
1126 p_task_priority_id => NULL,
1127 p_task_priority_name => l_task_priority_name,
1128 x_return_status => x_return_status,
1129 x_task_priority_id => l_task_priority_id
1130 );
1131 ELSE
1132 jtf_task_utl.validate_task_priority (
1133 p_task_priority_id => l_task_priority_id,
1134 p_task_priority_name => l_task_priority_name,
1135 x_return_status => x_return_status,
1136 x_task_priority_id => l_task_priority_id
1137 );
1138 END IF;
1139
1140 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1141 THEN
1142 x_return_status := fnd_api.g_ret_sts_unexp_error;
1143 RAISE fnd_api.g_exc_unexpected_error;
1144 END IF;
1145
1146 ----------
1147 ---------- Validate duration
1148 ----------
1149 IF ( p_duration <> fnd_api.g_miss_num
1150 OR p_duration_uom <> fnd_api.g_miss_char
1151 OR p_duration IS NULL
1152 OR p_duration_uom IS NULL)
1153 THEN
1154 IF (p_duration <> fnd_api.g_miss_num)
1155 OR (p_duration IS NULL)
1156 THEN
1157 l_duration := p_duration;
1158 ELSE
1159 l_duration := task_rec.duration;
1160 END IF;
1161
1162 IF p_duration_uom <> fnd_api.g_miss_char
1163 OR (p_duration_uom IS NULL)
1164 THEN
1165 l_duration_uom := p_duration_uom;
1166 ELSE
1167 l_duration_uom := task_rec.duration_uom;
1168 END IF;
1169
1170 jtf_task_utl.validate_effort (
1171 p_tag => 'Duration',
1172 p_tag_uom => 'Duration UOM',
1173 p_effort => l_duration,
1174 p_effort_uom => l_duration_uom,
1175 x_return_status => x_return_status
1176 );
1177
1178 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1179 THEN
1180 x_return_status := fnd_api.g_ret_sts_unexp_error;
1181 RAISE fnd_api.g_exc_unexpected_error;
1182 END IF;
1183 END IF;
1184
1185 ----------
1186 ---------- Validate planned_effort
1187 ----------
1188
1189 l_planned_effort := task_rec.planned_effort;
1190 l_planned_effort_uom := task_rec.planned_effort_uom ;
1191
1192 IF ( p_planned_effort <> fnd_api.g_miss_num
1193 OR p_planned_effort_uom <> fnd_api.g_miss_char
1194 OR p_planned_effort IS NULL
1195 OR p_planned_effort_uom IS NULL)
1196 THEN
1197 /* IF (p_planned_effort <> fnd_api.g_miss_num)
1198 OR (p_planned_effort IS NULL)
1199 THEN
1200 l_planned_effort := p_planned_effort;
1201 ELSE
1202 l_planned_effort := task_rec.planned_effort;
1203 END IF;
1204
1205 IF p_planned_effort_uom <> fnd_api.g_miss_char
1206 OR (p_planned_effort_uom IS NULL)
1207 THEN
1208 l_planned_effort_uom := p_planned_effort_uom;
1209 ELSE
1210 l_planned_effort_uom := task_rec.planned_effort_uom;
1211 END IF;
1212 */
1213
1214
1215 jtf_task_utl.validate_effort (
1216 p_tag => 'Planned Effort',
1217 p_tag_uom => 'Planned Effort Unit of Measure',
1218 p_effort => l_planned_effort,
1219 p_effort_uom => l_planned_effort_uom,
1220 x_return_status => x_return_status
1221 );
1222
1223 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1224 THEN
1225 x_return_status := fnd_api.g_ret_sts_unexp_error;
1226 RAISE fnd_api.g_exc_unexpected_error;
1227 END IF;
1228 END IF;
1229
1230 IF p_private_flag <> fnd_api.g_miss_char
1231 THEN
1232 jtf_task_utl.validate_flag (p_flag_name => 'Private Flag', p_flag_value => p_private_flag, x_return_status => x_return_status);
1233
1234 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1235 THEN
1236 x_return_status := fnd_api.g_ret_sts_unexp_error;
1237 RAISE fnd_api.g_exc_unexpected_error;
1238 END IF;
1239
1240 l_private_flag := p_private_flag;
1241 ELSE
1242 l_private_flag := task_rec.private_flag;
1243 END IF;
1244
1245 -------
1246 ------- Validate publish flag
1247 -------
1248 IF p_publish_flag <> fnd_api.g_miss_char
1249 OR p_publish_flag IS NULL
1250 THEN
1251 jtf_task_utl.validate_flag (p_flag_name => 'Publish Flag', p_flag_value => p_publish_flag, x_return_status => x_return_status);
1252
1253 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1254 THEN
1255 x_return_status := fnd_api.g_ret_sts_unexp_error;
1256 RAISE fnd_api.g_exc_unexpected_error;
1257 END IF;
1258
1259 l_publish_flag := p_publish_flag;
1260 ELSE
1261 l_publish_flag := task_rec.publish_flag;
1262 END IF;
1263
1264
1265
1266 -------
1267 ------- Validate restrict closure flag
1268 -------
1269 IF p_restrict_closure_flag <> fnd_api.g_miss_char
1270 OR p_restrict_closure_flag IS NULL
1271 THEN
1272 jtf_task_utl.validate_flag (
1273 p_flag_name => 'Restrict Closure Flag',
1274 p_flag_value => p_restrict_closure_flag,
1275 x_return_status => x_return_status
1276 );
1277
1278 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1279 THEN
1280 x_return_status := fnd_api.g_ret_sts_unexp_error;
1281 RAISE fnd_api.g_exc_unexpected_error;
1282 END IF;
1283
1284 l_restrict_closure_flag := p_restrict_closure_flag;
1285 ELSE
1286 l_restrict_closure_flag := task_rec.restrict_closure_flag;
1287 END IF;
1288
1289 -------
1290 ------- Validate multibooked flag
1291 -------
1292 IF p_multi_booked_flag <> fnd_api.g_miss_char
1293 OR p_multi_booked_flag IS NULL
1294 THEN
1295 jtf_task_utl.validate_flag (p_flag_name => 'Multi Booked Flag', p_flag_value => p_multi_booked_flag, x_return_status => x_return_status);
1296
1297 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1298 THEN
1299 x_return_status := fnd_api.g_ret_sts_unexp_error;
1300 RAISE fnd_api.g_exc_unexpected_error;
1301 END IF;
1302
1303 l_multi_booked_flag := p_multi_booked_flag;
1304 ELSE
1305 l_multi_booked_flag := task_rec.multi_booked_flag;
1306 END IF;
1307
1308 -------
1309 ------- Validate milestone flag
1310 -------
1311 IF p_milestone_flag <> fnd_api.g_miss_char
1312 OR p_milestone_flag IS NULL
1313 THEN
1314 jtf_task_utl.validate_flag (p_flag_name => 'Milestone Flag', p_flag_value => p_milestone_flag, x_return_status => x_return_status);
1315
1316 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1317 THEN
1318 x_return_status := fnd_api.g_ret_sts_unexp_error;
1319 RAISE fnd_api.g_exc_unexpected_error;
1320 END IF;
1321
1322 l_milestone_flag := p_milestone_flag;
1323 ELSE
1324 l_milestone_flag := task_rec.milestone_flag;
1325 END IF;
1326
1327 -------
1328 ------- Validate holiday flag
1329 -------
1330
1331 IF p_holiday_flag <> fnd_api.g_miss_char
1332 OR p_holiday_flag IS NULL
1333 THEN
1334 jtf_task_utl.validate_flag (p_flag_name => 'Holiday Flag', p_flag_value => p_holiday_flag, x_return_status => x_return_status);
1335
1336 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1337 THEN
1338 x_return_status := fnd_api.g_ret_sts_unexp_error;
1339 RAISE fnd_api.g_exc_unexpected_error;
1340 END IF;
1341
1342 l_holiday_flag := p_holiday_flag;
1343 ELSE
1344 l_holiday_flag := task_rec.holiday_flag;
1345 END IF;
1346
1347 -------
1348 ------- Validate billable flag
1349 -------
1350
1351 IF p_billable_flag <> fnd_api.g_miss_char
1352 THEN
1353 jtf_task_utl.validate_flag (p_flag_name => 'Billable Flag', p_flag_value => p_billable_flag, x_return_status => x_return_status);
1354
1355 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1356 THEN
1357 x_return_status := fnd_api.g_ret_sts_unexp_error;
1358 RAISE fnd_api.g_exc_unexpected_error;
1359 END IF;
1360
1361 l_billable_flag := p_billable_flag;
1362 ELSE
1363 l_billable_flag := task_rec.billable_flag;
1364 END IF;
1365
1366 -----------
1367 ----------- Validate alarm
1368 -----------
1369
1370 IF ( p_alarm_start <> fnd_api.g_miss_num
1371 OR p_alarm_start_uom <> fnd_api.g_miss_char
1372 OR p_alarm_on <> fnd_api.g_miss_char
1373 OR p_alarm_count <> fnd_api.g_miss_num
1374 OR p_alarm_interval <> fnd_api.g_miss_num
1375 OR p_alarm_interval_uom <> fnd_api.g_miss_char
1376 OR p_alarm_start IS NULL
1377 OR p_alarm_start_uom IS NULL
1378 OR p_alarm_on IS NULL
1379 OR p_alarm_count IS NULL
1380 OR p_alarm_interval IS NULL
1381 OR p_alarm_interval_uom IS NULL)
1382 THEN
1383 l_alarm_start := task_rec.alarm_start;
1384 l_alarm_start_uom := task_rec.alarm_start_uom;
1385 l_alarm_on := task_rec.alarm_on;
1386 l_alarm_interval := task_rec.alarm_interval;
1387 l_alarm_interval_uom := task_rec.alarm_interval_uom;
1388 l_alarm_count := task_rec.alarm_count;
1389 jtf_task_utl.validate_alarm (
1390 p_alarm_start => l_alarm_start,
1391 p_alarm_start_uom => l_alarm_start_uom,
1392 p_alarm_on => l_alarm_on,
1393 p_alarm_count => l_alarm_count,
1394 p_alarm_interval => l_alarm_interval,
1395 p_alarm_interval_uom => l_alarm_interval_uom,
1396 x_return_status => x_return_status
1397 );
1398
1399 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1400 THEN
1401 x_return_status := fnd_api.g_ret_sts_unexp_error;
1402 RAISE fnd_api.g_exc_unexpected_error;
1403 END IF;
1404
1405 ELSE
1406 l_alarm_start := task_rec.alarm_start;
1407 l_alarm_start_uom := task_rec.alarm_start_uom;
1408 l_alarm_on := task_rec.alarm_on;
1409 l_alarm_interval := task_rec.alarm_interval;
1410 l_alarm_interval_uom := task_rec.alarm_interval_uom;
1411 l_alarm_count := task_rec.alarm_count;
1412 END IF;
1413
1414
1415
1416 -------
1417 ------- Validate Notification
1418 -------
1419 IF ( p_notification_period <> fnd_api.g_miss_num
1420 OR p_notification_period IS NULL
1421 OR p_notification_period_uom <> fnd_api.g_miss_char
1422 OR p_notification_period_uom IS NULL
1423 OR p_notification_flag <> fnd_api.g_miss_char
1424 OR p_notification_flag IS NULL)
1425 THEN
1426 l_notification_flag := task_rec.notification_flag;
1427 l_notification_period := task_rec.notification_period;
1428 l_notification_period_uom := task_rec.notification_period_uom;
1429 jtf_task_utl.validate_notification (
1430 p_notification_flag => l_notification_flag,
1431 p_notification_period => l_notification_period,
1432 p_notification_period_uom => l_notification_period_uom,
1433 x_return_status => x_return_status
1434 );
1435
1436
1437 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1438 THEN
1439 x_return_status := fnd_api.g_ret_sts_unexp_error;
1440 RAISE fnd_api.g_exc_unexpected_error;
1441 END IF;
1442
1443
1444 ELSE
1445 l_notification_flag := task_rec.notification_flag;
1446 l_notification_period := task_rec.notification_period;
1447 l_notification_period_uom := task_rec.notification_period_uom;
1448 END IF;
1449
1450
1451 jtf_task_templates_pvt.update_task (
1452 p_api_version => 1.0,
1453 p_init_msg_list => fnd_api.g_false,
1454 p_commit => fnd_api.g_false,
1455 p_object_version_number => p_object_version_number,
1456 p_task_id => l_task_id,
1457 p_task_name => l_task_name,
1458 p_task_type_id => l_task_type_id,
1459 p_description => task_rec.description,
1460 p_task_status_id => l_task_status_id,
1461 p_task_priority_id => l_task_priority_id,
1462 p_duration => l_duration,
1463 p_duration_uom => l_duration_uom,
1464 p_planned_effort => l_planned_effort,
1465 p_planned_effort_uom => l_planned_effort_uom,
1466 p_private_flag => l_private_flag,
1467 p_publish_flag => l_publish_flag,
1468 p_restrict_closure_flag => l_restrict_closure_flag,
1469 p_multi_booked_flag => l_multi_booked_flag,
1470 p_milestone_flag => l_milestone_flag,
1471 p_holiday_flag => l_holiday_flag,
1472 p_billable_flag => l_billable_flag,
1473 p_notification_flag => l_notification_flag,
1474 p_notification_period => l_notification_period,
1475 p_notification_period_uom => l_notification_period_uom,
1476 p_alarm_start => l_alarm_start,
1477 p_alarm_start_uom => l_alarm_start_uom,
1478 p_alarm_on => l_alarm_on,
1479 p_alarm_count => l_alarm_count,
1480 p_alarm_interval => l_alarm_interval,
1481 p_alarm_interval_uom => l_alarm_interval_uom,
1482 x_return_status => x_return_status,
1483 x_msg_count => x_msg_count,
1484 x_msg_data => x_msg_data,
1485 p_attribute1 => task_rec.attribute1 ,
1486 p_attribute2 => task_rec.attribute2 ,
1487 p_attribute3 => task_rec.attribute3 ,
1488 p_attribute4 => task_rec.attribute4 ,
1489 p_attribute5 => task_rec.attribute5 ,
1490 p_attribute6 => task_rec.attribute6 ,
1491 p_attribute7 => task_rec.attribute7 ,
1492 p_attribute8 => task_rec.attribute8 ,
1493 p_attribute9 => task_rec.attribute9 ,
1494 p_attribute10 => task_rec.attribute10 ,
1495 p_attribute11 => task_rec.attribute11 ,
1496 p_attribute12 => task_rec.attribute12 ,
1497 p_attribute13 => task_rec.attribute13 ,
1498 p_attribute14 => task_rec.attribute14 ,
1499 p_attribute15 => task_rec.attribute15 ,
1500 p_attribute_category => task_rec.attribute_category,
1501 p_task_confirmation_status => task_rec.task_confirmation_status
1502 );
1503 EXCEPTION
1504 WHEN fnd_api.g_exc_unexpected_error
1505 THEN
1506 ROLLBACK TO update_task_pub;
1507 x_return_status := fnd_api.g_ret_sts_unexp_error;
1508 WHEN NO_DATA_FOUND
1509 THEN
1510 ROLLBACK TO update_task_pub;
1511 x_return_status := fnd_api.g_ret_sts_unexp_error;
1512 WHEN OTHERS
1513 THEN
1514 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
1515 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
1516 ROLLBACK TO update_task_pub;
1517 x_return_status := fnd_api.g_ret_sts_unexp_error;
1518 END;
1519
1520 PROCEDURE update_task (
1521 p_api_version IN NUMBER,
1522 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
1523 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
1524 p_object_version_number IN OUT NOCOPY NUMBER ,
1525 p_task_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1526 p_task_number IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1527 p_task_group_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1528 p_task_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1529 p_task_type_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1530 p_task_type_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1531 p_description IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1532 p_task_status_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1533 p_task_status_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1534 p_task_priority_name IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1535 p_task_priority_id IN NUMBER DEFAULT fnd_api.g_miss_num,
1536 p_duration IN NUMBER DEFAULT fnd_api.g_miss_num,
1537 p_duration_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1538 p_planned_effort IN NUMBER DEFAULT fnd_api.g_miss_num,
1539 p_planned_effort_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1540 p_private_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1541 p_publish_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1542 p_restrict_closure_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1543 p_multi_booked_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1544 p_milestone_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1545 p_holiday_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1546 p_billable_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1547 p_notification_flag IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1548 p_notification_period IN NUMBER DEFAULT fnd_api.g_miss_num,
1549 p_notification_period_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1550 p_alarm_start IN NUMBER DEFAULT fnd_api.g_miss_num,
1551 p_alarm_start_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1552 p_alarm_on IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1553 p_alarm_count IN NUMBER DEFAULT fnd_api.g_miss_num,
1554 p_alarm_interval IN NUMBER DEFAULT fnd_api.g_miss_num,
1555 p_alarm_interval_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
1556 x_return_status OUT NOCOPY VARCHAR2,
1557 x_msg_count OUT NOCOPY NUMBER,
1558 x_msg_data OUT NOCOPY VARCHAR2,
1559 p_attribute1 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1560 p_attribute2 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1561 p_attribute3 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1562 p_attribute4 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1563 p_attribute5 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1564 p_attribute6 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1565 p_attribute7 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1566 p_attribute8 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1567 p_attribute9 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1568 p_attribute10 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1569 p_attribute11 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1570 p_attribute12 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1571 p_attribute13 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1572 p_attribute14 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1573 p_attribute15 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1574 p_attribute_category IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char
1575 )
1576 IS
1577 l_api_version CONSTANT NUMBER := 1.0;
1578 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_TASK';
1579 BEGIN
1580 SAVEPOINT update_task_pub1;
1581 x_return_status := fnd_api.g_ret_sts_success;
1582
1583 IF NOT fnd_api.compatible_api_call (
1584 l_api_version,
1585 p_api_version,
1586 l_api_name,
1587 g_pkg_name
1588 )
1589 THEN
1590 RAISE fnd_api.g_exc_unexpected_error;
1591 END IF;
1592
1593 IF fnd_api.to_boolean (p_init_msg_list)
1594 THEN
1595 fnd_msg_pub.initialize;
1596 END IF;
1597
1598 jtf_task_templates_pub.update_task (
1599 p_api_version => p_api_version,
1600 p_init_msg_list => p_init_msg_list,
1601 p_commit => p_commit,
1602 p_object_version_number => p_object_version_number,
1603 p_task_id => p_task_id,
1604 p_task_number => p_task_number,
1605 p_task_group_id => p_task_group_id,
1606 p_task_name => p_task_name,
1607 p_task_type_name => p_task_type_name,
1608 p_task_type_id => p_task_type_id,
1609 p_description => p_description,
1610 p_task_status_name => p_task_status_name,
1611 p_task_status_id => p_task_status_id,
1612 p_task_priority_name => p_task_priority_name,
1613 p_task_priority_id => p_task_priority_id,
1614 p_duration => p_duration,
1615 p_duration_uom => p_duration_uom,
1616 p_planned_effort => p_planned_effort,
1617 p_planned_effort_uom => p_planned_effort_uom,
1618 p_private_flag => p_private_flag,
1619 p_publish_flag => p_publish_flag,
1620 p_restrict_closure_flag => p_restrict_closure_flag,
1621 p_multi_booked_flag => p_multi_booked_flag,
1622 p_milestone_flag => p_milestone_flag,
1623 p_holiday_flag => p_holiday_flag,
1624 p_billable_flag => p_billable_flag,
1625 p_notification_flag => p_notification_flag,
1626 p_notification_period => p_notification_period,
1627 p_notification_period_uom => p_notification_period_uom,
1628 p_alarm_start => p_alarm_start,
1629 p_alarm_start_uom => p_alarm_start_uom,
1630 p_alarm_on => p_alarm_on,
1631 p_alarm_count => p_alarm_count,
1632 --p_alarm_fired_count => p_alarm_fired_count,
1633 p_alarm_interval => p_alarm_interval,
1634 p_alarm_interval_uom => p_alarm_interval_uom,
1635 x_return_status => x_return_status,
1636 x_msg_count => x_msg_count,
1637 x_msg_data => x_msg_data,
1638 p_attribute1 => p_attribute1,
1639 p_attribute2 => p_attribute2,
1640 p_attribute3 => p_attribute3,
1641 p_attribute4 => p_attribute4,
1642 p_attribute5 => p_attribute5,
1643 p_attribute6 => p_attribute6,
1644 p_attribute7 => p_attribute7,
1645 p_attribute8 => p_attribute8,
1646 p_attribute9 => p_attribute9,
1647 p_attribute10 => p_attribute10,
1648 p_attribute11 => p_attribute11,
1649 p_attribute12 => p_attribute12,
1650 p_attribute13 => p_attribute13,
1651 p_attribute14 => p_attribute14,
1652 p_attribute15 => p_attribute15,
1653 p_attribute_category => p_attribute_category,
1654 p_task_confirmation_status => 'N'
1655 );
1656
1657 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1658 THEN
1659 x_return_status := fnd_api.g_ret_sts_unexp_error;
1660 RAISE fnd_api.g_exc_unexpected_error;
1661 END IF;
1662
1663 IF fnd_api.to_boolean (p_commit)
1664 THEN
1665 COMMIT WORK;
1666 END IF;
1667
1668 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1669 EXCEPTION
1670 WHEN fnd_api.g_exc_unexpected_error
1671 THEN
1672 ROLLBACK TO update_task_pub1;
1673 x_return_status := fnd_api.g_ret_sts_unexp_error;
1674 fnd_msg_pub.count_and_get (
1675 p_count => x_msg_count,
1676 p_data => x_msg_data
1677 );
1678 WHEN OTHERS
1679 THEN
1680 ROLLBACK TO update_task_pub1;
1681 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
1682 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
1683 x_return_status := fnd_api.g_ret_sts_unexp_error;
1684 fnd_msg_pub.count_and_get (
1685 p_count => x_msg_count,
1686 p_data => x_msg_data
1687 );
1688 END;
1689
1690 PROCEDURE delete_task (
1691 p_api_version IN NUMBER,
1692 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
1693 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
1694 p_object_version_number IN NUMBER ,
1695
1696 p_task_id IN NUMBER DEFAULT NULL,
1697 p_task_number IN VARCHAR2 DEFAULT NULL,
1698 x_return_status OUT NOCOPY VARCHAR2,
1699 x_msg_count OUT NOCOPY NUMBER,
1700 x_msg_data OUT NOCOPY VARCHAR2
1701 )
1702 is
1703 l_api_version CONSTANT NUMBER := 1.0;
1704 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_TASK';
1705 l_task_id jtf_tasks_b.task_id%TYPE := p_task_id;
1706 l_task_number jtf_tasks_b.task_number%TYPE := p_task_number;
1707 BEGIN
1708
1709 SAVEPOINT delete_task_pub;
1710
1711 x_return_status := fnd_api.g_ret_sts_success;
1712
1713 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1714 THEN
1715 RAISE fnd_api.g_exc_unexpected_error;
1716 END IF;
1717
1718 IF fnd_api.to_boolean (p_init_msg_list)
1719 THEN
1720 fnd_msg_pub.initialize;
1721 END IF;
1722
1723 IF ( l_task_id IS NULL
1724 AND l_task_number IS NULL)
1725 THEN
1726 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP');
1727 fnd_msg_pub.add;
1728 x_return_status := fnd_api.g_ret_sts_unexp_error;
1729 RAISE fnd_api.g_exc_unexpected_error;
1730 ELSE
1731 jtf_task_utl.validate_task_template (
1732 p_task_id => l_task_id,
1733 p_task_number => l_task_number,
1734 x_task_id => l_task_id,
1735 x_return_status => x_return_status
1736 );
1737
1738 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1739 THEN
1740 x_return_status := fnd_api.g_ret_sts_unexp_error;
1741 RAISE fnd_api.g_exc_unexpected_error;
1742 END IF;
1743
1744 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1745 THEN
1746 x_return_status := fnd_api.g_ret_sts_unexp_error;
1747 RAISE fnd_api.g_exc_unexpected_error;
1748 END IF;
1749 END IF;
1750
1751 jtf_task_templates_pvt.delete_task (
1752 p_api_version => 1.0,
1753 p_init_msg_list => fnd_api.g_false,
1754 p_commit => fnd_api.g_false,
1755 p_object_version_number => p_object_version_number,
1756 p_task_id => l_task_id,
1757 x_return_status => x_return_status,
1758 x_msg_count => x_msg_count,
1759 x_msg_data => x_msg_data
1760 );
1761
1762 IF fnd_api.to_boolean (p_commit)
1763 THEN
1764 COMMIT WORK;
1765 END IF;
1766
1767 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1768 EXCEPTION
1769 WHEN fnd_api.g_exc_unexpected_error
1770 THEN
1771 ROLLBACK TO delete_task_pub;
1772 x_return_status := fnd_api.g_ret_sts_unexp_error;
1773 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1774 WHEN OTHERS
1775 THEN
1776 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
1777 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
1778 ROLLBACK TO delete_task_pub;
1779 x_return_status := fnd_api.g_ret_sts_unexp_error;
1780 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1781 END;
1782
1783
1784 END;