DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_RS_GROUPS_PUB

Source


1 PACKAGE BODY jtf_rs_groups_pub AS
2   /* $Header: jtfrspgb.pls 120.0.12010000.3 2009/08/05 07:59:56 rgokavar ship $ */
3 
4   /*****************************************************************************************
5    This package body defines the procedures for managing resource groups.
6    Its main procedures are as following:
7    Create Resource Group
8    Update Resource Group
9    This package validates the input parameters to these procedures and then
10    Calls corresponding  procedures from jtf_rs_groups_pvt to do business
11    validations and to do actual inserts, updates and deletes into tables.
12    ******************************************************************************************/
13 
14   /* Package variables. */
15 
16   G_PKG_NAME         VARCHAR2(30) := 'JTF_RS_GROUPS_PUB';
17 
18 
19   /* Procedure to create the resource group and the members
20 	based on input values passed by calling routines. */
21 
22   PROCEDURE  create_resource_group
23   (P_API_VERSION          IN   NUMBER,
24    P_INIT_MSG_LIST        IN   VARCHAR2   DEFAULT  FND_API.G_FALSE,
25    P_COMMIT               IN   VARCHAR2   DEFAULT  FND_API.G_FALSE,
26    P_GROUP_NAME           IN   JTF_RS_GROUPS_VL.GROUP_NAME%TYPE,
27    P_GROUP_DESC           IN   JTF_RS_GROUPS_VL.GROUP_DESC%TYPE   DEFAULT  NULL,
28    P_EXCLUSIVE_FLAG       IN   JTF_RS_GROUPS_VL.EXCLUSIVE_FLAG%TYPE   DEFAULT  'N',
29    P_EMAIL_ADDRESS        IN   JTF_RS_GROUPS_VL.EMAIL_ADDRESS%TYPE   DEFAULT  NULL,
30    P_START_DATE_ACTIVE    IN   JTF_RS_GROUPS_VL.START_DATE_ACTIVE%TYPE,
31    P_END_DATE_ACTIVE      IN   JTF_RS_GROUPS_VL.END_DATE_ACTIVE%TYPE   DEFAULT  NULL,
32    P_ACCOUNTING_CODE      IN   JTF_RS_GROUPS_VL.ACCOUNTING_CODE%TYPE   DEFAULT  NULL,
33    X_RETURN_STATUS        OUT NOCOPY  VARCHAR2,
34    X_MSG_COUNT            OUT NOCOPY  NUMBER,
35    X_MSG_DATA             OUT NOCOPY  VARCHAR2,
36    X_GROUP_ID             OUT NOCOPY  JTF_RS_GROUPS_VL.GROUP_ID%TYPE,
37    X_GROUP_NUMBER         OUT NOCOPY  JTF_RS_GROUPS_VL.GROUP_NUMBER%TYPE,
38    P_TIME_ZONE            IN   JTF_RS_GROUPS_VL.TIME_ZONE%TYPE   DEFAULT  NULL
39   ) IS
40 
41     l_api_version         CONSTANT NUMBER := 1.0;
42     l_api_name            CONSTANT VARCHAR2(30) := 'CREATE_RESOURCE_GROUP';
43     l_group_name                   jtf_rs_groups_vl.group_name%TYPE := p_group_name;
44     l_group_desc                   jtf_rs_groups_vl.group_desc%TYPE := p_group_desc;
45     l_exclusive_flag               jtf_rs_groups_vl.exclusive_flag%TYPE := nvl(p_exclusive_flag, 'N');
46     l_email_address                jtf_rs_groups_vl.email_address%TYPE := p_email_address;
47     l_start_date_active            jtf_rs_groups_vl.start_date_active%TYPE := p_start_date_active;
48     l_end_date_active              jtf_rs_groups_vl.end_date_active%TYPE := p_end_date_active;
49     l_accounting_code              jtf_rs_groups_vl.accounting_code%TYPE := p_accounting_code;
50     l_group_member_id              jtf_rs_group_members.group_member_id%TYPE;
51     l_time_zone                    jtf_rs_groups_vl.time_zone%TYPE := p_time_zone;
52     current_record                 INTEGER;
53 
54 
55   BEGIN
56 
57 
58     SAVEPOINT create_resource_group_pub;
59 
60     x_return_status := fnd_api.g_ret_sts_success;
61 
62 --    DBMS_OUTPUT.put_line(' Started Create Resource Group Pub ');
63 
64 
65     IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
66 
67       RAISE fnd_api.g_exc_unexpected_error;
68 
69     END IF;
70 
71 
72     IF fnd_api.to_boolean(p_init_msg_list) THEN
73 
74       fnd_msg_pub.initialize;
75 
76     END IF;
77 
78 
79     /* Validate that the Group Name is specified */
80 
81     IF l_group_name IS NULL THEN
82 
83 --	 dbms_output.put_line('Group Name cannot be null');
84 
85       fnd_message.set_name('JTF', 'JTF_RS_GROUP_NAME_NULL');
86       fnd_msg_pub.add;
87       RAISE fnd_api.g_exc_error;
88 
89     END IF;
90 
91 
92     /* Validate that the Start Date Active is specified */
93 
94     IF l_start_date_active IS NULL THEN
95 
96 --	 dbms_output.put_line('Start Date Active cannot be null');
97 
98       fnd_message.set_name('JTF', 'JTF_RS_START_DATE_NULL');
99       fnd_msg_pub.add;
100 
101       RAISE fnd_api.g_exc_error;
102 
103     END IF;
104 
105     /* Validate the Time Zone */
106 
107     IF l_time_zone <> fnd_api.g_miss_num AND l_time_zone IS NOT NULL THEN
108 
109         jtf_resource_utl.validate_time_zone(
110           p_time_zone_id => l_time_zone,
111           x_return_status => x_return_status
112         );
113 
114         IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN
115 		  IF X_RETURN_STATUS = FND_API.G_RET_STS_ERROR THEN
116 		       RAISE FND_API.G_EXC_ERROR;
117 		  ELSIF X_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
118 	      	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
119 		  END IF;
120         END IF;
121     END IF;
122 
123 --  Bug#8708207
124 --  Assigning 'N' to exclusive_flag when parameter is g_miss_char
125 --  Its not fix for this bug but adding this to handle g_miss_char along with NULL value.
126     IF l_exclusive_flag = fnd_api.g_miss_char THEN
127         l_exclusive_flag := 'N';
128     END IF;
129 
130     /* Check the Global Variable for GROUP ID, and call the appropriate Private API */
131 
132 --   dbms_output.put_line ('Before setting the global flag in create_resource');
133 
134        IF G_RS_GRP_ID_PUB_FLAG = 'Y' THEN
135 
136           /* Call the private procedure with the validated parameters. */
137 
138             jtf_rs_groups_pvt.create_resource_group
139               (P_API_VERSION 		=> 1,
140                P_INIT_MSG_LIST 		=> fnd_api.g_false,
141                P_COMMIT 		=> fnd_api.g_false,
142                P_GROUP_NAME 		=> l_group_name,
143                P_GROUP_DESC 		=> l_group_desc,
144                P_EXCLUSIVE_FLAG 	=> l_exclusive_flag,
145                P_EMAIL_ADDRESS 		=> l_email_address,
146                P_START_DATE_ACTIVE 	=> l_start_date_active,
147                P_END_DATE_ACTIVE 	=> l_end_date_active,
148                P_ACCOUNTING_CODE 	=> l_accounting_code,
149                X_RETURN_STATUS 		=> x_return_status,
150                X_MSG_COUNT 		=> x_msg_count,
151                X_MSG_DATA 		=> x_msg_data,
152                X_GROUP_ID 		=> x_group_id,
153                X_GROUP_NUMBER 		=> x_group_number,
154                P_TIME_ZONE          => l_time_zone
155               );
156              IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN                         IF X_RETURN_STATUS = FND_API.G_RET_STS_ERROR THEN
157                   RAISE FND_API.G_EXC_ERROR;
158                 ELSIF X_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
159                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
160                 END IF;
161              END IF;
162        ELSE
163          /* Call the private procedure for Migration. */
164             jtf_rs_groups_pvt.create_resource_group_migrate
165               (P_API_VERSION            => 1,
166                P_INIT_MSG_LIST          => fnd_api.g_false,
167                P_COMMIT                 => fnd_api.g_false,
168                P_GROUP_NAME             => l_group_name,
169                P_GROUP_DESC             => l_group_desc,
170                P_EXCLUSIVE_FLAG         => l_exclusive_flag,
171                P_EMAIL_ADDRESS          => l_email_address,
172                P_START_DATE_ACTIVE      => l_start_date_active,
173                P_END_DATE_ACTIVE        => l_end_date_active,
174                P_ACCOUNTING_CODE        => l_accounting_code,
175                P_GROUP_ID		=> G_GROUP_ID,
176                P_ATTRIBUTE1             => G_ATTRIBUTE1,
177                P_ATTRIBUTE2             => G_ATTRIBUTE2,
178                P_ATTRIBUTE3             => G_ATTRIBUTE3,
179                P_ATTRIBUTE4             => G_ATTRIBUTE4,
180                P_ATTRIBUTE5             => G_ATTRIBUTE5,
181                P_ATTRIBUTE6             => G_ATTRIBUTE6,
182                P_ATTRIBUTE7             => G_ATTRIBUTE7,
183                P_ATTRIBUTE8             => G_ATTRIBUTE8,
184                P_ATTRIBUTE9             => G_ATTRIBUTE9,
185                P_ATTRIBUTE10            => G_ATTRIBUTE10,
186                P_ATTRIBUTE11            => G_ATTRIBUTE11,
187                P_ATTRIBUTE12            => G_ATTRIBUTE12,
188                P_ATTRIBUTE13            => G_ATTRIBUTE13,
189                P_ATTRIBUTE14            => G_ATTRIBUTE14,
190                P_ATTRIBUTE15            => G_ATTRIBUTE15,
191                P_ATTRIBUTE_CATEGORY     => G_ATTRIBUTE_CATEGORY,
192                X_RETURN_STATUS          => x_return_status,
193                X_MSG_COUNT              => x_msg_count,
194                X_MSG_DATA               => x_msg_data,
195                X_GROUP_ID               => x_group_id,
196                X_GROUP_NUMBER           => x_group_number,
197                P_TIME_ZONE              => l_time_zone
198               );
199             IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN
200               IF X_RETURN_STATUS = FND_API.G_RET_STS_ERROR THEN
201                  RAISE FND_API.G_EXC_ERROR;
202               ELSIF X_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
203                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
204               END IF;
205             END IF;
206         END IF;
207 
208     IF fnd_api.to_boolean(p_commit) THEN
209 
210 	 COMMIT WORK;
211 
212     END IF;
213 
214     fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
215 
216 
217   EXCEPTION
218 
219     WHEN fnd_api.g_exc_error THEN
220       ROLLBACK TO create_resource_group_pub;
221       x_return_status := fnd_api.g_ret_sts_error;
222       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
223 p_data => x_msg_data);
224     WHEN fnd_api.g_exc_unexpected_error THEN
225       ROLLBACK TO create_resource_group_pub;
226       x_return_status := fnd_api.g_ret_sts_unexp_error;
227       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
228 p_data => x_msg_data);
229     WHEN OTHERS THEN
230       ROLLBACK TO create_resource_group_pub;
231       fnd_message.set_name ('JTF', 'JTF_RS_UNEXP_ERROR');
232       fnd_message.set_token('P_SQLCODE',SQLCODE);
233       fnd_message.set_token('P_SQLERRM',SQLERRM);
234       fnd_message.set_token('P_API_NAME', l_api_name);
235       FND_MSG_PUB.add;
236       x_return_status := fnd_api.g_ret_sts_unexp_error;
237       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
238                                  p_data => x_msg_data);
239   END create_resource_group;
240 
241  PROCEDURE  create_resource_group_migrate
242   (P_API_VERSION          IN   NUMBER,
243    P_INIT_MSG_LIST        IN   VARCHAR2   DEFAULT  FND_API.G_FALSE,
244    P_COMMIT               IN   VARCHAR2   DEFAULT  FND_API.G_FALSE,
245    P_GROUP_NAME           IN   JTF_RS_GROUPS_VL.GROUP_NAME%TYPE,
246    P_GROUP_DESC           IN   JTF_RS_GROUPS_VL.GROUP_DESC%TYPE   DEFAULT  NULL,
247    P_EXCLUSIVE_FLAG       IN   JTF_RS_GROUPS_VL.EXCLUSIVE_FLAG%TYPE   DEFAULT  'N',
248    P_EMAIL_ADDRESS        IN   JTF_RS_GROUPS_VL.EMAIL_ADDRESS%TYPE   DEFAULT  NULL,
249    P_START_DATE_ACTIVE    IN   JTF_RS_GROUPS_VL.START_DATE_ACTIVE%TYPE,
250    P_END_DATE_ACTIVE      IN   JTF_RS_GROUPS_VL.END_DATE_ACTIVE%TYPE   DEFAULT  NULL,
251    P_ACCOUNTING_CODE      IN   JTF_RS_GROUPS_VL.ACCOUNTING_CODE%TYPE   DEFAULT  NULL,
252    P_GROUP_ID             IN   JTF_RS_GROUPS_VL.GROUP_ID%TYPE,
253    P_ATTRIBUTE1           IN   JTF_RS_GROUPS_VL.ATTRIBUTE1%TYPE   DEFAULT  NULL,
254    P_ATTRIBUTE2           IN   JTF_RS_GROUPS_VL.ATTRIBUTE2%TYPE   DEFAULT  NULL,
255    P_ATTRIBUTE3           IN   JTF_RS_GROUPS_VL.ATTRIBUTE3%TYPE   DEFAULT  NULL,
256    P_ATTRIBUTE4           IN   JTF_RS_GROUPS_VL.ATTRIBUTE4%TYPE   DEFAULT  NULL,
257    P_ATTRIBUTE5           IN   JTF_RS_GROUPS_VL.ATTRIBUTE5%TYPE   DEFAULT  NULL,
258    P_ATTRIBUTE6           IN   JTF_RS_GROUPS_VL.ATTRIBUTE6%TYPE   DEFAULT  NULL,
259    P_ATTRIBUTE7           IN   JTF_RS_GROUPS_VL.ATTRIBUTE7%TYPE   DEFAULT  NULL,
260    P_ATTRIBUTE8           IN   JTF_RS_GROUPS_VL.ATTRIBUTE8%TYPE   DEFAULT  NULL,
261    P_ATTRIBUTE9           IN   JTF_RS_GROUPS_VL.ATTRIBUTE9%TYPE   DEFAULT  NULL,
262    P_ATTRIBUTE10          IN   JTF_RS_GROUPS_VL.ATTRIBUTE10%TYPE   DEFAULT  NULL,
263    P_ATTRIBUTE11          IN   JTF_RS_GROUPS_VL.ATTRIBUTE11%TYPE   DEFAULT  NULL,
264    P_ATTRIBUTE12          IN   JTF_RS_GROUPS_VL.ATTRIBUTE12%TYPE   DEFAULT  NULL,
265    P_ATTRIBUTE13          IN   JTF_RS_GROUPS_VL.ATTRIBUTE13%TYPE   DEFAULT  NULL,
266    P_ATTRIBUTE14          IN   JTF_RS_GROUPS_VL.ATTRIBUTE14%TYPE   DEFAULT  NULL,
267    P_ATTRIBUTE15          IN   JTF_RS_GROUPS_VL.ATTRIBUTE15%TYPE   DEFAULT  NULL,
268    P_ATTRIBUTE_CATEGORY   IN   JTF_RS_GROUPS_VL.ATTRIBUTE_CATEGORY%TYPE   DEFAULT  NULL,
269    X_RETURN_STATUS        OUT NOCOPY  VARCHAR2,
270    X_MSG_COUNT            OUT NOCOPY  NUMBER,
271    X_MSG_DATA             OUT NOCOPY  VARCHAR2,
272    X_GROUP_ID             OUT NOCOPY  JTF_RS_GROUPS_VL.GROUP_ID%TYPE,
273    X_GROUP_NUMBER         OUT NOCOPY  JTF_RS_GROUPS_VL.GROUP_NUMBER%TYPE,
274    P_TIME_ZONE            IN   JTF_RS_GROUPS_VL.TIME_ZONE%TYPE DEFAULT NULL
275   ) IS
276 
277     BEGIN
278 
279      JTF_RS_GROUPS_PUB.G_RS_GRP_ID_PUB_FLAG     := 'N';
280      JTF_RS_GROUPS_PUB.G_GROUP_ID          	:= P_GROUP_ID;
281      JTF_RS_GROUPS_PUB.G_ATTRIBUTE1		:= P_ATTRIBUTE1;
282      JTF_RS_GROUPS_PUB.G_ATTRIBUTE2             := P_ATTRIBUTE2;
283      JTF_RS_GROUPS_PUB.G_ATTRIBUTE3             := P_ATTRIBUTE3;
284      JTF_RS_GROUPS_PUB.G_ATTRIBUTE4             := P_ATTRIBUTE4;
285      JTF_RS_GROUPS_PUB.G_ATTRIBUTE5             := P_ATTRIBUTE5;
286      JTF_RS_GROUPS_PUB.G_ATTRIBUTE6             := P_ATTRIBUTE6;
287      JTF_RS_GROUPS_PUB.G_ATTRIBUTE7             := P_ATTRIBUTE7;
288      JTF_RS_GROUPS_PUB.G_ATTRIBUTE8             := P_ATTRIBUTE8;
289      JTF_RS_GROUPS_PUB.G_ATTRIBUTE9             := P_ATTRIBUTE9;
290      JTF_RS_GROUPS_PUB.G_ATTRIBUTE10            := P_ATTRIBUTE10;
291      JTF_RS_GROUPS_PUB.G_ATTRIBUTE11            := P_ATTRIBUTE11;
292      JTF_RS_GROUPS_PUB.G_ATTRIBUTE12            := P_ATTRIBUTE12;
293      JTF_RS_GROUPS_PUB.G_ATTRIBUTE13            := P_ATTRIBUTE13;
294      JTF_RS_GROUPS_PUB.G_ATTRIBUTE14            := P_ATTRIBUTE14;
295      JTF_RS_GROUPS_PUB.G_ATTRIBUTE15            := P_ATTRIBUTE15;
296      JTF_RS_GROUPS_PUB.G_ATTRIBUTE_CATEGORY     := P_ATTRIBUTE_CATEGORY;
297 
298      jtf_rs_groups_pub.create_resource_group (
299       P_API_VERSION          => P_API_VERSION,
300    	P_INIT_MSG_LIST        => P_INIT_MSG_LIST,
301    	P_COMMIT               => P_COMMIT,
302    	P_GROUP_NAME           => P_GROUP_NAME,
303    	P_GROUP_DESC           => P_GROUP_DESC,
304    	P_EXCLUSIVE_FLAG       => P_EXCLUSIVE_FLAG,
305    	P_EMAIL_ADDRESS        => P_EMAIL_ADDRESS,
306    	P_START_DATE_ACTIVE    => P_START_DATE_ACTIVE,
307    	P_END_DATE_ACTIVE      => P_END_DATE_ACTIVE,
308    	P_ACCOUNTING_CODE      => P_ACCOUNTING_CODE,
309    	X_RETURN_STATUS        => X_RETURN_STATUS,
310    	X_MSG_COUNT            => X_MSG_COUNT,
311    	X_MSG_DATA             => X_MSG_DATA,
312    	X_GROUP_ID             => X_GROUP_ID,
313    	X_GROUP_NUMBER         => X_GROUP_NUMBER,
314       P_TIME_ZONE            => P_TIME_ZONE
315      );
316 
317   END create_resource_group_migrate;
318 
319 
320   /* Procedure to update the resource group based on input values
321 	passed by calling routines. */
322 
323   PROCEDURE  update_resource_group
324   (P_API_VERSION          IN   NUMBER,
325    P_INIT_MSG_LIST        IN   VARCHAR2   DEFAULT  FND_API.G_FALSE,
326    P_COMMIT               IN   VARCHAR2   DEFAULT  FND_API.G_FALSE,
327    P_GROUP_ID             IN   JTF_RS_GROUPS_VL.GROUP_ID%TYPE,
328    P_GROUP_NUMBER         IN   JTF_RS_GROUPS_VL.GROUP_NUMBER%TYPE,
329    P_GROUP_NAME           IN   JTF_RS_GROUPS_VL.GROUP_NAME%TYPE   DEFAULT FND_API.G_MISS_CHAR,
330    P_GROUP_DESC           IN   JTF_RS_GROUPS_VL.GROUP_DESC%TYPE   DEFAULT FND_API.G_MISS_CHAR,
331    P_EXCLUSIVE_FLAG       IN   JTF_RS_GROUPS_VL.EXCLUSIVE_FLAG%TYPE   DEFAULT FND_API.G_MISS_CHAR,
332    P_EMAIL_ADDRESS        IN   JTF_RS_GROUPS_VL.EMAIL_ADDRESS%TYPE   DEFAULT  FND_API.G_MISS_CHAR,
333    P_START_DATE_ACTIVE    IN   JTF_RS_GROUPS_VL.START_DATE_ACTIVE%TYPE   DEFAULT FND_API.G_MISS_DATE,
334    P_END_DATE_ACTIVE      IN   JTF_RS_GROUPS_VL.END_DATE_ACTIVE%TYPE   DEFAULT FND_API.G_MISS_DATE,
335    P_ACCOUNTING_CODE      IN   JTF_RS_GROUPS_VL.ACCOUNTING_CODE%TYPE   DEFAULT FND_API.G_MISS_CHAR,
336    P_OBJECT_VERSION_NUM   IN OUT NOCOPY  JTF_RS_GROUPS_VL.OBJECT_VERSION_NUMBER%TYPE,
337    X_RETURN_STATUS        OUT NOCOPY  VARCHAR2,
338    X_MSG_COUNT            OUT NOCOPY  NUMBER,
339    X_MSG_DATA             OUT NOCOPY  VARCHAR2,
340    P_TIME_ZONE            IN   JTF_RS_GROUPS_VL.TIME_ZONE%TYPE DEFAULT FND_API.G_MISS_NUM
341   ) IS
342 
343     l_api_version         CONSTANT NUMBER := 1.0;
344     l_api_name            CONSTANT VARCHAR2(30) := 'UPDATE_RESOURCE_GROUP';
345     l_group_id                     jtf_rs_groups_vl.group_id%TYPE := p_group_id;
346     l_group_number                 jtf_rs_groups_vl.group_number%TYPE := p_group_number;
347     l_group_name                   jtf_rs_groups_vl.group_name%TYPE := p_group_name;
348     l_group_desc                   jtf_rs_groups_vl.group_desc%TYPE := p_group_desc;
349     l_exclusive_flag               jtf_rs_groups_vl.exclusive_flag%TYPE := p_exclusive_flag;
350     l_email_address                jtf_rs_groups_vl.email_address%TYPE := p_email_address;
351     l_start_date_active            jtf_rs_groups_vl.start_date_active%TYPE := p_start_date_active;
352     l_end_date_active              jtf_rs_groups_vl.end_date_active%TYPE := p_end_date_active;
353     l_accounting_code              jtf_rs_groups_vl.accounting_code%TYPE := p_accounting_code;
354     l_object_version_num           jtf_rs_groups_vl.object_version_number%TYPE := p_object_version_num;
355     l_time_zone                    jtf_rs_groups_vl.time_zone%TYPE := p_time_zone;
356 
357     l_group_id_out                     jtf_rs_groups_vl.group_id%TYPE;
358 
359   BEGIN
360 
361 
362     SAVEPOINT update_resource_group_pub;
363 
364     x_return_status := fnd_api.g_ret_sts_success;
365 
366 --    DBMS_OUTPUT.put_line(' Started Update Resource Group Pub ');
367 
368 
369     IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
370 
371       RAISE fnd_api.g_exc_unexpected_error;
372 
373     END IF;
374 
375 
376     IF fnd_api.to_boolean(p_init_msg_list) THEN
377 
378       fnd_msg_pub.initialize;
379 
380     END IF;
381 
382 
383     /* Validate the Resource Group. */
384 
385     jtf_resource_utl.validate_resource_group(
386       p_group_id => l_group_id,
387       p_group_number => l_group_number,
388       x_return_status => x_return_status,
389       x_group_id => l_group_id_out
390     );
391 -- added for NOCOPY
392     l_group_id :=  l_group_id_out;
393 
394 
395     IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN
396       IF X_RETURN_STATUS = FND_API.G_RET_STS_ERROR THEN
397 	   RAISE FND_API.G_EXC_ERROR;
398       ELSIF X_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
399 	   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400       END IF;
401     END IF;
402 
403 --  Bug#8708207
404 --  Assigning 'N' to exclusive_flag when parameter is NULL
405 --  Its not fix for this bug but adding this to handle NULL value as in create_group.
406      l_exclusive_flag :=  NVL(l_exclusive_flag,'N');
407 
408     /* Call the private procedure with the validated parameters. */
409 
410     jtf_rs_groups_pvt.update_resource_group
411     (P_API_VERSION => 1,
412      P_INIT_MSG_LIST => fnd_api.g_false,
413      P_COMMIT => fnd_api.g_false,
414      P_GROUP_ID => l_group_id,
415      P_GROUP_NAME => l_group_name,
416      P_GROUP_DESC => l_group_desc,
417      P_EXCLUSIVE_FLAG => l_exclusive_flag,
418      P_EMAIL_ADDRESS => l_email_address,
419      P_START_DATE_ACTIVE => l_start_date_active,
420      P_END_DATE_ACTIVE => l_end_date_active,
421      P_ACCOUNTING_CODE => l_accounting_code,
422      P_OBJECT_VERSION_NUM => l_object_version_num,
423      X_RETURN_STATUS => x_return_status,
424      X_MSG_COUNT => x_msg_count,
425      X_MSG_DATA => x_msg_data,
426      P_TIME_ZONE => l_time_zone
427     );
428 
429 
430     IF NOT (x_return_status = fnd_api.g_ret_sts_success) THEN
431       IF X_RETURN_STATUS = FND_API.G_RET_STS_ERROR THEN
432 	 RAISE FND_API.G_EXC_ERROR;
433       ELSIF X_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
434 	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
435       END IF;
436     END IF;
437 
438     /* Return the new value of the object version number */
439 
440     p_object_version_num := l_object_version_num;
441 
442     IF fnd_api.to_boolean(p_commit) THEN
443 
444 	 COMMIT WORK;
445 
446     END IF;
447 
448     fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
449 
450 
451   EXCEPTION
452 
453     WHEN fnd_api.g_exc_error THEN
454       ROLLBACK TO update_resource_group_pub;
455       x_return_status := fnd_api.g_ret_sts_error;
456       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
457                                  p_data => x_msg_data);
458     WHEN fnd_api.g_exc_unexpected_error THEN
459       ROLLBACK TO update_resource_group_pub;
460       x_return_status := fnd_api.g_ret_sts_unexp_error;
461       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
462                                  p_data => x_msg_data);
463     WHEN OTHERS THEN
464       ROLLBACK TO update_resource_group_pub;
465       fnd_message.set_name ('JTF', 'JTF_RS_UNEXP_ERROR');
466       fnd_message.set_token('P_SQLCODE',SQLCODE);
467       fnd_message.set_token('P_SQLERRM',SQLERRM);
468       fnd_message.set_token('P_API_NAME', l_api_name);
469       FND_MSG_PUB.add;
470       x_return_status := fnd_api.g_ret_sts_unexp_error;
471       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
472                                  p_data => x_msg_data);
473 
474   END update_resource_group;
475 
476 
477 END jtf_rs_groups_pub;