DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TASK_ASSIGNMENTS_PVT

Source


1 PACKAGE BODY jtf_task_assignments_pvt AS
2 /* $Header: jtfvtkab.pls 120.5 2011/03/31 11:50:40 abhishjj ship $ */
3 
4    g_free_busy_type CONSTANT jtf_task_all_assignments.free_busy_type%TYPE	:= 'FREE';
5 
6    -- Internal procedures used for implicit booking
7    -- It populates booking date by using task calendar date
8    --
12 
9    -- !!! NOTE: any change in this procedure must be in sync with !!!
10    -- !!!       migration script cacbkgmg.sql                     !!!
11    --
13    PROCEDURE check_unique_assignment
14    (
15      p_task_id            IN NUMBER,
16      p_resource_id        IN NUMBER,
17      p_resource_type_code IN VARCHAR2,
18      p_actual_start_date  IN DATE,
19      p_actual_end_date    IN DATE,
20      p_assignee_role      IN VARCHAR2,
21      p_task_assignment_id IN NUMBER,
22      x_return_status      OUT NOCOPY VARCHAR2
23    )
24    IS
25       l_temp_fnd_end_date DATE := to_date(to_char(FND_API.G_MISS_DATE,'dd-MM-RRRR'),'dd-MM-RRRR');
26       l_actual_start_date DATE := NVL(p_actual_start_date,to_date('01-01-1900','dd-MM-RRRR'));
27       l_actual_end_date   DATE := NVL(p_actual_end_date,to_date(to_char(FND_API.G_MISS_DATE,'dd-MM-RRRR'),'dd-MM-RRRR'));
28       v_count NUMBER           := 0;
29       CURSOR C_TASK_ASSIGNMENT IS SELECT COUNT(TASK_ASSIGNMENT_ID)
30       FROM JTF_TASK_ALL_ASSIGNMENTS
31       WHERE TASK_ID = p_task_id
32       AND RESOURCE_ID = p_resource_id
33       AND RESOURCE_TYPE_CODE = p_resource_type_code
34       AND ASSIGNEE_ROLE = P_ASSIGNEE_ROLE
35       AND TASK_ASSIGNMENT_ID <> p_task_assignment_id
36       AND (( l_actual_start_date <=  NVL(ACTUAL_START_DATE,to_date('01-01-1900','dd-MM-RRRR')) AND l_actual_end_date >= NVL(ACTUAL_END_DATE,l_temp_fnd_end_date))
37           OR  ( l_actual_start_date BETWEEN  NVL(ACTUAL_START_DATE,to_date('01-01-1900','dd-MM-RRRR')) AND NVL(ACTUAL_END_DATE,l_temp_fnd_end_date))
38           OR  ( l_actual_end_date   BETWEEN  NVL(ACTUAL_START_DATE,to_date('01-01-1900','dd-MM-RRRR')) AND NVL(ACTUAL_END_DATE,l_temp_fnd_end_date))
39           OR  ((l_actual_start_date >  NVL(ACTUAL_START_DATE,to_date('01-01-1900','dd-MM-RRRR'))) AND l_actual_end_date < NVL(ACTUAL_END_DATE,l_temp_fnd_end_date)));
40    BEGIN
41 
42       x_return_status := fnd_api.g_ret_sts_success;
43 
44       OPEN C_TASK_ASSIGNMENT;
45       FETCH C_TASK_ASSIGNMENT INTO v_count;
46       CLOSE	C_TASK_ASSIGNMENT;
47 
48       IF( v_count > 0) THEN
49         X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
50       END IF;
51    END;
52 
53    PROCEDURE populate_owner_booking_dates
54    (
55       p_calendar_start_date     IN	DATE,
56       p_calendar_end_date       IN	DATE,
57       p_actual_travel_duration  IN  NUMBER,
58       p_actual_travel_duration_uom   IN VARCHAR2,
59       p_planned_effort          IN  NUMBER,
60       p_planned_effort_uom      IN   VARCHAR2,
61       x_booking_start_date      OUT NOCOPY DATE,
62       x_booking_end_date        OUT NOCOPY DATE
63    )
64    IS
65    BEGIN
66        x_booking_start_date := NULL;
67        x_booking_end_date   := NULL;
68 
69        IF (p_calendar_start_date IS NULL) OR
70           (p_calendar_start_date > p_calendar_end_date) OR
71           (p_calendar_end_date IS NULL AND NVL(p_planned_effort, -1) < 0)
72        THEN
73           RETURN;
74        END IF;
75 
76        x_booking_start_date := jtf_task_utl_ext.adjust_date
77        (
78           p_calendar_start_date,
79           p_actual_travel_duration * (-1),
80           p_actual_travel_duration_uom
81        );
82 
83 
84        IF (p_calendar_start_date <= p_calendar_end_date)
85        THEN
86            x_booking_end_date := p_calendar_end_date;
87        ELSE
88            x_booking_end_date := jtf_task_utl_ext.adjust_date
89            (
90               p_calendar_start_date,
91               p_planned_effort,
92               p_planned_effort_uom
93            );
94        END IF;
95    END populate_owner_booking_dates;
96 
97    -- Internal procedures used for implicit booking
98    -- It populates booking date by using actual assignment date or
99    -- task calendar date
100    --
101    -- !!! NOTE: any change in this procedure must be in sync with !!!
102    -- !!!       migration script cacbkgmg.sql                     !!!
103    --
104    PROCEDURE populate_booking_dates
105    (
106       p_calendar_start_date     IN	DATE,
107       p_calendar_end_date       IN	DATE,
108       p_actual_start_date       IN	DATE,
109       p_actual_end_date         IN	DATE,
110       p_actual_travel_duration  IN  NUMBER,
111       p_actual_travel_duration_uom   IN VARCHAR2,
112       p_planned_effort          IN  NUMBER,
113       p_planned_effort_uom      IN  VARCHAR2,
114       p_actual_effort           IN  NUMBER,
115       p_actual_effort_uom       IN  VARCHAR2,
116       x_booking_start_date      OUT NOCOPY DATE,
117       x_booking_end_date        OUT NOCOPY DATE
118     )
119     IS
120     BEGIN
121         x_booking_start_date := NULL;
122         x_booking_end_date   := NULL;
123 
124         IF (p_actual_start_date IS NULL) OR
125            (p_actual_start_date > p_actual_end_date) OR
126            (p_actual_end_date IS NULL AND
127             NVL(p_actual_effort, NVL(p_planned_effort, -1)) < 0)
128 
129         THEN
130             -- Populate the booking dates as for owner .
131             populate_owner_booking_dates
132             (
133               p_calendar_start_date     => p_calendar_start_date,
134               p_calendar_end_date       => p_calendar_end_date,
135               p_actual_travel_duration  => p_actual_travel_duration,
136               p_actual_travel_duration_uom => p_actual_travel_duration_uom,
137               p_planned_effort          => p_planned_effort,
138               p_planned_effort_uom      => p_planned_effort_uom,
139               x_booking_start_date      => x_booking_start_date,
140               x_booking_end_date        => x_booking_end_date
144 
141             );
142             RETURN;
143         END IF;
145         x_booking_start_date := jtf_task_utl_ext.adjust_date
146         (
147           p_actual_start_date,
148           p_actual_travel_duration * (-1),
149           p_actual_travel_duration_uom
150         );
151 
152 
153         IF  p_actual_start_date <= p_actual_end_date
154         THEN
155             x_booking_end_date   := p_actual_end_date;
156         ELSIF p_actual_effort >= 0
157         THEN
158            x_booking_end_date := jtf_task_utl_ext.adjust_date
159            (
160               p_actual_start_date,
161               p_actual_effort,
162               p_actual_effort_uom
163            );
164         ELSE
165            x_booking_end_date := jtf_task_utl_ext.adjust_date
166            (
167               p_actual_start_date,
168               p_planned_effort,
169               p_planned_effort_uom
170            );
171         END IF;
172     END populate_booking_dates;
173 
174     -- This procedure updates the free-busy type for an assignee
175     -- Should be call only for tasks for a new assignemnt and
176     -- whenever the assignemnt status is changed
177     --
178     -- !!! NOTE: any change in this procedure must be in sync with !!!
179     -- !!!       migration script cacbkgmg.sql                     !!!
180     --
181     PROCEDURE update_free_busy_type
182     (
183       p_assignment_status_id     IN NUMBER,
184       x_free_busy_type           IN OUT NOCOPY VARCHAR2
185     )
186     IS
187     BEGIN
188        select decode(cancelled_flag, 'Y', 'FREE',
189               decode(rejected_flag,  'Y', 'FREE',
190               decode(working_flag,   'Y', 'BUSY',
191               decode(accepted_flag,  'Y', 'BUSY',
192               decode(assigned_flag,  'Y', 'BUSY', x_free_busy_type )))))
193          into x_free_busy_type
194          from jtf_task_statuses_b
195         where task_status_id = p_assignment_status_id;
196     END update_free_busy_type;
197 
198    PROCEDURE create_task_assignment (
199       p_api_version		     IN       NUMBER,
200       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
201       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
202       p_task_assignment_id	     IN       NUMBER DEFAULT NULL,
203       p_task_id 		     IN       NUMBER DEFAULT NULL,
204       p_resource_type_code	     IN       VARCHAR2,
205       p_resource_id		     IN       NUMBER,
206       p_actual_effort		     IN       NUMBER DEFAULT NULL,
207       p_actual_effort_uom	     IN       VARCHAR2 DEFAULT NULL,
208       p_schedule_flag		     IN       VARCHAR2 DEFAULT NULL,
209       p_alarm_type_code 	     IN       VARCHAR2 DEFAULT NULL,
210       p_alarm_contact		     IN       VARCHAR2 DEFAULT NULL,
211       p_sched_travel_distance	     IN       NUMBER DEFAULT NULL,
212       p_sched_travel_duration	     IN       NUMBER DEFAULT NULL,
213       p_sched_travel_duration_uom    IN       VARCHAR2 DEFAULT NULL,
214       p_actual_travel_distance	     IN       NUMBER DEFAULT NULL,
215       p_actual_travel_duration	     IN       NUMBER DEFAULT NULL,
216       p_actual_travel_duration_uom   IN       VARCHAR2 DEFAULT NULL,
217       p_actual_start_date	     IN       DATE DEFAULT NULL,
218       p_actual_end_date 	     IN       DATE DEFAULT NULL,
219       p_palm_flag		     IN       VARCHAR2 DEFAULT NULL,
220       p_wince_flag		     IN       VARCHAR2 DEFAULT NULL,
221       p_laptop_flag		     IN       VARCHAR2 DEFAULT NULL,
222       p_device1_flag		     IN       VARCHAR2 DEFAULT NULL,
223       p_device2_flag		     IN       VARCHAR2 DEFAULT NULL,
224       p_device3_flag		     IN       VARCHAR2 DEFAULT NULL,
225       p_resource_territory_id	     IN       NUMBER DEFAULT NULL,
226       p_assignment_status_id	     IN       NUMBER,
227       p_shift_construct_id	     IN       NUMBER DEFAULT NULL,
228       x_return_status		     OUT NOCOPY      VARCHAR2,
229       x_msg_count		     OUT NOCOPY      NUMBER,
230       x_msg_data		     OUT NOCOPY      VARCHAR2,
231       x_task_assignment_id	     OUT NOCOPY      NUMBER,
232       p_attribute1		     IN       VARCHAR2 DEFAULT NULL,
233       p_attribute2		     IN       VARCHAR2 DEFAULT NULL,
234       p_attribute3		     IN       VARCHAR2 DEFAULT NULL,
235       p_attribute4		     IN       VARCHAR2 DEFAULT NULL,
236       p_attribute5		     IN       VARCHAR2 DEFAULT NULL,
237       p_attribute6		     IN       VARCHAR2 DEFAULT NULL,
238       p_attribute7		     IN       VARCHAR2 DEFAULT NULL,
239       p_attribute8		     IN       VARCHAR2 DEFAULT NULL,
240       p_attribute9		     IN       VARCHAR2 DEFAULT NULL,
241       p_attribute10		     IN       VARCHAR2 DEFAULT NULL,
242       p_attribute11		     IN       VARCHAR2 DEFAULT NULL,
243       p_attribute12		     IN       VARCHAR2 DEFAULT NULL,
244       p_attribute13		     IN       VARCHAR2 DEFAULT NULL,
245       p_attribute14		     IN       VARCHAR2 DEFAULT NULL,
246       p_attribute15		     IN       VARCHAR2 DEFAULT NULL,
247       p_attribute_category	     IN       VARCHAR2 DEFAULT NULL,
248       p_assignee_role		     IN       VARCHAR2 DEFAULT 'ASSIGNEE',
249       p_show_on_calendar	     IN       VARCHAR2 DEFAULT jtf_task_utl.g_yes_char,
250       p_category_id		     IN       NUMBER DEFAULT NULL,
251       p_enable_workflow 	     IN       VARCHAR2,
252       p_abort_workflow		     IN       VARCHAR2,
253       p_add_option		     IN       VARCHAR2,
254       p_free_busy_type		     IN       VARCHAR2,
255       p_object_capacity_id           IN       NUMBER
256    )
257    IS
258       l_api_version	CONSTANT NUMBER
259 	       := 1.0;
260       l_api_name	CONSTANT VARCHAR(30)
261 	       := 'CREATE_TASK_ASSIGNMENTS';
262       l_return_status		 VARCHAR2(1)
263 	       := fnd_api.g_ret_sts_success;
264       l_task_assignment_id	 jtf_task_all_assignments.task_assignment_id%TYPE;
268 	       := p_resource_type_code;
265       l_task_id 		 jtf_tasks_b.task_id%TYPE
266 	       := p_task_id;
267       l_resource_type_code	 jtf_task_all_assignments.resource_type_code%TYPE
269       l_resource_id		 NUMBER
270 	       := p_resource_id;
271       l_act_eff 		 NUMBER
272 	       := p_actual_effort;
273       l_act_eff_uom		 VARCHAR2(3)
274 	       := p_actual_effort_uom;
275       l_schedule_flag		 VARCHAR2(1)
276 	       := p_schedule_flag;
277       l_alarm_type_code 	 jtf_task_all_assignments.alarm_type_code%TYPE
278 	       := p_alarm_type_code;
279       l_alarm_contact		 jtf_task_all_assignments.alarm_contact%TYPE
280 	       := p_alarm_contact;
281       l_sched_travel_distance	 jtf_task_all_assignments.sched_travel_distance%TYPE
282 	       := p_sched_travel_distance;
283       l_sched_travel_duration	 jtf_task_all_assignments.sched_travel_duration%TYPE
284 	       := p_sched_travel_duration;
285       l_sched_travel_dur_uom	 jtf_task_all_assignments.sched_travel_duration_uom%TYPE
286 	       := p_sched_travel_duration_uom;
287       l_actual_travel_distance	 jtf_task_all_assignments.actual_travel_distance%TYPE
288 	       := p_actual_travel_distance;
289       l_actual_travel_duration	 jtf_task_all_assignments.actual_travel_duration%TYPE
290 	       := p_actual_travel_duration;
291       l_actual_travel_dur_uom	 jtf_task_all_assignments.actual_travel_duration_uom%TYPE
292 	       := p_actual_travel_duration_uom;
293       l_actual_start_date	 jtf_task_all_assignments.actual_start_date%TYPE
294 	       := p_actual_start_date;
295       l_actual_end_date 	 jtf_task_all_assignments.actual_end_date%TYPE
296 	       := p_actual_end_date;
297       l_palm_flag		 jtf_task_all_assignments.palm_flag%TYPE
298 	       := p_palm_flag;
299       l_wince_flag		 jtf_task_all_assignments.wince_flag%TYPE
300 	       := p_wince_flag;
301       l_laptop_flag		 jtf_task_all_assignments.laptop_flag%TYPE
302 	       := p_laptop_flag;
303       l_device1_flag		 jtf_task_all_assignments.device1_flag%TYPE
304 	       := p_device1_flag;
305       l_device2_flag		 jtf_task_all_assignments.device2_flag%TYPE
306 	       := p_device2_flag;
307       l_device3_flag		 jtf_task_all_assignments.device3_flag%TYPE
308 	       := p_device3_flag;
309       l_msg_data		 VARCHAR2(2000);
310       l_msg_count		 NUMBER;
311       x 			 CHAR;
312       l_rowid			 ROWID;
313       l_resource_territory_id	 jtf_task_all_assignments.resource_territory_id%TYPE
314 	       := p_resource_territory_id;
315       l_assignment_status_id	 jtf_task_all_assignments.assignment_status_id%TYPE
316 	       := p_assignment_status_id;
317       l_shift_construct_id	 jtf_task_all_assignments.shift_construct_id%TYPE
318 	       := p_shift_construct_id;
319       l_assignee_role		 jtf_task_all_assignments.assignee_role%TYPE
320 	       := p_assignee_role;
321       l_show_on_calendar	 jtf_task_all_assignments.show_on_calendar%TYPE
322 	       := p_show_on_calendar;
323       l_category_id		 jtf_task_all_assignments.category_id%TYPE
324 	       := p_category_id;
325       l_enable_workflow 	 VARCHAR2(1)	:= p_enable_workflow;
326       l_abort_workflow		 VARCHAR2(1)	:= p_abort_workflow;
327 
328       -- Simplex Changes ..
329       l_booking_start_date jtf_task_all_assignments.booking_start_date%TYPE;
330       l_booking_end_date 	 jtf_task_all_assignments.booking_end_date%TYPE;
331 	    l_free_busy_type   	 jtf_task_all_assignments.free_busy_type%TYPE
332 	                         := p_free_busy_type;
333 
334       CURSOR ra_cur1 (l_rowid IN ROWID)
335       IS
336 	 SELECT 1
337 	   FROM jtf_task_all_assignments
338 	  WHERE ROWID = l_rowid;
339 
340       ------------------------------------------
341       -- For XP
342       ------------------------------------------
343       CURSOR c_task (b_task_id NUMBER)IS
344       SELECT source_object_type_code
345 	   , recurrence_rule_id
346 	   , calendar_start_date
347        , calendar_end_date
348        , planned_effort
349        , planned_effort_uom
350        , entity
351        , open_flag
352 	FROM jtf_tasks_b
353        WHERE task_id = b_task_id;
354 
355       rec_task	c_task%ROWTYPE;
356 
357       l_add_assignee_rec  jtf_task_repeat_assignment_pvt.add_assignee_rec;
358 
359        -- Business Event System Enhancement # 2391065
360       l_assignment_rec	  jtf_task_assignments_pvt.task_assignments_rec ;
361       x_event_return_status varchar2(100);
362       ------------------------------------------
363    BEGIN
364       SAVEPOINT create_task_assign_pvt;
365       x_return_status := fnd_api.g_ret_sts_success;
366 
367       ------------------------------------------
368       -- For XP
369       ------------------------------------------
370       OPEN c_task (l_task_id);
371       FETCH c_task INTO rec_task;
372       IF c_task%NOTFOUND
373       THEN
374 	 CLOSE c_task;
375 	 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TASK_ID');
376 	 fnd_message.set_token ('P_TASK_ID', l_task_id);
377 	 fnd_msg_pub.add;
378 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
379 	 RAISE fnd_api.g_exc_unexpected_error;
380       END IF;
381       CLOSE c_task;
382 
383       IF rec_task.source_object_type_code = 'APPOINTMENT' AND
384 	 rec_task.recurrence_rule_id IS NOT NULL
385       THEN
386 	 IF p_add_option = JTF_TASK_REPEAT_APPT_PVT.G_FUTURE OR
387 	    p_add_option = JTF_TASK_REPEAT_APPT_PVT.G_ALL OR
388 	    p_add_option = JTF_TASK_REPEAT_APPT_PVT.G_ONE
389 	 THEN
390 	     l_add_assignee_rec.recurrence_rule_id   := rec_task.recurrence_rule_id;
391 	     l_add_assignee_rec.task_id 	     := l_task_id;
392 	     l_add_assignee_rec.calendar_start_date  := rec_task.calendar_start_date;
393 	     l_add_assignee_rec.resource_type_code   := p_resource_type_code;
394 	     l_add_assignee_rec.resource_id	     := p_resource_id;
398 	     l_add_assignee_rec.enable_workflow      := p_enable_workflow;
395 	     l_add_assignee_rec.free_busy_type       := p_free_busy_type;
396 	     l_add_assignee_rec.assignment_status_id := p_assignment_status_id;
397 	     l_add_assignee_rec.add_option	     := p_add_option;
399 	     l_add_assignee_rec.abort_workflow	     := p_abort_workflow;
400 
401 	     jtf_task_repeat_assignment_pvt.add_assignee(
402 		p_api_version	     => 1.0,
403 		p_init_msg_list      => fnd_api.g_false,
404 		p_commit	     => fnd_api.g_false,
405 		p_add_assignee_rec   => l_add_assignee_rec,
406 		x_return_status      => x_return_status,
407 		x_msg_count	     => x_msg_count,
408 		x_msg_data	     => x_msg_data,
409 		x_task_assignment_id => x_task_assignment_id
410 	     );
411 
412 	     RETURN;
413 	  ELSIF p_add_option IS NOT NULL AND
414 		p_add_option <> JTF_TASK_REPEAT_APPT_PVT.G_SKIP
415 	  THEN
416 	     fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_FLAG');
417 	     fnd_message.set_token ('P_FLAG_NAME', 'The parameter p_add_option ');
418 	     fnd_msg_pub.add;
419 
420 	     x_return_status := fnd_api.g_ret_sts_unexp_error;
421 	     RAISE fnd_api.g_exc_unexpected_error;
422 	  END IF;
423       END IF;
424       ------------------------------------------
425 
426       IF p_task_assignment_id IS NOT NULL
427       THEN
428 	 IF p_task_assignment_id > jtf_task_utl_ext.get_last_number('JTF_TASK_ASSIGNMENTS_S') and -- Enh# 2734020
429 	    p_task_assignment_id < 1e+12
430 	 THEN
431 	    fnd_message.set_name ('JTF', 'JTF_TASK_OUT_OF_RANGE');
432 	    fnd_msg_pub.add;
433 	    x_return_status := fnd_api.g_ret_sts_unexp_error;
434 	    RAISE fnd_api.g_exc_unexpected_error;
435 	 ELSE
436 	    l_task_assignment_id := p_task_assignment_id;
437 	 END IF;
438       ELSE
439 	 SELECT jtf_task_assignments_s.nextval
440 	   INTO l_task_assignment_id
441 	   FROM dual;
442       END IF;
443 
444      -- Validate the value in L_RESOURCE_TYPE_CODE
445       IF    l_resource_type_code = 'RS_TEAM'
446 	 OR l_resource_type_code = 'RS_GROUP'
447       THEN
448 	 l_category_id := NULL;
449       END IF;
450 
451       -- Validate the value in ASSIGNEE_ROLE
452     IF NOT jtf_task_utl.validate_lookup(
453        'JTF_TASK_ASSIGNEE_ROLES',
454        NVL (l_assignee_role, 'ASSIGNEE'),
455        'assignment assignee role ( JTF_TK_ASSOGNEE_ROLE )')
456     THEN
457 	      x_return_status := fnd_api.g_ret_sts_unexp_error;
458 	      RAISE fnd_api.g_exc_unexpected_error;
459     END IF;
460 
461 
462     -- Implicit booking for tasks
463     populate_booking_dates
464     (
465        p_calendar_start_date    =>  rec_task.calendar_start_date,
466        p_calendar_end_date      =>  rec_task.calendar_end_date,
467        p_actual_start_date      =>  l_actual_start_date,
468        p_actual_end_date        =>  l_actual_end_date,
469        p_actual_travel_duration =>  l_actual_travel_duration,
470        p_actual_travel_duration_uom  =>  l_actual_travel_dur_uom,
471        p_planned_effort         =>  rec_task.planned_effort,
472        p_planned_effort_uom     =>  rec_task.planned_effort_uom,
473        p_actual_effort          =>  l_act_eff,
474        p_actual_effort_uom      =>  l_act_eff_uom,
475        x_booking_start_date     =>  l_booking_start_date,
476        x_booking_end_date       =>  l_booking_end_date
477     );
478 
479 
480     IF l_free_busy_type IS NULL
481     THEN
482        l_free_busy_type := g_free_busy_type;
483        IF rec_task.entity = 'TASK' AND
484           l_booking_start_date IS NOT NULL AND
485           l_booking_end_date IS NOT NULL
486        THEN
487            IF p_assignee_role = 'OWNER' AND p_show_on_calendar = 'Y'
488            THEN
489                  l_free_busy_type := 'BUSY';
490            ELSIF p_assignee_role = 'ASSIGNEE'
491            THEN
492                update_free_busy_type
493                (
494                 p_assignment_status_id => l_assignment_status_id,
495                 x_free_busy_type       => l_free_busy_type
496                );
497            END IF;
498        END IF;
499     END IF;
500 
501     check_unique_assignment(
502     p_task_id=>l_task_id,
503     p_resource_id=>l_resource_id,
504     p_resource_type_code=>l_resource_type_code,
505     p_actual_start_date=>l_actual_start_date,
506     p_actual_end_date=>l_actual_end_date,
507     p_assignee_role=>l_assignee_role,
508     p_task_assignment_id=>l_task_assignment_id,
509     x_return_status=>x_return_status
510     );
511 
512     IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN
513       X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
514       fnd_message.set_name ('JTF', 'JTF_TASK_DUP_TK_ASS');
515       fnd_msg_pub.add;
516       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
517     END IF;
518 
519       jtf_task_assignments_pkg.insert_row (
520 	 x_rowid => l_rowid,
521 	 x_task_assignment_id => l_task_assignment_id,
522 	 x_sched_travel_duration_uom => l_sched_travel_dur_uom,
523 	 x_actual_travel_distance => l_actual_travel_distance,
524 	 x_actual_travel_duration => l_actual_travel_duration,
525 	 x_actual_travel_duration_uom => l_actual_travel_dur_uom,
526 	 x_actual_start_date => l_actual_start_date,
527 	 x_actual_end_date => l_actual_end_date,
528 	 x_palm_flag => l_palm_flag,
529 	 x_wince_flag => l_wince_flag,
530 	 x_laptop_flag => l_laptop_flag,
531 	 x_device1_flag => l_device1_flag,
532 	 x_device2_flag => l_device2_flag,
533 	 x_device3_flag => l_device3_flag,
534 	 x_attribute1 => p_attribute1,
535 	 x_attribute2 => p_attribute2,
536 	 x_attribute3 => p_attribute3,
537 	 x_attribute4 => p_attribute4,
538 	 x_attribute5 => p_attribute5,
542 	 x_attribute9 => p_attribute9,
539 	 x_attribute6 => p_attribute6,
540 	 x_attribute7 => p_attribute7,
541 	 x_attribute8 => p_attribute8,
543 	 x_attribute10 => p_attribute10,
544 	 x_attribute11 => p_attribute11,
545 	 x_attribute12 => p_attribute12,
546 	 x_attribute13 => p_attribute13,
547 	 x_attribute14 => p_attribute14,
548 	 x_attribute15 => p_attribute15,
549 	 x_attribute_category => p_attribute_category,
550 	 x_task_id => l_task_id,
551 	 x_resource_id => l_resource_id,
552 	 x_actual_effort => l_act_eff,
553 	 x_actual_effort_uom => l_act_eff_uom,
554 	 x_schedule_flag => l_schedule_flag,
555 	 x_alarm_type_code => l_alarm_type_code,
556 	 x_alarm_contact => l_alarm_contact,
557 	 x_sched_travel_distance => l_sched_travel_distance,
558 	 x_sched_travel_duration => l_sched_travel_duration,
559 	 x_resource_type_code => l_resource_type_code,
560 	 x_creation_date => SYSDATE,
561 	 x_created_by => jtf_task_utl.created_by,
562 	 x_last_update_date => SYSDATE,
563 	 x_last_updated_by => jtf_task_utl.updated_by,
564 	 x_last_update_login => jtf_task_utl.login_id,
565 	 x_resource_territory_id => l_resource_territory_id,
566 	 x_assignment_status_id => l_assignment_status_id,
567 	 x_shift_construct_id => l_shift_construct_id,
568 	 x_assignee_role => l_assignee_role,
569 	 x_show_on_calendar => l_show_on_calendar,
570 	 x_category_id => l_category_id,
571 	 x_free_busy_type => NVL(l_free_busy_type, g_free_busy_type),
572          x_booking_start_date => l_booking_start_date,
573          x_booking_end_date => l_booking_end_date,
574          x_object_capacity_id => p_object_capacity_id
575       );
576 
577       OPEN ra_cur1 (l_rowid);
578       FETCH ra_cur1 INTO x;
579 
580       IF ra_cur1%NOTFOUND
581       THEN
582 	 CLOSE ra_cur1; -- Fix a missing CLOSE on 4/18/2002
583 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
584 	 fnd_message.set_name ('JTF', 'JTF_TASK_INV_TK_ASS');
585 	 fnd_msg_pub.add;
586 	 RAISE fnd_api.g_exc_unexpected_error;
587       ELSE
588 	 x_task_assignment_id := l_task_assignment_id;
589       END IF;
590       CLOSE ra_cur1; -- Fix a missing CLOSE on 4/18/2002
591 
592       ---
593       --- decide the launch of workflow
594       ---
595 
596       -- Business Event System Enhancement # 2391065 and 2797666
597       IF (rec_task.entity = 'TASK')
598       THEN
599       l_assignment_rec.task_assignment_id     := l_task_assignment_id;
600       l_assignment_rec.task_id		      := l_task_id;
601       l_assignment_rec.resource_type_code     := l_resource_type_code;
602       l_assignment_rec.resource_id	      := l_resource_id;
603       l_assignment_rec.assignment_status_id   := l_assignment_status_id;
604       l_assignment_rec.actual_start_date      := l_actual_start_date;
605       l_assignment_rec.actual_end_date	      := l_actual_end_date;
606       l_assignment_rec.assignee_role          := l_assignee_role;
607       l_assignment_rec.show_on_calendar	      := l_show_on_calendar;
608       l_assignment_rec.category_id	      := l_category_id;
609       l_assignment_rec.enable_workflow	      := p_enable_workflow;
610       l_assignment_rec.abort_workflow	      := l_abort_workflow;
611 
612       jtf_task_wf_events_pvt.publish_create_assignment(l_assignment_rec, x_event_return_status);
613 
614       IF (x_event_return_status = 'WARNING')
615       THEN
616 	   fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_WARNING');
617 	   fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
618 	   fnd_msg_pub.add;
619 		ELSIF(x_event_return_status = 'ERROR')
620 		THEN
621 		   fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_ERROR');
622 	   fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
623 	   fnd_msg_pub.add;
624 		   x_return_status := fnd_api.g_ret_sts_unexp_error;
625 	   RAISE fnd_api.g_exc_unexpected_error;
626 		END IF ;
627 
628        END IF;
629 
630   -- ------------------------------------------------------------------------
631   -- Create reference to resource, fix for enh #1845501
632   -- ------------------------------------------------------------------------
633      IF  (rec_task.source_object_type_code <> 'APPOINTMENT')  THEN
634      --Do not create automatic references for party assignment created for an APPOINTMENT
635      --Check bug 3968128
636       jtf_task_utl.create_party_reference (
637 	 p_reference_from   => 'ASSIGNMENT',
638 	 p_task_id	=> l_task_id,
639 	 p_party_type_code	=> l_resource_type_code,
640 	 p_party_id	=> l_resource_id,
641 	 x_msg_count	    => x_msg_count,
642 	 x_msg_data	=> x_msg_data,
643 	 x_return_status    => x_return_status);
644 
645       IF NOT (x_return_status = fnd_api.g_ret_sts_success)
646       THEN
647 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
648 	 RAISE fnd_api.g_exc_unexpected_error;
649       END IF;
650 
651     END IF; -- for the if statement for (rec_task.source_object_type_code <> 'APPOINTMENT')
652 
653       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
654    EXCEPTION
655       WHEN fnd_api.g_exc_unexpected_error
656       THEN
657 	 ROLLBACK TO create_task_assign_pvt;
658 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
659 	 fnd_msg_pub.count_and_get (
660 	    p_count => x_msg_count,
661 	    p_data => x_msg_data
662 	 );
663       WHEN OTHERS
664       THEN
665 	 ROLLBACK TO create_task_assign_pvt;
666 	 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
667 	 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
668 	 fnd_msg_pub.add;
669 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
670 	 fnd_msg_pub.count_and_get (
671 	    p_count => x_msg_count,
672 	    p_data => x_msg_data
673 	 );
674    END;
675 
679       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
676    PROCEDURE create_task_assignment (
677       p_api_version		     IN       NUMBER,
678       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
680       p_task_assignment_id	     IN       NUMBER DEFAULT NULL,
681       p_task_id 		     IN       NUMBER DEFAULT NULL,
682       p_resource_type_code	     IN       VARCHAR2,
683       p_resource_id		     IN       NUMBER,
684       p_actual_effort		     IN       NUMBER DEFAULT NULL,
685       p_actual_effort_uom	     IN       VARCHAR2 DEFAULT NULL,
686       p_schedule_flag		     IN       VARCHAR2 DEFAULT NULL,
687       p_alarm_type_code 	     IN       VARCHAR2 DEFAULT NULL,
688       p_alarm_contact		     IN       VARCHAR2 DEFAULT NULL,
689       p_sched_travel_distance	     IN       NUMBER DEFAULT NULL,
690       p_sched_travel_duration	     IN       NUMBER DEFAULT NULL,
691       p_sched_travel_duration_uom    IN       VARCHAR2 DEFAULT NULL,
692       p_actual_travel_distance	     IN       NUMBER DEFAULT NULL,
693       p_actual_travel_duration	     IN       NUMBER DEFAULT NULL,
694       p_actual_travel_duration_uom   IN       VARCHAR2 DEFAULT NULL,
695       p_actual_start_date	     IN       DATE DEFAULT NULL,
696       p_actual_end_date 	     IN       DATE DEFAULT NULL,
697       p_palm_flag		     IN       VARCHAR2 DEFAULT NULL,
698       p_wince_flag		     IN       VARCHAR2 DEFAULT NULL,
699       p_laptop_flag		     IN       VARCHAR2 DEFAULT NULL,
700       p_device1_flag		     IN       VARCHAR2 DEFAULT NULL,
701       p_device2_flag		     IN       VARCHAR2 DEFAULT NULL,
702       p_device3_flag		     IN       VARCHAR2 DEFAULT NULL,
703       p_resource_territory_id	     IN       NUMBER DEFAULT NULL,
704       p_assignment_status_id	     IN       NUMBER,
705       p_shift_construct_id	     IN       NUMBER DEFAULT NULL,
706       x_return_status		     OUT NOCOPY      VARCHAR2,
707       x_msg_count		     OUT NOCOPY      NUMBER,
708       x_msg_data		     OUT NOCOPY      VARCHAR2,
709       x_task_assignment_id	     OUT NOCOPY      NUMBER,
710       p_attribute1		     IN       VARCHAR2 DEFAULT NULL,
711       p_attribute2		     IN       VARCHAR2 DEFAULT NULL,
712       p_attribute3		     IN       VARCHAR2 DEFAULT NULL,
713       p_attribute4		     IN       VARCHAR2 DEFAULT NULL,
714       p_attribute5		     IN       VARCHAR2 DEFAULT NULL,
715       p_attribute6		     IN       VARCHAR2 DEFAULT NULL,
716       p_attribute7		     IN       VARCHAR2 DEFAULT NULL,
717       p_attribute8		     IN       VARCHAR2 DEFAULT NULL,
718       p_attribute9		     IN       VARCHAR2 DEFAULT NULL,
719       p_attribute10		     IN       VARCHAR2 DEFAULT NULL,
720       p_attribute11		     IN       VARCHAR2 DEFAULT NULL,
721       p_attribute12		     IN       VARCHAR2 DEFAULT NULL,
722       p_attribute13		     IN       VARCHAR2 DEFAULT NULL,
723       p_attribute14		     IN       VARCHAR2 DEFAULT NULL,
724       p_attribute15		     IN       VARCHAR2 DEFAULT NULL,
725       p_attribute_category	     IN       VARCHAR2 DEFAULT NULL,
726       p_assignee_role		     IN       VARCHAR2 DEFAULT 'ASSIGNEE',
727       p_show_on_calendar	     IN       VARCHAR2 DEFAULT jtf_task_utl.g_yes_char,
728       p_category_id		     IN       NUMBER DEFAULT NULL,
729       p_enable_workflow 	     IN       VARCHAR2,
730       p_abort_workflow		     IN       VARCHAR2,
731       p_add_option		     IN       VARCHAR2,
732       p_free_busy_type		     IN       VARCHAR2
733    )
734    IS
735    BEGIN
736 
737       create_task_assignment (
738       p_api_version		     =>       p_api_version,
739       p_init_msg_list		     =>       p_init_msg_list,
740       p_commit			     =>       p_commit,
741       p_task_assignment_id	     =>       p_task_assignment_id,
742       p_task_id 		     =>       p_task_id,
743       p_resource_type_code	     =>       p_resource_type_code,
744       p_resource_id		     =>       p_resource_id,
745       p_actual_effort		     =>       p_actual_effort,
746       p_actual_effort_uom	     =>       p_actual_effort_uom,
747       p_schedule_flag		     =>       p_schedule_flag,
748       p_alarm_type_code 	     =>       p_alarm_type_code,
749       p_alarm_contact		     =>       p_alarm_contact,
750       p_sched_travel_distance	     =>       p_sched_travel_distance,
751       p_sched_travel_duration	     =>       p_sched_travel_duration,
752       p_sched_travel_duration_uom    =>       p_sched_travel_duration_uom,
753       p_actual_travel_distance	     =>       p_actual_travel_distance,
754       p_actual_travel_duration	     =>       p_actual_travel_duration,
755       p_actual_travel_duration_uom   =>       p_actual_travel_duration_uom,
756       p_actual_start_date	     =>       p_actual_start_date,
757       p_actual_end_date 	     =>       p_actual_end_date,
758       p_palm_flag		     =>       p_palm_flag,
759       p_wince_flag		     =>       p_wince_flag,
760       p_laptop_flag		     =>       p_laptop_flag,
761       p_device1_flag		     =>       p_device1_flag,
762       p_device2_flag		     =>       p_device2_flag,
763       p_device3_flag		     =>       p_device3_flag,
764       p_resource_territory_id	     =>       p_resource_territory_id,
765       p_assignment_status_id	     =>       p_assignment_status_id,
766       p_shift_construct_id	     =>       p_shift_construct_id,
767       x_return_status		     =>       x_return_status,
768       x_msg_count		     =>       x_msg_count,
769       x_msg_data		     =>       x_msg_data,
770       x_task_assignment_id	     =>       x_task_assignment_id,
771       p_attribute1		     =>       p_attribute1,
772       p_attribute2		     =>       p_attribute2,
773       p_attribute3		     =>       p_attribute3,
774       p_attribute4		     =>       p_attribute4,
775       p_attribute5		     =>       p_attribute5,
776       p_attribute6		     =>       p_attribute6,
777       p_attribute7		     =>       p_attribute7,
778       p_attribute8		     =>       p_attribute8,
782       p_attribute12		     =>       p_attribute12,
779       p_attribute9		     =>       p_attribute9,
780       p_attribute10		     =>       p_attribute10,
781       p_attribute11		     =>       p_attribute11,
783       p_attribute13		     =>       p_attribute13,
784       p_attribute14		     =>       p_attribute14,
785       p_attribute15		     =>       p_attribute15,
786       p_attribute_category	     =>       p_attribute_category,
787       p_assignee_role		     =>       p_assignee_role,
788       p_show_on_calendar	     =>       p_show_on_calendar,
789       p_category_id		     =>       p_category_id,
790       p_enable_workflow 	     =>       p_enable_workflow,
791       p_abort_workflow		     =>       p_abort_workflow,
792       p_add_option		     =>       p_add_option,
793       p_free_busy_type		     =>       p_free_busy_type,
794       p_object_capacity_id           =>       NULL
795    );
796    END;
797 
798     PROCEDURE create_task_assignment (
799       p_api_version		     IN       NUMBER,
800       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
801       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
802       p_task_assignment_id	     IN       NUMBER DEFAULT NULL,
803       p_task_id 		     IN       NUMBER DEFAULT NULL,
804       p_resource_type_code	     IN       VARCHAR2,
805       p_resource_id		     IN       NUMBER,
806       p_actual_effort		     IN       NUMBER DEFAULT NULL,
807       p_actual_effort_uom	     IN       VARCHAR2 DEFAULT NULL,
808       p_schedule_flag		     IN       VARCHAR2 DEFAULT NULL,
809       p_alarm_type_code 	     IN       VARCHAR2 DEFAULT NULL,
810       p_alarm_contact		     IN       VARCHAR2 DEFAULT NULL,
811       p_sched_travel_distance	     IN       NUMBER DEFAULT NULL,
812       p_sched_travel_duration	     IN       NUMBER DEFAULT NULL,
813       p_sched_travel_duration_uom    IN       VARCHAR2 DEFAULT NULL,
814       p_actual_travel_distance	     IN       NUMBER DEFAULT NULL,
815       p_actual_travel_duration	     IN       NUMBER DEFAULT NULL,
816       p_actual_travel_duration_uom   IN       VARCHAR2 DEFAULT NULL,
817       p_actual_start_date	     IN       DATE DEFAULT NULL,
818       p_actual_end_date 	     IN       DATE DEFAULT NULL,
819       p_palm_flag		     IN       VARCHAR2 DEFAULT NULL,
820       p_wince_flag		     IN       VARCHAR2 DEFAULT NULL,
821       p_laptop_flag		     IN       VARCHAR2 DEFAULT NULL,
822       p_device1_flag		     IN       VARCHAR2 DEFAULT NULL,
823       p_device2_flag		     IN       VARCHAR2 DEFAULT NULL,
824       p_device3_flag		     IN       VARCHAR2 DEFAULT NULL,
825       p_resource_territory_id	     IN       NUMBER DEFAULT NULL,
826       p_assignment_status_id	     IN       NUMBER,
827       p_shift_construct_id	     IN       NUMBER DEFAULT NULL,
828       x_return_status		     OUT NOCOPY      VARCHAR2,
829       x_msg_count		     OUT NOCOPY      NUMBER,
830       x_msg_data		     OUT NOCOPY      VARCHAR2,
831       x_task_assignment_id	     OUT NOCOPY      NUMBER,
832       p_attribute1		     IN       VARCHAR2 DEFAULT NULL,
833       p_attribute2		     IN       VARCHAR2 DEFAULT NULL,
834       p_attribute3		     IN       VARCHAR2 DEFAULT NULL,
835       p_attribute4		     IN       VARCHAR2 DEFAULT NULL,
836       p_attribute5		     IN       VARCHAR2 DEFAULT NULL,
837       p_attribute6		     IN       VARCHAR2 DEFAULT NULL,
838       p_attribute7		     IN       VARCHAR2 DEFAULT NULL,
839       p_attribute8		     IN       VARCHAR2 DEFAULT NULL,
840       p_attribute9		     IN       VARCHAR2 DEFAULT NULL,
841       p_attribute10		     IN       VARCHAR2 DEFAULT NULL,
842       p_attribute11		     IN       VARCHAR2 DEFAULT NULL,
843       p_attribute12		     IN       VARCHAR2 DEFAULT NULL,
844       p_attribute13		     IN       VARCHAR2 DEFAULT NULL,
845       p_attribute14		     IN       VARCHAR2 DEFAULT NULL,
846       p_attribute15		     IN       VARCHAR2 DEFAULT NULL,
847       p_attribute_category	     IN       VARCHAR2 DEFAULT NULL,
848       p_assignee_role		     IN       VARCHAR2 DEFAULT 'ASSIGNEE',
849       p_show_on_calendar	     IN       VARCHAR2 DEFAULT jtf_task_utl.g_yes_char,
850       p_category_id		     IN       NUMBER DEFAULT NULL,
851       p_enable_workflow 	     IN       VARCHAR2,
852       p_abort_workflow		     IN       VARCHAR2,
853       p_add_option		     IN       VARCHAR2
854     )
855    IS
856    BEGIN
857       jtf_task_assignments_pvt.create_task_assignment (
858       p_api_version		     => p_api_version,
859       p_init_msg_list		     => p_init_msg_list,
860       p_commit			     => p_commit,
861       p_task_assignment_id	     => p_task_assignment_id,
862       p_task_id 		     => p_task_id,
863       p_resource_type_code	     => p_resource_type_code,
864       p_resource_id		     => p_resource_id,
865       p_actual_effort		     => p_actual_effort,
866       p_actual_effort_uom	     => p_actual_effort_uom,
867       p_schedule_flag		     => p_schedule_flag,
868       p_alarm_type_code 	     => p_alarm_type_code,
869       p_alarm_contact		     => p_alarm_contact,
870       p_sched_travel_distance	     => p_sched_travel_distance,
871       p_sched_travel_duration	     => p_sched_travel_duration,
872       p_sched_travel_duration_uom    => p_sched_travel_duration_uom,
873       p_actual_travel_distance	     => p_actual_travel_distance,
874       p_actual_travel_duration	     => p_actual_travel_duration,
875       p_actual_travel_duration_uom   => p_actual_travel_duration_uom,
876       p_actual_start_date	     => p_actual_start_date,
877       p_actual_end_date 	     => p_actual_end_date,
878       p_palm_flag		     => p_palm_flag,
879       p_wince_flag		     => p_wince_flag,
880       p_laptop_flag		     => p_laptop_flag,
881       p_device1_flag		     => p_device1_flag,
882       p_device2_flag		     => p_device2_flag,
883       p_device3_flag		     => p_device3_flag,
884       p_resource_territory_id	     => p_resource_territory_id,
888       x_msg_count		     => x_msg_count,
885       p_assignment_status_id	     => p_assignment_status_id,
886       p_shift_construct_id	     => p_shift_construct_id,
887       x_return_status		     => x_return_status,
889       x_msg_data		     => x_msg_data,
890       x_task_assignment_id	     => x_task_assignment_id,
891       p_attribute1		     => p_attribute1,
892       p_attribute2		     => p_attribute2,
893       p_attribute3		     => p_attribute3,
894       p_attribute4		     => p_attribute4,
895       p_attribute5		     => p_attribute5,
896       p_attribute6		     => p_attribute6,
897       p_attribute7		     => p_attribute7,
898       p_attribute8		     => p_attribute8,
899       p_attribute9		     => p_attribute9,
900       p_attribute10		     => p_attribute10,
901       p_attribute11		     => p_attribute11,
902       p_attribute12		     => p_attribute12,
903       p_attribute13		     => p_attribute13,
904       p_attribute14		     => p_attribute14,
905       p_attribute15		     => p_attribute15,
906       p_attribute_category	     => p_attribute_category,
907       p_assignee_role		     => p_assignee_role,
908       p_show_on_calendar	     => p_show_on_calendar,
909       p_category_id		     => p_category_id,
910       p_enable_workflow 	     => p_enable_workflow,
911       p_abort_workflow		     => p_abort_workflow,
912       p_add_option		     => p_add_option,
913       p_free_busy_type		     => NULL
914       );
915    END;
916 
917 
918    PROCEDURE create_task_assignment (
919       p_api_version		     IN       NUMBER,
920       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
921       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
922       p_task_assignment_id	     IN       NUMBER DEFAULT NULL,
923       p_task_id 		     IN       NUMBER DEFAULT NULL,
924       p_resource_type_code	     IN       VARCHAR2,
925       p_resource_id		     IN       NUMBER,
926       p_actual_effort		     IN       NUMBER DEFAULT NULL,
927       p_actual_effort_uom	     IN       VARCHAR2 DEFAULT NULL,
928       p_schedule_flag		     IN       VARCHAR2 DEFAULT NULL,
929       p_alarm_type_code 	     IN       VARCHAR2 DEFAULT NULL,
930       p_alarm_contact		     IN       VARCHAR2 DEFAULT NULL,
931       p_sched_travel_distance	     IN       NUMBER DEFAULT NULL,
932       p_sched_travel_duration	     IN       NUMBER DEFAULT NULL,
933       p_sched_travel_duration_uom    IN       VARCHAR2 DEFAULT NULL,
934       p_actual_travel_distance	     IN       NUMBER DEFAULT NULL,
935       p_actual_travel_duration	     IN       NUMBER DEFAULT NULL,
936       p_actual_travel_duration_uom   IN       VARCHAR2 DEFAULT NULL,
937       p_actual_start_date	     IN       DATE DEFAULT NULL,
938       p_actual_end_date 	     IN       DATE DEFAULT NULL,
939       p_palm_flag		     IN       VARCHAR2 DEFAULT NULL,
940       p_wince_flag		     IN       VARCHAR2 DEFAULT NULL,
941       p_laptop_flag		     IN       VARCHAR2 DEFAULT NULL,
942       p_device1_flag		     IN       VARCHAR2 DEFAULT NULL,
943       p_device2_flag		     IN       VARCHAR2 DEFAULT NULL,
944       p_device3_flag		     IN       VARCHAR2 DEFAULT NULL,
945       p_resource_territory_id	     IN       NUMBER DEFAULT NULL,
946       p_assignment_status_id	     IN       NUMBER,
947       p_shift_construct_id	     IN       NUMBER DEFAULT NULL,
948       x_return_status		     OUT NOCOPY      VARCHAR2,
949       x_msg_count		     OUT NOCOPY      NUMBER,
950       x_msg_data		     OUT NOCOPY      VARCHAR2,
951       x_task_assignment_id	     OUT NOCOPY      NUMBER,
952       p_attribute1		     IN       VARCHAR2 DEFAULT NULL,
953       p_attribute2		     IN       VARCHAR2 DEFAULT NULL,
954       p_attribute3		     IN       VARCHAR2 DEFAULT NULL,
955       p_attribute4		     IN       VARCHAR2 DEFAULT NULL,
956       p_attribute5		     IN       VARCHAR2 DEFAULT NULL,
957       p_attribute6		     IN       VARCHAR2 DEFAULT NULL,
958       p_attribute7		     IN       VARCHAR2 DEFAULT NULL,
959       p_attribute8		     IN       VARCHAR2 DEFAULT NULL,
960       p_attribute9		     IN       VARCHAR2 DEFAULT NULL,
961       p_attribute10		     IN       VARCHAR2 DEFAULT NULL,
962       p_attribute11		     IN       VARCHAR2 DEFAULT NULL,
963       p_attribute12		     IN       VARCHAR2 DEFAULT NULL,
964       p_attribute13		     IN       VARCHAR2 DEFAULT NULL,
965       p_attribute14		     IN       VARCHAR2 DEFAULT NULL,
966       p_attribute15		     IN       VARCHAR2 DEFAULT NULL,
967       p_attribute_category	     IN       VARCHAR2 DEFAULT NULL,
968       p_assignee_role		     IN       VARCHAR2 DEFAULT 'ASSIGNEE',
969       p_show_on_calendar	     IN       VARCHAR2
970 	    DEFAULT jtf_task_utl.g_yes_char,
971       p_category_id		     IN       NUMBER DEFAULT NULL,
972       p_enable_workflow 	     IN       VARCHAR2,
973       p_abort_workflow		     IN       VARCHAR2
974     )
975    IS
976    BEGIN
977       jtf_task_assignments_pvt.create_task_assignment (
978       p_api_version		     => p_api_version,
979       p_init_msg_list		     => p_init_msg_list,
980       p_commit			     => p_commit,
981       p_task_assignment_id	     => p_task_assignment_id,
982       p_task_id 		     => p_task_id,
983       p_resource_type_code	     => p_resource_type_code,
984       p_resource_id		     => p_resource_id,
985       p_actual_effort		     => p_actual_effort,
986       p_actual_effort_uom	     => p_actual_effort_uom,
987       p_schedule_flag		     => p_schedule_flag,
988       p_alarm_type_code 	     => p_alarm_type_code,
989       p_alarm_contact		     => p_alarm_contact,
990       p_sched_travel_distance	     => p_sched_travel_distance,
991       p_sched_travel_duration	     => p_sched_travel_duration,
992       p_sched_travel_duration_uom    => p_sched_travel_duration_uom,
993       p_actual_travel_distance	     => p_actual_travel_distance,
997       p_actual_end_date 	     => p_actual_end_date,
994       p_actual_travel_duration	     => p_actual_travel_duration,
995       p_actual_travel_duration_uom   => p_actual_travel_duration_uom,
996       p_actual_start_date	     => p_actual_start_date,
998       p_palm_flag		     => p_palm_flag,
999       p_wince_flag		     => p_wince_flag,
1000       p_laptop_flag		     => p_laptop_flag,
1001       p_device1_flag		     => p_device1_flag,
1002       p_device2_flag		     => p_device2_flag,
1003       p_device3_flag		     => p_device3_flag,
1004       p_resource_territory_id	     => p_resource_territory_id,
1005       p_assignment_status_id	     => p_assignment_status_id,
1006       p_shift_construct_id	     => p_shift_construct_id,
1007       x_return_status		     => x_return_status,
1008       x_msg_count		     => x_msg_count,
1009       x_msg_data		     => x_msg_data,
1010       x_task_assignment_id	     => x_task_assignment_id,
1011       p_attribute1		     => p_attribute1,
1012       p_attribute2		     => p_attribute2,
1013       p_attribute3		     => p_attribute3,
1014       p_attribute4		     => p_attribute4,
1015       p_attribute5		     => p_attribute5,
1016       p_attribute6		     => p_attribute6,
1017       p_attribute7		     => p_attribute7,
1018       p_attribute8		     => p_attribute8,
1019       p_attribute9		     => p_attribute9,
1020       p_attribute10		     => p_attribute10,
1021       p_attribute11		     => p_attribute11,
1022       p_attribute12		     => p_attribute12,
1023       p_attribute13		     => p_attribute13,
1024       p_attribute14		     => p_attribute14,
1025       p_attribute15		     => p_attribute15,
1026       p_attribute_category	     => p_attribute_category,
1027       p_assignee_role		     => p_assignee_role,
1028       p_show_on_calendar	     => p_show_on_calendar,
1029       p_category_id		     => p_category_id,
1030       p_enable_workflow 	     => p_enable_workflow,
1031       p_abort_workflow		     => p_abort_workflow,
1032       p_add_option		     => JTF_TASK_REPEAT_APPT_PVT.G_ONE,
1033       p_free_busy_type		     => NULL
1034       );
1035    END;
1036 
1037    PROCEDURE create_task_assignment (
1038       p_api_version		     IN       NUMBER,
1039       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
1040       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
1041       p_task_assignment_id	     IN       NUMBER DEFAULT NULL,
1042       p_task_id 		     IN       NUMBER DEFAULT NULL,
1043       p_resource_type_code	     IN       VARCHAR2,
1044       p_resource_id		     IN       NUMBER,
1045       p_actual_effort		     IN       NUMBER DEFAULT NULL,
1046       p_actual_effort_uom	     IN       VARCHAR2 DEFAULT NULL,
1047       p_schedule_flag		     IN       VARCHAR2 DEFAULT NULL,
1048       p_alarm_type_code 	     IN       VARCHAR2 DEFAULT NULL,
1049       p_alarm_contact		     IN       VARCHAR2 DEFAULT NULL,
1050       p_sched_travel_distance	     IN       NUMBER DEFAULT NULL,
1051       p_sched_travel_duration	     IN       NUMBER DEFAULT NULL,
1052       p_sched_travel_duration_uom    IN       VARCHAR2 DEFAULT NULL,
1053       p_actual_travel_distance	     IN       NUMBER DEFAULT NULL,
1054       p_actual_travel_duration	     IN       NUMBER DEFAULT NULL,
1055       p_actual_travel_duration_uom   IN       VARCHAR2 DEFAULT NULL,
1056       p_actual_start_date	     IN       DATE DEFAULT NULL,
1057       p_actual_end_date 	     IN       DATE DEFAULT NULL,
1058       p_palm_flag		     IN       VARCHAR2 DEFAULT NULL,
1059       p_wince_flag		     IN       VARCHAR2 DEFAULT NULL,
1060       p_laptop_flag		     IN       VARCHAR2 DEFAULT NULL,
1061       p_device1_flag		     IN       VARCHAR2 DEFAULT NULL,
1062       p_device2_flag		     IN       VARCHAR2 DEFAULT NULL,
1063       p_device3_flag		     IN       VARCHAR2 DEFAULT NULL,
1064       p_resource_territory_id	     IN       NUMBER DEFAULT NULL,
1065       p_assignment_status_id	     IN       NUMBER,
1066       p_shift_construct_id	     IN       NUMBER DEFAULT NULL,
1067       x_return_status		     OUT NOCOPY      VARCHAR2,
1068       x_msg_count		     OUT NOCOPY      NUMBER,
1069       x_msg_data		     OUT NOCOPY      VARCHAR2,
1070       x_task_assignment_id	     OUT NOCOPY      NUMBER,
1071       p_attribute1		     IN       VARCHAR2 DEFAULT NULL,
1072       p_attribute2		     IN       VARCHAR2 DEFAULT NULL,
1073       p_attribute3		     IN       VARCHAR2 DEFAULT NULL,
1074       p_attribute4		     IN       VARCHAR2 DEFAULT NULL,
1075       p_attribute5		     IN       VARCHAR2 DEFAULT NULL,
1076       p_attribute6		     IN       VARCHAR2 DEFAULT NULL,
1077       p_attribute7		     IN       VARCHAR2 DEFAULT NULL,
1078       p_attribute8		     IN       VARCHAR2 DEFAULT NULL,
1079       p_attribute9		     IN       VARCHAR2 DEFAULT NULL,
1080       p_attribute10		     IN       VARCHAR2 DEFAULT NULL,
1081       p_attribute11		     IN       VARCHAR2 DEFAULT NULL,
1082       p_attribute12		     IN       VARCHAR2 DEFAULT NULL,
1083       p_attribute13		     IN       VARCHAR2 DEFAULT NULL,
1084       p_attribute14		     IN       VARCHAR2 DEFAULT NULL,
1085       p_attribute15		     IN       VARCHAR2 DEFAULT NULL,
1086       p_attribute_category	     IN       VARCHAR2 DEFAULT NULL,
1087       p_assignee_role		     IN       VARCHAR2 DEFAULT 'ASSIGNEE',
1088       p_show_on_calendar	     IN       VARCHAR2
1089 	    DEFAULT jtf_task_utl.g_yes_char,
1090       p_category_id		     IN       NUMBER DEFAULT NULL
1091    )
1092    IS
1093    BEGIN
1094       jtf_task_assignments_pvt.create_task_assignment (
1095       p_api_version		     => p_api_version,
1096       p_init_msg_list		     => p_init_msg_list,
1097       p_commit			     => p_commit,
1098       p_task_assignment_id	     => p_task_assignment_id,
1099       p_task_id 		     => p_task_id,
1100       p_resource_type_code	     => p_resource_type_code,
1101       p_resource_id		     => p_resource_id,
1102       p_actual_effort		     => p_actual_effort,
1103       p_actual_effort_uom	     => p_actual_effort_uom,
1104       p_schedule_flag		     => p_schedule_flag,
1105       p_alarm_type_code 	     => p_alarm_type_code,
1106       p_alarm_contact		     => p_alarm_contact,
1107       p_sched_travel_distance	     => p_sched_travel_distance,
1108       p_sched_travel_duration	     => p_sched_travel_duration,
1109       p_sched_travel_duration_uom    => p_sched_travel_duration_uom,
1110       p_actual_travel_distance	     => p_actual_travel_distance,
1111       p_actual_travel_duration	     => p_actual_travel_duration,
1112       p_actual_travel_duration_uom   => p_actual_travel_duration_uom,
1113       p_actual_start_date	     => p_actual_start_date,
1114       p_actual_end_date 	     => p_actual_end_date,
1115       p_palm_flag		     => p_palm_flag,
1116       p_wince_flag		     => p_wince_flag,
1117       p_laptop_flag		     => p_laptop_flag,
1118       p_device1_flag		     => p_device1_flag,
1119       p_device2_flag		     => p_device2_flag,
1120       p_device3_flag		     => p_device3_flag,
1121       p_resource_territory_id	     => p_resource_territory_id,
1122       p_assignment_status_id	     => p_assignment_status_id,
1123       p_shift_construct_id	     => p_shift_construct_id,
1124       x_return_status		     => x_return_status,
1125       x_msg_count		     => x_msg_count,
1126       x_msg_data		     => x_msg_data,
1127       x_task_assignment_id	     => x_task_assignment_id,
1128       p_attribute1		     => p_attribute1,
1129       p_attribute2		     => p_attribute2,
1130       p_attribute3		     => p_attribute3,
1131       p_attribute4		     => p_attribute4,
1132       p_attribute5		     => p_attribute5,
1133       p_attribute6		     => p_attribute6,
1134       p_attribute7		     => p_attribute7,
1135       p_attribute8		     => p_attribute8,
1136       p_attribute9		     => p_attribute9,
1137       p_attribute10		     => p_attribute10,
1138       p_attribute11		     => p_attribute11,
1139       p_attribute12		     => p_attribute12,
1140       p_attribute13		     => p_attribute13,
1141       p_attribute14		     => p_attribute14,
1142       p_attribute15		     => p_attribute15,
1143       p_attribute_category	     => p_attribute_category,
1144       p_assignee_role		     => p_assignee_role,
1145       p_show_on_calendar	     => p_show_on_calendar,
1146       p_category_id		     => p_category_id,
1147       p_enable_workflow 	     => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
1148       p_abort_workflow		     => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
1149 	  p_add_option		         => JTF_TASK_REPEAT_APPT_PVT.G_ONE,
1150       p_free_busy_type		     => NULL
1151       );
1152    END;
1153 
1154 --Procedure to Update the Task Assignment
1155    PROCEDURE update_task_assignment (
1156       p_api_version		     IN       NUMBER,
1157       p_object_version_number	     IN       OUT NOCOPY   NUMBER,
1158       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
1159       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
1160       p_task_assignment_id	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1161       p_resource_type_code	     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1162       p_resource_id		     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1163       p_actual_effort		     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1164       p_actual_effort_uom	     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1165       p_schedule_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1166       p_alarm_type_code 	     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1167       p_alarm_contact		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1168       p_sched_travel_distance	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1169       p_sched_travel_duration	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1170       p_sched_travel_duration_uom    IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1171       p_actual_travel_distance	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1172       p_actual_travel_duration	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1173       p_actual_travel_duration_uom   IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1174       p_actual_start_date	     IN       DATE DEFAULT fnd_api.g_miss_date,
1175       p_actual_end_date 	     IN       DATE DEFAULT fnd_api.g_miss_date,
1176       p_palm_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1177       p_wince_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1178       p_laptop_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1179       p_device1_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1180       p_device2_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1181       p_device3_flag		     IN       VARCHAR2 DEFAULT fnd_api.g_miss_char,
1182       p_resource_territory_id	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1183       p_assignment_status_id	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1184       p_shift_construct_id	     IN       NUMBER DEFAULT fnd_api.g_miss_num,
1185       x_return_status		     OUT      NOCOPY      VARCHAR2,
1186       x_msg_count		     OUT      NOCOPY      NUMBER,
1187       x_msg_data		     OUT      NOCOPY      VARCHAR2,
1188       p_attribute1		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1189       p_attribute2		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1190       p_attribute3		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1191       p_attribute4		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1192       p_attribute5		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1193       p_attribute6		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1194       p_attribute7		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1195       p_attribute8		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1196       p_attribute9		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1197       p_attribute10		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1198       p_attribute11		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1199       p_attribute12		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1200       p_attribute13		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1201       p_attribute14		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1202       p_attribute15		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1203       p_attribute_category	     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1204       p_assignee_role		     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1205       p_show_on_calendar	     IN       VARCHAR2 DEFAULT jtf_task_utl.g_miss_char,
1206       p_category_id		     IN       NUMBER DEFAULT jtf_task_utl.g_miss_number,
1207       p_enable_workflow 	     IN       VARCHAR2,
1208       p_abort_workflow		     IN       VARCHAR2,
1209       p_free_busy_type		     IN       VARCHAR2
1210    )
1211    IS
1212    BEGIN
1213       jtf_task_assignments_pvt.update_task_assignment (
1214       p_api_version		     => p_api_version,
1215       p_object_version_number	     => p_object_version_number,
1216       p_init_msg_list		     => p_init_msg_list,
1217       p_commit			     => p_commit,
1218       p_task_assignment_id	     => p_task_assignment_id,
1219       p_resource_type_code	     => p_resource_type_code,
1220       p_resource_id		     => p_resource_id,
1221       p_actual_effort		     => p_actual_effort,
1222       p_actual_effort_uom	     => p_actual_effort_uom,
1223       p_schedule_flag		     => p_schedule_flag,
1224       p_alarm_type_code 	     => p_alarm_type_code,
1225       p_alarm_contact		     => p_alarm_contact,
1226       p_sched_travel_distance	     => p_sched_travel_distance,
1227       p_sched_travel_duration	     => p_sched_travel_duration,
1228       p_sched_travel_duration_uom    => p_sched_travel_duration_uom,
1229       p_actual_travel_distance	     => p_actual_travel_distance,
1230       p_actual_travel_duration	     => p_actual_travel_duration,
1231       p_actual_travel_duration_uom   => p_actual_travel_duration_uom,
1232       p_actual_start_date	     => p_actual_start_date,
1233       p_actual_end_date 	     => p_actual_end_date,
1234       p_palm_flag		     => p_palm_flag,
1235       p_wince_flag		     => p_wince_flag,
1236       p_laptop_flag		     => p_laptop_flag,
1237       p_device1_flag		     => p_device1_flag,
1238       p_device2_flag		     => p_device2_flag,
1239       p_device3_flag		     => p_device3_flag,
1240       p_resource_territory_id	     => p_resource_territory_id,
1241       p_assignment_status_id	     => p_assignment_status_id,
1242       p_shift_construct_id	     => p_shift_construct_id,
1243       x_return_status		     => x_return_status,
1244       x_msg_count		     => x_msg_count,
1245       x_msg_data		     => x_msg_data,
1246       p_attribute1		     => p_attribute1,
1247       p_attribute2		     => p_attribute2,
1248       p_attribute3		     => p_attribute3,
1249       p_attribute4		     => p_attribute4,
1250       p_attribute5		     => p_attribute5,
1251       p_attribute6		     => p_attribute6,
1252       p_attribute7		     => p_attribute7,
1253       p_attribute8		     => p_attribute8,
1254       p_attribute9		     => p_attribute9,
1255       p_attribute10		     => p_attribute10,
1256       p_attribute11		     => p_attribute11,
1257       p_attribute12		     => p_attribute12,
1258       p_attribute13		     => p_attribute13,
1259       p_attribute14		     => p_attribute14,
1260       p_attribute15		     => p_attribute15,
1261       p_attribute_category	     => p_attribute_category,
1262       p_assignee_role		     => p_assignee_role,
1263       p_show_on_calendar	     => p_show_on_calendar,
1264       p_category_id		     => p_category_id,
1265       p_enable_workflow 	     => p_enable_workflow,
1266       p_abort_workflow		     => p_abort_workflow,
1267       p_free_busy_type		     => p_free_busy_type,
1268       p_object_capacity_id           => fnd_api.g_miss_num
1269       );
1270    END;
1271 
1272 --Procedure to Update the Task Assignment
1273    PROCEDURE update_task_assignment (
1274       p_api_version		     IN       NUMBER,
1275       p_object_version_number	     IN OUT NOCOPY   NUMBER,
1276       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
1277       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
1278       p_task_assignment_id	     IN       NUMBER
1279 	    DEFAULT fnd_api.g_miss_num,
1280       p_resource_type_code	     IN       VARCHAR2
1281 	    DEFAULT fnd_api.g_miss_char,
1282       p_resource_id		     IN       NUMBER
1283 	    DEFAULT fnd_api.g_miss_num,
1284       p_actual_effort		     IN       NUMBER
1285 	    DEFAULT fnd_api.g_miss_num,
1286       p_actual_effort_uom	     IN       VARCHAR2
1287 	    DEFAULT fnd_api.g_miss_char,
1288       p_schedule_flag		     IN       VARCHAR2
1289 	    DEFAULT fnd_api.g_miss_char,
1290       p_alarm_type_code 	     IN       VARCHAR2
1291 	    DEFAULT fnd_api.g_miss_char,
1292       p_alarm_contact		     IN       VARCHAR2
1293 	    DEFAULT fnd_api.g_miss_char,
1294       p_sched_travel_distance	     IN       NUMBER
1295 	    DEFAULT fnd_api.g_miss_num,
1296       p_sched_travel_duration	     IN       NUMBER
1297 	    DEFAULT fnd_api.g_miss_num,
1298       p_sched_travel_duration_uom    IN       VARCHAR2
1299 	    DEFAULT fnd_api.g_miss_char,
1300       p_actual_travel_distance	     IN       NUMBER
1301 	    DEFAULT fnd_api.g_miss_num,
1302       p_actual_travel_duration	     IN       NUMBER
1303 	    DEFAULT fnd_api.g_miss_num,
1304       p_actual_travel_duration_uom   IN       VARCHAR2
1305 	    DEFAULT fnd_api.g_miss_char,
1306       p_actual_start_date	     IN       DATE DEFAULT fnd_api.g_miss_date,
1307       p_actual_end_date 	     IN       DATE DEFAULT fnd_api.g_miss_date,
1308       p_palm_flag		     IN       VARCHAR2
1309 	    DEFAULT fnd_api.g_miss_char,
1310       p_wince_flag		     IN       VARCHAR2
1311 	    DEFAULT fnd_api.g_miss_char,
1312       p_laptop_flag		     IN       VARCHAR2
1313 	    DEFAULT fnd_api.g_miss_char,
1314       p_device1_flag		     IN       VARCHAR2
1315 	    DEFAULT fnd_api.g_miss_char,
1316       p_device2_flag		     IN       VARCHAR2
1317 	    DEFAULT fnd_api.g_miss_char,
1318       p_device3_flag		     IN       VARCHAR2
1319 	    DEFAULT fnd_api.g_miss_char,
1320       p_resource_territory_id	     IN       NUMBER
1321 	    DEFAULT fnd_api.g_miss_num,
1322       p_assignment_status_id	     IN       NUMBER
1323 	    DEFAULT fnd_api.g_miss_num,
1324       p_shift_construct_id	     IN       NUMBER
1325 	    DEFAULT fnd_api.g_miss_num,
1326       x_return_status		     OUT NOCOPY      VARCHAR2,
1327       x_msg_count		     OUT NOCOPY      NUMBER,
1328       x_msg_data		     OUT NOCOPY      VARCHAR2,
1329       p_attribute1		     IN       VARCHAR2
1330 	    DEFAULT jtf_task_utl.g_miss_char,
1331       p_attribute2		     IN       VARCHAR2
1332 	    DEFAULT jtf_task_utl.g_miss_char,
1333       p_attribute3		     IN       VARCHAR2
1334 	    DEFAULT jtf_task_utl.g_miss_char,
1335       p_attribute4		     IN       VARCHAR2
1336 	    DEFAULT jtf_task_utl.g_miss_char,
1337       p_attribute5		     IN       VARCHAR2
1338 	    DEFAULT jtf_task_utl.g_miss_char,
1339       p_attribute6		     IN       VARCHAR2
1340 	    DEFAULT jtf_task_utl.g_miss_char,
1341       p_attribute7		     IN       VARCHAR2
1342 	    DEFAULT jtf_task_utl.g_miss_char,
1343       p_attribute8		     IN       VARCHAR2
1344 	    DEFAULT jtf_task_utl.g_miss_char,
1345       p_attribute9		     IN       VARCHAR2
1346 	    DEFAULT jtf_task_utl.g_miss_char,
1347       p_attribute10		     IN       VARCHAR2
1348 	    DEFAULT jtf_task_utl.g_miss_char,
1349       p_attribute11		     IN       VARCHAR2
1350 	    DEFAULT jtf_task_utl.g_miss_char,
1351       p_attribute12		     IN       VARCHAR2
1352 	    DEFAULT jtf_task_utl.g_miss_char,
1353       p_attribute13		     IN       VARCHAR2
1354 	    DEFAULT jtf_task_utl.g_miss_char,
1355       p_attribute14		     IN       VARCHAR2
1356 	    DEFAULT jtf_task_utl.g_miss_char,
1357       p_attribute15		     IN       VARCHAR2
1358 	    DEFAULT jtf_task_utl.g_miss_char,
1359       p_attribute_category	     IN       VARCHAR2
1360 	    DEFAULT jtf_task_utl.g_miss_char,
1361       p_assignee_role		     IN       VARCHAR2
1362 	    DEFAULT jtf_task_utl.g_miss_char,
1363       p_show_on_calendar	     IN       VARCHAR2
1364 	    DEFAULT jtf_task_utl.g_miss_char,
1365       p_category_id		     IN       NUMBER
1366 	    DEFAULT jtf_task_utl.g_miss_number,
1367       p_enable_workflow 	     IN       VARCHAR2,
1368       p_abort_workflow		     IN       VARCHAR2,
1369       p_free_busy_type		     IN       VARCHAR2,
1370       p_object_capacity_id           IN       NUMBER
1371    )
1372    IS
1373       l_api_version	CONSTANT NUMBER
1374 	       := 1.0;
1375       l_api_name	CONSTANT VARCHAR(30)
1376 	       := 'Update_Task_Assignment';
1377       l_return_status		 VARCHAR2(1)
1378 	       := fnd_api.g_ret_sts_success;
1379       l_task_assignment_id	 jtf_task_all_assignments.task_assignment_id%TYPE
1380 	       := p_task_assignment_id;
1381       l_task_id 		 jtf_task_all_assignments.task_id%TYPE;
1382       l_resource_type_code	 jtf_task_all_assignments.resource_type_code%TYPE
1383 	       := p_resource_type_code;
1384       l_resource_id		 jtf_task_all_assignments.resource_id%TYPE
1385 	       := p_resource_id;
1386       l_act_eff 		 jtf_task_all_assignments.actual_effort%TYPE
1387 	       := p_actual_effort;
1388       l_act_eff_uom		 jtf_task_all_assignments.actual_effort_uom%TYPE
1389 	       := p_actual_effort_uom;
1390       l_schedule_flag		 jtf_task_all_assignments.schedule_flag%TYPE
1391 	       := p_schedule_flag;
1392       l_alarm_type_code 	 jtf_task_all_assignments.alarm_type_code%TYPE
1393 	       := p_alarm_type_code;
1394       l_alarm_contact		 jtf_task_all_assignments.alarm_contact%TYPE
1395 	       := p_alarm_contact;
1396       l_sched_travel_distance	 jtf_task_all_assignments.sched_travel_distance%TYPE
1397 	       := p_sched_travel_distance;
1398       l_sched_travel_duration	 jtf_task_all_assignments.sched_travel_duration%TYPE
1399 	       := p_sched_travel_duration;
1400       l_sched_travel_dur_uom	 jtf_task_all_assignments.sched_travel_duration_uom%TYPE
1401 	       := p_sched_travel_duration_uom;
1402       l_actual_travel_distance	 jtf_task_all_assignments.actual_travel_distance%TYPE
1403 	       := p_actual_travel_distance;
1404       l_actual_travel_duration	 jtf_task_all_assignments.actual_travel_duration%TYPE
1405 	       := p_actual_travel_duration;
1406       l_actual_travel_dur_uom	 jtf_task_all_assignments.actual_travel_duration_uom%TYPE
1407 	       := p_actual_travel_duration_uom;
1408       l_actual_start_date	 jtf_task_all_assignments.actual_start_date%TYPE
1409 	       := p_actual_start_date;
1410       l_actual_end_date 	 jtf_task_all_assignments.actual_end_date%TYPE
1411 	       := p_actual_end_date;
1412       l_palm_flag		 jtf_task_all_assignments.palm_flag%TYPE
1413 	       := p_palm_flag;
1414       l_wince_flag		 jtf_task_all_assignments.wince_flag%TYPE
1415 	       := p_wince_flag;
1416       l_laptop_flag		 jtf_task_all_assignments.laptop_flag%TYPE
1417 	       := p_laptop_flag;
1418       l_device1_flag		 jtf_task_all_assignments.device1_flag%TYPE
1419 	       := p_device1_flag;
1420       l_device2_flag		 jtf_task_all_assignments.device2_flag%TYPE
1421 	       := p_device2_flag;
1422       l_device3_flag		 jtf_task_all_assignments.device3_flag%TYPE
1423 	       := p_device3_flag;
1424       l_msg_data		 VARCHAR2(2000);
1425       l_msg_count		 NUMBER;
1426       x 			 CHAR;
1427       l_rowid			 ROWID;
1428       l_assignment_status_id	 jtf_task_all_assignments.assignment_status_id%TYPE
1429 	       := p_assignment_status_id;
1430       l_resource_territory_id	 jtf_task_all_assignments.resource_territory_id%TYPE
1431 	       := p_resource_territory_id;
1432       l_shift_construct_id	 jtf_task_all_assignments.shift_construct_id%TYPE
1433 	       := p_shift_construct_id;
1434       l_assignee_role		 jtf_task_all_assignments.assignee_role%TYPE
1435 	       := p_assignee_role;
1436       l_show_on_calendar	 jtf_task_all_assignments.show_on_calendar%TYPE
1437 	       := p_show_on_calendar;
1438       l_category_id		 jtf_task_all_assignments.category_id%TYPE
1439 	       := p_category_id;
1440       l_assignee_role_db	 jtf_task_all_assignments.assignee_role%TYPE;
1441       l_session 		 VARCHAR2(10) := 'UPDATE';
1442       l_enable_workflow 	 VARCHAR2(1)  := p_enable_workflow;
1443       l_abort_workflow		 VARCHAR2(1)  := p_abort_workflow;
1444       l_free_busy_type		 jtf_task_all_assignments.free_busy_type%TYPE
1445 	       := p_free_busy_type;
1446       l_object_capacity_id	 jtf_task_all_assignments.object_capacity_id%TYPE
1447 	       := p_object_capacity_id;
1448       l_booking_start_date	 jtf_task_all_assignments.booking_start_date%TYPE;
1449       l_booking_end_date 	 jtf_task_all_assignments.booking_end_date%TYPE;
1450 
1451       -- Added for bug# 5514013 on 11/09/2006
1452       l_old_assignment_status_id   jtf_task_all_assignments.assignment_status_id%TYPE;
1453 
1454       CURSOR task_ass_u
1455       IS
1456 	 SELECT task_id,
1457 		assignment_status_id   old_assignment_status_id,
1458 		DECODE (
1459 		   p_resource_id,
1460 		   fnd_api.g_miss_num, resource_id,
1461 		   p_resource_id
1462 		) resource_id,
1463 		DECODE (
1464 		   p_resource_type_code,
1465 		   fnd_api.g_miss_char, resource_type_code,
1466 		   p_resource_type_code
1467 		) resource_type_code,
1468 		DECODE (
1469 		   p_assignment_status_id,
1470 		   fnd_api.g_miss_num, assignment_status_id,
1471 		   p_assignment_status_id
1472 		) assignment_status_id,
1473 		DECODE (
1474 		   p_actual_effort,
1475 		   fnd_api.g_miss_num, actual_effort,
1476 		   p_actual_effort
1477 		) actual_effort,
1478 		DECODE (
1479 		   p_actual_effort_uom,
1480 		   fnd_api.g_miss_char, actual_effort_uom,
1481 		   p_actual_effort_uom
1482 		) actual_effort_uom,
1483 		DECODE (
1484 		   p_alarm_type_code,
1485 		   fnd_api.g_miss_char, alarm_type_code,
1486 		   p_alarm_type_code
1487 		) alarm_type_code,
1488 		DECODE (
1489 		   p_alarm_contact,
1490 		   fnd_api.g_miss_char, alarm_contact,
1491 		   p_alarm_contact
1492 		) alarm_contact,
1493 		DECODE (
1494 		   p_sched_travel_distance,
1495 		   fnd_api.g_miss_num, sched_travel_distance,
1496 		   p_sched_travel_distance
1497 		) sched_travel_distance,
1498 		DECODE (
1499 		   p_sched_travel_duration,
1500 		   fnd_api.g_miss_num, sched_travel_duration,
1501 		   p_sched_travel_duration
1502 		) sched_travel_duration,
1503 		DECODE (
1504 		   p_sched_travel_duration_uom,
1505 		   fnd_api.g_miss_char, sched_travel_duration_uom,
1506 		   p_sched_travel_duration_uom
1507 		) sched_travel_dur_uom,
1508 		DECODE (
1509 		   p_actual_travel_distance,
1510 		   fnd_api.g_miss_num, actual_travel_distance,
1511 		   p_actual_travel_distance
1512 		) actual_travel_distance,
1513 		DECODE (
1514 		   p_actual_travel_duration,
1515 		   fnd_api.g_miss_num, actual_travel_duration,
1516 		   p_actual_travel_duration
1517 		) actual_travel_duration,
1518 		DECODE (
1519 		   p_resource_territory_id,
1520 		   fnd_api.g_miss_num, resource_territory_id,
1521 		   p_resource_territory_id
1522 		) resource_territory_id,
1523 		DECODE (
1524 		   p_shift_construct_id,
1525 		   fnd_api.g_miss_num, shift_construct_id,
1526 		   p_shift_construct_id
1527 		) shift_construct_id,
1528 		DECODE (
1529 		   p_actual_travel_duration_uom,
1530 		   fnd_api.g_miss_char, actual_travel_duration_uom,
1531 		   p_actual_travel_duration_uom
1532 		) actual_travel_dur_uom,
1533 		DECODE (
1534 		   p_schedule_flag,
1535 		   fnd_api.g_miss_char, schedule_flag,
1536 		   p_schedule_flag
1537 		) schedule_flag,
1538 		DECODE (
1539 		   p_actual_start_date,
1540 		   fnd_api.g_miss_date, actual_start_date,
1541 		   p_actual_start_date
1542 		) actual_start_date,
1543 		DECODE (
1544 		   p_actual_end_date,
1545 		   fnd_api.g_miss_date, actual_end_date,
1546 		   p_actual_end_date
1547 		) actual_end_date,
1548 		DECODE (
1549 		   p_palm_flag,
1550 		   fnd_api.g_miss_char, palm_flag,
1551 		   p_palm_flag
1552 		) palm_flag,
1553 		DECODE (
1554 		   p_wince_flag,
1555 		   fnd_api.g_miss_char, wince_flag,
1556 		   p_wince_flag
1557 		) wince_flag,
1558 		DECODE (
1559 		   p_laptop_flag,
1560 		   fnd_api.g_miss_char, laptop_flag,
1561 		   p_laptop_flag
1562 		) laptop_flag,
1563 		DECODE (
1564 		   p_device1_flag,
1565 		   fnd_api.g_miss_char, device1_flag,
1566 		   p_device1_flag
1567 		) device1_flag,
1568 		DECODE (
1569 		   p_device2_flag,
1570 		   fnd_api.g_miss_char, device2_flag,
1571 		   p_device2_flag
1572 		) device2_flag,
1573 		DECODE (
1574 		   p_device3_flag,
1575 		   fnd_api.g_miss_char, device3_flag,
1576 		   p_device3_flag
1577 		) device3_flag,
1578 		DECODE (
1579 		   p_assignee_role,
1580 		   fnd_api.g_miss_char, assignee_role,
1581 		   p_assignee_role
1582 		) assignee_role,
1583 		DECODE (
1584 		   p_show_on_calendar,
1585 		   fnd_api.g_miss_char, show_on_calendar,
1586 		   p_show_on_calendar
1587 		) show_on_calendar,
1588 		DECODE (
1589 		   p_category_id,
1590 		   jtf_task_utl.g_miss_number, category_id,
1591 		   p_category_id
1592 		) category_id,
1593 		DECODE (
1594 		   p_attribute1,
1595 		   fnd_api.g_miss_char, attribute1,
1596 		   p_attribute1
1597 		) attribute1,
1598 		DECODE (
1599 		   p_attribute2,
1600 		   fnd_api.g_miss_char, attribute2,
1601 		   p_attribute2
1602 		) attribute2,
1603 		DECODE (
1604 		   p_attribute3,
1605 		   fnd_api.g_miss_char, attribute3,
1606 		   p_attribute3
1607 		) attribute3,
1608 		DECODE (
1609 		   p_attribute4,
1610 		   fnd_api.g_miss_char, attribute4,
1611 		   p_attribute4
1612 		) attribute4,
1613 		DECODE (
1614 		   p_attribute5,
1615 		   fnd_api.g_miss_char, attribute5,
1616 		   p_attribute5
1617 		) attribute5,
1618 		DECODE (
1619 		   p_attribute6,
1620 		   fnd_api.g_miss_char, attribute6,
1621 		   p_attribute6
1622 		) attribute6,
1623 		DECODE (
1624 		   p_attribute7,
1625 		   fnd_api.g_miss_char, attribute7,
1626 		   p_attribute7
1627 		) attribute7,
1628 		DECODE (
1629 		   p_attribute8,
1630 		   fnd_api.g_miss_char, attribute8,
1631 		   p_attribute8
1632 		) attribute8,
1636 		   p_attribute9
1633 		DECODE (
1634 		   p_attribute9,
1635 		   fnd_api.g_miss_char, attribute9,
1637 		) attribute9,
1638 		DECODE (
1639 		   p_attribute10,
1640 		   fnd_api.g_miss_char, attribute10,
1641 		   p_attribute10
1642 		) attribute10,
1643 		DECODE (
1644 		   p_attribute11,
1645 		   fnd_api.g_miss_char, attribute11,
1646 		   p_attribute11
1647 		) attribute11,
1648 		DECODE (
1649 		   p_attribute12,
1650 		   fnd_api.g_miss_char, attribute12,
1651 		   p_attribute12
1652 		) attribute12,
1653 		DECODE (
1654 		   p_attribute13,
1655 		   fnd_api.g_miss_char, attribute13,
1656 		   p_attribute13
1657 		) attribute13,
1658 		DECODE (
1659 		   p_attribute14,
1660 		   fnd_api.g_miss_char, attribute14,
1661 		   p_attribute14
1662 		) attribute14,
1663 		DECODE (
1664 		   p_attribute15,
1665 		   fnd_api.g_miss_char, attribute15,
1666 		   p_attribute15
1667 		) attribute15,
1668 		DECODE (
1669 		   p_attribute_category,
1670 		   fnd_api.g_miss_char, attribute_category,
1671 		   p_attribute_category
1672 		) attribute_category,
1673 		DECODE (
1674 		   p_free_busy_type,
1675 		   jtf_task_utl.g_miss_char, free_busy_type,
1676 		   p_free_busy_type
1677 		) free_busy_type,
1678 		DECODE (
1679 		   p_object_capacity_id,
1680 		   fnd_api.g_miss_num, object_capacity_id,
1681 		   p_object_capacity_id
1682 		) object_capacity_id
1683 	   FROM jtf_task_all_assignments
1684 	  WHERE task_assignment_id = l_task_assignment_id;
1685 
1686       x 			 CHAR;
1687       task_ass			 task_ass_u%ROWTYPE;
1688 
1689 --      CURSOR ass_res_orig (b_task_assignment_id IN NUMBER)
1690 --      IS
1691 --	 SELECT resource_id, resource_type_code, free_busy_type,assignment_status_id, object_capacity_id
1692 --	   FROM jtf_task_all_assignments
1693 --	  WHERE task_assignment_id = b_task_assignment_id;
1694 
1695       l_orig_res_id           jtf_task_all_assignments.resource_id%type;
1696       l_orig_res_type_code    jtf_task_all_assignments.resource_type_code%type;
1697       l_orig_object_capacity_id   jtf_task_all_assignments.object_capacity_id%type;
1698 
1699        -- Business Event System Enhancement # 2391065
1700       l_assignment_rec_old	  jtf_task_assignments_pvt.task_assignments_rec ;
1701 	  l_assignment_rec_new	  jtf_task_assignments_pvt.task_assignments_rec ;
1702       ass_orig		      jtf_task_utl.c_ass_orig%ROWTYPE;
1703       x_event_return_status   varchar2(100);
1704 
1705       CURSOR c_task (b_task_id NUMBER) IS
1706       SELECT source_object_type_code
1707 	   , recurrence_rule_id
1708 	   , calendar_start_date
1709        , calendar_end_date
1710        , planned_effort
1711        , planned_effort_uom
1712        , open_flag
1713        , entity
1714 	   FROM jtf_tasks_b
1715        WHERE task_id = b_task_id;
1716 
1717       l_source_object_type_code   jtf_tasks_b.source_object_type_code%TYPE;
1718       l_recurrence_rule_id	  NUMBER;
1719       l_calendar_start_date	  DATE;
1720       l_calendar_end_date     DATE;
1721       l_planned_effort        NUMBER;
1722       l_planned_effort_uom    jtf_tasks_b.planned_effort_uom%TYPE;
1723       l_entity               jtf_tasks_b.entity%TYPE;
1724       l_open_flag            jtf_tasks_b.open_flag%TYPE;
1725       l_response_invitation_rec  jtf_task_repeat_assignment_pvt.response_invitation_rec;
1726    BEGIN
1727       SAVEPOINT update_task_assign_pvt;
1728       x_return_status := fnd_api.g_ret_sts_success;
1729 
1730       OPEN task_ass_u;
1731       FETCH task_ass_u INTO task_ass;
1732 
1733       IF task_ass_u%NOTFOUND
1734       THEN
1735 	 CLOSE task_ass_u;
1736 	 fnd_message.set_name ('JTF', 'JTF_TASK_INS_TK_ASS');
1737 	 fnd_message.set_token ('TASK_ASSIGNMENT', p_task_assignment_id);
1738 	 fnd_msg_pub.add;
1739 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
1740 	 RAISE fnd_api.g_exc_unexpected_error;
1741       END IF;
1742       CLOSE task_ass_u;
1743 
1744       -- Business Event System Enhancement # 2391065
1745 	  OPEN jtf_task_utl.c_ass_orig(p_task_assignment_id);
1746       FETCH jtf_task_utl.c_ass_orig INTO ass_orig;
1747 
1748       IF jtf_task_utl.c_ass_orig%NOTFOUND
1749       THEN
1750 	 CLOSE jtf_task_utl.c_ass_orig;
1751 	 fnd_message.set_name ('JTF', 'JTF_TASK_INS_TK_ASS');
1752 	 fnd_message.set_token ('TASK_ASSIGNMENT', p_task_assignment_id);
1753 	 fnd_msg_pub.add;
1754 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
1755 	 RAISE fnd_api.g_exc_unexpected_error;
1756       END IF;
1757       CLOSE jtf_task_utl.c_ass_orig;
1758 
1759       l_task_assignment_id := p_task_assignment_id;
1760       l_task_id := task_ass.task_id;
1761       l_resource_id := task_ass.resource_id;
1762       l_resource_type_code := task_ass.resource_type_code;
1763       l_old_assignment_status_id := task_ass.old_assignment_status_id; -- Added for bug#5514013 on 11/09/2006
1764       l_assignment_status_id := task_ass.assignment_status_id;
1765       l_act_eff := task_ass.actual_effort;
1766       l_act_eff_uom := task_ass.actual_effort_uom;
1767       l_alarm_type_code := task_ass.alarm_type_code;
1768       l_alarm_contact := task_ass.alarm_contact;
1769       l_sched_travel_distance := task_ass.sched_travel_distance;
1770       l_sched_travel_duration := task_ass.sched_travel_duration;
1771       l_sched_travel_dur_uom := task_ass.sched_travel_dur_uom;
1772       -- Bug 3467524
1773       -- l_actual_travel_distance := task_ass.actual_travel_duration;
1774       l_actual_travel_distance := task_ass.actual_travel_distance;
1775       l_actual_travel_duration := task_ass.actual_travel_duration;
1776       l_actual_travel_dur_uom := task_ass.actual_travel_dur_uom;
1780       l_wince_flag := task_ass.wince_flag;
1777       l_actual_start_date := task_ass.actual_start_date;
1778       l_actual_end_date := task_ass.actual_end_date;
1779       l_palm_flag := task_ass.palm_flag;
1781       l_laptop_flag := task_ass.laptop_flag;
1782       l_device1_flag := task_ass.device1_flag;
1783       l_device2_flag := task_ass.device2_flag;
1784       l_device3_flag := task_ass.device3_flag;
1785       l_resource_territory_id := task_ass.resource_territory_id;
1786       l_shift_construct_id := task_ass.shift_construct_id;
1787       l_assignee_role	:= task_ass.assignee_role;
1788       l_show_on_calendar   := task_ass.show_on_calendar;
1789       l_category_id	   := task_ass.category_id;
1790       --add schedule_flag
1791       l_schedule_flag := task_ass.schedule_flag;
1792       l_free_busy_type := task_ass.free_busy_type;
1793       l_object_capacity_id := task_ass.object_capacity_id;
1794 
1795       --------------------------------------------------
1796       -- For XP Sync: Story# 140
1797       --------------------------------------------------
1798       OPEN c_task (l_task_id);
1799       FETCH c_task
1800        INTO l_source_object_type_code
1801 	  , l_recurrence_rule_id
1802 	  , l_calendar_start_date
1803       , l_calendar_end_date
1804       , l_planned_effort
1805       , l_planned_effort_uom
1806       , l_open_flag
1807       , l_entity;
1808       IF c_task%NOTFOUND
1809       THEN
1810 	 CLOSE c_task;
1811 	 fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_TASK_ID');
1812 	 fnd_message.set_token ('P_TASK_ID', l_task_id);
1813 	 fnd_msg_pub.add;
1814 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
1815 	 RAISE fnd_api.g_exc_unexpected_error;
1816       END IF;
1817       CLOSE c_task;
1818 
1819       IF l_recurrence_rule_id IS NOT NULL AND
1820 	 l_source_object_type_code = 'APPOINTMENT' AND
1821 	 task_ass.old_assignment_status_id  in ( 18 , 3 ) -- Invited
1822       THEN
1823 	 IF g_response_flag = jtf_task_utl.g_no_char
1824 	 THEN
1825 	     l_response_invitation_rec.task_assignment_id   := p_task_assignment_id;
1826 	     l_response_invitation_rec.assignment_status_id := l_assignment_status_id;
1827 	     l_response_invitation_rec.task_id		    := l_task_id;
1828 	     l_response_invitation_rec.recurrence_rule_id   := l_recurrence_rule_id;
1829 
1830 	     jtf_task_repeat_assignment_pvt.response_invitation(
1831 		p_api_version		  => 1.0,
1832 		p_init_msg_list 	  => fnd_api.g_false,
1833 		p_commit		  => fnd_api.g_false,
1834 		p_object_version_number   => p_object_version_number,
1835 		p_response_invitation_rec => l_response_invitation_rec,
1836 		x_return_status 	  => x_return_status,
1837 		x_msg_count		  => x_msg_count,
1838 		x_msg_data		  => x_msg_data
1839 	     );
1840 
1841 	     g_response_flag := jtf_task_utl.g_no_char;
1842 
1843 	     ----------------------------------------------------------------
1844 	     -- response_invitation() will call this procedure again
1845 	     --    to update the assignment status with accepted or rejected.
1846 	     -- So this procedure must return right after the call because
1847 	     --    the remaining process has already been processed
1848 	     --    by response_invitation().
1849 	     ----------------------------------------------------------------
1850 	     RETURN;
1851 	  END IF;
1852       END IF;
1853       ------------------------------------------------------------------------
1854 
1855       jtf_task_assignments_pub.lock_task_assignment (
1856 	 p_api_version => 1.0,
1857 	 p_init_msg_list => fnd_api.g_false,
1858 	 p_commit => fnd_api.g_false,
1859 	 p_task_assignment_id => l_task_assignment_id,
1860 	 p_object_version_number => p_object_version_number,
1861 	 x_return_status => x_return_status,
1862 	 x_msg_data => x_msg_data,
1863 	 x_msg_count => x_msg_count
1864       );
1865 
1866       IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1867       THEN
1868 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
1869 	 RAISE fnd_api.g_exc_unexpected_error;
1870       END IF;
1871 
1872 
1873       -- Validate the user_id
1874 	 jtf_task_utl.check_security_privilege(
1875 		    p_task_id => l_task_id,
1876 		    p_session => l_session,
1877 		    x_return_status => x_return_status
1878 		    );
1879 
1880 	 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1881 	 THEN
1882 	    x_return_status := fnd_api.g_ret_sts_unexp_error;
1883 	    RAISE fnd_api.g_exc_unexpected_error;
1884 	 END IF;
1885 
1886       --Bug 2467222  for assignee category update
1887       IF (p_category_id <> jtf_task_utl.g_miss_number) OR (p_category_id IS NULL)
1888       THEN
1889       UPDATE jtf_task_all_assignments
1890 	 SET category_id = p_category_id
1891        WHERE task_id = l_task_id
1892 	 AND resource_id = (SELECT resource_id
1893 			    FROM jtf_rs_resource_extns
1894 			    WHERE user_id = fnd_global.user_id)
1895 	 AND resource_type_code not in ('RS_GROUP','RS_TEAM');
1896       END IF;
1897 
1898       -- Validate the value in L_RESOURCE_TYPE_CODE
1899       IF    l_resource_type_code = 'RS_TEAM'
1900 	 OR l_resource_type_code = 'RS_GROUP'
1901       THEN
1902 	 l_category_id := NULL;
1903       END IF;
1904 
1905       -- bug# 1947303
1906       IF l_assignee_role IS NULL
1907       THEN
1908 	 l_assignee_role := 'ASSIGNEE';
1909       END IF;
1910 
1911      -- Validate the value in ASSIGNEE_ROLE
1912       IF NOT jtf_task_utl.validate_lookup (
1913 		'JTF_TASK_ASSIGNEE_ROLES',
1914 		l_assignee_role,
1915 		'assignment assignee role ( JTF_TK_ASSOGNEE_ROLE )'
1916 	     )
1917       THEN
1918 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
1922       -- Update the values based on ASSIGNEE_ROLE
1919 	 RAISE fnd_api.g_exc_unexpected_error;
1920       END IF;
1921 
1923       select assignee_role
1924       into l_assignee_role_db
1925       from jtf_task_all_assignments
1926       where task_assignment_id = l_task_assignment_id;
1927       IF l_assignee_role_db = 'OWNER'
1928       THEN
1929 	 UPDATE jtf_tasks_b
1930 	    SET owner_id = l_resource_id,
1931 		owner_type_code = l_resource_type_code
1932 	  WHERE task_id = l_task_id;
1933       END IF;
1934 
1935 	 l_assignee_role := l_assignee_role_db;
1936 
1937       -- ------------------------------------------------------------------------
1938       -- Get the original resource_id so we can update the reference details if
1939       -- necessary
1940       -- ------------------------------------------------------------------------
1941 
1942 --	OPEN ass_res_orig (l_task_assignment_id);
1943 --	FETCH ass_res_orig INTO l_orig_res_id, l_orig_res_type_code, l_orig_free_busy_type, l_orig_assig_status_id, l_object_capacity_id;
1944 
1945 --        IF (p_object_capacity_id <> fnd_api.g_miss_num and p_object_capacity_id is not null)
1946 --        then
1947 --          l_object_capacity_id := p_object_capacity_id;
1948 --        end if;
1949 
1950 --	IF ass_res_orig%NOTFOUND
1951 --	THEN
1952 --	   CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
1953 --	   RAISE fnd_api.g_exc_unexpected_error;
1954 --	END IF;
1955 --	CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
1956 
1957       -- Booking Changes for Simplex ..
1958           populate_booking_dates
1959           (
1960            p_calendar_start_date    =>  l_calendar_start_date,
1961            p_calendar_end_date      =>  l_calendar_end_date,
1962            p_actual_start_date      =>  l_actual_start_date,
1963            p_actual_end_date        =>  l_actual_end_date,
1964            p_actual_travel_duration =>  l_actual_travel_duration,
1965            p_actual_travel_duration_uom  =>  l_actual_travel_dur_uom,
1966            p_planned_effort         =>  l_planned_effort,
1967            p_planned_effort_uom     =>  l_planned_effort_uom,
1968            p_actual_effort          =>  l_act_eff,
1969            p_actual_effort_uom      =>  l_act_eff_uom,
1970            x_booking_start_date     =>  l_booking_start_date,
1971            x_booking_end_date       =>  l_booking_end_date
1972           );
1973 
1974      IF l_entity = 'TASK' AND
1975         p_free_busy_type = jtf_task_utl.g_miss_char AND -- no explicit value
1976         nvl(p_assignment_status_id, 0) <> fnd_api.g_miss_num AND
1977         nvl(l_old_assignment_status_id, 0) <> nvl(l_assignment_status_id, 0)         -- Modified for bug# 5514013 on 11/09/2006
1978      THEN
1979          update_free_busy_type(
1980             p_assignment_status_id => l_assignment_status_id,
1981             x_free_busy_type       => l_free_busy_type
1982          );
1983      END IF;
1984 
1985      check_unique_assignment(
1986      p_task_id=>l_task_id,
1987      p_resource_id=>l_resource_id,
1988      p_resource_type_code=>l_resource_type_code,
1989      p_actual_start_date=>l_actual_start_date,
1990      p_actual_end_date=>l_actual_end_date,
1991      p_assignee_role=>l_assignee_role,
1992      p_task_assignment_id=>l_task_assignment_id,
1993      x_return_status=>x_return_status
1994      );
1995 
1996      IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN
1997        X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR;
1998        fnd_message.set_name ('JTF', 'JTF_TASK_DUP_TK_ASS');
1999        fnd_msg_pub.add;
2000        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2001      END IF;
2002 
2003       p_object_version_number := p_object_version_number + 1;
2004       jtf_task_assignments_pkg.update_row (
2005 	 x_task_assignment_id => l_task_assignment_id,
2006 	 x_object_version_number => p_object_version_number,
2007 	 x_sched_travel_duration_uom => l_sched_travel_dur_uom,
2008 	 x_actual_travel_distance => l_actual_travel_distance,
2009 	 x_actual_travel_duration => l_actual_travel_duration,
2010 	 x_actual_travel_duration_uom => l_actual_travel_dur_uom,
2011 	 x_actual_start_date => l_actual_start_date,
2012 	 x_actual_end_date => l_actual_end_date,
2013 	 x_palm_flag => l_palm_flag,
2014 	 x_wince_flag => l_wince_flag,
2015 	 x_laptop_flag => l_laptop_flag,
2016 	 x_device1_flag => l_device1_flag,
2017 	 x_device2_flag => l_device2_flag,
2018 	 x_device3_flag => l_device3_flag,
2019 	 x_attribute1 => task_ass.attribute1,
2020 	 x_attribute2 => task_ass.attribute2,
2021 	 x_attribute3 => task_ass.attribute3,
2022 	 x_attribute4 => task_ass.attribute4,
2023 	 x_attribute5 => task_ass.attribute5,
2024 	 x_attribute6 => task_ass.attribute6,
2025 	 x_attribute7 => task_ass.attribute7,
2026 	 x_attribute8 => task_ass.attribute8,
2027 	 x_attribute9 => task_ass.attribute9,
2028 	 x_attribute10 => task_ass.attribute10,
2029 	 x_attribute11 => task_ass.attribute11,
2030 	 x_attribute12 => task_ass.attribute12,
2031 	 x_attribute13 => task_ass.attribute13,
2032 	 x_attribute14 => task_ass.attribute14,
2033 	 x_attribute15 => task_ass.attribute15,
2034 	 x_attribute_category => task_ass.attribute_category,
2035 	 x_task_id => l_task_id,
2036 	 x_resource_id => l_resource_id,
2037 	 x_actual_effort => l_act_eff,
2038 	 x_actual_effort_uom => l_act_eff_uom,
2039 	 x_schedule_flag => l_schedule_flag,
2040 	 x_alarm_type_code => l_alarm_type_code,
2041 	 x_alarm_contact => l_alarm_contact,
2042 	 x_sched_travel_distance => l_sched_travel_distance,
2043 	 x_sched_travel_duration => l_sched_travel_duration,
2044 	 x_resource_type_code => l_resource_type_code,
2045 	 x_last_update_date => SYSDATE,
2046 	 x_last_updated_by => jtf_task_utl.updated_by,
2047 	 x_last_update_login => jtf_task_utl.login_id,
2048 	 x_resource_territory_id => l_resource_territory_id,
2049 	 x_assignment_status_id => l_assignment_status_id,
2053        --x_category_id => l_category_id
2050 	 x_shift_construct_id => l_shift_construct_id,
2051 	 x_assignee_role => l_assignee_role,
2052 	 x_show_on_calendar => l_show_on_calendar,
2054 	 x_free_busy_type => NVL(l_free_busy_type, g_free_busy_type),
2055    x_booking_start_date => l_booking_start_date,
2056 	 x_booking_end_date => l_booking_end_date,
2057    x_object_capacity_id => l_object_capacity_id
2058       );
2059 
2060       IF task_ass_u%ISOPEN
2061       THEN
2062 	 CLOSE task_ass_u;
2063       END IF;
2064 
2065   -- ------------------------------------------------------------------------
2066   -- Update reference to resource if changed, fix enh #1845501
2067   -- ------------------------------------------------------------------------
2068       if (nvl(l_resource_id, 0) <> fnd_api.g_miss_num and
2069 	  nvl(l_resource_id, 0) <> nvl(l_orig_res_id, 0))
2070 	 or (nvl(l_resource_type_code, fnd_api.g_miss_char) <> nvl(l_orig_res_type_code, fnd_api.g_miss_char)) then
2071       -- delete the old one
2072 	 jtf_task_utl.delete_party_reference(
2073 	    p_reference_from	=> 'ASSIGNMENT',
2074 	    p_task_id	    => l_task_id,
2075 	    p_party_type_code	=> l_orig_res_type_code,
2076 	    p_party_id	    => l_orig_res_id,
2077 	    x_msg_count     => x_msg_count,
2078 	    x_msg_data	    => x_msg_data,
2079 	    x_return_status	=> x_return_status);
2080 
2081 	 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2082 	 THEN
2083 	    x_return_status := fnd_api.g_ret_sts_unexp_error;
2084 	    RAISE fnd_api.g_exc_unexpected_error;
2085 	 END IF;
2086 	 -- create a new one
2087 	 jtf_task_utl.create_party_reference(
2088 	    p_reference_from	=> 'ASSIGNMENT',
2089 	    p_task_id	    => l_task_id,
2090 	    p_party_type_code	=> l_resource_type_code,
2091 	    p_party_id	    => l_resource_id,
2092 	    x_msg_count     => x_msg_count,
2093 	    x_msg_data	    => x_msg_data,
2094 	    x_return_status	=> x_return_status);
2095 
2096 	 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2097 	 THEN
2098 	    x_return_status := fnd_api.g_ret_sts_unexp_error;
2099 	    RAISE fnd_api.g_exc_unexpected_error;
2100 	 END IF;
2101       end if;
2102 
2103       ---
2104       --- decide to lunch workflow
2105       ---
2106        -- Business Event System Enhancement # 2391065 and 2797666
2107       IF (l_entity = 'TASK')
2108       THEN
2109 	  l_assignment_rec_old.task_assignment_id     := l_task_assignment_id;
2110 	  l_assignment_rec_old.task_id		      := l_task_id;
2111       l_assignment_rec_old.resource_type_code	  := ass_orig.resource_type_code;
2112       l_assignment_rec_old.resource_id		  := ass_orig.resource_id;
2113       l_assignment_rec_old.assignment_status_id   := ass_orig.assignment_status_id;
2114       l_assignment_rec_old.actual_start_date	  := ass_orig.actual_start_date;
2115       l_assignment_rec_old.actual_end_date	  := ass_orig.actual_end_date;
2116 	  l_assignment_rec_old.assignee_role	      := ass_orig.assignee_role;
2117 	  l_assignment_rec_old.show_on_calendar       := ass_orig.show_on_calendar;
2118       l_assignment_rec_old.category_id		  := ass_orig.category_id;
2119 	  l_assignment_rec_old.object_version_number  := ass_orig.object_version_number;
2120       l_assignment_rec_old.enable_workflow	   := p_enable_workflow;
2121       l_assignment_rec_old.abort_workflow	   := l_abort_workflow;
2122 
2123 	  l_assignment_rec_new.task_assignment_id     := l_task_assignment_id;
2124 	  l_assignment_rec_new.task_id	   := l_task_id;
2125       l_assignment_rec_new.resource_type_code	  := l_resource_type_code;
2126       l_assignment_rec_new.resource_id		  := l_resource_id;
2127       l_assignment_rec_new.assignment_status_id   := l_assignment_status_id;
2128       l_assignment_rec_new.actual_start_date	  := l_actual_start_date;
2129       l_assignment_rec_new.actual_end_date	  := l_actual_end_date;
2130 	  l_assignment_rec_new.assignee_role	      := l_assignee_role;
2131 	  l_assignment_rec_new.show_on_calendar       := l_show_on_calendar;
2132       l_assignment_rec_new.category_id		  := l_category_id;
2133 	  l_assignment_rec_new.object_version_number  := p_object_version_number;
2134 	  l_assignment_rec_new.enable_workflow	       := p_enable_workflow;
2135       l_assignment_rec_new.abort_workflow	   := l_abort_workflow;
2136 
2137      jtf_task_wf_events_pvt.publish_update_assignment(l_assignment_rec_new,l_assignment_rec_old,x_event_return_status);
2138 
2139 		IF (x_event_return_status = 'WARNING')
2140 		THEN
2141 		   fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_WARNING');
2142 	   fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2143 	   fnd_msg_pub.add;
2144 		ELSIF(x_event_return_status = 'ERROR')
2145 		THEN
2146 		   fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_ERROR');
2147 	   fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2148 	   fnd_msg_pub.add;
2149 		   x_return_status := fnd_api.g_ret_sts_unexp_error;
2150 	   RAISE fnd_api.g_exc_unexpected_error;
2151 		END IF ;
2152 
2153      END IF;
2154 
2155 --      IF ass_res_orig%ISOPEN
2156 --      THEN
2157 --	 CLOSE ass_res_orig;
2158 --      END IF;
2159 
2160       IF fnd_api.to_boolean (p_commit)
2161       THEN
2162 	 COMMIT WORK;
2163       END IF;
2164 
2165       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
2166    EXCEPTION
2167       WHEN fnd_api.g_exc_unexpected_error
2168       THEN
2169 	 IF task_ass_u%ISOPEN
2170 	 THEN
2171 	    CLOSE task_ass_u;
2172 	 END IF;
2173 
2174 	 ROLLBACK TO update_task_assign_pvt;
2175 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2176 	 fnd_msg_pub.count_and_get (
2177 	    p_count => x_msg_count,
2178 	    p_data => x_msg_data
2179 	 );
2180       WHEN OTHERS
2181       THEN
2182 	 IF task_ass_u%ISOPEN
2183 	 THEN
2184 	    CLOSE task_ass_u;
2185 	 END IF;
2186 
2190 	 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
2187 	 ROLLBACK TO update_task_assign_pvt;
2188 
2189        -- Added by SBARAT on 23/05/2006 for bug# 5176073
2191 	 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
2192 	 fnd_msg_pub.add;
2193 
2194 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2195 	 fnd_msg_pub.count_and_get (
2196 	    p_count => x_msg_count,
2197 	    p_data => x_msg_data
2198 	 );
2199    END;
2200 
2201    PROCEDURE update_task_assignment (
2202       p_api_version		     IN       NUMBER,
2203       p_object_version_number	     IN OUT NOCOPY   NUMBER,
2204       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
2205       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
2206       p_task_assignment_id	     IN       NUMBER
2207 	    DEFAULT fnd_api.g_miss_num,
2208       p_resource_type_code	     IN       VARCHAR2
2209 	    DEFAULT fnd_api.g_miss_char,
2210       p_resource_id		     IN       NUMBER
2211 	    DEFAULT fnd_api.g_miss_num,
2212       p_actual_effort		     IN       NUMBER
2213 	    DEFAULT fnd_api.g_miss_num,
2214       p_actual_effort_uom	     IN       VARCHAR2
2215 	    DEFAULT fnd_api.g_miss_char,
2216       p_schedule_flag		     IN       VARCHAR2
2217 	    DEFAULT fnd_api.g_miss_char,
2218       p_alarm_type_code 	     IN       VARCHAR2
2219 	    DEFAULT fnd_api.g_miss_char,
2220       p_alarm_contact		     IN       VARCHAR2
2221 	    DEFAULT fnd_api.g_miss_char,
2222       p_sched_travel_distance	     IN       NUMBER
2223 	    DEFAULT fnd_api.g_miss_num,
2224       p_sched_travel_duration	     IN       NUMBER
2225 	    DEFAULT fnd_api.g_miss_num,
2226       p_sched_travel_duration_uom    IN       VARCHAR2
2227 	    DEFAULT fnd_api.g_miss_char,
2228       p_actual_travel_distance	     IN       NUMBER
2229 	    DEFAULT fnd_api.g_miss_num,
2230       p_actual_travel_duration	     IN       NUMBER
2231 	    DEFAULT fnd_api.g_miss_num,
2232       p_actual_travel_duration_uom   IN       VARCHAR2
2233 	    DEFAULT fnd_api.g_miss_char,
2234       p_actual_start_date	     IN       DATE DEFAULT fnd_api.g_miss_date,
2235       p_actual_end_date 	     IN       DATE DEFAULT fnd_api.g_miss_date,
2236       p_palm_flag		     IN       VARCHAR2
2237 	    DEFAULT fnd_api.g_miss_char,
2238       p_wince_flag		     IN       VARCHAR2
2239 	    DEFAULT fnd_api.g_miss_char,
2240       p_laptop_flag		     IN       VARCHAR2
2241 	    DEFAULT fnd_api.g_miss_char,
2242       p_device1_flag		     IN       VARCHAR2
2243 	    DEFAULT fnd_api.g_miss_char,
2244       p_device2_flag		     IN       VARCHAR2
2245 	    DEFAULT fnd_api.g_miss_char,
2246       p_device3_flag		     IN       VARCHAR2
2247 	    DEFAULT fnd_api.g_miss_char,
2248       p_resource_territory_id	     IN       NUMBER
2249 	    DEFAULT fnd_api.g_miss_num,
2250       p_assignment_status_id	     IN       NUMBER
2251 	    DEFAULT fnd_api.g_miss_num,
2252       p_shift_construct_id	     IN       NUMBER
2253 	    DEFAULT fnd_api.g_miss_num,
2254       x_return_status		     OUT NOCOPY      VARCHAR2,
2255       x_msg_count		     OUT NOCOPY      NUMBER,
2256       x_msg_data		     OUT NOCOPY      VARCHAR2,
2257       p_attribute1		     IN       VARCHAR2
2258 	    DEFAULT jtf_task_utl.g_miss_char,
2259       p_attribute2		     IN       VARCHAR2
2260 	    DEFAULT jtf_task_utl.g_miss_char,
2261       p_attribute3		     IN       VARCHAR2
2262 	    DEFAULT jtf_task_utl.g_miss_char,
2263       p_attribute4		     IN       VARCHAR2
2264 	    DEFAULT jtf_task_utl.g_miss_char,
2265       p_attribute5		     IN       VARCHAR2
2266 	    DEFAULT jtf_task_utl.g_miss_char,
2267       p_attribute6		     IN       VARCHAR2
2268 	    DEFAULT jtf_task_utl.g_miss_char,
2269       p_attribute7		     IN       VARCHAR2
2270 	    DEFAULT jtf_task_utl.g_miss_char,
2271       p_attribute8		     IN       VARCHAR2
2272 	    DEFAULT jtf_task_utl.g_miss_char,
2273       p_attribute9		     IN       VARCHAR2
2274 	    DEFAULT jtf_task_utl.g_miss_char,
2275       p_attribute10		     IN       VARCHAR2
2276 	    DEFAULT jtf_task_utl.g_miss_char,
2277       p_attribute11		     IN       VARCHAR2
2278 	    DEFAULT jtf_task_utl.g_miss_char,
2279       p_attribute12		     IN       VARCHAR2
2280 	    DEFAULT jtf_task_utl.g_miss_char,
2281       p_attribute13		     IN       VARCHAR2
2282 	    DEFAULT jtf_task_utl.g_miss_char,
2283       p_attribute14		     IN       VARCHAR2
2284 	    DEFAULT jtf_task_utl.g_miss_char,
2285       p_attribute15		     IN       VARCHAR2
2286 	    DEFAULT jtf_task_utl.g_miss_char,
2287       p_attribute_category	     IN       VARCHAR2
2288 	    DEFAULT jtf_task_utl.g_miss_char,
2289       p_assignee_role		     IN       VARCHAR2
2290 	    DEFAULT jtf_task_utl.g_miss_char,
2291       p_show_on_calendar	     IN       VARCHAR2
2292 	    DEFAULT jtf_task_utl.g_miss_char,
2293       p_category_id		     IN       NUMBER
2294 	    DEFAULT jtf_task_utl.g_miss_number
2295    )
2296    IS
2297    BEGIN
2298       jtf_task_assignments_pvt.update_task_assignment (
2299       p_api_version		     => p_api_version,
2300       p_object_version_number	     => p_object_version_number,
2301       p_init_msg_list		     => p_init_msg_list,
2302       p_commit			     => p_commit,
2303       p_task_assignment_id	     => p_task_assignment_id,
2304       p_resource_type_code	     => p_resource_type_code,
2305       p_resource_id		     => p_resource_id,
2306       p_actual_effort		     => p_actual_effort,
2307       p_actual_effort_uom	     => p_actual_effort_uom,
2308       p_schedule_flag		     => p_schedule_flag,
2309       p_alarm_type_code 	     => p_alarm_type_code,
2310       p_alarm_contact		     => p_alarm_contact,
2311       p_sched_travel_distance	     => p_sched_travel_distance,
2312       p_sched_travel_duration	     => p_sched_travel_duration,
2313       p_sched_travel_duration_uom    => p_sched_travel_duration_uom,
2317       p_actual_start_date	     => p_actual_start_date,
2314       p_actual_travel_distance	     => p_actual_travel_distance,
2315       p_actual_travel_duration	     => p_actual_travel_duration,
2316       p_actual_travel_duration_uom   => p_actual_travel_duration_uom,
2318       p_actual_end_date 	     => p_actual_end_date,
2319       p_palm_flag		     => p_palm_flag,
2320       p_wince_flag		     => p_wince_flag,
2321       p_laptop_flag		     => p_laptop_flag,
2322       p_device1_flag		     => p_device1_flag,
2323       p_device2_flag		     => p_device2_flag,
2324       p_device3_flag		     => p_device3_flag,
2325       p_resource_territory_id	     => p_resource_territory_id,
2326       p_assignment_status_id	     => p_assignment_status_id,
2327       p_shift_construct_id	     => p_shift_construct_id,
2328       x_return_status		     => x_return_status,
2329       x_msg_count		     => x_msg_count,
2330       x_msg_data		     => x_msg_data,
2331       p_attribute1		     => p_attribute1,
2332       p_attribute2		     => p_attribute2,
2333       p_attribute3		     => p_attribute3,
2334       p_attribute4		     => p_attribute4,
2335       p_attribute5		     => p_attribute5,
2336       p_attribute6		     => p_attribute6,
2337       p_attribute7		     => p_attribute7,
2338       p_attribute8		     => p_attribute8,
2339       p_attribute9		     => p_attribute9,
2340       p_attribute10		     => p_attribute10,
2341       p_attribute11		     => p_attribute11,
2342       p_attribute12		     => p_attribute12,
2343       p_attribute13		     => p_attribute13,
2344       p_attribute14		     => p_attribute14,
2345       p_attribute15		     => p_attribute15,
2346       p_attribute_category	     => p_attribute_category,
2347       p_assignee_role		     => p_assignee_role,
2348       p_show_on_calendar	     => p_show_on_calendar,
2349       p_category_id		     => p_category_id,
2350       p_enable_workflow 	     => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
2351       p_abort_workflow		     => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
2352       p_free_busy_type		     => fnd_api.g_miss_char
2353       );
2354    END;
2355 
2356     PROCEDURE update_task_assignment (
2357       p_api_version		     IN       NUMBER,
2358       p_object_version_number	     IN OUT NOCOPY   NUMBER,
2359       p_init_msg_list		     IN       VARCHAR2 DEFAULT fnd_api.g_false,
2360       p_commit			     IN       VARCHAR2 DEFAULT fnd_api.g_false,
2361       p_task_assignment_id	     IN       NUMBER
2362 	    DEFAULT fnd_api.g_miss_num,
2363       p_resource_type_code	     IN       VARCHAR2
2364 	    DEFAULT fnd_api.g_miss_char,
2365       p_resource_id		     IN       NUMBER
2366 	    DEFAULT fnd_api.g_miss_num,
2367       p_actual_effort		     IN       NUMBER
2368 	    DEFAULT fnd_api.g_miss_num,
2369       p_actual_effort_uom	     IN       VARCHAR2
2370 	    DEFAULT fnd_api.g_miss_char,
2371       p_schedule_flag		     IN       VARCHAR2
2372 	    DEFAULT fnd_api.g_miss_char,
2373       p_alarm_type_code 	     IN       VARCHAR2
2374 	    DEFAULT fnd_api.g_miss_char,
2375       p_alarm_contact		     IN       VARCHAR2
2376 	    DEFAULT fnd_api.g_miss_char,
2377       p_sched_travel_distance	     IN       NUMBER
2378 	    DEFAULT fnd_api.g_miss_num,
2379       p_sched_travel_duration	     IN       NUMBER
2380 	    DEFAULT fnd_api.g_miss_num,
2381       p_sched_travel_duration_uom    IN       VARCHAR2
2382 	    DEFAULT fnd_api.g_miss_char,
2383       p_actual_travel_distance	     IN       NUMBER
2384 	    DEFAULT fnd_api.g_miss_num,
2385       p_actual_travel_duration	     IN       NUMBER
2386 	    DEFAULT fnd_api.g_miss_num,
2387       p_actual_travel_duration_uom   IN       VARCHAR2
2388 	    DEFAULT fnd_api.g_miss_char,
2389       p_actual_start_date	     IN       DATE DEFAULT fnd_api.g_miss_date,
2390       p_actual_end_date 	     IN       DATE DEFAULT fnd_api.g_miss_date,
2391       p_palm_flag		     IN       VARCHAR2
2392 	    DEFAULT fnd_api.g_miss_char,
2393       p_wince_flag		     IN       VARCHAR2
2394 	    DEFAULT fnd_api.g_miss_char,
2395       p_laptop_flag		     IN       VARCHAR2
2396 	    DEFAULT fnd_api.g_miss_char,
2397       p_device1_flag		     IN       VARCHAR2
2398 	    DEFAULT fnd_api.g_miss_char,
2399       p_device2_flag		     IN       VARCHAR2
2400 	    DEFAULT fnd_api.g_miss_char,
2401       p_device3_flag		     IN       VARCHAR2
2402 	    DEFAULT fnd_api.g_miss_char,
2403       p_resource_territory_id	     IN       NUMBER
2404 	    DEFAULT fnd_api.g_miss_num,
2405       p_assignment_status_id	     IN       NUMBER
2406 	    DEFAULT fnd_api.g_miss_num,
2407       p_shift_construct_id	     IN       NUMBER
2408 	    DEFAULT fnd_api.g_miss_num,
2409       x_return_status		     OUT NOCOPY      VARCHAR2,
2410       x_msg_count		     OUT NOCOPY      NUMBER,
2411       x_msg_data		     OUT NOCOPY      VARCHAR2,
2412       p_attribute1		     IN       VARCHAR2
2413 	    DEFAULT jtf_task_utl.g_miss_char,
2414       p_attribute2		     IN       VARCHAR2
2415 	    DEFAULT jtf_task_utl.g_miss_char,
2416       p_attribute3		     IN       VARCHAR2
2417 	    DEFAULT jtf_task_utl.g_miss_char,
2418       p_attribute4		     IN       VARCHAR2
2419 	    DEFAULT jtf_task_utl.g_miss_char,
2420       p_attribute5		     IN       VARCHAR2
2421 	    DEFAULT jtf_task_utl.g_miss_char,
2422       p_attribute6		     IN       VARCHAR2
2423 	    DEFAULT jtf_task_utl.g_miss_char,
2424       p_attribute7		     IN       VARCHAR2
2425 	    DEFAULT jtf_task_utl.g_miss_char,
2426       p_attribute8		     IN       VARCHAR2
2427 	    DEFAULT jtf_task_utl.g_miss_char,
2428       p_attribute9		     IN       VARCHAR2
2429 	    DEFAULT jtf_task_utl.g_miss_char,
2430       p_attribute10		     IN       VARCHAR2
2431 	    DEFAULT jtf_task_utl.g_miss_char,
2432       p_attribute11		     IN       VARCHAR2
2433 	    DEFAULT jtf_task_utl.g_miss_char,
2434       p_attribute12		     IN       VARCHAR2
2438       p_attribute14		     IN       VARCHAR2
2435 	    DEFAULT jtf_task_utl.g_miss_char,
2436       p_attribute13		     IN       VARCHAR2
2437 	    DEFAULT jtf_task_utl.g_miss_char,
2439 	    DEFAULT jtf_task_utl.g_miss_char,
2440       p_attribute15		     IN       VARCHAR2
2441 	    DEFAULT jtf_task_utl.g_miss_char,
2442       p_attribute_category	     IN       VARCHAR2
2443 	    DEFAULT jtf_task_utl.g_miss_char,
2444       p_assignee_role		     IN       VARCHAR2
2445 	    DEFAULT jtf_task_utl.g_miss_char,
2446       p_show_on_calendar	     IN       VARCHAR2
2447 	    DEFAULT jtf_task_utl.g_miss_char,
2448       p_category_id		     IN       NUMBER
2449 	    DEFAULT jtf_task_utl.g_miss_number,
2450 	  p_enable_workflow 	     IN       VARCHAR2,
2451       p_abort_workflow		     IN       VARCHAR2
2452    )
2453    IS
2454    BEGIN
2455       jtf_task_assignments_pvt.update_task_assignment (
2456       p_api_version		     => p_api_version,
2457       p_object_version_number	     => p_object_version_number,
2458       p_init_msg_list		     => p_init_msg_list,
2459       p_commit			     => p_commit,
2460       p_task_assignment_id	     => p_task_assignment_id,
2461       p_resource_type_code	     => p_resource_type_code,
2462       p_resource_id		     => p_resource_id,
2463       p_actual_effort		     => p_actual_effort,
2464       p_actual_effort_uom	     => p_actual_effort_uom,
2465       p_schedule_flag		     => p_schedule_flag,
2466       p_alarm_type_code 	     => p_alarm_type_code,
2467       p_alarm_contact		     => p_alarm_contact,
2468       p_sched_travel_distance	     => p_sched_travel_distance,
2469       p_sched_travel_duration	     => p_sched_travel_duration,
2470       p_sched_travel_duration_uom    => p_sched_travel_duration_uom,
2471       p_actual_travel_distance	     => p_actual_travel_distance,
2472       p_actual_travel_duration	     => p_actual_travel_duration,
2473       p_actual_travel_duration_uom   => p_actual_travel_duration_uom,
2474       p_actual_start_date	     => p_actual_start_date,
2475       p_actual_end_date 	     => p_actual_end_date,
2476       p_palm_flag		     => p_palm_flag,
2477       p_wince_flag		     => p_wince_flag,
2478       p_laptop_flag		     => p_laptop_flag,
2479       p_device1_flag		     => p_device1_flag,
2480       p_device2_flag		     => p_device2_flag,
2481       p_device3_flag		     => p_device3_flag,
2482       p_resource_territory_id	     => p_resource_territory_id,
2483       p_assignment_status_id	     => p_assignment_status_id,
2484       p_shift_construct_id	     => p_shift_construct_id,
2485       x_return_status		     => x_return_status,
2486       x_msg_count		     => x_msg_count,
2487       x_msg_data		     => x_msg_data,
2488       p_attribute1		     => p_attribute1,
2489       p_attribute2		     => p_attribute2,
2490       p_attribute3		     => p_attribute3,
2491       p_attribute4		     => p_attribute4,
2492       p_attribute5		     => p_attribute5,
2493       p_attribute6		     => p_attribute6,
2494       p_attribute7		     => p_attribute7,
2495       p_attribute8		     => p_attribute8,
2496       p_attribute9		     => p_attribute9,
2497       p_attribute10		     => p_attribute10,
2498       p_attribute11		     => p_attribute11,
2499       p_attribute12		     => p_attribute12,
2500       p_attribute13		     => p_attribute13,
2501       p_attribute14		     => p_attribute14,
2502       p_attribute15		     => p_attribute15,
2503       p_attribute_category	     => p_attribute_category,
2504       p_assignee_role		     => p_assignee_role,
2505       p_show_on_calendar	     => p_show_on_calendar,
2506       p_category_id		     => p_category_id,
2507       p_enable_workflow 	     => fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
2508       p_abort_workflow		     => fnd_profile.value('JTF_TASK_ABORT_PREV_WF'),
2509       p_free_busy_type		     => fnd_api.g_miss_char
2510       );
2511    END;
2512 
2513    PROCEDURE delete_task_assignment (
2514       p_api_version		IN	 NUMBER,
2515       p_object_version_number	IN	 NUMBER,
2516       p_init_msg_list		IN	 VARCHAR2 DEFAULT fnd_api.g_false,
2517       p_commit			IN	 VARCHAR2 DEFAULT fnd_api.g_false,
2518       p_task_assignment_id	IN	 NUMBER,
2519       x_return_status		OUT NOCOPY	VARCHAR2,
2520       x_msg_count		OUT NOCOPY	NUMBER,
2521       x_msg_data		OUT NOCOPY	VARCHAR2,
2522       p_enable_workflow 	IN	 VARCHAR2,
2523       p_abort_workflow		IN	 VARCHAR2,
2524       p_delete_option	      IN       VARCHAR2
2525    )
2526    IS
2527       --Declare the variables
2528       l_task_assignment_id   jtf_task_all_assignments.task_assignment_id%TYPE
2529 	       := p_task_assignment_id;
2530       x 		     CHAR;
2531 
2532       CURSOR c_res_ass
2533       IS
2534 	 SELECT 1
2535 	   FROM jtf_task_all_assignments
2536 	  WHERE task_assignment_id = l_task_assignment_id;
2537 
2538       l_session VARCHAR2(10) := 'DELETE';
2539       l_task_id jtf_task_all_assignments.task_id%TYPE;
2540       l_resource_id jtf_task_all_assignments.resource_id%TYPE;
2541       l_resource_type_code jtf_task_all_assignments.resource_type_code%TYPE;
2542       l_assignee_role jtf_task_all_assignments.assignee_role%TYPE;
2543 
2544       -- Business Event System Enhancement # 2391065
2545       l_assignment_status_id jtf_task_all_assignments.assignment_status_id%TYPE;
2546       CURSOR ass_res_orig (b_task_assignment_id IN NUMBER)
2547       IS
2548 	 SELECT task_id, resource_id, resource_type_code, assignee_role, assignment_status_id
2549 	   FROM jtf_task_all_assignments
2550 	  WHERE task_assignment_id = b_task_assignment_id;
2551 
2552       l_enable_workflow 	 VARCHAR2(1)  := p_enable_workflow;
2553       l_abort_workflow		 VARCHAR2(1)  := p_abort_workflow;
2554 
2555       ------------------------------------------
2556       -- For XP
2557       ------------------------------------------
2561 	   , jtb.calendar_start_date
2558       CURSOR c_task (b_task_assignment_id NUMBER)IS
2559       SELECT jtb.source_object_type_code
2560 	   , jtb.recurrence_rule_id
2562 	   , jtb.task_id
2563 	   , jtaa.resource_id
2564        , jtb.entity
2565 	FROM jtf_tasks_b jtb
2566 	   , jtf_task_all_assignments jtaa
2567        WHERE jtaa.task_assignment_id = b_task_assignment_id
2568 	 AND jtb.task_id = jtaa.task_id;
2569 
2570       rec_task	c_task%ROWTYPE;
2571 
2572       l_delete_assignee_rec  jtf_task_repeat_assignment_pvt.delete_assignee_rec;
2573 
2574       -- Business Event System Enhancement # 2391065
2575 	  l_assignment_rec	  jtf_task_assignments_pvt.task_assignments_rec ;
2576       x_event_return_status  varchar2(100);
2577       ------------------------------------------
2578    BEGIN
2579       SAVEPOINT delete_task_ass_pvt;
2580       x_return_status := fnd_api.g_ret_sts_success;
2581 
2582       ------------------------------------------
2583       -- For XP
2584       ------------------------------------------
2585       OPEN c_task (p_task_assignment_id);
2586       FETCH c_task INTO rec_task;
2587       IF c_task%NOTFOUND
2588       THEN
2589 	 CLOSE c_task;
2590 	 fnd_message.set_name ('JTF', 'JTF_TASK_INV_TK_ASS');
2591 	 fnd_message.set_token ('P_TASK_ASSIGNMENT_ID', p_task_assignment_id);
2592 	 fnd_msg_pub.add;
2593 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2594 	 RAISE fnd_api.g_exc_unexpected_error;
2595       END IF;
2596       CLOSE c_task;
2597 
2598       l_task_id := rec_task.task_id;
2599 
2600       IF rec_task.source_object_type_code = 'APPOINTMENT' AND
2601 	 rec_task.recurrence_rule_id IS NOT NULL
2602       THEN
2603 	 IF p_delete_option = JTF_TASK_REPEAT_APPT_PVT.G_ONE OR
2604 	    p_delete_option = JTF_TASK_REPEAT_APPT_PVT.G_FUTURE OR
2605 	    p_delete_option = JTF_TASK_REPEAT_APPT_PVT.G_ALL
2606 	 THEN
2607 	     l_delete_assignee_rec.recurrence_rule_id	 := rec_task.recurrence_rule_id;
2608 	     l_delete_assignee_rec.task_id		 := l_task_id;
2609 	     l_delete_assignee_rec.calendar_start_date	 := rec_task.calendar_start_date;
2610 	     l_delete_assignee_rec.resource_id		 := rec_task.resource_id;
2611 	     l_delete_assignee_rec.delete_option	 := p_delete_option;
2612 	     l_delete_assignee_rec.enable_workflow	 := p_enable_workflow;
2613 	     l_delete_assignee_rec.abort_workflow	 := p_abort_workflow;
2614 
2615 	     jtf_task_repeat_assignment_pvt.delete_assignee(
2616 		p_api_version	      => 1.0,
2617 		p_init_msg_list       => fnd_api.g_false,
2618 		p_commit	      => fnd_api.g_false,
2619 		p_delete_assignee_rec => l_delete_assignee_rec,
2620 		x_return_status       => x_return_status,
2621 		x_msg_count	      => x_msg_count,
2622 		x_msg_data	      => x_msg_data
2623 	     );
2624 
2625 	     RETURN;
2626 	  ELSIF p_delete_option IS NOT NULL AND
2627 		p_delete_option <> JTF_TASK_REPEAT_APPT_PVT.G_SKIP
2628 	  THEN
2629 	     fnd_message.set_name ('JTF', 'JTF_TASK_INVALID_FLAG');
2630 	     fnd_message.set_token ('P_FLAG_NAME', 'The parameter p_delete_option ');
2631 	     fnd_msg_pub.add;
2632 
2633 	     x_return_status := fnd_api.g_ret_sts_unexp_error;
2634 	     RAISE fnd_api.g_exc_unexpected_error;
2635 	  END IF;
2636       END IF;
2637       ------------------------------------------
2638 
2639       ---call the table handler to delete the resource req
2640       jtf_task_assignments_pub.lock_task_assignment (
2641 	 p_api_version => 1.0,
2642 	 p_init_msg_list => fnd_api.g_false,
2643 	 p_commit => fnd_api.g_false,
2644 	 p_task_assignment_id => l_task_assignment_id,
2645 	 p_object_version_number => p_object_version_number,
2646 	 x_return_status => x_return_status,
2647 	 x_msg_data => x_msg_data,
2648 	 x_msg_count => x_msg_count
2649       );
2650 
2651       IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2652       THEN
2653 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2654 	 RAISE fnd_api.g_exc_unexpected_error;
2655       END IF;
2656 
2657       -- ------------------------------------------------------------------------
2658       -- Get the original resource_id so we can delete the reference details
2659       -- ------------------------------------------------------------------------
2660 
2661        -- Validate the user_id
2662 	OPEN ass_res_orig (p_task_assignment_id);
2663 	FETCH ass_res_orig INTO l_task_id, l_resource_id, l_resource_type_code, l_assignee_role, l_assignment_status_id;
2664 
2665 
2666 	 IF ass_res_orig%NOTFOUND
2667 	 THEN
2668 	    CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
2669 	    fnd_message.set_name ('JTF', 'JTF_TASK_INV_TK_ASS');
2670 	    fnd_message.set_token ('P_TASK_ASSIGNMENT_ID', p_task_assignment_id);
2671 	    fnd_msg_pub.add;
2672 	    x_return_status := fnd_api.g_ret_sts_unexp_error;
2673 	    RAISE fnd_api.g_exc_unexpected_error;
2674 	 END IF;
2675 	 CLOSE ass_res_orig; -- Fix a missing CLOSE on 4/18/2002
2676 
2677 	 jtf_task_utl.check_security_privilege(
2678 		    p_task_id => l_task_id,
2679 		    p_session => l_session,
2680 		    x_return_status => x_return_status
2681 		    );
2682 
2683 	 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2684 	 THEN
2685 	    x_return_status := fnd_api.g_ret_sts_unexp_error;
2686 	    RAISE fnd_api.g_exc_unexpected_error;
2687 	 END IF;
2688 
2689 
2690       jtf_task_assignments_pkg.delete_row (
2691 	 x_task_assignment_id => l_task_assignment_id
2692       );
2693       OPEN c_res_ass;
2694       FETCH c_res_ass INTO x;
2695 
2696       IF c_res_ass%FOUND
2697       THEN
2698 	 CLOSE c_res_ass; -- Fix a missing CLOSE on 4/18/2002
2702 	 RAISE fnd_api.g_exc_unexpected_error;
2699 	 fnd_message.set_name ('JTF', 'JTF_TASK_DELETING_TK_ASS');
2700 	 fnd_msg_pub.add;
2701 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2703 	 --CLOSE c_res_ass; -- Incorrect position for CLOSE
2704       ELSE
2705 	 CLOSE c_res_ass;
2706       END IF;
2707 
2708       IF c_res_ass%ISOPEN
2709       THEN
2710 	 CLOSE c_res_ass;
2711       END IF;
2712 
2713   -- ------------------------------------------------------------------------
2714   -- Delete reference to resource, fix enh #1845501
2715   -- ------------------------------------------------------------------------
2716 	    jtf_task_utl.delete_party_reference(
2717 	       p_reference_from     => 'ASSIGNMENT',
2718 	       p_task_id	=> l_task_id,
2719 	       p_party_type_code	=> l_resource_type_code,
2720 	       p_party_id	=> l_resource_id,
2721 	       x_msg_count	=> x_msg_count,
2722 	       x_msg_data	=> x_msg_data,
2723 	       x_return_status	    => x_return_status);
2724 
2725 	    IF NOT (x_return_status = fnd_api.g_ret_sts_success)
2726 	    THEN
2727 	       x_return_status := fnd_api.g_ret_sts_unexp_error;
2728 	       RAISE fnd_api.g_exc_unexpected_error;
2729 	    END IF;
2730 
2731       ---
2732       --- decide the launch of workflow
2733       ---
2734 
2735       -- Business Event System Enhancement # 2391065 and 2797666
2736       IF (rec_task.entity = 'TASK')
2737       THEN
2738 	  l_assignment_rec.task_assignment_id	      := l_task_assignment_id;
2739 	  l_assignment_rec.task_id		      := l_task_id;
2740 	  l_assignment_rec.resource_type_code	      := l_resource_type_code;
2741       l_assignment_rec.resource_id		  := l_resource_id;
2742       l_assignment_rec.assignment_status_id	  := l_assignment_status_id;
2743       l_assignment_rec.assignee_role		  := l_assignee_role;
2744 	  l_assignment_rec.enable_workflow	      := p_enable_workflow;
2745       l_assignment_rec.abort_workflow		  := l_abort_workflow;
2746 
2747       jtf_task_wf_events_pvt.publish_delete_assignment(l_assignment_rec, x_event_return_status);
2748 
2749 		IF (x_event_return_status = 'WARNING')
2750 		THEN
2751 		   fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_WARNING');
2752 	   fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2753 	   fnd_msg_pub.add;
2754 		ELSIF(x_event_return_status = 'ERROR')
2755 		THEN
2756 		   fnd_message.set_name ('JTF', 'JTF_TASK_ASS_EVENT_ERROR');
2757 	   fnd_message.set_token ('P_ASSIGNMENT_ID', l_task_assignment_id);
2758 	   fnd_msg_pub.add;
2759 		   x_return_status := fnd_api.g_ret_sts_unexp_error;
2760 	   RAISE fnd_api.g_exc_unexpected_error;
2761 		END IF ;
2762 
2763       END IF;
2764 
2765       IF ass_res_orig%ISOPEN
2766       THEN
2767 	 CLOSE ass_res_orig;
2768       END IF;
2769 
2770       IF fnd_api.to_boolean (p_commit)
2771       THEN
2772 	 COMMIT WORK;
2773       END IF;
2774 
2775       fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
2776    EXCEPTION
2777       WHEN fnd_api.g_exc_unexpected_error
2778       THEN
2779 	 ROLLBACK TO delete_task_ass_pvt;
2780 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2781 	 fnd_msg_pub.count_and_get (
2782 	    p_count => x_msg_count,
2783 	    p_data => x_msg_data
2784 	 );
2785       WHEN OTHERS
2786       THEN
2787 	 ROLLBACK TO delete_task_ass_pvt;
2788 
2789        -- Added by SBARAT on 23/05/2006 for bug# 5176073
2790 	 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
2791 	 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
2792 	 fnd_msg_pub.add;
2793 
2794 	 x_return_status := fnd_api.g_ret_sts_unexp_error;
2795 	 fnd_msg_pub.count_and_get (
2796 	    p_count => x_msg_count,
2797 	    p_data => x_msg_data
2798 	 );
2799    END;
2800 
2801    PROCEDURE delete_task_assignment (
2802       p_api_version		IN	 NUMBER,
2803       p_object_version_number	IN	 NUMBER,
2804       p_init_msg_list		IN	 VARCHAR2 DEFAULT fnd_api.g_false,
2805       p_commit			IN	 VARCHAR2 DEFAULT fnd_api.g_false,
2806       p_task_assignment_id	IN	 NUMBER,
2807       x_return_status		OUT NOCOPY	VARCHAR2,
2808       x_msg_count		OUT NOCOPY	NUMBER,
2809       x_msg_data		OUT NOCOPY	VARCHAR2,
2810       p_enable_workflow 	IN	 VARCHAR2,
2811       p_abort_workflow		IN	 VARCHAR2
2812    )
2813    IS
2814    BEGIN
2815       jtf_task_assignments_pvt.delete_task_assignment (
2816       p_api_version		=> p_api_version,
2817       p_object_version_number	=> p_object_version_number,
2818       p_init_msg_list		=> p_init_msg_list,
2819       p_commit			=> p_commit,
2820       p_task_assignment_id	=> p_task_assignment_id,
2821       x_return_status		=> x_return_status,
2822       x_msg_count		=> x_msg_count,
2823       x_msg_data		=> x_msg_data,
2824       p_enable_workflow 	=> p_enable_workflow,
2825       p_abort_workflow		=> p_abort_workflow,
2826       p_delete_option		=> JTF_TASK_REPEAT_APPT_PVT.G_ONE
2827       );
2828   END;
2829 
2830    PROCEDURE delete_task_assignment (
2831       p_api_version		IN	 NUMBER,
2832       p_object_version_number	IN	 NUMBER,
2833       p_init_msg_list		IN	 VARCHAR2 DEFAULT fnd_api.g_false,
2834       p_commit			IN	 VARCHAR2 DEFAULT fnd_api.g_false,
2835       p_task_assignment_id	IN	 NUMBER,
2836       x_return_status		OUT NOCOPY	VARCHAR2,
2837       x_msg_count		OUT NOCOPY	NUMBER,
2838       x_msg_data		OUT NOCOPY	VARCHAR2
2839    )
2840    IS
2841    BEGIN
2842       jtf_task_assignments_pvt.delete_task_assignment (
2843       p_api_version		=> p_api_version,
2844       p_object_version_number	=> p_object_version_number,
2845       p_init_msg_list		=> p_init_msg_list,
2846       p_commit			=> p_commit,
2847       p_task_assignment_id	=> p_task_assignment_id,
2848       x_return_status		=> x_return_status,
2849       x_msg_count		=> x_msg_count,
2850       x_msg_data		=> x_msg_data,
2851       p_enable_workflow 	=> fnd_profile.value('JTF_TASK_ENABLE_WORKFLOW'),
2852       p_abort_workflow		=> fnd_profile.value('JTF_TASK_ABORT_PREV_WF')
2853       );
2854   END;
2855 END;