[Home] [Help]
PACKAGE BODY: APPS.AMS_DELIVERABLE_PUB
Source
1 PACKAGE BODY AMS_Deliverable_PUB as
2 /* $Header: amspdelb.pls 120.0 2005/05/31 17:03:06 appldev noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_Deliverable_PUB
7 -- Purpose
8 --
9 -- History
10 -- 27-sep-2002 ABHOLA Created
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15
16
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Deliverable_PUB';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amspdelb.pls';
19
20 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
21 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
22 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
23
24 PROCEDURE Convert_PubRec_To_PvtRec(
25 p_deliv_rec_pub IN deliv_rec_type,
26 x_deliv_rec_pvt OUT NOCOPY AMS_Deliverable_PVT.deliv_rec_type
27
28 )
29
30 IS
31 l_deliv_rec_pub deliv_rec_type := p_deliv_rec_pub;
32
33 BEGIN
34
35 x_deliv_rec_pvt.deliverable_id := l_deliv_rec_pub.deliverable_id ;
36 x_deliv_rec_pvt.last_update_date := l_deliv_rec_pub.last_update_date;
37 x_deliv_rec_pvt.last_updated_by := l_deliv_rec_pub.last_updated_by ;
38 x_deliv_rec_pvt.creation_date := l_deliv_rec_pub.creation_date;
39 x_deliv_rec_pvt.created_by := l_deliv_rec_pub.created_by;
40 x_deliv_rec_pvt.last_update_login := l_deliv_rec_pub.last_update_login;
41 x_deliv_rec_pvt.object_version_number := l_deliv_rec_pub.object_version_number;
42 x_deliv_rec_pvt.user_status_id := l_deliv_rec_pub.user_status_id;
43 x_deliv_rec_pvt.status_code := l_deliv_rec_pub.status_code;
44 x_deliv_rec_pvt.status_date := l_deliv_rec_pub.status_date;
45 x_deliv_rec_pvt.deliverable_id := l_deliv_rec_pub.deliverable_id;
46 x_deliv_rec_pvt.last_update_date := l_deliv_rec_pub.last_update_date;
47 x_deliv_rec_pvt.last_updated_by := l_deliv_rec_pub.last_updated_by;
48 x_deliv_rec_pvt.creation_date := l_deliv_rec_pub.creation_date;
49 x_deliv_rec_pvt.created_by := l_deliv_rec_pub.created_by;
50 x_deliv_rec_pvt.last_update_login := l_deliv_rec_pub.last_update_login;
51 x_deliv_rec_pvt.object_version_number := l_deliv_rec_pub.object_version_number;
52 x_deliv_rec_pvt.language_code := l_deliv_rec_pub.language_code;
53 x_deliv_rec_pvt.version := l_deliv_rec_pub.version ;
54 x_deliv_rec_pvt.application_id := l_deliv_rec_pub.application_id;
55 x_deliv_rec_pvt.user_status_id := l_deliv_rec_pub.user_status_id ;
56 x_deliv_rec_pvt.status_code := l_deliv_rec_pub.status_code ;
57 x_deliv_rec_pvt.status_date := l_deliv_rec_pub.status_date ;
58 x_deliv_rec_pvt.active_flag := l_deliv_rec_pub.active_flag ;
59 x_deliv_rec_pvt.private_flag := l_deliv_rec_pub.private_flag ;
60 x_deliv_rec_pvt.owner_user_id := l_deliv_rec_pub.owner_user_id ;
61 x_deliv_rec_pvt.fund_source_id := l_deliv_rec_pub.fund_source_id ;
62 x_deliv_rec_pvt.fund_source_type := l_deliv_rec_pub.fund_source_type ;
63 x_deliv_rec_pvt.category_type_id := l_deliv_rec_pub.category_type_id ;
64 x_deliv_rec_pvt.category_sub_type_id := l_deliv_rec_pub.category_sub_type_id ;
65 x_deliv_rec_pvt.kit_flag := l_deliv_rec_pub.kit_flag ;
66 x_deliv_rec_pvt.inventory_flag := l_deliv_rec_pub.inventory_flag ;
67 x_deliv_rec_pvt.inventory_item_id := l_deliv_rec_pub.inventory_item_id ;
68 x_deliv_rec_pvt.inventory_item_org_id := l_deliv_rec_pub.inventory_item_org_id ;
69 x_deliv_rec_pvt.pricelist_header_id := l_deliv_rec_pub.pricelist_header_id ;
70 x_deliv_rec_pvt.pricelist_line_id := l_deliv_rec_pub.pricelist_line_id ;
71 x_deliv_rec_pvt.actual_avail_from_date := l_deliv_rec_pub.actual_avail_from_date ;
72 x_deliv_rec_pvt.actual_avail_to_date := l_deliv_rec_pub.actual_avail_to_date ;
73 x_deliv_rec_pvt.forecasted_complete_date := l_deliv_rec_pub.forecasted_complete_date ;
74 x_deliv_rec_pvt.actual_complete_date := l_deliv_rec_pub.actual_complete_date ;
75 x_deliv_rec_pvt.transaction_currency_code := l_deliv_rec_pub.transaction_currency_code ;
76 x_deliv_rec_pvt.functional_currency_code := l_deliv_rec_pub.functional_currency_code ;
77 x_deliv_rec_pvt.budget_amount_tc := l_deliv_rec_pub.budget_amount_tc ;
78 x_deliv_rec_pvt.budget_amount_fc := l_deliv_rec_pub.budget_amount_fc ;
79 x_deliv_rec_pvt.replaced_by_deliverable_id := l_deliv_rec_pub.replaced_by_deliverable_id ;
80 x_deliv_rec_pvt.can_fulfill_electronic_flag := l_deliv_rec_pub.can_fulfill_electronic_flag ;
81 x_deliv_rec_pvt.can_fulfill_physical_flag := l_deliv_rec_pub.can_fulfill_physical_flag ;
82 x_deliv_rec_pvt.jtf_amv_item_id := l_deliv_rec_pub.jtf_amv_item_id ;
83 x_deliv_rec_pvt.non_inv_ctrl_code := l_deliv_rec_pub.non_inv_ctrl_code ;
84 x_deliv_rec_pvt.non_inv_quantity_on_hand := l_deliv_rec_pub.non_inv_quantity_on_hand ;
85 x_deliv_rec_pvt.non_inv_quantity_on_order := l_deliv_rec_pub.non_inv_quantity_on_order ;
86 x_deliv_rec_pvt.non_inv_quantity_on_reserve := l_deliv_rec_pub.non_inv_quantity_on_reserve ;
87 x_deliv_rec_pvt.chargeback_amount := l_deliv_rec_pub.chargeback_amount ;
88 x_deliv_rec_pvt.chargeback_uom := l_deliv_rec_pub.chargeback_uom ;
89 x_deliv_rec_pvt.chargeback_amount_curr_code := l_deliv_rec_pub.chargeback_amount_curr_code ;
90 x_deliv_rec_pvt.deliverable_code := l_deliv_rec_pub.deliverable_code ;
91 x_deliv_rec_pvt.deliverable_pick_flag := l_deliv_rec_pub.deliverable_pick_flag ;
92 x_deliv_rec_pvt.currency_code := l_deliv_rec_pub.currency_code ;
93 x_deliv_rec_pvt.forecasted_cost := l_deliv_rec_pub.forecasted_cost ;
94 x_deliv_rec_pvt.actual_cost := l_deliv_rec_pub.actual_cost ;
95 x_deliv_rec_pvt.forecasted_responses := l_deliv_rec_pub.forecasted_responses ;
96 x_deliv_rec_pvt.actual_responses := l_deliv_rec_pub.actual_responses ;
97 x_deliv_rec_pvt.country := l_deliv_rec_pub.country ;
98 x_deliv_rec_pvt.default_approver_id := l_deliv_rec_pub.default_approver_id ;
99 x_deliv_rec_pvt.attribute_category := l_deliv_rec_pub.attribute_category ;
100 x_deliv_rec_pvt.attribute1 := l_deliv_rec_pub.attribute1 ;
101 x_deliv_rec_pvt.attribute2 := l_deliv_rec_pub.attribute2 ;
102 x_deliv_rec_pvt.attribute3 := l_deliv_rec_pub.attribute3 ;
103 x_deliv_rec_pvt.attribute4 := l_deliv_rec_pub.attribute4 ;
104 x_deliv_rec_pvt.attribute5 := l_deliv_rec_pub.attribute5 ;
105 x_deliv_rec_pvt.attribute6 := l_deliv_rec_pub.attribute6 ;
106 x_deliv_rec_pvt.attribute7 := l_deliv_rec_pub.attribute7 ;
107 x_deliv_rec_pvt.attribute8 := l_deliv_rec_pub.attribute8 ;
108 x_deliv_rec_pvt.attribute9 := l_deliv_rec_pub.attribute9 ;
109 x_deliv_rec_pvt.attribute10 := l_deliv_rec_pub.attribute10 ;
110 x_deliv_rec_pvt.attribute11 := l_deliv_rec_pub.attribute11 ;
111 x_deliv_rec_pvt.attribute12 := l_deliv_rec_pub.attribute12 ;
112 x_deliv_rec_pvt.attribute13 := l_deliv_rec_pub.attribute13 ;
113 x_deliv_rec_pvt.attribute14 := l_deliv_rec_pub.attribute14 ;
114 x_deliv_rec_pvt.attribute15 := l_deliv_rec_pub.attribute15 ;
115 x_deliv_rec_pvt.deliverable_name := l_deliv_rec_pub.deliverable_name ;
116 x_deliv_rec_pvt.description := l_deliv_rec_pub.description ;
117 x_deliv_rec_pvt.start_period_name := l_deliv_rec_pub.start_period_name ;
118 x_deliv_rec_pvt.end_period_name := l_deliv_rec_pub.end_period_name ;
119 x_deliv_rec_pvt.deliverable_calendar := l_deliv_rec_pub.deliverable_calendar ;
120 x_deliv_rec_pvt.country_id := l_deliv_rec_pub.country_id ;
121 x_deliv_rec_pvt.setup_id := l_deliv_rec_pub.setup_id ;
122 x_deliv_rec_pvt.item_Number := l_deliv_rec_pub.item_Number ;
123 x_deliv_rec_pvt.associate_flag := l_deliv_rec_pub.associate_flag ;
124 x_deliv_rec_pvt.master_object_id := l_deliv_rec_pub.master_object_id ;
125 x_deliv_rec_pvt.master_object_type := l_deliv_rec_pub.master_object_type;
126 x_deliv_rec_pvt.email_content_type := l_deliv_rec_pub.email_content_type ;
127
128 END;
129
130
131 PROCEDURE create_Deliverable(
132 p_api_version_number IN NUMBER,
133 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
134 p_commit IN VARCHAR2 := FND_API.g_false,
135 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
136 x_return_status OUT NOCOPY VARCHAR2,
137 x_msg_count OUT NOCOPY NUMBER,
138 x_msg_data OUT NOCOPY VARCHAR2,
139
140 p_deliv_rec IN deliv_rec_type,
141 x_deliv_id OUT NOCOPY NUMBER
142 )
143 IS
144
145 L_API_NAME CONSTANT VARCHAR2(30) := 'create_Deliverable';
146 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
147 l_return_status VARCHAR2(1);
148 l_pvt_deliv_rec AMS_deliverable_PVT.deliv_rec_type ;
149 l_pub_deliv_rec deliv_rec_type := p_deliv_rec;
150
151 BEGIN
152 -- Standard Start of API savepoint
153 SAVEPOINT CREATE_deliv_PUB;
154
155 -- Initialize message list if p_init_msg_list is set to TRUE.
156 IF FND_API.to_Boolean( p_init_msg_list )
157 THEN
158 FND_MSG_PUB.initialize;
159 END IF;
160
161 -- Debug Message
162 IF (AMS_DEBUG_HIGH_ON) THEN
163 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
164 END IF;
165
166
167 -- Initialize API return status to SUCCESS
168 x_return_status := FND_API.G_RET_STS_SUCCESS;
169
170 -- convert public parameter to private-type
171 Convert_PubRec_To_PvtRec(l_pub_deliv_rec,l_pvt_deliv_rec);
172
173 Create_Deliverable(
174 p_api_version_number => p_api_version_number,
175 p_init_msg_list => p_init_msg_list,
176 p_commit => p_commit,
177 p_validation_level => p_validation_level,
178 x_return_status => x_return_status,
179 x_msg_count => x_msg_count,
180 x_msg_data => x_msg_data,
181 p_deliv_rec => l_pvt_deliv_rec,
182 x_deliv_id => x_deliv_id );
183
184 -- Check return status from the above procedure call
185 IF x_return_status = FND_API.G_RET_STS_ERROR then
186 RAISE FND_API.G_EXC_ERROR;
187 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
188 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
189 END IF;
190 --
191 -- End of API body.
192 --
193
194 -- Standard check for p_commit
195 IF FND_API.to_Boolean( p_commit )
196 THEN
197 COMMIT WORK;
198 END IF;
199
200
201 -- Debug Message
202 IF (AMS_DEBUG_HIGH_ON) THEN
203 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
204 END IF;
205
206 -- Standard call to get message count and if count is 1, get message info.
207 FND_MSG_PUB.Count_And_Get
208 (p_count => x_msg_count,
209 p_data => x_msg_data
210 );
211
212 EXCEPTION
213
214 WHEN AMS_Utility_PVT.resource_locked THEN
215 x_return_status := FND_API.g_ret_sts_error;
216 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
217 FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
218 FND_MSG_PUB.add;
219 END IF;
220
221 WHEN FND_API.G_EXC_ERROR THEN
222 ROLLBACK TO CREATE_deliv_PUB;
223 x_return_status := FND_API.G_RET_STS_ERROR;
224 -- Standard call to get message count and if count=1, get the message
225 FND_MSG_PUB.Count_And_Get (
226 p_encoded => FND_API.G_FALSE,
227 p_count => x_msg_count,
228 p_data => x_msg_data
229 );
230
231 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
232 ROLLBACK TO CREATE_deliv_PUB;
233 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
234 -- Standard call to get message count and if count=1, get the message
235 FND_MSG_PUB.Count_And_Get (
236 p_encoded => FND_API.G_FALSE,
237 p_count => x_msg_count,
238 p_data => x_msg_data
239 );
240
241 WHEN OTHERS THEN
242 ROLLBACK TO CREATE_deliv_PUB;
243 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
244 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
245 THEN
246 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
247 END IF;
248 -- Standard call to get message count and if count=1, get the message
249 FND_MSG_PUB.Count_And_Get (
250 p_encoded => FND_API.G_FALSE,
251 p_count => x_msg_count,
252 p_data => x_msg_data
253 );
254 End Create_Deliverable;
255
256
257
258
259 PROCEDURE Create_Deliverable(
260
261 p_api_version_number IN NUMBER,
262 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
263 p_commit IN VARCHAR2 := FND_API.g_false,
264 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
265
266 x_return_status OUT NOCOPY VARCHAR2,
267 x_msg_count OUT NOCOPY NUMBER,
268 x_msg_data OUT NOCOPY VARCHAR2,
269
270 p_deliv_rec IN AMS_Deliverable_PVT.deliv_rec_type,
271 x_deliv_id OUT NOCOPY NUMBER
272
273 )
274
275
276 IS
277
278 L_API_NAME CONSTANT VARCHAR2(30) := 'create_Deliverable';
279 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
280 l_return_status VARCHAR2(1);
281 l_pvt_deliv_rec AMS_Deliverable_PVT.deliv_rec_type := p_deliv_rec;
282
283 BEGIN
284
285 SAVEPOINT CREATE_Deliverable_PUB;
286
287 -- Standard call to check for call compatibility.
288 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
289 p_api_version_number,
290 l_api_name,
291 G_PKG_NAME)
292 THEN
293 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
294 END IF;
295
296 -- Initialize message list if p_init_msg_list is set to TRUE.
297 IF FND_API.to_Boolean( p_init_msg_list )
298 THEN
299 FND_MSG_PUB.initialize;
300 END IF;
301
302 -- Debug Message
303 IF (AMS_DEBUG_HIGH_ON) THEN
304 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
305 END IF;
306
307 -- Initialize API return status to SUCCESS
308 x_return_status := FND_API.G_RET_STS_SUCCESS;
309
310 --
311 -- API body
312 --
313 -- Calling Private package: Create_Deliverable
314 -- Hint: Primary key needs to be returned
315
316 -- customer pre-processing
317 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
318 THEN
319 AMS_Deliverable_CUHK.create_deliverable_pre(
320 l_pvt_Deliv_rec,
321 l_return_status
322 );
323
324 IF l_return_status = FND_API.g_ret_sts_error THEN
325 RAISE FND_API.g_exc_error;
326 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
327 RAISE FND_API.g_exc_unexpected_error;
328 END IF;
329 END IF;
330
331 -- vertical industry pre-processing
332 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
333 THEN
334 AMS_Deliverable_VUHK.create_deliverable_pre(
335 l_pvt_Deliv_rec,
336 l_return_status
337 );
338
339 IF l_return_status = FND_API.g_ret_sts_error THEN
340 RAISE FND_API.g_exc_error;
341 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
342 RAISE FND_API.g_exc_unexpected_error;
343 END IF;
344 END IF;
345 -------------------------------------------------------
346 AMS_Deliverable_PVT.Create_Deliverable(
347 p_api_version => 1.0,
348 p_init_msg_list => FND_API.G_FALSE,
349 p_commit => FND_API.G_FALSE,
350 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
351 x_return_status => x_return_status,
352 x_msg_count => x_msg_count,
353 x_msg_data => x_msg_data,
354 p_Deliv_rec => l_pvt_Deliv_rec,
355 x_Deliv_id => x_Deliv_id);
356
357
358 -- Check return status from the above procedure call
359 IF x_return_status = FND_API.G_RET_STS_ERROR then
360 RAISE FND_API.G_EXC_ERROR;
361 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
362 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
363 END IF;
364 --
365 -- End of API body.
366 --
367
368 -- customer pre-processing
369 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
370 THEN
371 AMS_Deliverable_CUHK.create_deliverable_post(
372 l_pvt_Deliv_rec,
373 x_Deliv_id,
374 l_return_status
375 );
376
377 IF l_return_status = FND_API.g_ret_sts_error THEN
378 RAISE FND_API.g_exc_error;
379 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
380 RAISE FND_API.g_exc_unexpected_error;
381 END IF;
382 END IF;
383
384
385
386 -- vertical industry pre-processing
387 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
388 THEN
389 AMS_Deliverable_VUHK.create_deliverable_post(
390 l_pvt_Deliv_rec,
391 x_Deliv_id,
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
403 -- Standard check for p_commit
404 IF FND_API.to_Boolean( p_commit )
405 THEN
406 COMMIT WORK;
407 END IF;
408
409
410 -- Debug Message
411 IF (AMS_DEBUG_HIGH_ON) THEN
412 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
413 END IF;
414
415 -- Standard call to get message count and if count is 1, get message info.
416 FND_MSG_PUB.Count_And_Get
417 (p_count => x_msg_count,
418 p_data => x_msg_data
419 );
420
421 EXCEPTION
422
423 WHEN AMS_Utility_PVT.resource_locked THEN
424 x_return_status := FND_API.g_ret_sts_error;
425 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
426 FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
427 FND_MSG_PUB.add;
428 END IF;
429
430 WHEN FND_API.G_EXC_ERROR THEN
431 ROLLBACK TO CREATE_Deliverable_PUB;
432 x_return_status := FND_API.G_RET_STS_ERROR;
433 -- Standard call to get message count and if count=1, get the message
434 FND_MSG_PUB.Count_And_Get (
435 p_encoded => FND_API.G_FALSE,
436 p_count => x_msg_count,
437 p_data => x_msg_data
438 );
439
440 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
441 ROLLBACK TO CREATE_Deliverable_PUB;
442 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
443 -- Standard call to get message count and if count=1, get the message
444 FND_MSG_PUB.Count_And_Get (
445 p_encoded => FND_API.G_FALSE,
446 p_count => x_msg_count,
447 p_data => x_msg_data
448 );
449
450 WHEN OTHERS THEN
451 ROLLBACK TO CREATE_Deliverable_PUB;
452 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
453 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
454 THEN
455 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
456 END IF;
457 -- Standard call to get message count and if count=1, get the message
458 FND_MSG_PUB.Count_And_Get (
459 p_encoded => FND_API.G_FALSE,
460 p_count => x_msg_count,
461 p_data => x_msg_data
462 );
463 End Create_Deliverable;
464
465 PROCEDURE Update_Deliverable(
466 p_api_version_number IN NUMBER,
467 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
468 p_commit IN VARCHAR2 := FND_API.G_FALSE,
469 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
470 x_return_status OUT NOCOPY VARCHAR2,
471 x_msg_count OUT NOCOPY NUMBER,
472 x_msg_data OUT NOCOPY VARCHAR2,
473 p_deliv_rec IN deliv_rec_type
474 )
475
476 IS
477
478 L_API_NAME CONSTANT VARCHAR2(30) := 'update_Deliverable';
479 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
480 l_object_version_number NUMBER;
481 l_return_status VARCHAR2(1);
482 l_pvt_deliv_rec AMS_deliverable_PVT.deliv_rec_type ;
483 l_pub_deliv_rec deliv_rec_type := p_deliv_rec;
484
485 BEGIN
486
487 -- Standard Start of API savepoint
488 SAVEPOINT UPDATE_Deliv_PUB;
489
490 -- Standard call to check for call compatibility.
491 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
492 p_api_version_number,
493 l_api_name,
494 G_PKG_NAME)
495 THEN
496 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
497 END IF;
498
499 -- Initialize message list if p_init_msg_list is set to TRUE.
500 IF FND_API.to_Boolean( p_init_msg_list )
501 THEN
502 FND_MSG_PUB.initialize;
503 END IF;
504
505 -- Debug Message
506 IF (AMS_DEBUG_HIGH_ON) THEN
507 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
508 END IF;
509
510
511 -- Initialize API return status to SUCCESS
512 x_return_status := FND_API.G_RET_STS_SUCCESS;
513
514
515 -- convert public parameter to private-type
516 Convert_PubRec_To_PvtRec(l_pub_deliv_rec,l_pvt_deliv_rec);
517
518 update_Deliverable(
519 p_api_version_number => p_api_version_number,
520 p_init_msg_list => p_init_msg_list,
521 p_commit => p_commit,
522 p_validation_level => p_validation_level,
523 x_return_status => x_return_status,
524 x_msg_count => x_msg_count,
525 x_msg_data => x_msg_data,
526 p_deliv_rec => l_pvt_deliv_rec );
527
528 -- Check return status from the above procedure call
529 IF x_return_status = FND_API.G_RET_STS_ERROR then
530 RAISE FND_API.G_EXC_ERROR;
531 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
532 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
533 END IF;
534 --
535 -- End of API body.
536 --
537
538 -------------------------------------------------------
539 -- Debug Message
540 IF (AMS_DEBUG_HIGH_ON) THEN
541 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
542 END IF;
543
544 -- Standard call to get message count and if count is 1, get message info.
545 FND_MSG_PUB.Count_And_Get
546 (p_count => x_msg_count,
547 p_data => x_msg_data
548 );
549 EXCEPTION
550
551 WHEN AMS_Utility_PVT.resource_locked THEN
552 x_return_status := FND_API.g_ret_sts_error;
553 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
554
555 WHEN FND_API.G_EXC_ERROR THEN
556 ROLLBACK TO UPDATE_Deliv_PUB;
557 x_return_status := FND_API.G_RET_STS_ERROR;
558 -- Standard call to get message count and if count=1, get the message
559 FND_MSG_PUB.Count_And_Get (
560 p_encoded => FND_API.G_FALSE,
561 p_count => x_msg_count,
562 p_data => x_msg_data
563 );
564
565 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
566 ROLLBACK TO UPDATE_Deliv_PUB;
567 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
568 -- Standard call to get message count and if count=1, get the message
569 FND_MSG_PUB.Count_And_Get (
570 p_encoded => FND_API.G_FALSE,
571 p_count => x_msg_count,
572 p_data => x_msg_data
573 );
574
575 WHEN OTHERS THEN
576 ROLLBACK TO UPDATE_Deliv_PUB;
577 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
578 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
579 THEN
580 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
581 END IF;
582 -- Standard call to get message count and if count=1, get the message
583 FND_MSG_PUB.Count_And_Get (
584 p_encoded => FND_API.G_FALSE,
585 p_count => x_msg_count,
586 p_data => x_msg_data
587 );
588
589 End Update_Deliverable;
590
591
592 PROCEDURE Update_Deliverable(
593 p_api_version_number IN NUMBER,
594 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
595 p_commit IN VARCHAR2 := FND_API.G_FALSE,
596 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
597 x_return_status OUT NOCOPY VARCHAR2,
598 x_msg_count OUT NOCOPY NUMBER,
599 x_msg_data OUT NOCOPY VARCHAR2,
600 p_deliv_rec IN AMS_Deliverable_PVT.deliv_rec_type
601 )
602
603 IS
604
605 L_API_NAME CONSTANT VARCHAR2(30) := 'update_Deliverable';
606 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
607 l_object_version_number NUMBER;
608 l_return_status VARCHAR2(1);
609 l_pvt_deliv_rec AMS_Deliverable_PVT.deliv_rec_type := p_deliv_rec;
610
611 BEGIN
612
613 -- Standard Start of API savepoint
614 SAVEPOINT UPDATE_Deliverable_PUB;
615
616 -- Standard call to check for call compatibility.
617 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
618 p_api_version_number,
619 l_api_name,
620 G_PKG_NAME)
621 THEN
622 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
623 END IF;
624
625 -- Initialize message list if p_init_msg_list is set to TRUE.
626 IF FND_API.to_Boolean( p_init_msg_list )
627 THEN
628 FND_MSG_PUB.initialize;
629 END IF;
630
631 -- Debug Message
632 IF (AMS_DEBUG_HIGH_ON) THEN
633 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
634 END IF;
635
636 -- Initialize API return status to SUCCESS
637 x_return_status := FND_API.G_RET_STS_SUCCESS;
638
639 -- customer pre-processing
640 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
641 THEN
642 AMS_Deliverable_CUHK.update_deliverable_pre(
643 l_pvt_deliv_rec,
644 l_return_status
645 );
646
647 IF l_return_status = FND_API.g_ret_sts_error THEN
648 RAISE FND_API.g_exc_error;
649 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
650 RAISE FND_API.g_exc_unexpected_error;
651 END IF;
652 END IF;
653
654 -- vertical industry pre-processing
655 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
656 THEN
657 AMS_Deliverable_VUHK.update_deliverable_pre(
658 l_pvt_deliv_rec,
659 l_return_status
660 );
661
662 IF l_return_status = FND_API.g_ret_sts_error THEN
663 RAISE FND_API.g_exc_error;
664 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
665 RAISE FND_API.g_exc_unexpected_error;
666 END IF;
667 END IF;
668 -------------------------------------------------------
669 --
670 -- API body
671 --
672 AMS_Deliverable_PVT.Update_Deliverable(
673 p_api_version => 1.0,
674 p_init_msg_list => FND_API.G_FALSE,
675 p_commit => p_commit,
676 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
677 x_return_status => x_return_status,
678 x_msg_count => x_msg_count,
679 x_msg_data => x_msg_data,
680 p_deliv_rec => l_pvt_deliv_rec);
681
682
683 -- Check return status from the above procedure call
684 IF x_return_status = FND_API.G_RET_STS_ERROR then
685 RAISE FND_API.G_EXC_ERROR;
686 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
687 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
688 END IF;
689 --
690 -- End of API body
691 --
692 -- Standard check for p_commit
693 IF FND_API.to_Boolean( p_commit )
694 THEN
695 COMMIT WORK;
696 END IF;
697
698 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
699 THEN
700 AMS_Deliverable_CUHK.update_deliverable_post(
701 l_pvt_deliv_rec,
702 l_return_status
703 );
704
705 IF l_return_status = FND_API.g_ret_sts_error THEN
706 RAISE FND_API.g_exc_error;
707 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
708 RAISE FND_API.g_exc_unexpected_error;
709 END IF;
710 END IF;
711
712 -- vertical industry pre-processing
713 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
714 THEN
715 AMS_Deliverable_VUHK.update_deliverable_post(
716 l_pvt_deliv_rec,
717 l_return_status
718 );
719
720 IF l_return_status = FND_API.g_ret_sts_error THEN
721 RAISE FND_API.g_exc_error;
722 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
723 RAISE FND_API.g_exc_unexpected_error;
724 END IF;
725 END IF;
726 -------------------------------------------------------
727 -- Debug Message
728 IF (AMS_DEBUG_HIGH_ON) THEN
729 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
730 END IF;
731
732 -- Standard call to get message count and if count is 1, get message info.
733 FND_MSG_PUB.Count_And_Get
734 (p_count => x_msg_count,
735 p_data => x_msg_data
736 );
737 EXCEPTION
738
739 WHEN AMS_Utility_PVT.resource_locked THEN
740 x_return_status := FND_API.g_ret_sts_error;
741 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
742
743 WHEN FND_API.G_EXC_ERROR THEN
744 ROLLBACK TO UPDATE_Deliverable_PUB;
745 x_return_status := FND_API.G_RET_STS_ERROR;
746 -- Standard call to get message count and if count=1, get the message
747 FND_MSG_PUB.Count_And_Get (
748 p_encoded => FND_API.G_FALSE,
749 p_count => x_msg_count,
750 p_data => x_msg_data
751 );
752
753 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
754 ROLLBACK TO UPDATE_Deliverable_PUB;
755 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
756 -- Standard call to get message count and if count=1, get the message
757 FND_MSG_PUB.Count_And_Get (
758 p_encoded => FND_API.G_FALSE,
759 p_count => x_msg_count,
760 p_data => x_msg_data
761 );
762
763 WHEN OTHERS THEN
764 ROLLBACK TO UPDATE_Deliverable_PUB;
765 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
766 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
767 THEN
768 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
769 END IF;
770 -- Standard call to get message count and if count=1, get the message
771 FND_MSG_PUB.Count_And_Get (
772 p_encoded => FND_API.G_FALSE,
773 p_count => x_msg_count,
774 p_data => x_msg_data
775 );
776
777 End Update_Deliverable;
778
779
780 PROCEDURE Delete_Deliverable(
781 p_api_version_number IN NUMBER,
782 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
783 p_commit IN VARCHAR2 := FND_API.G_FALSE,
784 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
785 x_return_status OUT NOCOPY VARCHAR2,
786 x_msg_count OUT NOCOPY NUMBER,
787 x_msg_data OUT NOCOPY VARCHAR2,
788 p_deliv_id IN NUMBER,
789 p_object_version_number IN NUMBER
790 )
791
792
793
794 IS
795
796 L_API_NAME CONSTANT VARCHAR2(30) := 'delete_Deliverable';
797 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
798 l_deliv_ID NUMBER := p_deliv_ID;
799 l_object_version_number NUMBER := p_object_version_number;
800 l_return_status VARCHAR2(1);
801
802
803 BEGIN
804 -- Standard Start of API savepoint
805 SAVEPOINT DELETE_Deliverable_PUB;
806
807 -- Standard call to check for call compatibility.
808 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
809 p_api_version_number,
810 l_api_name,
811 G_PKG_NAME)
812 THEN
813 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
814 END IF;
815
816 -- Initialize message list if p_init_msg_list is set to TRUE.
817 IF FND_API.to_Boolean( p_init_msg_list )
818 THEN
819 FND_MSG_PUB.initialize;
820 END IF;
821
822 -- Debug Message
823 IF (AMS_DEBUG_HIGH_ON) THEN
824 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
825 END IF;
826
827
828 -- Initialize API return status to SUCCESS
829 x_return_status := FND_API.G_RET_STS_SUCCESS;
830
831 -- customer pre-processing
832 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
833 THEN
834 AMS_Deliverable_CUHK.delete_Deliverable_pre(
835 l_deliv_ID,
836 l_object_version_number,
837 l_return_status
838 );
839
840 IF l_return_status = FND_API.g_ret_sts_error THEN
841 RAISE FND_API.g_exc_error;
842 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
843 RAISE FND_API.g_exc_unexpected_error;
844 END IF;
845 END IF;
846
847 -- vertical industry pre-processing
848 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
849 THEN
850 AMS_Deliverable_VUHK.delete_Deliverable_pre(
851 l_deliv_ID,
852 l_object_version_number,
853 l_return_status
854 );
855
856 IF l_return_status = FND_API.g_ret_sts_error THEN
857 RAISE FND_API.g_exc_error;
858 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
859 RAISE FND_API.g_exc_unexpected_error;
860 END IF;
861 END IF;
862 -------------------------------------------------------
863
864 --
865 -- API body
866 --
867 AMS_Deliverable_PVT.Delete_Deliverable(
868 p_api_version => 1.0,
869 p_init_msg_list => FND_API.G_FALSE,
870 p_commit => p_commit,
871 x_return_status => x_return_status,
872 x_msg_count => x_msg_count,
873 x_msg_data => x_msg_data,
874 p_deliv_id => l_deliv_id,
875 p_object_version => l_object_version_number );
876
877
878 -- Check return status from the above procedure call
879 IF x_return_status = FND_API.G_RET_STS_ERROR then
880 RAISE FND_API.G_EXC_ERROR;
881 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
882 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
883 END IF;
884 --
885 -- End of API body
886 --
887
888 -- customer pre-processing
889 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
890 THEN
891 AMS_Deliverable_CUHK.delete_Deliverable_post(
892 l_deliv_ID,
893 l_object_version_number,
894 l_return_status
895 );
896
897 IF l_return_status = FND_API.g_ret_sts_error THEN
898 RAISE FND_API.g_exc_error;
899 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
900 RAISE FND_API.g_exc_unexpected_error;
901 END IF;
902 END IF;
903
904 -- vertical industry pre-processing
905 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
906 THEN
907 AMS_Deliverable_VUHK.delete_Deliverable_post(
908 l_deliv_ID,
909 l_object_version_number,
910 l_return_status
911 );
912
913 IF l_return_status = FND_API.g_ret_sts_error THEN
914 RAISE FND_API.g_exc_error;
915 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
916 RAISE FND_API.g_exc_unexpected_error;
917 END IF;
918 END IF;
919 -------------------------------------------------------
920
921
922 -- Standard check for p_commit
923 IF FND_API.to_Boolean( p_commit )
924 THEN
925 COMMIT WORK;
926 END IF;
927
928
929 -- Debug Message
930 IF (AMS_DEBUG_HIGH_ON) THEN
931 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
932 END IF;
933
934 -- Standard call to get message count and if count is 1, get message info.
935 FND_MSG_PUB.Count_And_Get
936 (p_count => x_msg_count,
937 p_data => x_msg_data
938 );
939 EXCEPTION
940
941 WHEN AMS_Utility_PVT.resource_locked THEN
942 x_return_status := FND_API.g_ret_sts_error;
943 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
944
945 WHEN FND_API.G_EXC_ERROR THEN
946 ROLLBACK TO DELETE_Deliverable_PUB;
947 x_return_status := FND_API.G_RET_STS_ERROR;
948 -- Standard call to get message count and if count=1, get the message
949 FND_MSG_PUB.Count_And_Get (
950 p_encoded => FND_API.G_FALSE,
951 p_count => x_msg_count,
952 p_data => x_msg_data
953 );
954
955 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
956 ROLLBACK TO DELETE_Deliverable_PUB;
957 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
958 -- Standard call to get message count and if count=1, get the message
959 FND_MSG_PUB.Count_And_Get (
960 p_encoded => FND_API.G_FALSE,
961 p_count => x_msg_count,
962 p_data => x_msg_data
963 );
964
965 WHEN OTHERS THEN
966 ROLLBACK TO DELETE_Deliverable_PUB;
967 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
968 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
969 THEN
970 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
971 END IF;
972 -- Standard call to get message count and if count=1, get the message
973 FND_MSG_PUB.Count_And_Get (
974 p_encoded => FND_API.G_FALSE,
975 p_count => x_msg_count,
976 p_data => x_msg_data
977 );
978 End Delete_Deliverable;
979
980 PROCEDURE Validate_Deliverable(
981 p_api_version_number IN NUMBER,
982 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
983 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
984 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
985 x_return_status OUT NOCOPY VARCHAR2,
986 x_msg_count OUT NOCOPY NUMBER,
987 x_msg_data OUT NOCOPY VARCHAR2,
988 p_deliv_rec IN AMS_Deliverable_PVT.deliv_rec_type
989 )
990
991
992 IS
993
994 l_api_name CONSTANT VARCHAR2(30) := 'validate_Deliverable';
995 l_return_status VARCHAR2(1);
996 l_pvt_deliv_rec AMS_Deliverable_PVT.deliv_rec_type := p_deliv_rec;
997
998
999 BEGIN
1000
1001 SAVEPOINT validate_Deliverable_pub;
1002
1003 -- initialize the message list;
1004 -- won't do it again when calling private API
1005 IF FND_API.to_boolean(p_init_msg_list) THEN
1006 FND_MSG_PUB.initialize;
1007 END IF;
1008
1009 -- Initialize API return status to SUCCESS
1010 x_return_status := FND_API.G_RET_STS_SUCCESS;
1011
1012
1013 -- customer pre-processing
1014 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
1015 THEN
1016 AMS_Deliverable_CUHK.validate_deliverable_pre(
1017 l_pvt_deliv_rec,
1018 l_return_status
1019 );
1020
1021 IF l_return_status = FND_API.g_ret_sts_error THEN
1022 RAISE FND_API.g_exc_error;
1023 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1024 RAISE FND_API.g_exc_unexpected_error;
1025 END IF;
1026 END IF;
1027
1028 -- vertical industry pre-processing
1029 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
1030 THEN
1031 AMS_Deliverable_VUHK.validate_deliverable_pre(
1032 l_pvt_deliv_rec,
1033 l_return_status
1034 );
1035
1036 IF l_return_status = FND_API.g_ret_sts_error THEN
1037 RAISE FND_API.g_exc_error;
1038 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1039 RAISE FND_API.g_exc_unexpected_error;
1040 END IF;
1041 END IF;
1042
1043 -- call business API
1044
1045 AMS_Deliverable_PVT.Validate_Deliverable(
1046 p_api_version => p_api_version_number,
1047 p_init_msg_list => p_init_msg_list, --has done before
1048 p_validation_level => p_validation_level,
1049 p_validation_mode => p_validation_mode,
1050 p_deliv_rec => l_pvt_deliv_rec,
1051 x_return_status => l_return_status,
1052 x_msg_count => x_msg_count,
1053 x_msg_data => x_msg_data
1054 );
1055
1056
1057 IF l_return_status = FND_API.g_ret_sts_error THEN
1058 RAISE FND_API.g_exc_error;
1059 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1060 RAISE FND_API.g_exc_unexpected_error;
1061 END IF;
1062
1063
1064
1065
1066
1067 -- vertical industry post-processing
1068 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
1069 THEN
1070 AMS_Deliverable_VUHK.validate_deliverable_post(
1071 l_pvt_deliv_rec,
1072 l_return_status
1073 );
1074
1075 IF l_return_status = FND_API.g_ret_sts_error THEN
1076 RAISE FND_API.g_exc_error;
1077 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1078 RAISE FND_API.g_exc_unexpected_error;
1079 END IF;
1080 END IF;
1081
1082 -- customer post-processing
1083 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
1084 THEN
1085 AMS_Deliverable_CUHK.validate_deliverable_post(
1086 l_pvt_deliv_rec,
1087 l_return_status
1088 );
1089
1090 IF l_return_status = FND_API.g_ret_sts_error THEN
1091 RAISE FND_API.g_exc_error;
1092 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1093 RAISE FND_API.g_exc_unexpected_error;
1094 END IF;
1095 END IF;
1096
1097 -- Debug Message
1098 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
1099
1100 -- Standard call to get message count and if count is 1, get message info.
1101 FND_MSG_PUB.Count_And_Get
1102 (p_count => x_msg_count,
1103 p_data => x_msg_data
1104 );
1105
1106 EXCEPTION
1107
1108 WHEN FND_API.g_exc_error THEN
1109 ROLLBACK TO validate_Deliverable_pub;
1110 x_return_status := FND_API.g_ret_sts_error;
1111 FND_MSG_PUB.count_and_get(
1112 p_encoded => FND_API.g_false,
1113 p_count => x_msg_count,
1114 p_data => x_msg_data
1115 );
1116
1117 WHEN FND_API.g_exc_unexpected_error THEN
1118 ROLLBACK TO validate_Deliverable_pub;
1119 x_return_status := FND_API.g_ret_sts_unexp_error ;
1120 FND_MSG_PUB.count_and_get(
1121 p_encoded => FND_API.g_false,
1122 p_count => x_msg_count,
1123 p_data => x_msg_data
1124 );
1125
1126
1127 WHEN OTHERS THEN
1128 ROLLBACK TO validate_Deliverable_pub;
1129 x_return_status := FND_API.g_ret_sts_unexp_error ;
1130
1131 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
1132 THEN
1133 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1134 END IF;
1135
1136 FND_MSG_PUB.count_and_get(
1137 p_encoded => FND_API.g_false,
1138 p_count => x_msg_count,
1139 p_data => x_msg_data
1140 );
1141
1142 END Validate_Deliverable;
1143
1144
1145 PROCEDURE Lock_Deliverable(
1146 p_api_version_number IN NUMBER,
1147 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1148 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
1149 x_return_status OUT NOCOPY VARCHAR2,
1150 x_msg_count OUT NOCOPY NUMBER,
1151 x_msg_data OUT NOCOPY VARCHAR2,
1152
1153 p_deliv_id IN NUMBER,
1154 p_object_version_number IN NUMBER
1155 )
1156
1157 IS
1158
1159 L_API_NAME CONSTANT VARCHAR2(30) := 'lock_Deliverable';
1160 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1161
1162 l_deliv_id NUMBER := p_deliv_id ;
1163 l_object_version_number NUMBER := p_object_version_number;
1164 l_return_status VARCHAR2(1);
1165
1166 BEGIN
1167
1168 -- Standard call to check for call compatibility.
1169 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1170 p_api_version_number,
1171 l_api_name,
1172 G_PKG_NAME)
1173 THEN
1174 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1175 END IF;
1176
1177 -- Initialize message list if p_init_msg_list is set to TRUE.
1178 IF FND_API.to_Boolean( p_init_msg_list )
1179 THEN
1180 FND_MSG_PUB.initialize;
1181 END IF;
1182
1183 -- Debug Message
1184 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'start');
1185
1186
1187 -- Initialize API return status to SUCCESS
1188 x_return_status := FND_API.G_RET_STS_SUCCESS;
1189 --
1190 -- customer pre-processing
1191 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
1192 THEN
1193 AMS_Deliverable_CUHK.lock_deliverable_pre(
1194 l_deliv_ID,
1195 l_object_version_number,
1196 l_return_status
1197 );
1198
1199 IF l_return_status = FND_API.g_ret_sts_error THEN
1200 RAISE FND_API.g_exc_error;
1201 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1202 RAISE FND_API.g_exc_unexpected_error;
1203 END IF;
1204 END IF;
1205
1206 -- vertical industry pre-processing
1207 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
1208 THEN
1209 AMS_Deliverable_VUHK.lock_Deliverable_pre(
1210 l_deliv_ID,
1211 l_object_version_number,
1212 l_return_status
1213 );
1214
1215 IF l_return_status = FND_API.g_ret_sts_error THEN
1216 RAISE FND_API.g_exc_error;
1217 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1218 RAISE FND_API.g_exc_unexpected_error;
1219 END IF;
1220 END IF;
1221 --
1222 -- API body
1223 --
1224 -- Calling Private package: Create_Deliverable
1225 -- Hint: Primary key needs to be returned
1226
1227 AMS_Deliverable_PVT.Lock_Deliverable(
1228 p_api_version => 1.0,
1229 p_init_msg_list => FND_API.G_FALSE,
1230 x_return_status => x_return_status,
1231 x_msg_count => x_msg_count,
1232 x_msg_data => x_msg_data,
1233 p_deliv_id => l_deliv_id,
1234 p_object_version => l_object_version_number);
1235
1236
1237 -- Check return status from the above procedure call
1238 IF x_return_status = FND_API.G_RET_STS_ERROR then
1239 RAISE FND_API.G_EXC_ERROR;
1240 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1241 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1242 END IF;
1243 --
1244 -- End of API body.
1245 --
1246 -- customer pre-processing
1247 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
1248 THEN
1249 AMS_Deliverable_CUHK.lock_Deliverable_post(
1250 l_deliv_ID,
1251 l_object_version_number,
1252 l_return_status
1253 );
1254
1255 IF l_return_status = FND_API.g_ret_sts_error THEN
1256 RAISE FND_API.g_exc_error;
1257 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1258 RAISE FND_API.g_exc_unexpected_error;
1259 END IF;
1260 END IF;
1261
1262 -- vertical industry pre-processing
1263 IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
1264 THEN
1265 AMS_Deliverable_VUHK.lock_Deliverable_post(
1266 l_deliv_ID,
1267 l_object_version_number,
1268 l_return_status
1269 );
1270
1271 IF l_return_status = FND_API.g_ret_sts_error THEN
1272 RAISE FND_API.g_exc_error;
1273 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1274 RAISE FND_API.g_exc_unexpected_error;
1275 END IF;
1276 END IF;
1277 --
1278
1279 -- Debug Message
1280 AMS_UTILITY_PVT.debug_message('Public API: ' || l_api_name || 'end');
1281
1282 EXCEPTION
1283
1284 WHEN AMS_Utility_PVT.resource_locked THEN
1285 x_return_status := FND_API.g_ret_sts_error;
1286 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1287
1288 WHEN FND_API.G_EXC_ERROR THEN
1289 ROLLBACK TO LOCK_Deliverable_PUB;
1290 x_return_status := FND_API.G_RET_STS_ERROR;
1291 -- Standard call to get message count and if count=1, get the message
1292 FND_MSG_PUB.Count_And_Get (
1293 p_encoded => FND_API.G_FALSE,
1294 p_count => x_msg_count,
1295 p_data => x_msg_data
1296 );
1297
1298 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1299 ROLLBACK TO LOCK_Deliverable_PUB;
1300 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1301 -- Standard call to get message count and if count=1, get the message
1302 FND_MSG_PUB.Count_And_Get (
1303 p_encoded => FND_API.G_FALSE,
1304 p_count => x_msg_count,
1305 p_data => x_msg_data
1306 );
1307
1308 WHEN OTHERS THEN
1309 ROLLBACK TO LOCK_Deliverable_PUB;
1310 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1311 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1312 THEN
1313 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1314 END IF;
1315 -- Standard call to get message count and if count=1, get the message
1316 FND_MSG_PUB.Count_And_Get (
1317 p_encoded => FND_API.G_FALSE,
1318 p_count => x_msg_count,
1319 p_data => x_msg_data
1320 );
1321 End Lock_Deliverable;
1322
1323
1324 END AMS_Deliverable_PUB;