[Home] [Help]
PACKAGE BODY: APPS.AMS_CAL_CRT_PVT
Source
1 PACKAGE BODY AMS_Cal_Crt_PVT as
2 /* $Header: amsvcctb.pls 115.13 2003/03/09 20:14:21 ptendulk noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_Cal_Crt_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- This Api is generated with Latest version of
14 -- Rosetta, where g_miss indicates NULL and
15 -- NULL indicates missing value. Rosetta Version 1.55
16 -- End of Comments
17 -- ===============================================================
18 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
19 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
20 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
21
22 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_Cal_Crt_PVT';
23 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvcctb.pls';
24 -- G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
25 -- G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
26
27 PROCEDURE Default_Cal_Crt_Rec_Items (
28 p_cal_crt_rec_rec IN cal_crt_rec_rec_type ,
29 x_cal_crt_rec_rec OUT NOCOPY cal_crt_rec_rec_type
30 ) ;
31 -- Hint: Primary key needs to be returned.
32 -- ==============================================================================
33 -- Start of Comments
34 -- ==============================================================================
35 -- API Name
36 -- Create_Cal_Crt
37 -- Type
38 -- Private
39 -- Pre-Req
40 --
41 -- Parameters
42 --
43 -- IN
44 -- p_api_version_number IN NUMBER Required
45 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
46 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
47 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
48 -- p_cal_crt_rec_rec IN cal_crt_rec_rec_type Required
49 --
50 -- OUT
51 -- x_return_status OUT VARCHAR2
52 -- x_msg_count OUT NUMBER
53 -- x_msg_data OUT VARCHAR2
54 -- Version : Current version 1.0
55 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
56 -- and basic operation, developer must manually add parameters and business logic as necessary.
57 --
58 -- History
59 --
60 -- NOTE
61 --
62 -- End of Comments
63 -- ==============================================================================
64 PROCEDURE Create_Cal_Crt(
65 p_api_version_number IN NUMBER,
66 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
67 p_commit IN VARCHAR2 := FND_API.G_FALSE,
68 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
69 x_return_status OUT NOCOPY VARCHAR2,
70 x_msg_count OUT NOCOPY NUMBER,
71 x_msg_data OUT NOCOPY VARCHAR2,
72 p_cal_crt_rec_rec IN cal_crt_rec_rec_type := g_miss_cal_crt_rec_rec,
73 x_criteria_id OUT NOCOPY NUMBER
74 )
75 IS
76 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Cal_Crt';
77 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
78 l_return_status_full VARCHAR2(1);
79 l_object_version_number NUMBER := 1;
80 -- l_org_id NUMBER := FND_API.G_MISS_NUM;
81 l_criteria_id NUMBER;
82 l_dummy NUMBER;
83 l_cal_crt_rec_rec cal_crt_rec_rec_type := p_cal_crt_rec_rec;
84
85 CURSOR c_id IS
86 SELECT ams_calendar_criteria_s.NEXTVAL
87 FROM dual;
88 CURSOR c_id_exists (l_id IN NUMBER) IS
89 SELECT 1
90 FROM ams_calendar_criteria
91 WHERE criteria_id = l_id;
92 BEGIN
93 -- Standard Start of API savepoint
94 SAVEPOINT create_cal_crt_pvt;
95 -- Standard call to check for call compatibility.
96 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
97 p_api_version_number,
98 l_api_name,
99 G_PKG_NAME)
100 THEN
101 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102 END IF;
103
104 -- Initialize message list if p_init_msg_list is set to TRUE.
105 IF FND_API.to_Boolean( p_init_msg_list )
106 THEN
107 FND_MSG_PUB.initialize;
108 END IF;
109 -- Debug Message
110 IF (AMS_DEBUG_HIGH_ON) THEN
111
112 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
113 END IF;
114 -- Initialize API return status to SUCCESS
115 x_return_status := FND_API.G_RET_STS_SUCCESS;
116
117 -- =========================================================================
118 -- Validate Environment
119 -- =========================================================================
120 IF FND_GLOBAL.USER_ID IS NULL
121 THEN
122 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
123 RAISE FND_API.G_EXC_ERROR;
124 END IF;
125
126 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
127 THEN
128 -- Debug message
129 IF (AMS_DEBUG_HIGH_ON) THEN
130
131 AMS_UTILITY_PVT.debug_message('Private API: Validate_Cal_Crt');
132 END IF;
133 -- Charu: Populate the default required items.
134 l_cal_crt_rec_rec.last_update_date := SYSDATE;
135 l_cal_crt_rec_rec.last_updated_by := FND_GLOBAL.user_id;
136 l_cal_crt_rec_rec.creation_date := SYSDATE;
137 l_cal_crt_rec_rec.created_by := FND_GLOBAL.user_id;
138 l_cal_crt_rec_rec.last_update_login := FND_GLOBAL.conc_login_id;
139 l_cal_crt_rec_rec.object_version_number := l_object_version_number;
140 -- Invoke validation procedures
141 Validate_cal_crt(
142 p_api_version_number => 1.0,
143 p_init_msg_list => FND_API.G_FALSE,
144 p_validation_level => p_validation_level,
145 p_validation_mode => JTF_PLSQL_API.g_create,
146 p_cal_crt_rec_rec => l_cal_crt_rec_rec,
147 x_return_status => x_return_status,
148 x_msg_count => x_msg_count,
149 x_msg_data => x_msg_data);
150 END IF;
151
152 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
153 RAISE FND_API.G_EXC_ERROR;
154 END IF;
155 -- Local variable initialization
156 IF l_cal_crt_rec_rec.criteria_id IS NULL OR l_cal_crt_rec_rec.criteria_id = FND_API.g_miss_num THEN
157 LOOP
158 l_dummy := NULL;
159 OPEN c_id;
160 FETCH c_id INTO l_criteria_id;
161 CLOSE c_id;
162 OPEN c_id_exists(l_criteria_id);
163 FETCH c_id_exists INTO l_dummy;
164 CLOSE c_id_exists;
165 EXIT WHEN l_dummy IS NULL;
166 END LOOP;
167 ELSE
168 l_criteria_id := l_cal_crt_rec_rec.criteria_id;
169 END IF;
170 -- Debug Message
171 IF (AMS_DEBUG_HIGH_ON) THEN
172
173 AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
174 END IF;
175
176 -- Invoke table handler(Ams_Cal_Crt_Pkg.Insert_Row)
177 Ams_Cal_Crt_Pkg.Insert_Row(
178 px_criteria_id => l_criteria_id,
179 p_object_type_code => l_cal_crt_rec_rec.object_type_code,
180 p_custom_setup_id => l_cal_crt_rec_rec.custom_setup_id,
181 p_activity_type_code => l_cal_crt_rec_rec.activity_type_code,
182 p_activity_id => l_cal_crt_rec_rec.activity_id,
183 p_status_id => l_cal_crt_rec_rec.status_id,
184 p_priority_id => l_cal_crt_rec_rec.priority_id,
185 p_object_id => l_cal_crt_rec_rec.object_id,
186 p_criteria_start_date => l_cal_crt_rec_rec.criteria_start_date,
187 p_criteria_end_date => l_cal_crt_rec_rec.criteria_end_date,
188 p_criteria_deleted => l_cal_crt_rec_rec.criteria_deleted,
189 p_criteria_enabled => l_cal_crt_rec_rec.criteria_enabled,
190 p_last_update_date => SYSDATE,
191 p_last_updated_by => FND_GLOBAL.USER_ID,
192 p_creation_date => SYSDATE,
193 p_created_by => FND_GLOBAL.USER_ID,
194 p_last_update_login => FND_GLOBAL.conc_login_id,
195 px_object_version_number => l_object_version_number
196 );
197
198 x_criteria_id := l_criteria_id;
199 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
200 RAISE FND_API.G_EXC_ERROR;
201 END IF;
202 --
203 -- End of API body
204 --
205 -- Standard check for p_commit
206 IF FND_API.to_Boolean( p_commit )
207 THEN
208 COMMIT WORK;
209 END IF;
210 -- Debug Message
211 IF (AMS_DEBUG_HIGH_ON) THEN
212 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
213 END IF;
214 -- Standard call to get message count and if count is 1, get message info.
215 FND_MSG_PUB.Count_And_Get
216 (p_count => x_msg_count,
217 p_data => x_msg_data
218 );
219 EXCEPTION
220 WHEN AMS_Utility_PVT.resource_locked THEN
221 x_return_status := FND_API.g_ret_sts_error;
222 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
223 WHEN FND_API.G_EXC_ERROR THEN
224 ROLLBACK TO CREATE_Cal_Crt_PVT;
225 x_return_status := FND_API.G_RET_STS_ERROR;
226 -- Standard call to get message count and if count=1, get the message
227 FND_MSG_PUB.Count_And_Get (
228 p_encoded => FND_API.G_FALSE,
229 p_count => x_msg_count,
230 p_data => x_msg_data
231 );
232 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
233 ROLLBACK TO CREATE_Cal_Crt_PVT;
234 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
235 -- Standard call to get message count and if count=1, get the message
236 FND_MSG_PUB.Count_And_Get (
237 p_encoded => FND_API.G_FALSE,
238 p_count => x_msg_count,
239 p_data => x_msg_data
240 );
241
242 WHEN OTHERS THEN
243 ROLLBACK TO CREATE_Cal_Crt_PVT;
244 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
245 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
246 THEN
247 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
248 END IF;
249 -- Standard call to get message count and if count=1, get the message
250 FND_MSG_PUB.Count_And_Get (
251 p_encoded => FND_API.G_FALSE,
252 p_count => x_msg_count,
253 p_data => x_msg_data
254 );
255 End Create_Cal_Crt;
256 -- ==============================================================================
257 -- Start of Comments
258 -- ==============================================================================
259 -- API Name
260 -- Update_Cal_Crt
261 -- Type
262 -- Private
263 -- Pre-Req
264 --
265 -- Parameters
266
267 -- IN
268 -- p_api_version_number IN NUMBER Required
269 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
270 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
271 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
272 -- p_cal_crt_rec_rec IN cal_crt_rec_rec_type Required
273 --
274 -- OUT
275 -- x_return_status OUT VARCHAR2
276 -- x_msg_count OUT NUMBER
277 -- x_msg_data OUT VARCHAR2
278 -- Version : Current version 1.0
279 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
280 -- and basic operation, developer must manually add parameters and business logic as necessary.
281 --
282 -- History
283 --
284 -- NOTE
285 --
286 -- End of Comments
287 -- ==============================================================================
288
289 PROCEDURE Update_Cal_Crt(
290 p_api_version_number IN NUMBER,
291 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
292 p_commit IN VARCHAR2 := FND_API.G_FALSE,
293 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
294
295 x_return_status OUT NOCOPY VARCHAR2,
296 x_msg_count OUT NOCOPY NUMBER,
300 IS
297 x_msg_data OUT NOCOPY VARCHAR2,
298 p_cal_crt_rec_rec IN cal_crt_rec_rec_type
299 )
301 CURSOR c_get_cal_crt(criteria_id NUMBER) IS
302 SELECT *
303 FROM ams_calendar_criteria
304 WHERE criteria_id = p_cal_crt_rec_rec.criteria_id;
305 -- Hint: Developer need to provide Where clause
306 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Cal_Crt';
307 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
308 -- Local Variables
309 l_object_version_number NUMBER;
310 l_criteria_id NUMBER;
311 l_ref_cal_crt_rec_rec c_get_Cal_Crt%ROWTYPE ;
312 l_tar_cal_crt_rec_rec cal_crt_rec_rec_type := P_cal_crt_rec_rec;
313 l_rowid ROWID;
314 BEGIN
315 -- Standard Start of API savepoint
316 SAVEPOINT update_cal_crt_pvt;
317 -- Standard call to check for call compatibility.
318 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
319 p_api_version_number,
320 l_api_name,
321 G_PKG_NAME)
322 THEN
323 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
324 END IF;
325
326 -- Initialize message list if p_init_msg_list is set to TRUE.
327 IF FND_API.to_Boolean( p_init_msg_list )
328 THEN
329 FND_MSG_PUB.initialize;
330 END IF;
331
332 -- Debug Message
333 IF (AMS_DEBUG_HIGH_ON) THEN
334
335 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
336 END IF;
337
338 -- Charu added
339 l_tar_cal_crt_rec_rec.last_update_date := SYSDATE;
340 l_tar_cal_crt_rec_rec.last_updated_by := FND_GLOBAL.user_id;
341 l_tar_cal_crt_rec_rec.last_update_login := FND_GLOBAL.conc_login_id;
342 -- Initialize API return status to SUCCESS
343 x_return_status := FND_API.G_RET_STS_SUCCESS;
344 IF (AMS_DEBUG_HIGH_ON) THEN
345 AMS_UTILITY_PVT.debug_message('l_tar_cal_crt_rec_rec.criteria_deleted: ' || l_tar_cal_crt_rec_rec.criteria_deleted);
346 END IF;
347 IF (AMS_DEBUG_HIGH_ON) THEN
348 AMS_UTILITY_PVT.debug_message('l_tar_cal_crt_rec_rec.criteria_id: ' || l_tar_cal_crt_rec_rec.criteria_id);
349 END IF;
350 -- Debug Message
351 IF (AMS_DEBUG_HIGH_ON) THEN
352 AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
353 END IF;
354 IF ( (l_tar_cal_crt_rec_rec.criteria_deleted = 'Y') AND (l_tar_cal_crt_rec_rec.criteria_enabled = 'Y') ) THEN
355 x_return_status := FND_API.g_ret_sts_error;
356 -- AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CAL_CRT_ENABLED_DELETE');
357 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
358 FND_MESSAGE.set_name ('AMS', 'AMS_CAL_CRT_ENABLED_DELETE');
359 FND_MSG_PUB.add;
360 RAISE FND_API.G_EXC_ERROR;
361 END IF;
362 ELSE
363 OPEN c_get_Cal_Crt( l_tar_cal_crt_rec_rec.criteria_id);
364 FETCH c_get_Cal_Crt INTO l_ref_cal_crt_rec_rec ;
365 If ( c_get_Cal_Crt%NOTFOUND) THEN
366 AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
367 p_token_name => 'INFO',
368 p_token_value => 'Cal_Crt'
369 ) ;
370 RAISE FND_API.G_EXC_ERROR;
371 END IF;
372 -- Debug Message
373 IF (AMS_DEBUG_HIGH_ON) THEN
374
375 AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
376 END IF;
377 CLOSE c_get_Cal_Crt;
378
379 If (l_tar_cal_crt_rec_rec.object_version_number is NULL or
380 l_tar_cal_crt_rec_rec.object_version_number = FND_API.G_MISS_NUM ) Then
381 AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
382 p_token_name => 'COLUMN',
383 p_token_value => 'Last_Update_Date') ;
384 raise FND_API.G_EXC_ERROR;
385 End if;
386 -- Check Whether record has been changed by someone else
387 If (l_tar_cal_crt_rec_rec.object_version_number <> l_ref_cal_crt_rec_rec.object_version_number) Then
388 AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
389 p_token_name => 'INFO',
390 p_token_value => 'Cal_Crt') ;
391 raise FND_API.G_EXC_ERROR;
392 End if;
393
394 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
395 THEN
396 -- Debug message
397 IF (AMS_DEBUG_HIGH_ON) THEN
398
399 AMS_UTILITY_PVT.debug_message('Private API: Validate_Cal_Crt');
400 END IF;
401 -- Invoke validation procedures
402 Validate_cal_crt(
403 p_api_version_number => 1.0,
404 p_init_msg_list => FND_API.G_FALSE,
405 p_validation_level => p_validation_level,
406 p_validation_mode => JTF_PLSQL_API.g_update,
407 p_cal_crt_rec_rec => l_tar_cal_crt_rec_rec,
408 x_return_status => x_return_status,
409 x_msg_count => x_msg_count,
410 x_msg_data => x_msg_data);
411 END IF;
412
413 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
414 RAISE FND_API.G_EXC_ERROR;
415 END IF;
416
417 -- Debug Message
418 IF (AMS_DEBUG_HIGH_ON) THEN
419 AMS_UTILITY_PVT.debug_message('Calling Table Handler Update');
420 END IF;
421 -- Invoke table handler(Ams_Cal_Crt_Pkg.Update_Row)
422 Ams_Cal_Crt_Pkg.Update_Row(
423 p_criteria_id => l_tar_cal_crt_rec_rec.criteria_id,
424 p_object_type_code => l_tar_cal_crt_rec_rec.object_type_code,
425 p_custom_setup_id => l_tar_cal_crt_rec_rec.custom_setup_id,
426 p_activity_type_code => l_tar_cal_crt_rec_rec.activity_type_code,
427 p_activity_id => l_tar_cal_crt_rec_rec.activity_id,
431 p_criteria_start_date => l_tar_cal_crt_rec_rec.criteria_start_date,
428 p_status_id => l_tar_cal_crt_rec_rec.status_id,
429 p_priority_id => l_tar_cal_crt_rec_rec.priority_id,
430 p_object_id => l_tar_cal_crt_rec_rec.object_id,
432 p_criteria_end_date => l_tar_cal_crt_rec_rec.criteria_end_date,
433 p_criteria_deleted => l_tar_cal_crt_rec_rec.criteria_deleted,
434 p_criteria_enabled => l_tar_cal_crt_rec_rec.criteria_enabled,
435 p_last_update_date => SYSDATE,
436 p_last_updated_by => FND_GLOBAL.USER_ID,
437 p_last_update_login => FND_GLOBAL.conc_login_id,
438 p_object_version_number => l_tar_cal_crt_rec_rec.object_version_number
439 );
440 --
441 -- End of API body.
442 --
443 END IF;
444
445 -- Standard check for p_commit
446 IF FND_API.to_Boolean( p_commit )THEN
447 COMMIT WORK;
448 END IF;
449
450 -- Debug Message
451 IF (AMS_DEBUG_HIGH_ON) THEN
452 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
453 END IF;
454 -- Standard call to get message count and if count is 1, get message info.
455 FND_MSG_PUB.Count_And_Get
456 (p_count => x_msg_count,
457 p_data => x_msg_data
458 );
459
460 EXCEPTION
461
462 WHEN AMS_Utility_PVT.resource_locked THEN
463 x_return_status := FND_API.g_ret_sts_error;
464 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
465
466 WHEN FND_API.G_EXC_ERROR THEN
467 ROLLBACK TO UPDATE_Cal_Crt_PVT;
468 x_return_status := FND_API.G_RET_STS_ERROR;
469 -- Standard call to get message count and if count=1, get the message
470 FND_MSG_PUB.Count_And_Get (
471 p_encoded => FND_API.G_FALSE,
472 p_count => x_msg_count,
473 p_data => x_msg_data
474 );
475
476 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
477 ROLLBACK TO UPDATE_Cal_Crt_PVT;
478 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
479 -- Standard call to get message count and if count=1, get the message
480 FND_MSG_PUB.Count_And_Get (
481 p_encoded => FND_API.G_FALSE,
482 p_count => x_msg_count,
483 p_data => x_msg_data
484 );
485 WHEN OTHERS THEN
486 ROLLBACK TO UPDATE_Cal_Crt_PVT;
487 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
488 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
489 THEN
490 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
491 END IF;
492 -- Standard call to get message count and if count=1, get the message
493 FND_MSG_PUB.Count_And_Get (
494 p_encoded => FND_API.G_FALSE,
495 p_count => x_msg_count,
496 p_data => x_msg_data
497 );
498 End Update_Cal_Crt;
499 -- ==============================================================================
500 -- Start of Comments
501 -- ==============================================================================
502 -- API Name
503 -- Delete_Cal_Crt
504 -- Type
505 -- Private
506 -- Pre-Req
507 --
508 -- Parameters
509 --
510 -- IN
511 -- p_api_version_number IN NUMBER Required
512 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
513 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
514 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
515 -- p_criteria_id IN NUMBER
516 -- p_object_version_number IN NUMBER Optional Default = NULL
517 --
518 -- OUT
519 -- x_return_status OUT VARCHAR2
520 -- x_msg_count OUT NUMBER
521 -- x_msg_data OUT VARCHAR2
522 -- Version : Current version 1.0
523 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
524 -- and basic operation, developer must manually add parameters and business logic as necessary.
525 --
526 -- History
527 --
528 -- NOTE
529
530 -- End of Comments
531 -- ==============================================================================
532
533 PROCEDURE Delete_Cal_Crt(
534 p_api_version_number IN NUMBER,
535 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
536 p_commit IN VARCHAR2 := FND_API.G_FALSE,
537 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
538 x_return_status OUT NOCOPY VARCHAR2,
539 x_msg_count OUT NOCOPY NUMBER,
540 x_msg_data OUT NOCOPY VARCHAR2,
541 p_criteria_id IN NUMBER,
542 p_object_version_number IN NUMBER
543 )
544
545 IS
546 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Cal_Crt';
547 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
548 l_object_version_number NUMBER;
549 BEGIN
550 -- Standard Start of API savepoint
551 SAVEPOINT delete_cal_crt_pvt;
552 -- Standard call to check for call compatibility.
553 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
554 p_api_version_number,
555 l_api_name,
556 G_PKG_NAME)
557 THEN
558 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
559 END IF;
560 -- Initialize message list if p_init_msg_list is set to TRUE.
561 IF FND_API.to_Boolean( p_init_msg_list )
562 THEN
566 IF (AMS_DEBUG_HIGH_ON) THEN
563 FND_MSG_PUB.initialize;
564 END IF;
565 -- Debug Message
567
568 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
569 END IF;
570 -- Initialize API return status to SUCCESS
571 x_return_status := FND_API.G_RET_STS_SUCCESS;
572
573 --
574 -- Api body
575 --
576 -- Debug Message
577 IF (AMS_DEBUG_HIGH_ON) THEN
578 AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
579 END IF;
580 -- Invoke table handler(Ams_Cal_Crt_Pkg.Delete_Row)
581 Ams_Cal_Crt_Pkg.Delete_Row(
582 p_criteria_id => p_criteria_id,
583 p_object_version_number => p_object_version_number );
584 --
585 -- End of API body
586 --
587 -- Standard check for p_commit
588 IF FND_API.to_Boolean( p_commit )
589 THEN
590 COMMIT WORK;
591 END IF;
592 -- Debug Message
593 IF (AMS_DEBUG_HIGH_ON) THEN
594
595 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
596 END IF;
597
598 -- Standard call to get message count and if count is 1, get message info.
599 FND_MSG_PUB.Count_And_Get
600 (p_count => x_msg_count,
601 p_data => x_msg_data
602 );
603 EXCEPTION
604 WHEN AMS_Utility_PVT.resource_locked THEN
605 x_return_status := FND_API.g_ret_sts_error;
606 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
607 WHEN FND_API.G_EXC_ERROR THEN
608 ROLLBACK TO DELETE_Cal_Crt_PVT;
609 x_return_status := FND_API.G_RET_STS_ERROR;
610 -- Standard call to get message count and if count=1, get the message
611 FND_MSG_PUB.Count_And_Get (
612 p_encoded => FND_API.G_FALSE,
613 p_count => x_msg_count,
614 p_data => x_msg_data
615 );
616 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
617 ROLLBACK TO DELETE_Cal_Crt_PVT;
618 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
619 -- Standard call to get message count and if count=1, get the message
620 FND_MSG_PUB.Count_And_Get (
621 p_encoded => FND_API.G_FALSE,
622 p_count => x_msg_count,
623 p_data => x_msg_data
624 );
625
626 WHEN OTHERS THEN
627 ROLLBACK TO DELETE_Cal_Crt_PVT;
628 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
629 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
630 THEN
631 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
632 END IF;
633 -- Standard call to get message count and if count=1, get the message
634 FND_MSG_PUB.Count_And_Get (
635 p_encoded => FND_API.G_FALSE,
636 p_count => x_msg_count,
637 p_data => x_msg_data
638 );
639 End Delete_Cal_Crt;
640
641 -- Hint: Primary key needs to be returned.
642 -- ==============================================================================
643 -- Start of Comments
644 -- API Name
645 -- Lock_Cal_Crt
646 -- Type
647 -- Private
648 -- Pre-Req
649 --
650 -- Parameters
651 --
652 -- IN
653 -- p_api_version_number IN NUMBER Required
654 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
655 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
656 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
657 -- p_cal_crt_rec_rec IN cal_crt_rec_rec_type Required
658 --
659 -- OUT
660 -- x_return_status OUT VARCHAR2
661 -- x_msg_count OUT NUMBER
662 -- x_msg_data OUT VARCHAR2
663 -- Version : Current version 1.0
664 -- Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
665 -- and basic operation, developer must manually add parameters and business logic as necessary.
666 --
667 -- History
668 --
669 -- NOTE
670 --
671 -- End of Comments
672 -- ==============================================================================
673
674
675
676
677 PROCEDURE Lock_Cal_Crt(
678 p_api_version_number IN NUMBER,
679 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
680
681 x_return_status OUT NOCOPY VARCHAR2,
682 x_msg_count OUT NOCOPY NUMBER,
683 x_msg_data OUT NOCOPY VARCHAR2,
684
685 p_criteria_id IN NUMBER,
686 p_object_version IN NUMBER
687 )
688
689 IS
690 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Cal_Crt';
691 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
692 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
693 l_criteria_id NUMBER;
694
695 BEGIN
696
697 -- Debug Message
698 IF (AMS_DEBUG_HIGH_ON) THEN
699
700 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
701 END IF;
702
703 -- Initialize message list if p_init_msg_list is set to TRUE.
704 IF FND_API.to_Boolean( p_init_msg_list )
705 THEN
706 FND_MSG_PUB.initialize;
707
708 END IF;
709 -- Standard call to check for call compatibility.
710 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
711 p_api_version_number,
715 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
712 l_api_name,
713 G_PKG_NAME)
714 THEN
716 END IF;
717
718 -- Initialize API return status to SUCCESS
719 x_return_status := FND_API.G_RET_STS_SUCCESS;
720
721
722 ------------------------ lock -------------------------
723 Ams_Cal_Crt_Pkg.Lock_Row(l_criteria_id,p_object_version);
724 -------------------- finish --------------------------
725 FND_MSG_PUB.count_and_get(
726 p_encoded => FND_API.g_false,
727 p_count => x_msg_count,
728 p_data => x_msg_data);
729 IF (AMS_DEBUG_HIGH_ON) THEN
730
731 AMS_Utility_PVT.debug_message(l_full_name ||': end');
732 END IF;
733 EXCEPTION
734 WHEN AMS_Utility_PVT.resource_locked THEN
735 x_return_status := FND_API.g_ret_sts_error;
736 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
737
738 WHEN FND_API.G_EXC_ERROR THEN
739 ROLLBACK TO LOCK_Cal_Crt_PVT;
740 x_return_status := FND_API.G_RET_STS_ERROR;
741 -- Standard call to get message count and if count=1, get the message
742 FND_MSG_PUB.Count_And_Get (
743 p_encoded => FND_API.G_FALSE,
744 p_count => x_msg_count,
745 p_data => x_msg_data
746 );
747
748 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
749 ROLLBACK TO LOCK_Cal_Crt_PVT;
750 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
751 -- Standard call to get message count and if count=1, get the message
752 FND_MSG_PUB.Count_And_Get (
753 p_encoded => FND_API.G_FALSE,
754 p_count => x_msg_count,
755 p_data => x_msg_data
756 );
757
758 WHEN OTHERS THEN
759 ROLLBACK TO LOCK_Cal_Crt_PVT;
760 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
761 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
762 THEN
763 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
764 END IF;
765 -- Standard call to get message count and if count=1, get the message
766 FND_MSG_PUB.Count_And_Get (
767 p_encoded => FND_API.G_FALSE,
768 p_count => x_msg_count,
769 p_data => x_msg_data
770 );
771 End Lock_Cal_Crt;
772 -- Charu: Check for duplicate/ subset criteria --
773 PROCEDURE check_Cal_crt_rec_Dup_Items(
774 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
775 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
776 x_return_status OUT NOCOPY VARCHAR2)
777 IS
778 CURSOR c_criteria IS
779 SELECT 'X'
780 FROM ams_calendar_criteria
781 WHERE ( criteria_deleted = 'N'
782 AND object_type_code = p_cal_crt_rec_rec.object_type_code
783 AND DECODE(custom_setup_id, null, 1,
784 DECODE(p_cal_crt_rec_rec.custom_setup_id, null, 0, p_cal_crt_rec_rec.custom_setup_id)) =
785 DECODE(custom_setup_id, null, 1, custom_setup_id)
786 AND DECODE(activity_type_code, null, '1',
787 DECODE(p_cal_crt_rec_rec.activity_type_code, null, 'xxx', p_cal_crt_rec_rec.activity_type_code)) =
788 DECODE(activity_type_code, null, '1', activity_type_code)
789 AND DECODE(activity_id, null, 1,
790 DECODE(p_cal_crt_rec_rec.activity_id, null, 0, p_cal_crt_rec_rec.activity_id)) =
791 DECODE(activity_id, null, 1, activity_id)
792 AND DECODE(status_id, null, 1,
793 DECODE(p_cal_crt_rec_rec.status_id, null, 0, p_cal_crt_rec_rec.status_id)) =
794 DECODE(status_id, null, 1, status_id)
795 AND DECODE(priority_id, null, '1',
796 DECODE(p_cal_crt_rec_rec.priority_id, null, 'xxx', p_cal_crt_rec_rec.priority_id)) =
797 DECODE(priority_id, null, '1', priority_id)
798 AND DECODE(object_id, null, 1,
799 DECODE(p_cal_crt_rec_rec.object_id, null, 0, p_cal_crt_rec_rec.object_id)) =
800 DECODE(object_id, null, 1, object_id)
801 AND DECODE(criteria_start_date, null, SYSDATE,
802 DECODE(p_cal_crt_rec_rec.criteria_start_date, null, (SYSDATE - 1000000), p_cal_crt_rec_rec.criteria_start_date)) >=
803 DECODE(criteria_start_date, null, SYSDATE, criteria_start_date)
804 AND DECODE(criteria_end_date, null, SYSDATE, nvl(p_cal_crt_rec_rec.criteria_end_date,
805 (SYSDATE + 1000000))) <= nvl(criteria_end_date, SYSDATE)
806 -- AND DECODE(criteria_end_date, null, SYSDATE, DECODE(p_cal_crt_rec_rec.criteria_end_date, null, (SYSDATE + 1000000),
807 --p_cal_crt_rec_rec.criteria_end_date)) <= DECODE(criteria_end_date, null, SYSDATE, criteria_end_date)
808 );
809 l_cal_crt_rec_rec c_criteria%ROWTYPE;
810 l_exist VARCHAR2(1);
811 BEGIN
812 OPEN c_criteria;
813 FETCH c_criteria INTO l_exist;
814 IF c_criteria%NOTFOUND THEN
815 x_return_status := FND_API.g_ret_sts_success;
816 ELSE
817 x_return_status := FND_API.g_ret_sts_error;
818 -- AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CAL_CRT_DUPLICATE');
819 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
820 FND_MESSAGE.set_name ('AMS', 'AMS_CAL_CRT_DUPLICATE');
821 FND_MSG_PUB.add;
822 RAISE FND_API.G_EXC_ERROR;
823 END IF;
824 END IF;
825
826 CLOSE c_criteria;
827 END check_Cal_crt_rec_Dup_Items;
828
829 PROCEDURE check_Cal_Crt_Rec_Uk_Items(
830 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
831 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
832 x_return_status OUT NOCOPY VARCHAR2)
833 IS
834 l_valid_flag VARCHAR2(1);
835 BEGIN
836 x_return_status := FND_API.g_ret_sts_success;
837 IF p_validation_mode = JTF_PLSQL_API.g_create
841 'ams_calendar_criteria',
838 AND p_cal_crt_rec_rec.criteria_id IS NOT NULL
839 THEN
840 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
842 'criteria_id = ''' || p_cal_crt_rec_rec.criteria_id ||''''
843 );
844 END IF;
845
846 IF l_valid_flag = FND_API.g_false THEN
847 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_criteria_id_DUPLICATE');
848 x_return_status := FND_API.g_ret_sts_error;
849 END IF;
850 END check_Cal_Crt_Rec_Uk_Items;
851
852 PROCEDURE check_Cal_Crt_Rec_Req_Items(
853 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
854 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
855 x_return_status OUT NOCOPY VARCHAR2
856 )
857 IS
858 BEGIN
859 x_return_status := FND_API.g_ret_sts_success;
860 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
861 IF p_cal_crt_rec_rec.object_type_code = FND_API.g_miss_char OR p_cal_crt_rec_rec.object_type_code IS NULL THEN
862 AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_TYPE_CODE' );
863 x_return_status := FND_API.g_ret_sts_error;
864 END IF;
865
866 IF p_cal_crt_rec_rec.last_update_login = FND_API.G_MISS_NUM OR p_cal_crt_rec_rec.last_update_login IS NULL THEN
867 AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATE_LOGIN' );
868 x_return_status := FND_API.g_ret_sts_error;
869 END IF;
870 ELSE
871 IF p_cal_crt_rec_rec.criteria_id = FND_API.G_MISS_NUM THEN
872 AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'CRITERIA_ID' );
873 x_return_status := FND_API.g_ret_sts_error;
874 END IF;
875
876 /*
877 IF p_cal_crt_rec_rec.object_type_code = FND_API.g_miss_char THEN
878 AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'OBJECT_TYPE_CODE' );
879 x_return_status := FND_API.g_ret_sts_error;
880 END IF;
881 IF p_cal_crt_rec_rec.last_update_login = FND_API.G_MISS_NUM THEN
882 AMS_Utility_PVT.Error_Message('AMS_API_MISSING_FIELD', 'MISS_FIELD', 'LAST_UPDATE_LOGIN' );
883 x_return_status := FND_API.g_ret_sts_error;
884 END IF;
885 */
886 END IF;
887
888 END check_Cal_Crt_Rec_Req_Items;
889
890 PROCEDURE check_Cal_Crt_Rec_Fk_Items(
891 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
892 x_return_status OUT NOCOPY VARCHAR2
893 )
894 IS
895 BEGIN
896 x_return_status := FND_API.g_ret_sts_success;
897 -- Enter custom code here
898 END check_Cal_Crt_Rec_Fk_Items;
899
900 PROCEDURE check_Cal_Crt_Rec_Lookup_Items(
901 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
902 x_return_status OUT NOCOPY VARCHAR2
903 )
904 IS
905 BEGIN
906 x_return_status := FND_API.g_ret_sts_success;
907 -- Enter custom code here
908 END check_Cal_Crt_Rec_Lookup_Items;
909 PROCEDURE Check_Cal_Crt_Rec_Items (
910 P_cal_crt_rec_rec IN cal_crt_rec_rec_type,
911 p_validation_mode IN VARCHAR2,
912 x_return_status OUT NOCOPY VARCHAR2
913 )
914 IS
915 l_return_status VARCHAR2(1);
916 BEGIN
917
918 l_return_status := FND_API.g_ret_sts_success;
919 -- Charu: Check if the current criteria is duplicate/ subset of an existing criteria
920 check_Cal_crt_rec_Dup_Items(
921 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
922 p_validation_mode => p_validation_mode,
923 x_return_status => x_return_status);
924 IF x_return_status <> FND_API.g_ret_sts_success THEN
925 l_return_status := FND_API.g_ret_sts_error;
926 END IF;
927 -- Charu: Check if the current criteria endDate > startDate
928 IF ((p_cal_crt_rec_rec.criteria_start_date IS NOT NULL) AND (p_cal_crt_rec_rec.criteria_end_date IS NOT NULL)
929 AND (p_cal_crt_rec_rec.criteria_end_date < p_cal_crt_rec_rec.criteria_start_date)) THEN
930 -- AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CAL_CRT_INVALID_DATES');
931 IF FND_MSG_PUB.check_msg_level (FND_MSG_PUB.g_msg_lvl_error) THEN
932 FND_MESSAGE.set_name ('AMS', 'AMS_CAL_CRT_INVALID_DATES');
933 FND_MSG_PUB.add;
934 RAISE FND_API.G_EXC_ERROR;
935 END IF;
936 l_return_status := FND_API.g_ret_sts_error;
937 END IF;
938
939 -- Check Items Uniqueness API calls
940 check_Cal_crt_rec_Uk_Items(
941 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
942 p_validation_mode => p_validation_mode,
943 x_return_status => x_return_status);
944 IF x_return_status <> FND_API.g_ret_sts_success THEN
945 l_return_status := FND_API.g_ret_sts_error;
946 END IF;
947
948 -- Check Items Required/NOT NULL API calls
949 check_cal_crt_rec_req_items(
950 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
951 p_validation_mode => p_validation_mode,
952 x_return_status => x_return_status);
953 IF x_return_status <> FND_API.g_ret_sts_success THEN
954 l_return_status := FND_API.g_ret_sts_error;
955 END IF;
956
957 -- Check Items Foreign Keys API calls
958 check_cal_crt_rec_FK_items(
959 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
960 x_return_status => x_return_status);
961 IF x_return_status <> FND_API.g_ret_sts_success THEN
962 l_return_status := FND_API.g_ret_sts_error;
963 END IF;
964 -- Check Items Lookups
965 check_cal_crt_rec_Lookup_items(
966 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
967 x_return_status => x_return_status);
968 IF x_return_status <> FND_API.g_ret_sts_success THEN
972 x_return_status := l_return_status;
969 l_return_status := FND_API.g_ret_sts_error;
970 END IF;
971
973 END Check_cal_crt_rec_Items;
974
975 PROCEDURE Complete_Cal_Crt_Rec_Rec (
976 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
977 x_complete_rec OUT NOCOPY cal_crt_rec_rec_type)
978 IS
979 l_return_status VARCHAR2(1);
980 CURSOR c_complete IS
981 SELECT *
982 FROM ams_calendar_criteria
983 WHERE criteria_id = p_cal_crt_rec_rec.criteria_id;
984 l_cal_crt_rec_rec c_complete%ROWTYPE;
985 BEGIN
986 x_complete_rec := p_cal_crt_rec_rec;
987 OPEN c_complete;
988 FETCH c_complete INTO l_cal_crt_rec_rec;
989 CLOSE c_complete;
990 -- criteria_id
991 IF p_cal_crt_rec_rec.criteria_id IS NULL THEN
992 x_complete_rec.criteria_id := l_cal_crt_rec_rec.criteria_id;
993 END IF;
994 IF (AMS_DEBUG_HIGH_ON) THEN
995 AMS_UTILITY_PVT.debug_message('criteria_id is: ' || x_complete_rec.criteria_id);
996 END IF;
997 -- object_type_code
998 IF p_cal_crt_rec_rec.object_type_code IS NULL THEN
999 x_complete_rec.object_type_code := l_cal_crt_rec_rec.object_type_code;
1000 END IF;
1001 IF (AMS_DEBUG_HIGH_ON) THEN
1002 AMS_UTILITY_PVT.debug_message('object_type_code is: ' || x_complete_rec.object_type_code);
1003 END IF;
1004 -- custom_setup_id
1005 IF p_cal_crt_rec_rec.custom_setup_id IS NULL THEN
1006 x_complete_rec.custom_setup_id := l_cal_crt_rec_rec.custom_setup_id;
1007 END IF;
1008 -- activity_type_code
1009 IF p_cal_crt_rec_rec.activity_type_code IS NULL THEN
1010 x_complete_rec.activity_type_code := l_cal_crt_rec_rec.activity_type_code;
1011 END IF;
1012 -- activity_id
1013 IF p_cal_crt_rec_rec.activity_id IS NULL THEN
1014 x_complete_rec.activity_id := l_cal_crt_rec_rec.activity_id;
1015 END IF;
1016 -- status_id
1017 IF p_cal_crt_rec_rec.status_id IS NULL THEN
1018 x_complete_rec.status_id := l_cal_crt_rec_rec.status_id;
1019 END IF;
1020
1021 -- priority_id
1022 IF p_cal_crt_rec_rec.priority_id IS NULL THEN
1023 x_complete_rec.priority_id := l_cal_crt_rec_rec.priority_id;
1024 END IF;
1025
1026 -- object_id
1027 IF p_cal_crt_rec_rec.object_id IS NULL THEN
1028 x_complete_rec.object_id := l_cal_crt_rec_rec.object_id;
1029 END IF;
1030 -- criteria_start_date
1031 IF p_cal_crt_rec_rec.criteria_start_date IS NULL THEN
1032 x_complete_rec.criteria_start_date := l_cal_crt_rec_rec.criteria_start_date;
1033 END IF;
1034 -- criteria_end_date
1035 IF p_cal_crt_rec_rec.criteria_end_date IS NULL THEN
1036 x_complete_rec.criteria_end_date := l_cal_crt_rec_rec.criteria_end_date;
1037 END IF;
1038 -- criteria_deleted
1039 IF p_cal_crt_rec_rec.criteria_deleted IS NULL THEN
1040 x_complete_rec.criteria_deleted := l_cal_crt_rec_rec.criteria_deleted;
1041 END IF;
1042 -- criteria_enabled
1043 IF p_cal_crt_rec_rec.criteria_enabled IS NULL THEN
1044 x_complete_rec.criteria_enabled := l_cal_crt_rec_rec.criteria_enabled;
1045 END IF;
1046
1047 -- last_update_date
1048 IF p_cal_crt_rec_rec.last_update_date IS NULL THEN
1049 x_complete_rec.last_update_date := l_cal_crt_rec_rec.last_update_date;
1050 END IF;
1051 -- last_updated_by
1052 IF p_cal_crt_rec_rec.last_updated_by IS NULL THEN
1053 x_complete_rec.last_updated_by := l_cal_crt_rec_rec.last_updated_by;
1054 END IF;
1055
1056 -- creation_date
1057 IF p_cal_crt_rec_rec.creation_date IS NULL THEN
1058 x_complete_rec.creation_date := l_cal_crt_rec_rec.creation_date;
1059 END IF;
1060 -- created_by
1061 IF p_cal_crt_rec_rec.created_by IS NULL THEN
1062 x_complete_rec.created_by := l_cal_crt_rec_rec.created_by;
1063 END IF;
1064 -- last_update_login
1065 IF p_cal_crt_rec_rec.last_update_login IS NULL THEN
1066 x_complete_rec.last_update_login := l_cal_crt_rec_rec.last_update_login;
1067 END IF;
1068 -- object_version_number
1069 IF p_cal_crt_rec_rec.object_version_number IS NULL THEN
1070 x_complete_rec.object_version_number := l_cal_crt_rec_rec.object_version_number;
1071 END IF;
1072 -- Note: Developers need to modify the procedure
1073 -- to handle any business specific requirements.
1074 END Complete_Cal_Crt_Rec_Rec;
1075
1076
1077 PROCEDURE Default_Cal_Crt_Rec_Items ( p_cal_crt_rec_rec IN cal_crt_rec_rec_type ,
1078 x_cal_crt_rec_rec OUT NOCOPY cal_crt_rec_rec_type )
1079 IS
1080 l_cal_crt_rec_rec cal_crt_rec_rec_type := p_cal_crt_rec_rec;
1081 BEGIN
1082 -- Developers should put their code to default the record type
1083 -- e.g. IF p_campaign_rec.status_code IS NULL
1084 -- OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1085 -- l_campaign_rec.status_code := 'NEW' ;
1086 -- END IF ;
1087 --
1088 NULL ;
1089 /*
1090 x_cal_crt_rec_rec := p_cal_crt_rec_rec;
1091 IF (p_cal_crt_rec_rec.criteria_enabled IS NULL) THEN
1092 x_cal_crt_rec_rec.criteria_enabled := 'Y';
1093 END IF;
1094 IF p_cal_crt_rec_rec.criteria_deleted IS NULL THEN
1095 x_cal_crt_rec_rec.criteria_enabled := 'N';
1096 END IF;
1097 */
1098 END;
1099
1100 PROCEDURE Validate_Cal_Crt(
1101 p_api_version_number IN NUMBER,
1102 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1103 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1104 p_cal_crt_rec_rec IN cal_crt_rec_rec_type,
1105 p_validation_mode IN VARCHAR2,
1106 x_return_status OUT NOCOPY VARCHAR2,
1107 x_msg_count OUT NOCOPY NUMBER,
1108 x_msg_data OUT NOCOPY VARCHAR2
1109 )
1113 l_object_version_number NUMBER;
1110 IS
1111 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Cal_Crt';
1112 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1114 l_cal_crt_rec_rec cal_crt_rec_rec_type;
1115
1116 BEGIN
1117 -- Standard Start of API savepoint
1118 SAVEPOINT validate_cal_crt_;
1119 -- Standard call to check for call compatibility.
1120 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1121 p_api_version_number,
1122 l_api_name,
1123 G_PKG_NAME)
1124 THEN
1125 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1126 END IF;
1127 -- Initialize message list if p_init_msg_list is set to TRUE.
1128 IF FND_API.to_Boolean( p_init_msg_list )
1129 THEN
1130 FND_MSG_PUB.initialize;
1131 END IF;
1132 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1133 Check_cal_crt_rec_Items(
1134 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
1135 p_validation_mode => p_validation_mode,
1136
1137 x_return_status => x_return_status
1138 );
1139 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1140 RAISE FND_API.G_EXC_ERROR;
1141 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1142 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1143 END IF;
1144 END IF;
1145 IF (AMS_DEBUG_HIGH_ON) THEN
1146
1147 AMS_UTILITY_PVT.debug_message('2');
1148 END IF;
1149 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1150 Default_Cal_Crt_Rec_Items (p_cal_crt_rec_rec => p_cal_crt_rec_rec ,
1151 x_cal_crt_rec_rec => l_cal_crt_rec_rec) ;
1152 END IF ;
1153
1154 IF (AMS_DEBUG_HIGH_ON) THEN
1155 AMS_UTILITY_PVT.debug_message('3');
1156 END IF;
1157
1158 Complete_cal_crt_rec_Rec(
1159 p_cal_crt_rec_rec => p_cal_crt_rec_rec,
1160 x_complete_rec => l_cal_crt_rec_rec
1161 );
1162 IF (AMS_DEBUG_HIGH_ON) THEN
1163
1164 AMS_UTILITY_PVT.debug_message('4');
1165 END IF;
1166
1167 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1168 Validate_cal_crt_rec_Rec(
1169 p_api_version_number => 1.0,
1170 p_init_msg_list => FND_API.G_FALSE,
1171 x_return_status => x_return_status,
1172 x_msg_count => x_msg_count,
1173 x_msg_data => x_msg_data,
1174 p_cal_crt_rec_rec => l_cal_crt_rec_rec);
1175
1176 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1177 RAISE FND_API.G_EXC_ERROR;
1178 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1179 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1180 END IF;
1181 END IF;
1182 IF (AMS_DEBUG_HIGH_ON) THEN
1183
1184 AMS_UTILITY_PVT.debug_message('5');
1185 END IF;
1186 -- Debug Message
1187 IF (AMS_DEBUG_HIGH_ON) THEN
1188
1189 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1190 END IF;
1191
1192 -- Initialize API return status to SUCCESS
1193 x_return_status := FND_API.G_RET_STS_SUCCESS;
1194 -- Debug Message
1195 IF (AMS_DEBUG_HIGH_ON) THEN
1196 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1197 END IF;
1198 -- Standard call to get message count and if count is 1, get message info.
1199 FND_MSG_PUB.Count_And_Get
1200 (p_count => x_msg_count,
1201 p_data => x_msg_data
1202 );
1203 IF (AMS_DEBUG_HIGH_ON) THEN
1204 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'ended fully');
1205 END IF;
1206 EXCEPTION
1207 WHEN AMS_Utility_PVT.resource_locked THEN
1208 x_return_status := FND_API.g_ret_sts_error;
1209 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1210 WHEN FND_API.G_EXC_ERROR THEN
1211 ROLLBACK TO VALIDATE_Cal_Crt_;
1212 x_return_status := FND_API.G_RET_STS_ERROR;
1213 -- Standard call to get message count and if count=1, get the message
1214 FND_MSG_PUB.Count_And_Get (
1215 p_encoded => FND_API.G_FALSE,
1216 p_count => x_msg_count,
1217 p_data => x_msg_data
1218 );
1219 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1220 ROLLBACK TO VALIDATE_Cal_Crt_;
1221 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1222 -- Standard call to get message count and if count=1, get the message
1223 FND_MSG_PUB.Count_And_Get (
1224 p_encoded => FND_API.G_FALSE,
1225 p_count => x_msg_count,
1226 p_data => x_msg_data
1227 );
1228 WHEN OTHERS THEN
1229 ROLLBACK TO VALIDATE_Cal_Crt_;
1230 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1231 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1232 THEN
1233 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1234 END IF;
1235 -- Standard call to get message count and if count=1, get the message
1236 FND_MSG_PUB.Count_And_Get (
1237 p_encoded => FND_API.G_FALSE,
1238 p_count => x_msg_count,
1239 p_data => x_msg_data
1240 );
1241 End Validate_Cal_Crt;
1242
1243 PROCEDURE Validate_Cal_Crt_Rec_Rec (
1244 p_api_version_number IN NUMBER,
1245 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1246 x_return_status OUT NOCOPY VARCHAR2,
1250 )
1247 x_msg_count OUT NOCOPY NUMBER,
1248 x_msg_data OUT NOCOPY VARCHAR2,
1249 p_cal_crt_rec_rec IN cal_crt_rec_rec_type
1251 IS
1252 BEGIN
1253 -- Initialize message list if p_init_msg_list is set to TRUE.
1254 IF FND_API.to_Boolean( p_init_msg_list )
1255 THEN
1256 FND_MSG_PUB.initialize;
1257 END IF;
1258
1259 -- Initialize API return status to SUCCESS
1260 x_return_status := FND_API.G_RET_STS_SUCCESS;
1261 -- Hint: Validate data
1262 -- If data not valid
1263 -- THEN
1264 -- x_return_status := FND_API.G_RET_STS_ERROR;
1265
1266 -- Debug Message
1267 IF (AMS_DEBUG_HIGH_ON) THEN
1268 AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1269 END IF;
1270 -- Standard call to get message count and if count is 1, get message info.
1271 FND_MSG_PUB.Count_And_Get
1272 (p_count => x_msg_count,
1273 p_data => x_msg_data
1274 );
1275 END Validate_cal_crt_rec_Rec;
1276 END AMS_Cal_Crt_PVT;