DBA Data[Home] [Help]

PACKAGE: APPS.JTA_SYNC_TASK_COMMON

Source


1 PACKAGE JTA_SYNC_TASK_COMMON AUTHID CURRENT_USER AS
2 /* $Header: jtavstcs.pls 115.58 2002/12/13 22:25:44 cjang ship $ */
3 /*======================================================================+
4 |  Copyright (c) 1995 Oracle Corporation Redwood Shores, California, USA|
5 |                            All rights reserved.                       |
6 +=======================================================================+
7 | FILENAME                                                              |
8 |          jtavstcs.pls                                                 |
9 |                                                                       |
10 | DESCRIPTION                                                           |
11 |          This package is a common for sync task                       |
12 |                                                                       |
13 | NOTES                                                                 |
14 |                                                                       |
15 |                                                                       |
16 | Date          Developer        Change                                 |
17 | ------        ---------------  -------------------------------------- |
18 | 21-Feb-2002   cjang            Refactoring                            |
19 | 22-Feb-2002   cjang            Refactoring                            |
20 | 25-Feb-2002   cjang            Bug Fix to select assignments          |
21 |                                        for an assignee                |
22 |                                Removed p_alarm_uom on set_alarm_date()|
23 |                                Removed include_record()               |
24 | 27-Feb-2002   cjang            Added can_update_task, get_max_enddate |
25 |                                Added recurrences to the cursor c_task |
26 |                                Added a cursor c_repeating_task        |
27 |                                Added add_task_with_recurrence         |
28 |                                Modified adjust_timezone               |
29 | 28-Feb-2002   cjang            Integrate with invitee function        |
30 | 01-Mar-2002   cjang            Refactoring and Bug Fix                |
31 | 06-Mar-2002   cjang            Added get_all_nonrepeat_tasks          |
32 |                                      get_all_repeat_tasks             |
33 |                                      create_new_data                  |
34 |                                      update_existing_data             |
35 |                                      add_nonrepeat_task               |
36 |                                      add_repeat_task                  |
37 |                                      convert_task_to_gmt              |
38 |                                Modified parameters on add_task        |
39 | 11-Mar-2002   cjang            Added the followings                   |
40 |                                - delete_exclusion_task                |
41 |                                - delete_task_data                     |
42 |                                - reject_task_data                     |
43 |                                - changed_repeat_rule                  |
44 |                                - update_repeating_rule                |
45 | 11-Mar-2002   sanjeev          - Changing methos to include exclusion |
46 | 13-Mar-2002   cjang            Added insert_or_update_mapping         |
47 |                                Changed OUT to IN OUT on the parameter |
48 |                                    x_task_rec in delete_exclusion_task|
49 | 25-Mar-2002   sanjeev          Added procedure  transformStatus and   |
50 |                                function getChangedStatusId()          |
51 | 08-Apr-2002   arpatel          Merged convert_dates2 with convert_dates|
52 | 08-Apr-2002   ssallaka         merged do_mapping anf insert_mapping   |
53 | 19-Apr-2002   cjang            Removed p_get_data from add_task()     |
54 | 30-Apr-2002   cjang            Added a new parameter p_resource_type  |
55 |                                in get_assignment_id                   |
56 | 23-May-2002   cjang            Added validate_syncid()                |
57 |                                 to fix bug 2382927                    |
58 | 05-Aug-2002   cjang            Changed the default for the parameter  |
59 |                                 p_mapping_type to G_NEW in the proc   |
60 |                                 create_new_data().                    |
61 |                                  Fixed bug 2497963                    |
62 | 04-Oct-2002   cjang           Fixed bug 2469488, 2469487, 2469479     |
63 |                                 Added function already_selected       |
64 *=======================================================================*/
65    G_TASK_TYPE_GENERAL  CONSTANT NUMBER := 15; -- Task Type Name = General
66    G_NEW        CONSTANT VARCHAR2(10) := 'New';
67    G_MODIFY     CONSTANT VARCHAR2(10) := 'Modify';
68    G_DELETE     CONSTANT VARCHAR2(10) := 'Delete';
69    G_GMT_TIMEZONE_ID    CONSTANT NUMBER := 0;
70    G_SERVER_TIMEZONE_ID CONSTANT NUMBER := TO_NUMBER (fnd_profile.VALUE ('SERVER_TIMEZONE_ID'));
71    G_SYNC_SUCCESS   CONSTANT NUMBER := 0;
72    G_CLIENT_TIMEZONE_ID CONSTANT NUMBER := TO_NUMBER (fnd_profile.VALUE ('CLIENT_TIMEZONE_ID'));
73 
74    -- Define update_type
75    G_UPDATE_ALL     CONSTANT VARCHAR2(10) := 'UPDATE_ALL';
76    G_UPDATE_STATUS  CONSTANT VARCHAR2(13) := 'UPDATE_STATUS';
77    G_DO_NOTHING     CONSTANT VARCHAR2(10) := 'DO_NOTHING';
78 
79    G_PREFIX_INVITEE CONSTANT VARCHAR2(8) := 'INVITE: ';
80    G_APPOINTMENT CONSTANT VARCHAR2(12)  := 'APPOINTMENT';
81    G_TASK   CONSTANT VARCHAR2(5) := 'TASK';
82    G_REQ_APPOINTMENT CONSTANT VARCHAR2(12)  := 'APPOINTMENTS';
83    G_REQ_TASK        CONSTANT VARCHAR2(12)  := 'TASKS';
84 
85    G_USER_STATUS_RULE         BOOLEAN;
86    G_LOGIN_RESOURCE_ID        NUMBER;
87    G_CARRIAGE_RETURN_XML      VARCHAR2(6) := '
';
88    G_CARRIAGE_RETURN_ORACLE   VARCHAR2(1) := '
89 ';
90    G_USER_DEFAULT_REPEAT_COUNT CONSTANT NUMBER := TO_NUMBER (fnd_profile.VALUE ('JTF_TASK_DEFAULT_REPEAT_COUNT'));
91 
92    -- The record type to store a group id and resource_type "RS_GROUP"
93    TYPE resource_list_rec IS RECORD (
94       resource_id      NUMBER,
95       resource_type    VARCHAR2(100)
96    );
97 
98    -- The PLSQL table to store a list of group ids and resource_types
99    TYPE resource_list_tbl IS TABLE OF resource_list_rec
100       INDEX BY BINARY_INTEGER;
101 
102    PROCEDURE get_resource_details (
103       x_resource_id   OUT NOCOPY NUMBER,
104       x_resource_type OUT NOCOPY VARCHAR2
105    );
106 
107    FUNCTION get_client_priority(p_importance_level IN NUMBER)
108       RETURN NUMBER;
109 
110    -------------------------------
111    -- Public cursor
112    -------------------------------
113 
114    -- This returns a PLSQL table that stores a list of group ids and resource types
115    FUNCTION get_group_calendar (p_resource_id IN NUMBER) RETURN resource_list_tbl;
116 
117    PROCEDURE get_group_resource (
118       p_request_type  IN VARCHAR2,
119       p_resource_id   IN NUMBER,
120       p_resource_type IN VARCHAR2,
121       x_resources     OUT NOCOPY resource_list_tbl
122    );
123 
124    PROCEDURE get_alarm_mins (
125       p_task_rec    IN jta_sync_task.task_rec,
126       x_alarm_mins OUT NOCOPY NUMBER
127    );
128 
129    -- Used in creating a new task
130    FUNCTION convert_gmt_to_client (p_date IN DATE) RETURN DATE;
131    -- Used in updating a task
132    FUNCTION convert_gmt_to_task (p_date    IN DATE,
133                  p_task_id IN NUMBER) RETURN DATE;
134    -- Used in getting a list of tasks
135    FUNCTION convert_task_to_gmt (p_date IN DATE,
136                  p_timezone_id IN NUMBER) RETURN DATE;
137    -- Used to establish a new syncanchor
138    FUNCTION convert_server_to_gmt (p_date IN DATE) RETURN DATE;
139 
140    -- Used to convert syncanchor from GMT to Server timezone
141    FUNCTION convert_gmt_to_server (p_date IN DATE) RETURN DATE;
142 
143    -- Used in creating a task
144    PROCEDURE convert_dates (
145       p_task_rec       IN       jta_sync_task.task_rec,
146       p_operation      IN       VARCHAR2, --CREATE OR UPDATE
147       x_planned_start      OUT NOCOPY      DATE,
148       x_planned_end    OUT NOCOPY      DATE,
149       x_scheduled_start    OUT NOCOPY      DATE,
150       x_scheduled_end      OUT NOCOPY      DATE,
151       x_actual_start       OUT NOCOPY      DATE,
152       x_actual_end     OUT NOCOPY      DATE,
153       x_date_selected      OUT NOCOPY      VARCHAR2,
154       x_show_on_calendar   OUT NOCOPY      VARCHAR2
155    );
156 
157    -- Used in getting a list of tasks
158    PROCEDURE adjust_timezone(
159       p_timezone_id      IN NUMBER,
160       p_syncanchor       IN DATE,
161       p_planned_start_date   IN DATE,
162       p_planned_end_date     IN DATE,
163       p_scheduled_start_date IN DATE,
164       p_scheduled_end_date   IN DATE,
165       p_actual_start_date    IN DATE,
166       p_actual_end_date      IN DATE,
167       p_item_display_type    IN NUMBER,
168       x_task_rec     IN OUT NOCOPY jta_sync_task.task_rec);
169 
170    FUNCTION get_max_enddate(p_recurrence_rule_id IN NUMBER)
171    RETURN DATE;
172 
173      PROCEDURE make_prefix(
174       p_assignment_status_id    IN       NUMBER,
175       p_source_object_type_code IN       VARCHAR2,
176       p_resource_type           IN       VARCHAR2,
177       p_resource_id             IN       NUMBER,
178       p_group_id                IN       NUMBER,
179       x_subject                 IN OUT NOCOPY   VARCHAR2
180    );
181 
182    PROCEDURE check_delete_data(
183        p_task_id      IN NUMBER,
184        p_resource_id  IN NUMBER,
185        p_objectcode   IN VARCHAR2,
186        x_status_id   OUT NOCOPY NUMBER,
187        x_delete_flag OUT NOCOPY VARCHAR2
188    );
189 
190    FUNCTION get_assignment_id (p_task_id       IN NUMBER,
191                                p_resource_id   IN NUMBER,
192                                p_resource_type IN VARCHAR2 DEFAULT 'RS_EMPLOYEE'
193    )
194    RETURN NUMBER;
195 
196    FUNCTION get_assignment_status_id (p_task_id IN NUMBER,
197                       p_resource_id IN NUMBER
198    )
199    RETURN NUMBER;
200 
201    PROCEDURE get_assignment_info(p_task_id      IN  NUMBER
202                 ,p_resource_id      IN  NUMBER
203                 ,x_assignee_role    OUT NOCOPY VARCHAR2
204                 ,x_assignment_status_id OUT NOCOPY NUMBER);
205 
206    PROCEDURE get_owner_info(p_task_id         IN  NUMBER,
207                 x_task_name       OUT NOCOPY VARCHAR2,
208                 x_owner_id        OUT NOCOPY NUMBER,
209                 x_owner_type_code OUT NOCOPY VARCHAR2);
210 
211    FUNCTION get_access(p_group_id    IN VARCHAR2
212               ,p_resource_id IN NUMBER
213    )
214    RETURN VARCHAR2;
215 
216    FUNCTION get_source_object_type(p_task_id IN NUMBER)
217    RETURN VARCHAR2;
218 
219    FUNCTION get_update_type (
220      p_task_id     IN NUMBER,
221      p_resource_id IN NUMBER,
222      p_subject     IN VARCHAR2
223 )
224    RETURN VARCHAR2;
225 
226    FUNCTION get_recurrence_rule_id(p_task_id IN NUMBER)
227    RETURN NUMBER;
228 
229    PROCEDURE convert_recur_date_to_client(p_base_start_time IN DATE,
230                       p_base_end_time   IN DATE,
231                       p_start_date      IN DATE,
232                       p_end_date        IN DATE,
233                       p_occurs_which    IN NUMBER,
234                       p_uom         IN VARCHAR2,
235                       x_date_of_month  OUT NOCOPY NUMBER,
236                       x_start_date     IN OUT NOCOPY DATE,
237                       x_end_date       IN OUT NOCOPY DATE);
238 
239    PROCEDURE get_all_nonrepeat_tasks(
240          p_request_type       IN VARCHAR2,
241          p_syncanchor         IN DATE,
242          p_recordindex        IN NUMBER,
243          p_resource_id        IN NUMBER,
244          p_resource_type      IN VARCHAR2,
245          p_source_object_type IN VARCHAR2,
246          p_get_data       IN BOOLEAN,
247          x_totalnew       IN OUT NOCOPY NUMBER,
248          x_totalmodified      IN OUT NOCOPY NUMBER,
249          x_data           IN OUT NOCOPY jta_sync_task.task_tbl
250          --p_new_syncanchor     in date
251    );
252    PROCEDURE get_all_deleted_tasks(
253          p_request_type       IN VARCHAR2,
254          p_syncanchor         IN DATE,
255          p_recordindex        IN NUMBER,
256          p_resource_id        IN NUMBER,
257          p_resource_type      IN VARCHAR2,
258          p_source_object_type IN VARCHAR2,
259          p_get_data       IN BOOLEAN,
260          x_totaldeleted       IN OUT NOCOPY NUMBER,
261          x_data           IN OUT NOCOPY jta_sync_task.task_tbl
262          --p_new_syncanchor     in date
263    );
264    PROCEDURE get_all_repeat_tasks(
265          p_request_type       IN VARCHAR2,
266          p_syncanchor         IN DATE,
267          p_recordindex        IN NUMBER,
268          p_resource_id        IN NUMBER,
269          p_resource_type      IN VARCHAR2,
270          p_source_object_type IN VARCHAR2,
271          p_get_data       IN BOOLEAN,
272          x_totalnew       IN OUT NOCOPY NUMBER,
273          x_totalmodified      IN OUT NOCOPY NUMBER,
274         -- x_totaldeleted   IN OUT NOCOPY NUMBER,
275          x_data           IN OUT NOCOPY jta_sync_task.task_tbl,
276          x_exclusion_data     IN OUT NOCOPY Jta_Sync_Task.exclusion_tbl
277          --p_new_syncanchor     in date
278    );
279 
280    PROCEDURE create_new_data(p_task_rec      IN OUT NOCOPY jta_sync_task.task_rec
281                 ,p_mapping_type  IN VARCHAR2 DEFAULT G_NEW -- Fixed bug 2497963 for 9i issue
282                 ,p_exclusion_tbl IN jta_sync_task.exclusion_tbl
283                 ,p_resource_id   IN NUMBER
284                 ,p_resource_type IN VARCHAR2
285    );
286 
287    PROCEDURE update_existing_data(p_task_rec IN OUT NOCOPY jta_sync_task.task_rec
288                   ,p_exclusion_tbl IN jta_sync_task.exclusion_tbl
289                   ,p_resource_id   IN NUMBER
290                   ,p_resource_type IN VARCHAR2);
291 
292    PROCEDURE delete_exclusion_task(
293        p_repeating_task_id   IN     NUMBER
294        ,x_task_rec       IN OUT NOCOPY jta_sync_task.task_rec
295        );
296 
297    PROCEDURE delete_task_data(
298        p_task_rec IN OUT NOCOPY jta_sync_task.task_rec
299       ,p_delete_map_flag IN BOOLEAN DEFAULT TRUE
300    );
301 
302    PROCEDURE reject_task_data(
303        p_task_rec IN OUT NOCOPY jta_sync_task.task_rec
304    );
305 
306    FUNCTION changed_repeat_rule(p_task_rec IN jta_sync_task.task_rec)
307    RETURN BOOLEAN;
308 
309    -- function to check if a repeating task is on exclusion list
310    FUNCTION check_for_exclusion(p_sync_id         IN NUMBER,
311                 p_exclusion_tbl       IN jta_sync_task.exclusion_tbl,
312                 p_calendar_start_date IN DATE,
316    FUNCTION get_excluding_taskid (p_sync_id        IN NUMBER,
313                 p_client_time_zone_id NUMBER)
314    RETURN BOOLEAN;
315 
317                   p_recurrence_rule_id IN NUMBER,
318                   p_exclusion_rec      IN jta_sync_task.exclusion_rec)
319    RETURN NUMBER;
320 
321    PROCEDURE transformStatus(p_task_status_id IN out NOCOPY  NUMBER,
322                  p_task_sync_id   IN NUMBER,
323                              x_operation      IN OUT NOCOPY VARCHAR2
324                 );
325 
326    FUNCTION getChangedStatusId(p_task_status_id      IN NUMBER,
327                 p_source_object_type_code IN VARCHAR2
328                    )
329    RETURN NUMBER;
330 
331    FUNCTION checkUserStatusRule RETURN BOOLEAN;
332 
333       FUNCTION is_this_new_task (
334       p_sync_id IN NUMBER
335       )
336       RETURN BOOLEAN;
337 
338      FUNCTION get_task_id (
339       p_sync_id IN NUMBER
340       )
341       RETURN NUMBER;
342 
343    FUNCTION get_ovn (p_task_id IN NUMBER)
344       RETURN NUMBER;
345 
346    FUNCTION get_ovn (p_task_assignment_id IN NUMBER)
347       RETURN NUMBER;
348 
349      PROCEDURE do_mapping (
350       p_task_id         IN     NUMBER,
351       p_operation       IN     VARCHAR2,
352       x_task_sync_id    IN OUT NOCOPY NUMBER
353    );
354 
355    FUNCTION already_selected(p_task_id     IN NUMBER DEFAULT NULL
356                             ,p_sync_id     IN NUMBER DEFAULT NULL
357                             ,p_task_tbl    IN jta_sync_task.task_tbl)
358    RETURN BOOLEAN;
359 
360    -- this procedure is made public only for testing ...should not be used otherwise
361    PROCEDURE add_task (
362       p_request_type           IN   VARCHAR2,
363       p_resource_id        IN   NUMBER,
364       p_resource_type          IN   VARCHAR2,
365       p_recordindex        IN   NUMBER,
366       p_operation          IN   VARCHAR2,
367       p_task_sync_id           IN   NUMBER,
368       p_task_id            IN   NUMBER,
369       p_task_name          IN   VARCHAR2,
370       p_owner_type_code        IN   VARCHAR2,
371       p_description        IN   VARCHAR2,
372       p_task_status_id         IN   NUMBER,
373       p_task_priority_id       IN   NUMBER,
374       p_private_flag           IN   VARCHAR2,
375       p_date_selected          IN   VARCHAR2,
376       p_timezone_id        IN   NUMBER,
377       p_syncanchor         IN   DATE,
378       p_planned_start_date     IN   DATE,
379       p_planned_end_date       IN   DATE,
380       p_scheduled_start_date   IN   DATE,
381       p_scheduled_end_date     IN   DATE,
382       p_actual_start_date      IN   DATE,
383       p_actual_end_date        IN   DATE,
384       p_calendar_start_date    IN   DATE,
385       p_calendar_end_date      IN   DATE,
386       p_alarm_on           IN   VARCHAR2,
387       p_alarm_start        IN   NUMBER,
388       p_recurrence_rule_id     IN   NUMBER,
389       p_occurs_uom         IN   VARCHAR2,
390       p_occurs_every           IN   NUMBER,
391       p_occurs_number          IN   NUMBER,
392       p_start_date_active      IN   DATE,
393       p_end_date_active        IN   DATE,
394       p_sunday             IN   VARCHAR2,
395       p_monday             IN   VARCHAR2,
396       p_tuesday            IN   VARCHAR2,
397       p_wednesday          IN   VARCHAR2,
398       p_thursday           IN   VARCHAR2,
399       p_friday             IN   VARCHAR2,
400       p_saturday           IN   VARCHAR2,
401       p_date_of_month          IN   VARCHAR2,
402       p_occurs_which           IN   VARCHAR2,
403       x_task_rec           IN OUT NOCOPY   jta_sync_task.task_rec
404    );
405 
406    FUNCTION set_alarm_date (
407       p_task_id            IN   NUMBER,
408       p_request_type           IN   VARCHAR2,
409       p_scheduled_start_date   IN   DATE,
410       p_planned_start_date     IN   DATE,
411       p_actual_start_date      IN   DATE,
412       p_alarm_flag         IN   VARCHAR2,
413       p_alarm_start        IN   NUMBER
414       )
415    RETURN DATE ;
416 
417     -- Added to fix bug 2382927
418     FUNCTION validate_syncid(p_syncid IN NUMBER)
419     RETURN BOOLEAN;
420 
421 END jta_sync_task_common;   -- Package spec