DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_CAMP_SCHEDULE_PUB

Source


1 PACKAGE BODY AMS_Camp_Schedule_PUB as
2 /* $Header: amspschb.pls 120.4 2006/05/31 11:48:22 srivikri ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          AMS_Camp_Schedule_PUB
7 -- Purpose
8 --
9 -- History
10 --  18-May-2001  soagrawa   Modified schedule_rec_type according to
11 --                          the latest amsvschs.pls
12 --  22-May-2001  soagrawa   Added parameter p_validation_level to
13 --                          the create, update, delete and validate apis
14 --  19-jul-2001  ptendulk   Added columns for eBlast
15 --  21-Aug-2001  ptendulk   Changed the ok_to_execute call ,
16 --                          replaced the PRE with B and POST with A.
17 --  19-sep-2001  soagrawa   added copy api
18 --  24-sep-2001  soagrawa   Removed security group id from everywhere
19 --  27-jun-2003   anchaudh   Added 4 new fields(columns) in the  schedule_rec_type
20 --  25-aug-2003   dbiswas   Added 1 new field(sales_methodology_id) in the  schedule_rec_type
21 --  29-May-2006   srivikri  added column delivery_mode
22 
23 -- NOTE
24 --
25 -- End of Comments
26 -- ===============================================================
27 
28 
29 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Camp_Schedule_PUB';
30 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amspschb.pls';
31 
32 
33 PROCEDURE Convert_PubRec_To_PvtRec(
34    p_schedule_rec_pub      IN   schedule_rec_type,
35    x_schedule_rec_pvt      OUT NOCOPY  AMS_Camp_Schedule_PVT.schedule_rec_type
36 
37 )
38 
39 IS
40    l_schedule_rec_pub      schedule_rec_type := p_schedule_rec_pub;
41 
42 BEGIN
43 
44        x_schedule_rec_pvt.schedule_id                    :=  l_schedule_rec_pub.schedule_id ;
45        x_schedule_rec_pvt.last_update_date               :=  l_schedule_rec_pub.last_update_date;
46        x_schedule_rec_pvt.last_updated_by                :=  l_schedule_rec_pub.last_updated_by ;
47        x_schedule_rec_pvt.creation_date                  :=  l_schedule_rec_pub.creation_date;
48        x_schedule_rec_pvt.created_by                     :=  l_schedule_rec_pub.created_by;
49        x_schedule_rec_pvt.last_update_login              :=  l_schedule_rec_pub.last_update_login;
50        x_schedule_rec_pvt.object_version_number          :=  l_schedule_rec_pub.object_version_number;
51        x_schedule_rec_pvt.campaign_id                    :=  l_schedule_rec_pub.campaign_id;
52        x_schedule_rec_pvt.user_status_id                 :=  l_schedule_rec_pub.user_status_id;
53        x_schedule_rec_pvt.status_code                    :=  l_schedule_rec_pub.status_code;
54        x_schedule_rec_pvt.status_date                    :=  l_schedule_rec_pub.status_date;
55        x_schedule_rec_pvt.source_code                    :=  l_schedule_rec_pub.source_code;
56        x_schedule_rec_pvt.use_parent_code_flag           :=  l_schedule_rec_pub.use_parent_code_flag;
57        x_schedule_rec_pvt.start_date_time                :=  l_schedule_rec_pub.start_date_time;
58        x_schedule_rec_pvt.end_date_time                  :=  l_schedule_rec_pub.end_date_time;
59        x_schedule_rec_pvt.timezone_id                    :=  l_schedule_rec_pub.timezone_id;
60        x_schedule_rec_pvt.activity_type_code             :=  l_schedule_rec_pub.activity_type_code;
61        x_schedule_rec_pvt.activity_id                    :=  l_schedule_rec_pub.activity_id;
62        x_schedule_rec_pvt.arc_marketing_medium_from      :=  l_schedule_rec_pub.arc_marketing_medium_from;
63        x_schedule_rec_pvt.marketing_medium_id            :=  l_schedule_rec_pub.marketing_medium_id;
64        x_schedule_rec_pvt.custom_setup_id                :=  l_schedule_rec_pub.custom_setup_id;
65        x_schedule_rec_pvt.triggerable_flag               :=  l_schedule_rec_pub.triggerable_flag;
66        x_schedule_rec_pvt.trigger_id                     :=  l_schedule_rec_pub.trigger_id;
67        x_schedule_rec_pvt.notify_user_id                 :=  l_schedule_rec_pub.notify_user_id;
68        x_schedule_rec_pvt.approver_user_id               :=  l_schedule_rec_pub.approver_user_id;
69        x_schedule_rec_pvt.owner_user_id                  :=  l_schedule_rec_pub.owner_user_id;
70        x_schedule_rec_pvt.active_flag                    :=  l_schedule_rec_pub.active_flag;
71        x_schedule_rec_pvt.cover_letter_id                :=  l_schedule_rec_pub.cover_letter_id;
72        x_schedule_rec_pvt.reply_to_mail                  :=  l_schedule_rec_pub.reply_to_mail;
73        x_schedule_rec_pvt.mail_sender_name               :=  l_schedule_rec_pub.mail_sender_name;
74        x_schedule_rec_pvt.mail_subject                   :=  l_schedule_rec_pub.mail_subject;
75        x_schedule_rec_pvt.from_fax_no                    :=  l_schedule_rec_pub.from_fax_no;
76        x_schedule_rec_pvt.accounts_closed_flag           :=  l_schedule_rec_pub.accounts_closed_flag;
77        x_schedule_rec_pvt.org_id                         :=  l_schedule_rec_pub.org_id;
78        x_schedule_rec_pvt.objective_code                 :=  l_schedule_rec_pub.objective_code;
79        x_schedule_rec_pvt.country_id                     :=  l_schedule_rec_pub.country_id;
80        x_schedule_rec_pvt.campaign_calendar              :=  l_schedule_rec_pub.campaign_calendar;
81        x_schedule_rec_pvt.start_period_name              :=  l_schedule_rec_pub.start_period_name;
82        x_schedule_rec_pvt.end_period_name                :=  l_schedule_rec_pub.end_period_name;
83        x_schedule_rec_pvt.priority                       :=  l_schedule_rec_pub.priority;
84        x_schedule_rec_pvt.workflow_item_key              :=  l_schedule_rec_pub.workflow_item_key;
85        x_schedule_rec_pvt.transaction_currency_code      :=  l_schedule_rec_pub.transaction_currency_code;
86        x_schedule_rec_pvt.functional_currency_code       :=  l_schedule_rec_pub.functional_currency_code;
87        x_schedule_rec_pvt.budget_amount_tc               :=  l_schedule_rec_pub.budget_amount_tc;
88        x_schedule_rec_pvt.budget_amount_fc               :=  l_schedule_rec_pub.budget_amount_fc;
89        x_schedule_rec_pvt.language_code                  :=  l_schedule_rec_pub.language_code;
90        x_schedule_rec_pvt.task_id                        :=  l_schedule_rec_pub.task_id;
91        x_schedule_rec_pvt.related_event_from             :=  l_schedule_rec_pub.related_event_from;
92        x_schedule_rec_pvt.related_event_id               :=  l_schedule_rec_pub.related_event_id;
93        x_schedule_rec_pvt.attribute_category             :=  l_schedule_rec_pub.attribute_category;
94        x_schedule_rec_pvt.attribute1                     :=  l_schedule_rec_pub.attribute1;
95        x_schedule_rec_pvt.attribute2                     :=  l_schedule_rec_pub.attribute2;
96        x_schedule_rec_pvt.attribute3                     :=  l_schedule_rec_pub.attribute3;
97        x_schedule_rec_pvt.attribute4                     :=  l_schedule_rec_pub.attribute4;
98        x_schedule_rec_pvt.attribute5                     :=  l_schedule_rec_pub.attribute5;
99        x_schedule_rec_pvt.attribute6                     :=  l_schedule_rec_pub.attribute6;
100        x_schedule_rec_pvt.attribute7                     :=  l_schedule_rec_pub.attribute7;
101        x_schedule_rec_pvt.attribute8                     :=  l_schedule_rec_pub.attribute8;
102        x_schedule_rec_pvt.attribute9                     :=  l_schedule_rec_pub.attribute9;
103        x_schedule_rec_pvt.attribute10                    :=  l_schedule_rec_pub.attribute10;
104        x_schedule_rec_pvt.attribute11                    :=  l_schedule_rec_pub.attribute11;
105        x_schedule_rec_pvt.attribute12                    :=  l_schedule_rec_pub.attribute12;
106        x_schedule_rec_pvt.attribute13                    :=  l_schedule_rec_pub.attribute13;
107        x_schedule_rec_pvt.attribute14                    :=  l_schedule_rec_pub.attribute14;
108        x_schedule_rec_pvt.attribute15                    :=  l_schedule_rec_pub.attribute15;
109        x_schedule_rec_pvt.activity_attribute_category    :=  l_schedule_rec_pub.activity_attribute_category;
110        x_schedule_rec_pvt.activity_attribute1            :=  l_schedule_rec_pub.activity_attribute1;
111        x_schedule_rec_pvt.activity_attribute2            :=  l_schedule_rec_pub.activity_attribute2;
112        x_schedule_rec_pvt.activity_attribute3            :=  l_schedule_rec_pub.activity_attribute3;
113        x_schedule_rec_pvt.activity_attribute4            :=  l_schedule_rec_pub.activity_attribute4;
114        x_schedule_rec_pvt.activity_attribute5            :=  l_schedule_rec_pub.activity_attribute5;
115        x_schedule_rec_pvt.activity_attribute6            :=  l_schedule_rec_pub.activity_attribute6;
116        x_schedule_rec_pvt.activity_attribute7            :=  l_schedule_rec_pub.activity_attribute7;
117        x_schedule_rec_pvt.activity_attribute8            :=  l_schedule_rec_pub.activity_attribute8;
118        x_schedule_rec_pvt.activity_attribute9            :=  l_schedule_rec_pub.activity_attribute9;
119        x_schedule_rec_pvt.activity_attribute10           :=  l_schedule_rec_pub.activity_attribute10;
120        x_schedule_rec_pvt.activity_attribute11           :=  l_schedule_rec_pub.activity_attribute11;
121        x_schedule_rec_pvt.activity_attribute12           :=  l_schedule_rec_pub.activity_attribute12;
122        x_schedule_rec_pvt.activity_attribute13           :=  l_schedule_rec_pub.activity_attribute13;
123        x_schedule_rec_pvt.activity_attribute14           :=  l_schedule_rec_pub.activity_attribute14;
124        x_schedule_rec_pvt.activity_attribute15           :=  l_schedule_rec_pub.activity_attribute15;
125        -- removed by soagrawa on 24-sep-2001
126        -- x_schedule_rec_pvt.security_group_id              :=  l_schedule_rec_pub.security_group_id;
127        x_schedule_rec_pvt.schedule_name                  :=  l_schedule_rec_pub.schedule_name;
128        x_schedule_rec_pvt.description                    :=  l_schedule_rec_pub.description;
129        x_schedule_rec_pvt.related_source_code            :=  l_schedule_rec_pub.related_source_code;
130        x_schedule_rec_pvt.related_source_object          :=  l_schedule_rec_pub.related_source_object;
131        x_schedule_rec_pvt.related_source_id              :=  l_schedule_rec_pub.related_source_id;
132        x_schedule_rec_pvt.query_id                       :=  l_schedule_rec_pub.query_id;
133        x_schedule_rec_pvt.include_content_flag           :=  l_schedule_rec_pub.include_content_flag;
134        x_schedule_rec_pvt.content_type                   :=  l_schedule_rec_pub.content_type;
135        x_schedule_rec_pvt.test_email_address             :=  l_schedule_rec_pub.test_email_address;
136        x_schedule_rec_pvt.greeting_text                  :=  l_schedule_rec_pub.greeting_text;
137        x_schedule_rec_pvt.footer_text                    :=  l_schedule_rec_pub.footer_text;
138 -- following are added by anchaudh on 27-jun-2003
139        x_schedule_rec_pvt.trig_repeat_flag                 :=  l_schedule_rec_pub.trig_repeat_flag;
140        x_schedule_rec_pvt.tgrp_exclude_prev_flag     :=  l_schedule_rec_pub.tgrp_exclude_prev_flag;
141        x_schedule_rec_pvt.orig_csch_id                 :=  l_schedule_rec_pub.orig_csch_id;
142        x_schedule_rec_pvt.cover_letter_version             :=  l_schedule_rec_pub.cover_letter_version;
143 -- following are added by dbiswas on 12-aug-2003
144        x_schedule_rec_pvt.usage                 :=  l_schedule_rec_pub.usage;
145        x_schedule_rec_pvt.purpose               :=  l_schedule_rec_pub.purpose;
146        x_schedule_rec_pvt.last_activation_date  :=  l_schedule_rec_pub.last_activation_date;
147        x_schedule_rec_pvt.sales_methodology_id  :=  l_schedule_rec_pub.sales_methodology_id;
148        x_schedule_rec_pvt.printer_address       :=  l_schedule_rec_pub.printer_address;
149        x_schedule_rec_pvt.notify_on_activation_flag :=  l_schedule_rec_pub.notify_on_activation_flag;
150        x_schedule_rec_pvt.sender_display_name :=  l_schedule_rec_pub.sender_display_name;--anchaudh
151        x_schedule_rec_pvt.asn_group_id :=  l_schedule_rec_pub.asn_group_id;--anchaudh for leads bug
152        x_schedule_rec_pvt.delivery_mode :=  l_schedule_rec_pub.delivery_mode;
153 
154 END;
155 
156 
157 
158 PROCEDURE Create_Camp_Schedule(
159     p_api_version_number         IN   NUMBER,
160     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
161     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
162     p_validation_level           IN  NUMBER    := FND_API.g_valid_level_full,
163     x_return_status              OUT NOCOPY  VARCHAR2,
164     x_msg_count                  OUT NOCOPY  NUMBER,
165     x_msg_data                   OUT NOCOPY  VARCHAR2,
166 
167     p_schedule_rec               IN   schedule_rec_type  := g_miss_schedule_rec,
168     x_schedule_id                   OUT NOCOPY  NUMBER
169      )
170 
171  IS
172 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Camp_Schedule';
173 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
174 l_return_status  VARCHAR2(1);
175 l_pvt_schedule_rec    AMS_Camp_Schedule_PVT.schedule_rec_type ;
176 l_pub_schedule_rec    schedule_rec_type := p_schedule_rec;
177  BEGIN
178       -- Standard Start of API savepoint
179       SAVEPOINT CREATE_Camp_Schedule_PUB;
180 
181       -- Initialize message list if p_init_msg_list is set to TRUE.
182       IF FND_API.to_Boolean( p_init_msg_list )
183       THEN
184          FND_MSG_PUB.initialize;
185       END IF;
186 
187       -- Debug Message
188       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
189 
190 
191       -- Initialize API return status to SUCCESS
192       x_return_status := FND_API.G_RET_STS_SUCCESS;
193 
194       -- convert public parameter to private-type
195       Convert_PubRec_To_PvtRec(l_pub_schedule_rec,l_pvt_schedule_rec);
196 
197       -- customer pre-processing
198       IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
199          THEN
200             AMS_Camp_Schedule_CUHK.create_schedule_pre(
201             l_pub_schedule_rec,
202             l_return_status
203            );
204 
205          IF l_return_status = FND_API.g_ret_sts_error THEN
206             RAISE FND_API.g_exc_error;
207          ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
208             RAISE FND_API.g_exc_unexpected_error;
209          END IF;
210       END IF;
211 
212    -- vertical industry pre-processing
213    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
214    THEN
215       AMS_Camp_Schedule_VUHK.create_schedule_pre(
216          l_pub_schedule_rec,
217          l_return_status
218       );
219 
220       IF l_return_status = FND_API.g_ret_sts_error THEN
221          RAISE FND_API.g_exc_error;
222       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
223          RAISE FND_API.g_exc_unexpected_error;
224       END IF;
225    END IF;
226 
227    -- call business API
228 
229     -- Calling Private package: Create_Camp_Schedule
230     -- Hint: Primary key needs to be returned
231      AMS_Camp_Schedule_PVT.Create_Camp_Schedule(
232      p_api_version_number         => 1.0,
233      p_init_msg_list              => p_init_msg_list,
234      p_commit                     => p_commit,
235      p_validation_level           => p_validation_level,
236      x_return_status              => x_return_status,
237      x_msg_count                  => x_msg_count,
238      x_msg_data                   => x_msg_data,
239      p_schedule_rec               => l_pvt_schedule_rec,
240      x_schedule_id                => x_schedule_id);
241 
242 
243       -- Check return status from the above procedure call
244       IF x_return_status = FND_API.G_RET_STS_ERROR then
245           RAISE FND_API.G_EXC_ERROR;
246       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
247           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
248       END IF;
249       --
250       -- End of API body.
251       --
252 
253  -- customer post-processing
254    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
255    THEN
256       AMS_Camp_Schedule_CUHK.create_schedule_post(
257          l_pub_schedule_rec,
258          x_schedule_id,
259          l_return_status
260       );
261 
262       IF l_return_status = FND_API.g_ret_sts_error THEN
263          RAISE FND_API.g_exc_error;
264       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
265          RAISE FND_API.g_exc_unexpected_error;
266       END IF;
267    END IF;
268 
269    -- vertical industry post-processing
270    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
271    THEN
272       AMS_Camp_Schedule_VUHK.create_schedule_post(
273          l_pub_schedule_rec,
274          x_schedule_id,
278       IF l_return_status = FND_API.g_ret_sts_error THEN
275          l_return_status
276       );
277 
279          RAISE FND_API.g_exc_error;
280       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
281          RAISE FND_API.g_exc_unexpected_error;
282       END IF;
283    END IF;
284 
285 
286       -- Standard check for p_commit
287       IF FND_API.to_Boolean( p_commit )
288       THEN
289          COMMIT WORK;
290       END IF;
291 
292 
293       -- Debug Message
294       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
295 
296       -- Standard call to get message count and if count is 1, get message info.
297       FND_MSG_PUB.Count_And_Get
298         (p_count          =>   x_msg_count,
299          p_data           =>   x_msg_data
300       );
301 EXCEPTION
302 
303    WHEN AMS_Utility_PVT.resource_locked THEN
304      x_return_status := FND_API.g_ret_sts_error;
305      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
306         FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
307         FND_MSG_PUB.add;
308      END IF;
309 
310    WHEN FND_API.G_EXC_ERROR THEN
311      ROLLBACK TO CREATE_Camp_Schedule_PUB;
312      x_return_status := FND_API.G_RET_STS_ERROR;
313      -- Standard call to get message count and if count=1, get the message
314      FND_MSG_PUB.Count_And_Get (
315             p_encoded => FND_API.G_FALSE,
316             p_count   => x_msg_count,
317             p_data    => x_msg_data
318      );
319 
320    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
321      ROLLBACK TO CREATE_Camp_Schedule_PUB;
322      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
323      -- Standard call to get message count and if count=1, get the message
324      FND_MSG_PUB.Count_And_Get (
325             p_encoded => FND_API.G_FALSE,
326             p_count => x_msg_count,
327             p_data  => x_msg_data
328      );
329 
330    WHEN OTHERS THEN
331      ROLLBACK TO CREATE_Camp_Schedule_PUB;
332      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
333      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
334      THEN
335         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
336      END IF;
337      -- Standard call to get message count and if count=1, get the message
338      FND_MSG_PUB.Count_And_Get (
339             p_encoded => FND_API.G_FALSE,
340             p_count => x_msg_count,
341             p_data  => x_msg_data
342      );
343 End Create_Camp_Schedule;
344 
345 
346 PROCEDURE Update_Camp_Schedule(
347     p_api_version_number         IN   NUMBER,
348     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
349     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
350     p_validation_level           IN  NUMBER    := FND_API.g_valid_level_full,
351     x_return_status              OUT NOCOPY  VARCHAR2,
352     x_msg_count                  OUT NOCOPY  NUMBER,
353     x_msg_data                   OUT NOCOPY  VARCHAR2,
354 
355     p_schedule_rec               IN    schedule_rec_type,
356     x_object_version_number      OUT NOCOPY  NUMBER
357     )
358 
359  IS
360 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Camp_Schedule';
361 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
362 l_object_version_number  NUMBER;
363 l_return_status  VARCHAR2(1);
364 l_pvt_schedule_rec  AMS_Camp_Schedule_PVT.schedule_rec_type;
365 l_pub_schedule_rec    schedule_rec_type := p_schedule_rec;
366  BEGIN
367       -- Standard Start of API savepoint
368       SAVEPOINT UPDATE_Camp_Schedule_PUB;
369 
370 
371       -- Initialize message list if p_init_msg_list is set to TRUE.
372       IF FND_API.to_Boolean( p_init_msg_list )
373       THEN
374          FND_MSG_PUB.initialize;
375       END IF;
376 
377       -- Debug Message
378       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
379 
380 
381       -- Initialize API return status to SUCCESS
382       x_return_status := FND_API.G_RET_STS_SUCCESS;
383 
384       -- convert public parameter to private-type
385       Convert_PubRec_To_PvtRec(l_pub_schedule_rec,l_pvt_schedule_rec);
386 
387     -- customer pre-processing
388    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
389    THEN
390       AMS_Camp_Schedule_CUHK.update_schedule_pre(
391          l_pub_schedule_rec,
392          l_return_status
393       );
394 
395       IF l_return_status = FND_API.g_ret_sts_error THEN
396          RAISE FND_API.g_exc_error;
397       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
398          RAISE FND_API.g_exc_unexpected_error;
399       END IF;
400    END IF;
401 
402    -- vertical industry pre-processing
403    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
404    THEN
405       AMS_Camp_Schedule_VUHK.update_schedule_pre(
406          l_pub_schedule_rec,
407          l_return_status
408       );
409 
410       IF l_return_status = FND_API.g_ret_sts_error THEN
411          RAISE FND_API.g_exc_error;
412       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
413          RAISE FND_API.g_exc_unexpected_error;
414       END IF;
418    -- call business API
415    END IF;
416 
417 
419     AMS_Camp_Schedule_PVT.Update_Camp_Schedule(
420     p_api_version_number         => 1.0,
421     p_init_msg_list              => p_init_msg_list,
422     p_commit                     => p_commit,
423     p_validation_level           => p_validation_level,
424     x_return_status              => x_return_status,
425     x_msg_count                  => x_msg_count,
426     x_msg_data                   => x_msg_data,
427     p_schedule_rec               => l_pvt_schedule_rec,
428     x_object_version_number      => l_object_version_number );
429 
430 
431       -- Check return status from the above procedure call
432       IF x_return_status = FND_API.G_RET_STS_ERROR then
433           RAISE FND_API.G_EXC_ERROR;
434       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
435           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
436       END IF;
437       --
438       -- End of API body
439       --
440 
441    -- vertical industry post-processing
442    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
443    THEN
444       AMS_Camp_Schedule_VUHK.update_schedule_post(
445          l_pub_schedule_rec,
446          l_return_status
447       );
448 
449       IF l_return_status = FND_API.g_ret_sts_error THEN
450          RAISE FND_API.g_exc_error;
451       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
452          RAISE FND_API.g_exc_unexpected_error;
453       END IF;
454    END IF;
455 
456    -- customer post-processing
457    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
458    THEN
459       AMS_Camp_Schedule_CUHK.update_schedule_post(
460          l_pub_schedule_rec,
461          l_return_status
462       );
463 
464       IF l_return_status = FND_API.g_ret_sts_error THEN
465          RAISE FND_API.g_exc_error;
466       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
467          RAISE FND_API.g_exc_unexpected_error;
468       END IF;
469    END IF;
470 
471       -- Standard check for p_commit
472       IF FND_API.to_Boolean( p_commit )
473       THEN
474          COMMIT WORK;
475       END IF;
476 
477 
478       -- Debug Message
479       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
480 
481       -- Standard call to get message count and if count is 1, get message info.
482       FND_MSG_PUB.Count_And_Get
483         (p_count          =>   x_msg_count,
484          p_data           =>   x_msg_data
485       );
486 EXCEPTION
487 
488    WHEN AMS_Utility_PVT.resource_locked THEN
489      x_return_status := FND_API.g_ret_sts_error;
490      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
491         FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
492         FND_MSG_PUB.add;
493      END IF;
494 
495    WHEN FND_API.G_EXC_ERROR THEN
496      ROLLBACK TO UPDATE_Camp_Schedule_PUB;
497      x_return_status := FND_API.G_RET_STS_ERROR;
498      -- Standard call to get message count and if count=1, get the message
499      FND_MSG_PUB.Count_And_Get (
500             p_encoded => FND_API.G_FALSE,
501             p_count   => x_msg_count,
502             p_data    => x_msg_data
503      );
504 
505    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
506      ROLLBACK TO UPDATE_Camp_Schedule_PUB;
507      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
508      -- Standard call to get message count and if count=1, get the message
509      FND_MSG_PUB.Count_And_Get (
510             p_encoded => FND_API.G_FALSE,
511             p_count => x_msg_count,
512             p_data  => x_msg_data
513      );
514 
515    WHEN OTHERS THEN
516      ROLLBACK TO UPDATE_Camp_Schedule_PUB;
517      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
518      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
519      THEN
520         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
521      END IF;
522      -- Standard call to get message count and if count=1, get the message
523      FND_MSG_PUB.Count_And_Get (
524             p_encoded => FND_API.G_FALSE,
525             p_count => x_msg_count,
526             p_data  => x_msg_data
527      );
528 End Update_Camp_Schedule;
529 
530 
531 PROCEDURE Delete_Camp_Schedule(
532     p_api_version_number         IN   NUMBER,
533     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
534     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
535     p_validation_level           IN  NUMBER    := FND_API.g_valid_level_full,
536     x_return_status              OUT NOCOPY  VARCHAR2,
537     x_msg_count                  OUT NOCOPY  NUMBER,
538     x_msg_data                   OUT NOCOPY  VARCHAR2,
539     p_schedule_id                   IN  NUMBER,
540     p_object_version_number      IN   NUMBER
541     )
542 
543  IS
544 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Camp_Schedule';
545 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
546 l_SCHEDULE_ID  NUMBER := p_SCHEDULE_ID;
547 l_object_version  NUMBER := p_object_version_number;
548 l_return_status  VARCHAR2(1);
549 
550 l_pvt_schedule_rec  AMS_Camp_Schedule_PVT.schedule_rec_type;
551  BEGIN
555       -- Initialize message list if p_init_msg_list is set to TRUE.
552       -- Standard Start of API savepoint
553       SAVEPOINT DELETE_Camp_Schedule_PUB;
554 
556       IF FND_API.to_Boolean( p_init_msg_list )
557       THEN
558          FND_MSG_PUB.initialize;
559       END IF;
560 
561       -- Debug Message
562       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
563 
564 
565       -- Initialize API return status to SUCCESS
566       x_return_status := FND_API.G_RET_STS_SUCCESS;
567 
568    -- customer pre-processing
569    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
570    THEN
571       AMS_Camp_Schedule_CUHK.delete_schedule_pre(
572          l_SCHEDULE_ID,
573          l_object_version,
574          l_return_status
575       );
576 
577       IF l_return_status = FND_API.g_ret_sts_error THEN
578          RAISE FND_API.g_exc_error;
579       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
580          RAISE FND_API.g_exc_unexpected_error;
581       END IF;
582    END IF;
583 
584    -- vertical industry pre-processing
585    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
586    THEN
587       AMS_Camp_Schedule_VUHK.delete_schedule_pre(
588          l_SCHEDULE_ID,
589          l_object_version,
590          l_return_status
591       );
592 
593       IF l_return_status = FND_API.g_ret_sts_error THEN
594          RAISE FND_API.g_exc_error;
595       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
596          RAISE FND_API.g_exc_unexpected_error;
597       END IF;
598    END IF;
599 
600    -- call business API
601     AMS_Camp_Schedule_PVT.Delete_Camp_Schedule(
602     p_api_version_number         => 1.0,
603     p_init_msg_list              => p_init_msg_list,
604     p_commit                     => p_commit,
605     p_validation_level           => p_validation_level,
606     x_return_status              => x_return_status,
607     x_msg_count                  => x_msg_count,
608     x_msg_data                   => x_msg_data,
609     p_schedule_id                => l_schedule_id,
610     p_object_version_number      => l_object_version );
611 
612 
613       -- Check return status from the above procedure call
614       IF x_return_status = FND_API.G_RET_STS_ERROR then
615           RAISE FND_API.G_EXC_ERROR;
616       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
617           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
618       END IF;
619 
620    -- vertical industry post-processing
621    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
622    THEN
623       AMS_Camp_Schedule_VUHK.delete_schedule_post(
624          l_SCHEDULE_ID,
625          l_object_version,
626          l_return_status
627       );
628 
629       IF l_return_status = FND_API.g_ret_sts_error THEN
630          RAISE FND_API.g_exc_error;
631       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
632          RAISE FND_API.g_exc_unexpected_error;
633       END IF;
634    END IF;
635 
636    -- customer post-processing
637    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
638    THEN
639       AMS_Camp_Schedule_CUHK.delete_schedule_post(
640          l_SCHEDULE_ID,
641          l_object_version,
642          l_return_status
643       );
644 
645       IF l_return_status = FND_API.g_ret_sts_error THEN
646          RAISE FND_API.g_exc_error;
647       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
648          RAISE FND_API.g_exc_unexpected_error;
649       END IF;
650    END IF;
651 
652 
653 
654       -- Standard check for p_commit
655       IF FND_API.to_Boolean( p_commit )
656       THEN
657          COMMIT WORK;
658       END IF;
659 
660 
661       -- Debug Message
662       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
663 
664       -- Standard call to get message count and if count is 1, get message info.
665       FND_MSG_PUB.Count_And_Get
666         (p_count          =>   x_msg_count,
667          p_data           =>   x_msg_data
668       );
669 EXCEPTION
670 
671    WHEN AMS_Utility_PVT.resource_locked THEN
672      x_return_status := FND_API.g_ret_sts_error;
673      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
674         FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
675         FND_MSG_PUB.add;
676      END IF;
677 
678    WHEN FND_API.G_EXC_ERROR THEN
679      ROLLBACK TO DELETE_Camp_Schedule_PUB;
680      x_return_status := FND_API.G_RET_STS_ERROR;
681      -- Standard call to get message count and if count=1, get the message
682      FND_MSG_PUB.Count_And_Get (
683             p_encoded => FND_API.G_FALSE,
684             p_count   => x_msg_count,
685             p_data    => x_msg_data
686      );
687 
688    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
689      ROLLBACK TO DELETE_Camp_Schedule_PUB;
690      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
691      -- Standard call to get message count and if count=1, get the message
692      FND_MSG_PUB.Count_And_Get (
693             p_encoded => FND_API.G_FALSE,
694             p_count => x_msg_count,
698    WHEN OTHERS THEN
695             p_data  => x_msg_data
696      );
697 
699      ROLLBACK TO DELETE_Camp_Schedule_PUB;
700      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
701      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
702      THEN
703         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
704      END IF;
705      -- Standard call to get message count and if count=1, get the message
706      FND_MSG_PUB.Count_And_Get (
707             p_encoded => FND_API.G_FALSE,
708             p_count => x_msg_count,
709             p_data  => x_msg_data
710      );
711 End Delete_Camp_Schedule;
712 
713 
714 
715 
716 PROCEDURE Validate_Camp_Schedule(
717    p_api_version       IN  NUMBER,
718    p_init_msg_list     IN  VARCHAR2  := FND_API.g_false,
719    p_validation_level  IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
720    x_return_status     OUT NOCOPY VARCHAR2,
721 
722    x_msg_count         OUT NOCOPY NUMBER,
723    x_msg_data          OUT NOCOPY VARCHAR2,
724    p_validation_mode   IN   VARCHAR2,
725    p_schedule_rec      IN  schedule_rec_type
726 )
727 
728 
729 IS
730 
731    l_api_name       CONSTANT VARCHAR2(30) := 'Validate_Camp_Schedule';
732    l_return_status  VARCHAR2(1);
733    l_pvt_schedule_rec  AMS_Camp_Schedule_PVT.schedule_rec_type;
734    l_pub_schedule_rec    schedule_rec_type := p_schedule_rec;
735 
736 BEGIN
737 
738    SAVEPOINT validate_camp_schedule_pub;
739 
740    -- initialize the message list;
741    -- won't do it again when calling private API
742    IF FND_API.to_boolean(p_init_msg_list) THEN
743       FND_MSG_PUB.initialize;
744    END IF;
745 
746    Convert_PubRec_To_PvtRec(l_pub_schedule_rec,l_pvt_schedule_rec);
747 
748      -- customer pre-processing
749    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
750    THEN
751       AMS_Camp_Schedule_CUHK.validate_schedule_pre(
752          l_pub_schedule_rec,
753          l_return_status
754       );
755 
756       IF l_return_status = FND_API.g_ret_sts_error THEN
757          RAISE FND_API.g_exc_error;
758       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
759          RAISE FND_API.g_exc_unexpected_error;
760       END IF;
761    END IF;
762 
763    -- vertical industry pre-processing
764    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
765    THEN
766       AMS_Camp_Schedule_VUHK.validate_schedule_pre(
767          l_pub_schedule_rec,
768          l_return_status
769       );
770 
771       IF l_return_status = FND_API.g_ret_sts_error THEN
772          RAISE FND_API.g_exc_error;
773       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
774          RAISE FND_API.g_exc_unexpected_error;
775       END IF;
776    END IF;
777 
778    -- call business API
779    AMS_Camp_Schedule_PVT.Validate_camp_schedule(
780       p_api_version_number    => p_api_version,
781       p_init_msg_list    => p_init_msg_list, --has done before
782       p_validation_level  =>p_validation_level,
783       p_schedule_rec         => l_pvt_schedule_rec,
784       p_validation_mode     =>p_validation_mode,
785       x_return_status    => l_return_status,
786       x_msg_count        => x_msg_count,
787       x_msg_data         => x_msg_data
788         );
789 
790 
791 
792    IF l_return_status = FND_API.g_ret_sts_error THEN
793       RAISE FND_API.g_exc_error;
794    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
795       RAISE FND_API.g_exc_unexpected_error;
796    END IF;
797 
798 
799 
800 
801 
802    -- vertical industry post-processing
803    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
804    THEN
805       AMS_Camp_Schedule_VUHK.validate_schedule_post(
806          l_pub_schedule_rec,
807          l_return_status
808       );
809 
810       IF l_return_status = FND_API.g_ret_sts_error THEN
811          RAISE FND_API.g_exc_error;
812       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
813          RAISE FND_API.g_exc_unexpected_error;
814       END IF;
815    END IF;
816 
817    -- customer post-processing
818    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
819    THEN
820       AMS_Camp_Schedule_CUHK.validate_schedule_post(
821          l_pub_schedule_rec,
822          l_return_status
823       );
824 
825       IF l_return_status = FND_API.g_ret_sts_error THEN
826          RAISE FND_API.g_exc_error;
827       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
828          RAISE FND_API.g_exc_unexpected_error;
829       END IF;
830    END IF;
831 
832 
833       -- Debug Message
834       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
835 
836       -- Standard call to get message count and if count is 1, get message info.
837       FND_MSG_PUB.Count_And_Get
838         (p_count          =>   x_msg_count,
839          p_data           =>   x_msg_data
840       );
841 
842 EXCEPTION
843 
844    WHEN FND_API.g_exc_error THEN
845       ROLLBACK TO validate_camp_schedule_pub;
846       x_return_status := FND_API.g_ret_sts_error;
850             p_data    => x_msg_data
847       FND_MSG_PUB.count_and_get(
848             p_encoded => FND_API.g_false,
849             p_count   => x_msg_count,
851       );
852 
853    WHEN FND_API.g_exc_unexpected_error THEN
854       ROLLBACK TO validate_camp_schedule_pub;
855       x_return_status := FND_API.g_ret_sts_unexp_error ;
856       FND_MSG_PUB.count_and_get(
857             p_encoded => FND_API.g_false,
858             p_count   => x_msg_count,
859             p_data    => x_msg_data
860       );
861 
862 
863    WHEN OTHERS THEN
864       ROLLBACK TO validate_camp_schedule_pub;
865       x_return_status := FND_API.g_ret_sts_unexp_error ;
866 
867       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
868 		THEN
869          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
870       END IF;
871 
872       FND_MSG_PUB.count_and_get(
873             p_encoded => FND_API.g_false,
874             p_count   => x_msg_count,
875             p_data    => x_msg_data
876       );
877 
878 END Validate_Camp_Schedule;
879 
880 
881 PROCEDURE Lock_Camp_Schedule(
882     p_api_version_number         IN   NUMBER,
883     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
884     x_return_status              OUT NOCOPY  VARCHAR2,
885     x_msg_count                  OUT NOCOPY  NUMBER,
886     x_msg_data                   OUT NOCOPY  VARCHAR2,
887 
888     p_schedule_id                   IN  NUMBER,
889     p_object_version             IN  NUMBER
890     )
891 
892  IS
893 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Camp_Schedule';
894 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
895 l_pvt_schedule_rec    AMS_Camp_Schedule_PVT.schedule_rec_type;
896 l_object_version         NUMBER  := p_object_version;
897 l_SCHEDULE_ID            NUMBER := p_schedule_id;
898 l_return_status  VARCHAR2(1);
899  BEGIN
900 
901       -- Standard call to check for call compatibility.
902       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
903                                            p_api_version_number,
904                                            l_api_name,
905                                            G_PKG_NAME)
906       THEN
907           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
908       END IF;
909 
910       -- Initialize message list if p_init_msg_list is set to TRUE.
911       IF FND_API.to_Boolean( p_init_msg_list )
912       THEN
913          FND_MSG_PUB.initialize;
914       END IF;
915 
916       -- Debug Message
917       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
918 
919 
920       -- Initialize API return status to SUCCESS
921       x_return_status := FND_API.G_RET_STS_SUCCESS;
922 
923      -- customer pre-processing
924    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
925    THEN
926       AMS_Camp_Schedule_CUHK.lock_schedule_pre(
927          l_SCHEDULE_ID,
928          l_object_version,
929          l_return_status
930       );
931 
932       IF l_return_status = FND_API.g_ret_sts_error THEN
933          RAISE FND_API.g_exc_error;
934       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
935          RAISE FND_API.g_exc_unexpected_error;
936       END IF;
937    END IF;
938 
939    -- vertical industry pre-processing
940    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
941    THEN
942       AMS_Camp_Schedule_VUHK.lock_schedule_pre(
943          l_SCHEDULE_ID,
944          l_object_version,
945          l_return_status
946       );
947 
948       IF l_return_status = FND_API.g_ret_sts_error THEN
949          RAISE FND_API.g_exc_error;
950       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
951          RAISE FND_API.g_exc_unexpected_error;
952       END IF;
953    END IF;
954 
955    -- call business API
956      AMS_Camp_Schedule_PVT.Lock_Camp_Schedule(
957      p_api_version_number         => 1.0,
958      p_init_msg_list              => p_init_msg_list,
959      x_return_status              => x_return_status,
960      x_msg_count                  => x_msg_count,
961      x_msg_data                   => x_msg_data,
962      p_schedule_id     => p_schedule_id,
963      p_object_version             => p_object_version);
964 
965 
966       -- Check return status from the above procedure call
967       IF x_return_status = FND_API.G_RET_STS_ERROR then
968           RAISE FND_API.G_EXC_ERROR;
969       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
970           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
971       END IF;
972       --
973       -- End of API body.
974       --
975 
976    -- vertical industry post-processing
977    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
978    THEN
979       AMS_Camp_Schedule_VUHK.lock_schedule_post(
980          l_SCHEDULE_ID,
981          l_object_version,
982          l_return_status
983       );
984 
985       IF l_return_status = FND_API.g_ret_sts_error THEN
986          RAISE FND_API.g_exc_error;
987       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
988          RAISE FND_API.g_exc_unexpected_error;
989       END IF;
990    END IF;
991 
992    -- customer post-processing
993    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
994    THEN
995       AMS_Camp_Schedule_CUHK.lock_schedule_post(
996          l_SCHEDULE_ID,
1000 
997          l_object_version,
998          l_return_status
999       );
1001       IF l_return_status = FND_API.g_ret_sts_error THEN
1002          RAISE FND_API.g_exc_error;
1003       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1004          RAISE FND_API.g_exc_unexpected_error;
1005       END IF;
1006    END IF;
1007 
1008 
1009 
1010 
1011       -- Debug Message
1012       AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
1013 
1014 EXCEPTION
1015 
1016    WHEN AMS_Utility_PVT.resource_locked THEN
1017      x_return_status := FND_API.g_ret_sts_error;
1018      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1019         FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1020         FND_MSG_PUB.add;
1021      END IF;
1022 
1023    WHEN FND_API.G_EXC_ERROR THEN
1024      ROLLBACK TO LOCK_Camp_Schedule_PUB;
1025      x_return_status := FND_API.G_RET_STS_ERROR;
1026      -- Standard call to get message count and if count=1, get the message
1027      FND_MSG_PUB.Count_And_Get (
1028             p_encoded => FND_API.G_FALSE,
1029             p_count   => x_msg_count,
1030             p_data    => x_msg_data
1031      );
1032 
1033    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1034      ROLLBACK TO LOCK_Camp_Schedule_PUB;
1035      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1036      -- Standard call to get message count and if count=1, get the message
1037      FND_MSG_PUB.Count_And_Get (
1038             p_encoded => FND_API.G_FALSE,
1039             p_count => x_msg_count,
1040             p_data  => x_msg_data
1041      );
1042 
1043    WHEN OTHERS THEN
1044      ROLLBACK TO LOCK_Camp_Schedule_PUB;
1045      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1046      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1047      THEN
1048         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1049      END IF;
1050      -- Standard call to get message count and if count=1, get the message
1051      FND_MSG_PUB.Count_And_Get (
1052             p_encoded => FND_API.G_FALSE,
1053             p_count => x_msg_count,
1054             p_data  => x_msg_data
1055      );
1056 End Lock_Camp_Schedule;
1057 
1058 
1059 
1060 --   ==============================================================================
1061 --    Start of Comments
1062 --   ==============================================================================
1063 --   API Name
1064 --           Copy_Camp_Schedule
1065 --
1066 --   Description
1067 --           To support the "Copy Schedule" functionality from the schedule overview
1068 --           and detail pages.
1069 --
1070 --   History
1071 --      18-sep-2001   soagrawa  Added, bug# 2000042
1072 --
1073 --
1074 --   ==============================================================================
1075 --
1076 
1077 PROCEDURE Copy_Camp_Schedule(
1078     p_api_version                IN   NUMBER,
1079     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1080     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1081     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
1082 
1083     x_return_status              OUT NOCOPY  VARCHAR2,
1084     x_msg_count                  OUT NOCOPY  NUMBER,
1085     x_msg_data                   OUT NOCOPY  VARCHAR2,
1086 
1087     p_source_object_id           IN   NUMBER,
1088     p_attributes_table           IN   AMS_CpyUtility_PVT.copy_attributes_table_type,
1089     p_copy_columns_table         IN   AMS_CpyUtility_PVT.copy_columns_table_type,
1090 
1091     x_new_object_id              OUT NOCOPY  NUMBER,
1092     x_custom_setup_id            OUT NOCOPY  NUMBER
1093      )
1094 IS
1095 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Copy_Camp_Schedule';
1096 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1097 BEGIN
1098 
1099      SAVEPOINT COPY_Camp_Schedule_PUB;
1100 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start copy');
1101     -- Calling Private package: Create_Camp_Schedule
1102     -- Hint: Primary key needs to be returned
1103      AMS_Camp_Schedule_PVT.Copy_Camp_Schedule(
1104      p_api_version         => L_API_VERSION_NUMBER,
1105      p_init_msg_list              => p_init_msg_list,
1106      p_commit                     => p_commit,
1107      p_validation_level           => p_validation_level,
1108      x_return_status              => x_return_status,
1109      x_msg_count                  => x_msg_count,
1110      x_msg_data                   => x_msg_data,
1111      p_source_object_id           => p_source_object_id,
1112      p_attributes_table           => p_attributes_table,
1113      p_copy_columns_table         => p_copy_columns_table,
1114      x_new_object_id              => x_new_object_id,
1115      x_custom_setup_id            => x_custom_setup_id);
1116 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end copy');
1117 
1118       -- Check return status from the above procedure call
1119       IF x_return_status = FND_API.G_RET_STS_ERROR then
1120           RAISE FND_API.G_EXC_ERROR;
1121       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1122           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1123       END IF;
1124 
1125 
1126 EXCEPTION
1127 
1128    WHEN AMS_Utility_PVT.resource_locked THEN
1129      x_return_status := FND_API.g_ret_sts_error;
1130      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1131         FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1132         FND_MSG_PUB.add;
1136      ROLLBACK TO COPY_Camp_Schedule_PUB;
1133      END IF;
1134 
1135    WHEN FND_API.G_EXC_ERROR THEN
1137      x_return_status := FND_API.G_RET_STS_ERROR;
1138      -- Standard call to get message count and if count=1, get the message
1139      FND_MSG_PUB.Count_And_Get (
1140             p_encoded => FND_API.G_FALSE,
1141             p_count   => x_msg_count,
1142             p_data    => x_msg_data
1143      );
1144 
1145    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1146      ROLLBACK TO COPY_Camp_Schedule_PUB;
1147      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1148      -- Standard call to get message count and if count=1, get the message
1149      FND_MSG_PUB.Count_And_Get (
1150             p_encoded => FND_API.G_FALSE,
1151             p_count => x_msg_count,
1152             p_data  => x_msg_data
1153      );
1154 
1155    WHEN OTHERS THEN
1156      ROLLBACK TO COPY_Camp_Schedule_PUB;
1157      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1158      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1159      THEN
1160         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1161      END IF;
1162      -- Standard call to get message count and if count=1, get the message
1163      FND_MSG_PUB.Count_And_Get (
1164             p_encoded => FND_API.G_FALSE,
1165             p_count => x_msg_count,
1166             p_data  => x_msg_data
1167      );
1168 
1169 End Copy_Camp_Schedule;
1170 
1171 
1172 
1173 END AMS_Camp_Schedule_PUB;