[Home] [Help]
PACKAGE BODY: APPS.JTF_TASK_DEPENDENCY_PUB
Source
1 PACKAGE BODY jtf_task_dependency_pub AS
2 /* $Header: jtfptkeb.pls 120.1 2005/07/02 00:58:52 appldev ship $ */
3 g_pkg_name CONSTANT VARCHAR2(30) := 'JTF_TASK_DEPENDENCY_PUB';
4
5 PROCEDURE create_task_dependency (
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_validation_level IN VARCHAR2 DEFAULT fnd_api.g_valid_level_full,
10 p_task_id IN NUMBER DEFAULT NULL,
11 p_task_number IN VARCHAR2 DEFAULT NULL,
12 p_dependent_on_task_id IN NUMBER DEFAULT NULL,
13 p_dependent_on_task_number IN VARCHAR2 DEFAULT NULL,
14 p_dependency_type_code IN VARCHAR2,
15 p_template_flag IN VARCHAR2 DEFAULT jtf_task_utl.g_no,
16 p_adjustment_time IN NUMBER DEFAULT NULL,
17 p_adjustment_time_uom IN VARCHAR2 DEFAULT NULL,
18 p_validated_flag IN VARCHAR2 DEFAULT jtf_task_utl.g_no,
19 x_dependency_id OUT NOCOPY NUMBER,
20 x_return_status OUT NOCOPY VARCHAR2,
21 x_msg_count OUT NOCOPY NUMBER,
22 x_msg_data OUT NOCOPY VARCHAR2,
23 p_attribute1 IN VARCHAR2 DEFAULT null ,
24 p_attribute2 IN VARCHAR2 DEFAULT null ,
25 p_attribute3 IN VARCHAR2 DEFAULT null ,
26 p_attribute4 IN VARCHAR2 DEFAULT null ,
27 p_attribute5 IN VARCHAR2 DEFAULT null ,
28 p_attribute6 IN VARCHAR2 DEFAULT null ,
29 p_attribute7 IN VARCHAR2 DEFAULT null ,
30 p_attribute8 IN VARCHAR2 DEFAULT null ,
31 p_attribute9 IN VARCHAR2 DEFAULT null ,
32 p_attribute10 IN VARCHAR2 DEFAULT null ,
33 p_attribute11 IN VARCHAR2 DEFAULT null ,
34 p_attribute12 IN VARCHAR2 DEFAULT null ,
35 p_attribute13 IN VARCHAR2 DEFAULT null ,
36 p_attribute14 IN VARCHAR2 DEFAULT null ,
37 p_attribute15 IN VARCHAR2 DEFAULT null ,
38 p_attribute_category IN VARCHAR2 DEFAULT null
39 )
40 IS
41 l_api_version CONSTANT NUMBER := 1.0;
42 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_TASK_DEPENDENCY';
43 l_task_id jtf_tasks_b.task_id%TYPE := p_task_id;
44 l_task_number jtf_tasks_b.task_id%TYPE := p_task_number;
45 l_dependent_on_task_id jtf_tasks_b.task_id%TYPE := p_dependent_on_task_id;
46 l_dependent_on_task_number jtf_tasks_b.task_id%TYPE := p_dependent_on_task_number;
47 l_template_flag jtf_task_depends.template_flag%TYPE := p_template_flag;
48 l_dependency_type_code jtf_task_depends.dependency_type_code%TYPE := p_dependency_type_code;
49 l_adjustment_time jtf_task_depends.adjustment_time%TYPE := p_adjustment_time;
50 l_adjustment_time_uom jtf_task_depends.adjustment_time_uom%TYPE := p_adjustment_time_uom;
51 x CHAR;
52 BEGIN
53 SAVEPOINT create_task_dependency_pub;
54 x_return_status := fnd_api.g_ret_sts_success;
55
56 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
57 THEN
58 RAISE fnd_api.g_exc_unexpected_error;
59 END IF;
60
61 IF fnd_api.to_boolean (p_init_msg_list)
62 THEN
63 fnd_msg_pub.initialize;
64 END IF;
65
66 --- Validate if the template flag is in the following fnd_api.g_true , fnd_api.g_false , NULL
67 jtf_task_utl.validate_flag (
68 p_api_name => l_api_name,
69 p_init_msg_list => fnd_api.g_false,
70 x_return_status => x_return_status,
71 p_flag_name => 'Template Flag',
72 p_flag_value => l_template_flag
73 );
74
75 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
76 THEN
77 x_return_status := fnd_api.g_ret_sts_unexp_error;
78 RAISE fnd_api.g_exc_unexpected_error;
79 END IF;
80
81
82
83 ---- The dependecy is between the tasks
84 ---- if the template flag is null, it assumes the dependency is between the tasks.
85 IF jtf_task_utl.to_boolean (l_template_flag)
86 THEN
87 jtf_task_utl.validate_task_template (
88 x_return_status => x_return_status,
89 p_task_id => l_task_id,
90 p_task_number => l_task_number,
91 x_task_id => l_task_id
92 );
93
94 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
95 THEN
96 x_return_status := fnd_api.g_ret_sts_unexp_error;
97 RAISE fnd_api.g_exc_unexpected_error;
98 END IF;
99
100 IF l_task_id IS NULL
101 THEN
102 x_return_status := fnd_api.g_ret_sts_unexp_error;
103 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP');
104 fnd_message.set_token ('P_TASK_TEMPLATE_ID', l_task_id);
105 fnd_msg_pub.add;
106 RAISE fnd_api.g_exc_unexpected_error;
107 END IF;
108
109 jtf_task_utl.validate_task_template (
110 x_return_status => x_return_status,
114 );
111 p_task_id => l_dependent_on_task_id,
112 p_task_number => l_dependent_on_task_number,
113 x_task_id => l_dependent_on_task_id
115
116 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
117 THEN
118 x_return_status := fnd_api.g_ret_sts_unexp_error;
119 RAISE fnd_api.g_exc_unexpected_error;
120 END IF;
121
122 IF l_dependent_on_task_id IS NULL
123 THEN
124 x_return_status := fnd_api.g_ret_sts_unexp_error;
125 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TEMP');
126 fnd_message.set_token ('P_TASK_TEMPLATE_ID', l_task_id);
127 RAISE fnd_api.g_exc_unexpected_error;
128 END IF;
129 ELSE
130 jtf_task_utl.validate_task (
131 x_return_status => x_return_status,
132 p_task_id => l_task_id,
133 p_task_number => l_task_number,
134 x_task_id => l_task_id
135 );
136
137 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
138 THEN
139 x_return_status := fnd_api.g_ret_sts_unexp_error;
140 RAISE fnd_api.g_exc_unexpected_error;
141 END IF;
142
143 IF l_task_id IS NULL
144 THEN
145 x_return_status := fnd_api.g_ret_sts_unexp_error;
146 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TASK');
147 fnd_message.set_token ('P_TASK_TEMPLATE_ID', l_task_id);
148 fnd_msg_pub.add;
149 RAISE fnd_api.g_exc_unexpected_error;
150 END IF;
151
152
153 jtf_task_utl.validate_task (
154 x_return_status => x_return_status,
155 p_task_id => l_dependent_on_task_id,
156 p_task_number => l_dependent_on_task_number,
157 x_task_id => l_dependent_on_task_id
158 );
159
160 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
161 THEN
162 x_return_status := fnd_api.g_ret_sts_unexp_error;
163 RAISE fnd_api.g_exc_unexpected_error;
164 END IF;
165
166 IF l_dependent_on_task_id IS NULL
167 THEN
168 x_return_status := fnd_api.g_ret_sts_unexp_error;
169 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TASK');
170 fnd_message.set_token ('P_TASK_TEMPLATE_ID', l_task_id);
171 RAISE fnd_api.g_exc_unexpected_error;
172 END IF;
173
174 END IF;
175
176 IF NOT jtf_task_utl.validate_dependency_code (l_dependency_type_code)
177 THEN
178 x_return_status := fnd_api.g_ret_sts_unexp_error;
179 RAISE fnd_api.g_exc_unexpected_error;
180 END IF;
181
182 jtf_task_utl.validate_effort (x_return_status => x_return_status, p_effort => l_adjustment_time, p_effort_uom => l_adjustment_time_uom);
183
184 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
185 THEN
186 x_return_status := fnd_api.g_ret_sts_unexp_error;
187 RAISE fnd_api.g_exc_unexpected_error;
188 END IF;
189
190
191
192 jtf_task_dependency_pvt.create_task_dependency (
193 p_api_version => 1.0,
194 p_init_msg_list => fnd_api.g_false,
195 p_commit => fnd_api.g_false,
196 p_task_id => l_task_id,
197 p_dependent_on_task_id => l_dependent_on_task_id,
198 p_dependency_type_code => l_dependency_type_code,
199 p_template_flag => l_template_flag,
200 p_adjustment_time => l_adjustment_time,
201 p_adjustment_time_uom => l_adjustment_time_uom,
202 p_validated_flag => p_validated_flag,
203 x_dependency_id => x_dependency_id,
204 x_return_status => x_return_status,
205 x_msg_data => x_msg_data,
206 x_msg_count => x_msg_count,
207 p_attribute1 => p_attribute1 ,
208 p_attribute2 => p_attribute2 ,
209 p_attribute3 => p_attribute3 ,
210 p_attribute4 => p_attribute4 ,
211 p_attribute5 => p_attribute5 ,
212 p_attribute6 => p_attribute6 ,
213 p_attribute7 => p_attribute7 ,
214 p_attribute8 => p_attribute8 ,
215 p_attribute9 => p_attribute9 ,
216 p_attribute10 => p_attribute10 ,
217 p_attribute11 => p_attribute11 ,
218 p_attribute12 => p_attribute12 ,
219 p_attribute13 => p_attribute13 ,
220 p_attribute14 => p_attribute14 ,
221 p_attribute15 => p_attribute15,
222 p_attribute_category => p_attribute_category
223 );
224
225 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
226 THEN
227 x_return_status := fnd_api.g_ret_sts_unexp_error;
228 RAISE fnd_api.g_exc_unexpected_error;
229 END IF;
230
231 IF fnd_api.to_boolean (p_commit)
232 THEN
233 COMMIT WORK;
234 END IF;
235
236 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
237 EXCEPTION
238 WHEN fnd_api.g_exc_unexpected_error
239 THEN
240 ROLLBACK TO create_task_dependency_pub;
241 x_return_status := fnd_api.g_ret_sts_unexp_error;
242 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
243 WHEN OTHERS
244 THEN
245 ROLLBACK TO create_task_dependency_pub;
246 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
247 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
248 x_return_status := fnd_api.g_ret_sts_unexp_error;
249 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
250 END;
251
252 /**********************************************************************************************************
253 ***********************************************************************************************************
254 ***********************************************************************************************************
255 ***********************************************************************************************************
256 ***********************************************************************************************************/
257 PROCEDURE lock_task_dependency (
258 p_api_version IN NUMBER,
259 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
260 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
261 p_dependency_id IN NUMBER,
262 p_object_version_number IN NUMBER,
263 x_return_status OUT NOCOPY VARCHAR2,
264 x_msg_data OUT NOCOPY VARCHAR2,
265 x_msg_count OUT NOCOPY NUMBER
266 ) is
267 l_api_version CONSTANT NUMBER := 1.0;
268 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_TASK_DEPENDENCY';
269 l_task_contact_id jtf_task_contacts.task_contact_id%TYPE;
270
271 Resource_Locked exception ;
272
273 PRAGMA EXCEPTION_INIT ( Resource_Locked , - 54 ) ;
274
275 begin
276 SAVEPOINT lock_task_depends_pub;
277
278 x_return_status := fnd_api.g_ret_sts_success;
279
280 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
281 THEN
282 RAISE fnd_api.g_exc_unexpected_error;
283 END IF;
284
285 IF fnd_api.to_boolean (p_init_msg_list)
286 THEN
287 fnd_msg_pub.initialize;
288 END IF;
289
290 x_return_status := fnd_api.g_ret_sts_success;
291
292 jtf_task_depends_pkg.lock_row(
293 x_dependency_id => p_dependency_id ,
294 x_object_version_number => p_object_version_number );
295
296
297 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
298
299 EXCEPTION
300 WHEN Resource_Locked then
301 ROLLBACK TO lock_task_depends_pub;
302 fnd_message.set_name ('JTF', 'JTF_TASK_RESOURCE_LOCKED');
303 fnd_message.set_token ('P_LOCKED_RESOURCE', 'Contacts');
304 x_return_status := fnd_api.g_ret_sts_unexp_error;
305 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
306
307 WHEN fnd_api.g_exc_unexpected_error
308 THEN
309 ROLLBACK TO lock_task_depends_pub;
310 x_return_status := fnd_api.g_ret_sts_unexp_error;
311 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
312 WHEN OTHERS
313 THEN
314 ROLLBACK TO lock_task_depends_pub;
315 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
316 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
317 x_return_status := fnd_api.g_ret_sts_unexp_error;
318 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
319 END;
320 /**********************************************************************************************************
321 ***********************************************************************************************************
322 ***********************************************************************************************************
323 ***********************************************************************************************************
324 ***********************************************************************************************************/
325 PROCEDURE update_task_dependency (
326 p_api_version IN NUMBER,
327 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
328 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
329 p_object_version_number in out nocopy number ,
330 p_dependency_id IN NUMBER,
331 p_task_id IN NUMBER DEFAULT fnd_api.g_miss_num,
332 p_dependent_on_task_id IN NUMBER DEFAULT fnd_api.g_miss_num,
333 p_dependent_on_task_number IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
334 p_dependency_type_code IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
335 p_adjustment_time IN NUMBER DEFAULT fnd_api.g_miss_num,
336 p_adjustment_time_uom IN VARCHAR2 DEFAULT fnd_api.g_miss_char,
337 p_validated_flag IN VARCHAR2 DEFAULT jtf_task_utl.g_no,
338 x_return_status OUT NOCOPY VARCHAR2,
339 x_msg_count OUT NOCOPY NUMBER,
340 x_msg_data OUT NOCOPY VARCHAR2,
341 p_attribute1 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
342 p_attribute2 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
343 p_attribute3 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
344 p_attribute4 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
345 p_attribute5 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
346 p_attribute6 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
347 p_attribute7 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
348 p_attribute8 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
349 p_attribute9 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
350 p_attribute10 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
351 p_attribute11 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
352 p_attribute12 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
353 p_attribute13 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
354 p_attribute14 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
355 p_attribute15 IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
356 p_attribute_category IN VARCHAR2 DEFAULT jtf_task_utl.g_miss_char
357 )
358 IS
359 l_api_version CONSTANT NUMBER := 1.0;
360 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_TASK_DEPENDENCY';
361 l_dependency_id jtf_task_depends.dependency_id%TYPE := p_dependency_id;
362 l_task_id jtf_tasks_b.task_id%TYPE;
363 l_dependent_on_task_id jtf_tasks_b.task_id%TYPE := p_dependent_on_task_id;
364 l_dependent_on_task_number jtf_tasks_b.task_number%TYPE := p_dependent_on_task_number;
365 l_dependency_type_code jtf_task_depends.dependency_type_code%TYPE := p_dependency_type_code;
366 l_adjustment_time jtf_task_depends.adjustment_time%TYPE := p_adjustment_time;
367 l_adjustment_time_uom jtf_task_depends.adjustment_time_uom%TYPE := p_adjustment_time_uom;
368 l_template_flag jtf_task_depends.template_flag%TYPE;
369 x CHAR;
370
371 CURSOR c_jtf_task_depends
372 IS
373 SELECT
377 template_flag,
374 DECODE (p_task_id, fnd_api.g_miss_num, task_id, p_task_id) task_id,
375 DECODE (p_dependent_on_task_id, fnd_api.g_miss_num, dependent_on_task_id, p_dependent_on_task_id) dependent_on_task_id,
376 DECODE (p_dependency_type_code, fnd_api.g_miss_char, dependency_type_code, p_dependency_type_code) dependency_type_code,
378 DECODE (p_adjustment_time, fnd_api.g_miss_num, adjustment_time, p_adjustment_time) adjustment_time,
379 DECODE (p_adjustment_time_uom, fnd_api.g_miss_char, adjustment_time_uom, p_adjustment_time_uom) adjustment_time_uom,
380 decode( p_attribute1 , fnd_api.g_miss_char , attribute1 , p_attribute1 ) attribute1 ,
381 decode( p_attribute2 , fnd_api.g_miss_char , attribute2 , p_attribute2 ) attribute2 ,
382 decode( p_attribute3 , fnd_api.g_miss_char , attribute3 , p_attribute3 ) attribute3 ,
383 decode( p_attribute4 , fnd_api.g_miss_char , attribute4 , p_attribute4 ) attribute4 ,
384 decode( p_attribute5 , fnd_api.g_miss_char , attribute5 , p_attribute5 ) attribute5 ,
385 decode( p_attribute6 , fnd_api.g_miss_char , attribute6 , p_attribute6 ) attribute6 ,
386 decode( p_attribute7 , fnd_api.g_miss_char , attribute7 , p_attribute7 ) attribute7 ,
387 decode( p_attribute8 , fnd_api.g_miss_char , attribute8 , p_attribute8 ) attribute8 ,
388 decode( p_attribute9 , fnd_api.g_miss_char , attribute9 , p_attribute9 ) attribute9 ,
389 decode( p_attribute10 , fnd_api.g_miss_char , attribute10 , p_attribute10 ) attribute10 ,
390 decode( p_attribute11 , fnd_api.g_miss_char , attribute11 , p_attribute11 ) attribute11 ,
391 decode( p_attribute12 , fnd_api.g_miss_char , attribute12 , p_attribute12 ) attribute12 ,
392 decode( p_attribute13 , fnd_api.g_miss_char , attribute13 , p_attribute13 ) attribute13 ,
393 decode( p_attribute14 , fnd_api.g_miss_char , attribute14 , p_attribute14 ) attribute14 ,
394 decode( p_attribute15 , fnd_api.g_miss_char , attribute15 , p_attribute15 ) attribute15 ,
395 decode( p_attribute_category,fnd_api.g_miss_char,attribute_category,p_attribute_category) attribute_category
396 FROM jtf_task_depends
397 WHERE dependency_id = p_dependency_id;
398
399 task_depends c_jtf_task_depends%ROWTYPE;
400 BEGIN
401
402 SAVEPOINT update_task_dependency_pub;
403 x_return_status := fnd_api.g_ret_sts_success;
404
405 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
406 THEN
407 RAISE fnd_api.g_exc_unexpected_error;
408 END IF;
409
410 IF fnd_api.to_boolean (p_init_msg_list)
411 THEN
412 fnd_msg_pub.initialize;
413 END IF;
414
415 -- check if the dependency is invalid or null.
416 IF (l_dependency_id IS NULL)
417 THEN
418 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_DEPENDENCY_ID');
419 fnd_msg_pub.add;
420 x_return_status := fnd_api.g_ret_sts_unexp_error;
421 RAISE fnd_api.g_exc_unexpected_error;
422 END IF;
423
424 OPEN c_jtf_task_depends;
425 FETCH c_jtf_task_depends INTO task_depends;
426
427 IF c_jtf_task_depends%NOTFOUND
428 THEN
429 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_DEPENDS_ID');
430 fnd_message.set_token ('P_DEPENDENCY_ID', p_dependency_id);
431 fnd_msg_pub.add;
432 x_return_status := fnd_api.g_ret_sts_unexp_error;
433 RAISE fnd_api.g_exc_unexpected_error;
434 END IF;
435
436 --- if template_flag is NOT input, then assign it the value from the table.
437 l_template_flag := task_depends.template_flag;
438 l_task_id := task_depends.task_id;
439
440 --------------------
441 --------------------
442 IF NOT ( p_dependent_on_task_id = fnd_api.g_miss_num
443 AND p_dependent_on_task_number = fnd_api.g_miss_char)
444 THEN
445 SELECT DECODE (p_dependent_on_task_id, fnd_api.g_miss_num, NULL, p_dependent_on_task_id)
446 INTO l_dependent_on_task_id
447 FROM dual;
448 SELECT DECODE (p_dependent_on_task_number, fnd_api.g_miss_char, NULL, p_dependent_on_task_number)
449 INTO l_dependent_on_task_number
450 FROM dual;
451
452 IF NOT (l_template_flag = fnd_api.g_true)
453 THEN
454 ---- Here the task id is assigned null, if the task id is NOT input,
455 --- because then task number could be input.
456
457 --- This means task id is being updated.
458 jtf_task_utl.validate_task (
459 x_return_status => x_return_status,
460 p_task_id => l_dependent_on_task_id,
461 p_task_number => l_dependent_on_task_number,
462 x_task_id => l_dependent_on_task_id
463 );
464 ELSE
465 jtf_task_utl.validate_task_template (
466 x_return_status => x_return_status,
467 p_task_id => l_dependent_on_task_id,
468 p_task_number => l_dependent_on_task_number,
469 x_task_id => l_dependent_on_task_id
470 );
471 END IF;
472
473 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
474 THEN
475 x_return_status := fnd_api.g_ret_sts_unexp_error;
476 RAISE fnd_api.g_exc_unexpected_error;
477 END IF;
478
479 IF l_dependent_on_task_id IS NULL
480 THEN
481 x_return_status := fnd_api.g_ret_sts_unexp_error;
482 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_TASK');
483 fnd_msg_pub.add;
484 RAISE fnd_api.g_exc_unexpected_error;
485 END IF;
486 ELSE
487 l_dependent_on_task_id := task_depends.dependent_on_task_id;
488 END IF;
489
490 -------------------
491 -------------------
492 IF l_dependency_type_code = fnd_api.g_miss_char
493 THEN
494 --- if the dependency type code is supplied then
495 --- check if it exists
496 l_dependency_type_code := task_depends.dependency_type_code;
497 ELSE
498 IF NOT jtf_task_utl.validate_dependency_code (l_dependency_type_code)
499 THEN
500 x_return_status := fnd_api.g_ret_sts_unexp_error;
501 RAISE fnd_api.g_exc_unexpected_error;
502 END IF;
503 END IF;
504
505 jtf_task_dependency_pvt.update_task_dependency (
506 p_api_version => 1.0,
507 p_init_msg_list => fnd_api.g_false,
508 p_commit => fnd_api.g_false,
509 p_object_version_number => p_object_version_number,
510 p_dependency_id => p_dependency_id,
511 p_task_id => l_task_id,
512 p_dependent_on_task_id => l_dependent_on_task_id,
513 p_dependency_type_code => l_dependency_type_code,
514 p_adjustment_time => l_adjustment_time,
515 p_adjustment_time_uom => l_adjustment_time_uom,
516 p_validated_flag => p_validated_flag,
517 x_return_status => x_return_status,
518 x_msg_data => x_msg_data,
519 x_msg_count => x_msg_count,
520 p_attribute1 => task_depends.attribute1 ,
521 p_attribute2 => task_depends.attribute2 ,
522 p_attribute3 => task_depends.attribute3 ,
523 p_attribute4 => task_depends.attribute4 ,
524 p_attribute5 => task_depends.attribute5 ,
525 p_attribute6 => task_depends.attribute6 ,
526 p_attribute7 => task_depends.attribute7 ,
527 p_attribute8 => task_depends.attribute8 ,
528 p_attribute9 => task_depends.attribute9 ,
529 p_attribute10 => task_depends.attribute10 ,
530 p_attribute11 => task_depends.attribute11 ,
531 p_attribute12 => task_depends.attribute12 ,
532 p_attribute13 => task_depends.attribute13 ,
533 p_attribute14 => task_depends.attribute14 ,
534 p_attribute15 => task_depends.attribute15 ,
535 p_attribute_category => task_depends.attribute_category
536 );
537
538 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
539 THEN
540 x_return_status := fnd_api.g_ret_sts_unexp_error;
541 RAISE fnd_api.g_exc_unexpected_error;
542 END IF;
543
544 IF fnd_api.to_boolean (p_commit)
545 THEN
546 COMMIT WORK;
547 END IF;
548
549 IF c_jtf_task_depends%ISOPEN
550 THEN
551 CLOSE c_jtf_task_depends;
552 END IF;
553
554 fnd_msg_pub.count_and_get (
555 p_count => x_msg_count,
556 p_data => x_msg_data);
557 EXCEPTION
558 WHEN fnd_api.g_exc_unexpected_error
559 THEN
560 ROLLBACK TO update_task_dependency_pub;
561
562 IF c_jtf_task_depends%ISOPEN
563 THEN
564 CLOSE c_jtf_task_depends;
565 END IF;
566
567 x_return_status := fnd_api.g_ret_sts_unexp_error;
568 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
569 WHEN OTHERS
570 THEN
571 IF c_jtf_task_depends%ISOPEN
572 THEN
573 CLOSE c_jtf_task_depends;
574 END IF;
575
576 ROLLBACK TO update_task_dependency_pub;
577 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
578 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
579 x_return_status := fnd_api.g_ret_sts_unexp_error;
580 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
581 END;
582
583 PROCEDURE delete_task_dependency (
584 p_api_version IN NUMBER,
585 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
586 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
587 p_object_version_number in number ,
588 p_dependency_id IN NUMBER,
589 x_return_status OUT NOCOPY VARCHAR2,
590 x_msg_count OUT NOCOPY NUMBER,
591 x_msg_data OUT NOCOPY VARCHAR2
592 )
593 IS
594 l_api_version CONSTANT NUMBER := 1.0;
595 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_TASK_DEPENDENCY';
596 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
597 l_msg_data VARCHAR2(2000);
598 l_msg_count NUMBER;
599 l_dependency_id jtf_task_depends.dependency_id%TYPE := p_dependency_id;
600
601 CURSOR c_jtf_task_depends
602 IS
603 SELECT 1
604 FROM jtf_task_depends
605 WHERE dependency_id = l_dependency_id;
606
607 x CHAR;
608 BEGIN
609
610 SAVEPOINT delete_task_dependency_pub;
611 x_return_status := fnd_api.g_ret_sts_success;
612
613 IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
614 THEN
615 RAISE fnd_api.g_exc_unexpected_error;
616 END IF;
617
618 IF fnd_api.to_boolean (p_init_msg_list)
619 THEN
620 fnd_msg_pub.initialize;
621 END IF;
622
623
624
625 ---- if the dependency is null, then it is an error
626 IF (l_dependency_id IS NULL)
627 THEN
628
629 fnd_message.set_name ('JTF', 'JTF_TASK_MISSING_DEPENDS');
630 fnd_msg_pub.add;
631 x_return_status := fnd_api.g_ret_sts_unexp_error;
632 RAISE fnd_api.g_exc_unexpected_error;
633 END IF;
634
635 ---- if the dependency is NOT valid, then it is an error
636 OPEN c_jtf_task_depends;
637 FETCH c_jtf_task_depends INTO x;
638
639 IF c_jtf_task_depends%NOTFOUND
640 THEN
641 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_DEPENDS_ID');
642 fnd_message.set_token('P_DEPENDENCY_ID',P_DEPENDENCY_ID);
643 fnd_msg_pub.add;
644 x_return_status := fnd_api.g_ret_sts_unexp_error;
645 RAISE fnd_api.g_exc_unexpected_error;
646 ELSE
647 jtf_task_dependency_pvt.delete_task_dependency (
648 p_api_version => l_api_version,
649 p_init_msg_list => fnd_api.g_false,
650 p_commit => fnd_api.g_false,
651 p_object_version_number => p_object_version_number,
652 p_dependency_id => l_dependency_id,
653 x_return_status => l_return_status,
654 x_msg_count => l_msg_count,
655 x_msg_data => l_msg_data
656 );
657
658 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
659 THEN
660 x_return_status := fnd_api.g_ret_sts_unexp_error;
661 RAISE fnd_api.g_exc_unexpected_error;
662 END IF;
663
664 END IF;
665
666 IF c_jtf_task_depends%ISOPEN
667 THEN
668 CLOSE c_jtf_task_depends;
669 END IF;
670
671 IF fnd_api.to_boolean (p_commit)
672 THEN
673 COMMIT WORK;
674 END IF;
675
676 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
677 EXCEPTION
678 WHEN fnd_api.g_exc_error
679 THEN
680
681
682 ROLLBACK TO delete_task_dependency_pub;
683
684 IF c_jtf_task_depends%ISOPEN
685 THEN
686 CLOSE c_jtf_task_depends;
687 END IF;
688
689 x_return_status := fnd_api.g_ret_sts_error;
690 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
691 WHEN fnd_api.g_exc_unexpected_error
692 THEN
693
694
695 ROLLBACK TO delete_task_dependency_pub;
696
697 IF c_jtf_task_depends%ISOPEN
698 THEN
699 CLOSE c_jtf_task_depends;
700 END IF;
701
702 x_return_status := fnd_api.g_ret_sts_unexp_error;
703 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
704 WHEN OTHERS
705 THEN
706
707 ROLLBACK TO delete_task_dependency_pub;
708
709 IF c_jtf_task_depends%ISOPEN
710 THEN
711 CLOSE c_jtf_task_depends;
712 END IF;
713
714 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
715 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
716 x_return_status := fnd_api.g_ret_sts_unexp_error;
717 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
718 END; -- Delete Task dependency
719 END;