[Home] [Help]
PACKAGE BODY: APPS.AMS_PRETTY_URL_PVT
Source
1 PACKAGE BODY AMS_PRETTY_URL_PVT AS
2 /* $Header: amsvpurb.pls 120.2 2006/09/06 17:38:19 dbiswas noship $ */
3
4 -- ===============================================================
5 -- Start of Comments
6 -- Package name
7 -- AMS_PRETTY_URL_PVT
8 -- Purpose
9 --
10 -- This package contains all the program units for Pretty URLS
11 --
12 -- History
13 -- 05/25/05 dbiswas created
14 -- NOTE
15 --
16 -- End of Comments
17
18 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_PRETTY_URL_PVT';
19 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvpurb.pls';
20 g_log_level CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
22 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
23
24 --========================================================================
25 -- PROCEDURE
26 -- WRITE_LOG
27 -- Purpose
28 -- This method will be used to write logs for this api
29 -- HISTORY
30 -- 10-Oct-2000 dbiswas Created.
31 --
32 --========================================================================
33
34 PROCEDURE WRITE_LOG ( p_api_name IN VARCHAR2,
35 p_log_message IN VARCHAR2 )
36 IS
37
38 l_api_name VARCHAR2(30);
39 l_log_mesg VARCHAR2(2000);
40 l_return_status VARCHAR2(1);
41 BEGIN
42 l_api_name := p_api_name;
43 l_log_mesg := p_log_message;
44 AMS_Utility_PVT.debug_message (
45 p_log_level => g_log_level,
46 p_module_name => 'ams.plsql.'||'.'|| g_pkg_name||'.'||l_api_name,
47 p_text => p_log_message
48 );
49
50 AMS_Utility_PVT.Create_Log (
51 x_return_status => l_return_status,
52 p_arc_log_used_by => 'PRETTY_URL',
53 p_log_used_by_id => 1,
54 p_msg_data => 'amsvpurb.pls: '||p_log_message,
55 p_msg_type => 'DEBUG'
56 );
57 END WRITE_LOG;
58
59
60 -- ===============================================================
61 -- Start of Comments
62 -- Name
63 -- IS_SYSTEM_URL_UNIQ
64 --
65 -- Purpose
66 -- This procedure
67 --
68 --========================================================================
69
70 Procedure IS_SYSTEM_URL_UNIQ(
71 p_sys_url IN VARCHAR2,
72 p_current_used_by_id IN NUMBER,
73 p_current_used_by_type IN VARCHAR2,
74 x_return_status OUT NOCOPY VARCHAR2
75 )
76 IS
77
78 l_api_name VARCHAR2(30);
79 l_activity_type_code VARCHAR2(30);
80 l_activity_id NUMBER ;
81 l_scheduleName VARCHAR2(240);
82 l_ownerName VARCHAR2(360);
83
84
85 cursor c_is_prettyUrl_supported IS
86 SELECT activity_type_code, activity_id
87 FROM ams_campaign_schedules_b
88 WHERE schedule_id = p_current_used_by_id;
89
90 CURSOR c_is_sysUrl_unique IS
91 SELECT sched.schedule_name, res.full_name
92 FROM ams_pretty_url_assoc assoc,
93 ams_system_pretty_url sysUrl,
94 ams_campaign_schedules_vl sched,
95 ams_jtf_rs_emp_v res
96 WHERE sysUrl.system_url = p_sys_url
97 AND sysUrl.system_url_id = assoc.system_url_id
98 AND assoc.used_by_obj_Id <> p_current_used_by_id
99 AND sched.SCHEDULE_ID = assoc.used_by_obj_id
100 AND res.resource_id = sched.owner_user_id
101 AND sched.status_code in ('SUBMITTED_BA', 'AVAILABLE', 'ACTIVE', 'COMPLETED');
102
103
104 PROCEDURE_NAME CONSTANT VARCHAR2(30) := 'IS_SYSTEM_URL_UNIQ';
105
106 BEGIN
107
108 x_return_status := FND_API.g_ret_sts_success;
109 l_api_name :='IS_SYSTEM_URL_UNIQ';
110 WRITE_LOG(l_api_name, 'Entering AMS_PRETTY_URL_PVT.IS_SYSTEM_URL_UNIQ ');
111
112 IF p_sys_url IS NULL THEN
113 WRITE_LOG(l_api_name, 'System Value entered is null ');
114 RETURN;
115 END IF;
116
117 IF p_current_used_by_type = 'CSCH'
118 THEN
119 OPEN c_is_prettyUrl_supported;
120 FETCH c_is_prettyUrl_supported into l_activity_type_code, l_activity_id ;
121 IF c_is_prettyUrl_supported%NOTFOUND THEN
122 CLOSE c_is_prettyUrl_supported;
123 x_return_status := FND_API.g_ret_sts_error;
124 WRITE_LOG(l_api_name, 'No schedule found with id '||p_current_used_by_id);
125 AMS_Utility_PVT.error_message('AMS_CSCH_NO_MEDIA_TYPE'); -- need to seed message here
126 END IF;
127 CLOSE c_is_prettyUrl_supported;
128
129 IF l_activity_type_code IS NULL THEN
130 WRITE_LOG(l_api_name, 'Activity type code not found for schedule '||p_current_used_by_id);
131 AMS_Utility_PVT.error_message('AMS_CSCH_NO_MEDIA_TYPE');
132 x_return_status := FND_API.g_ret_sts_error;
133 RETURN;
134 END IF;
135
136 IF l_activity_type_code <>'DIRECT_MARKETING'
137 AND l_activity_type_code <> 'BROADCAST'
138 AND l_activity_type_code <> 'PUBLIC_RELATIONS'
139 THEN
140 WRITE_LOG(l_api_name, 'Pretty url is not supported for schedule '||p_current_used_by_id||'. Skipping the rest of the check');
141 x_return_status := FND_API.g_ret_sts_success;
142 RETURN;
143 END IF;
144
145 -- Check if channel not Email, Telemarketing, or if template is Advertising or Public_relations
146 IF (l_activity_type_code ='DIRECT_MARKETING'
147 AND ( l_activity_id <> 20 OR l_activity_id <> 460))
148 OR (l_activity_type_code ='BROADCAST')
149 OR (l_activity_type_code ='PUBLIC_RELATIONS')
150 THEN
151 WRITE_LOG(l_api_name, 'Pretty url is supported for schedule '||p_current_used_by_id);
152 OPEN c_is_sysUrl_unique;
153 FETCH c_is_sysUrl_unique INTO l_scheduleName, l_ownerName;
154 CLOSE c_is_sysUrl_unique;
155
156 IF l_scheduleName is not null
157 THEN
158 WRITE_LOG(l_api_name, p_sys_url||' is also used by ' ||p_current_used_by_id);
159 x_return_status := FND_API.g_ret_sts_error;
160 FND_MESSAGE.set_name('AMS', 'AMS_PRETTY_URL_NOT_UNIQUE_ERR');
161 FND_MESSAGE.set_token('SCHEDULENAME', l_scheduleName);
162 FND_MESSAGE.set_token('OWNER', l_ownerName);
163 FND_MSG_PUB.add;
164 RETURN;
165 END IF;
166 END IF;
167 END IF;
168 WRITE_LOG(l_api_name, 'Exiting is_SYSTEM_URL_UNIQ');
169 END IS_SYSTEM_URL_UNIQ;
170 -- Hint: Primary key needs to be returned.
171 PROCEDURE Create_Pretty_Url(
172 p_api_version_number IN NUMBER,
173 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
174 p_commit IN VARCHAR2 := FND_API.G_FALSE,
175 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
176
177 x_return_status OUT NOCOPY VARCHAR2,
178 x_msg_count OUT NOCOPY NUMBER,
179 x_msg_data OUT NOCOPY VARCHAR2,
180
181 p_pretty_url_rec IN pretty_url_rec_type := g_miss_pretty_url_rec,
182 x_pretty_url_id OUT NOCOPY NUMBER
183 )
184
185 IS
186 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Pretty_Url';
187 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
188 l_return_status_full VARCHAR2(1);
189 l_object_version_number NUMBER := 1;
190 l_org_id NUMBER := FND_API.G_MISS_NUM;
191 l_PRETTY_URL_ID NUMBER;
192 l_dummy NUMBER;
193
194 CURSOR c_id IS
195 SELECT AMS_PRETTY_URL_s.NEXTVAL
196 FROM dual;
197
198 CURSOR c_id_exists (l_id IN NUMBER) IS
199 SELECT 1
200 FROM AMS_PRETTY_URL
201 WHERE PRETTY_URL_ID = l_id;
202
203 BEGIN
204 -- Standard Start of API savepoint
205 SAVEPOINT CREATE_Pretty_Url_PVT;
206
207 -- Standard call to check for call compatibility.
208 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
209 p_api_version_number,
210 l_api_name,
211 G_PKG_NAME)
212 THEN
213 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
214 END IF;
215
216 -- Initialize message list if p_init_msg_list is set to TRUE.
217 IF FND_API.to_Boolean( p_init_msg_list )
218 THEN
219 FND_MSG_PUB.initialize;
220 END IF;
221
222 -- Debug Message
223 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
224
225
226 -- Initialize API return status to SUCCESS
227 x_return_status := FND_API.G_RET_STS_SUCCESS;
228
229 -- Local variable initialization
230
231 IF p_pretty_url_rec.PRETTY_URL_ID IS NULL OR p_pretty_url_rec.PRETTY_URL_ID = FND_API.g_miss_num THEN
232 LOOP
233 l_dummy := NULL;
234 OPEN c_id;
235 FETCH c_id INTO l_PRETTY_URL_ID;
236 CLOSE c_id;
237
238 OPEN c_id_exists(l_PRETTY_URL_ID);
239 FETCH c_id_exists INTO l_dummy;
240 CLOSE c_id_exists;
241 EXIT WHEN l_dummy IS NULL;
242 END LOOP;
243 END IF;
244
245 -- =========================================================================
246 -- Validate Environment
247 -- =========================================================================
248
249 IF FND_GLOBAL.User_Id IS NULL
250 THEN
251 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
252 RAISE FND_API.G_EXC_ERROR;
253 END IF;
254
255 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
256 THEN
257 -- Debug message
258 AMS_UTILITY_PVT.debug_message('Private API: Validate_Pretty_Url');
259
260 -- Invoke validation procedures
261 Validate_pretty_url(
262 p_api_version_number => 1.0,
263 p_init_msg_list => FND_API.G_FALSE,
264 p_validation_level => p_validation_level,
265 p_pretty_url_rec => p_pretty_url_rec,
266 x_return_status => x_return_status,
267 x_msg_count => x_msg_count,
268 x_msg_data => x_msg_data);
269 END IF;
270
271 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
272 RAISE FND_API.G_EXC_ERROR;
273 END IF;
274
275
276 -- Debug Message
277 AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
278
279 -- Invoke table handler(AMS_PRETTY_URL_PKG.Insert_Row)
280 AMS_PRETTY_URL_PKG.Insert_Row(
281 px_pretty_url_id => l_pretty_url_id,
282 p_creation_date => SYSDATE,
283 p_created_by => G_USER_ID,
284 p_last_update_date => SYSDATE,
285 p_last_updated_by => G_USER_ID,
286 p_last_update_login => G_LOGIN_ID,
287 px_object_version_number => l_object_version_number,
288 p_landing_page_url => p_pretty_url_rec.landing_page_url);
289 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
290 RAISE FND_API.G_EXC_ERROR;
291 END IF;
292
293 x_pretty_url_id := l_pretty_url_id;
294 --
295 -- End of API body
296 --
297
298 -- Standard check for p_commit
299 IF FND_API.to_Boolean( p_commit )
300 THEN
301 COMMIT WORK;
302 END IF;
303
304
305 -- Debug Message
306 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
307
308 -- Standard call to get message count and if count is 1, get message info.
309 FND_MSG_PUB.Count_And_Get
310 (p_count => x_msg_count,
311 p_data => x_msg_data
312 );
313 EXCEPTION
314
315 WHEN AMS_Utility_PVT.resource_locked THEN
316 x_return_status := FND_API.g_ret_sts_error;
317 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
318
319 WHEN FND_API.G_EXC_ERROR THEN
320 ROLLBACK TO CREATE_Pretty_Url_PVT;
321 x_return_status := FND_API.G_RET_STS_ERROR;
322 -- Standard call to get message count and if count=1, get the message
323 FND_MSG_PUB.Count_And_Get (
324 p_encoded => FND_API.G_FALSE,
325 p_count => x_msg_count,
326 p_data => x_msg_data
327 );
328
329 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
330 ROLLBACK TO CREATE_Pretty_Url_PVT;
331 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
332 -- Standard call to get message count and if count=1, get the message
333 FND_MSG_PUB.Count_And_Get (
334 p_encoded => FND_API.G_FALSE,
335 p_count => x_msg_count,
336 p_data => x_msg_data
337 );
338
339 WHEN OTHERS THEN
340 ROLLBACK TO CREATE_Pretty_Url_PVT;
341 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
342 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
343 THEN
344 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
345 END IF;
346 -- Standard call to get message count and if count=1, get the message
347 FND_MSG_PUB.Count_And_Get (
348 p_encoded => FND_API.G_FALSE,
349 p_count => x_msg_count,
350 p_data => x_msg_data
351 );
352 End Create_Pretty_Url;
353
354
355 PROCEDURE Update_Pretty_Url(
356 p_api_version_number IN NUMBER,
357 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
358 p_commit IN VARCHAR2 := FND_API.G_FALSE,
359 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
360
361 x_return_status OUT NOCOPY VARCHAR2,
362 x_msg_count OUT NOCOPY NUMBER,
363 x_msg_data OUT NOCOPY VARCHAR2,
364
365 p_pretty_url_rec IN pretty_url_rec_type,
366 x_object_version_number OUT NOCOPY NUMBER
367 )
368
369 IS
370 CURSOR c_get_pretty_url(pretty_url_id NUMBER) IS
371 SELECT *
372 FROM AMS_PRETTY_URL;
373 -- Hint: Developer need to provide Where clause
374 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Pretty_Url';
375 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
376 -- Local Variables
377 l_object_version_number NUMBER;
378 l_PRETTY_URL_ID NUMBER;
379 l_ref_pretty_url_rec c_get_Pretty_Url%ROWTYPE ;
380 l_tar_pretty_url_rec AMS_Pretty_Url_PVT.pretty_url_rec_type := P_pretty_url_rec;
381 l_rowid ROWID;
382
383 BEGIN
384 -- Standard Start of API savepoint
385 SAVEPOINT UPDATE_Pretty_Url_PVT;
386
387 -- Standard call to check for call compatibility.
388 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
389 p_api_version_number,
390 l_api_name,
391 G_PKG_NAME)
392 THEN
393 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
394 END IF;
395
396 -- Initialize message list if p_init_msg_list is set to TRUE.
397 IF FND_API.to_Boolean( p_init_msg_list )
398 THEN
399 FND_MSG_PUB.initialize;
400 END IF;
401
402 -- Debug Message
403 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
404
405
406 -- Initialize API return status to SUCCESS
407 x_return_status := FND_API.G_RET_STS_SUCCESS;
408
409 -- Debug Message
410 AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
411
412 /*
413 OPEN c_get_Pretty_Url( l_tar_pretty_url_rec.pretty_url_id);
414
415 FETCH c_get_Pretty_Url INTO l_ref_pretty_url_rec ;
416
417 If ( c_get_Pretty_Url%NOTFOUND) THEN
418 AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
419 p_token_name => 'INFO',
420 p_token_value => 'Pretty_Url') ;
421 RAISE FND_API.G_EXC_ERROR;
422 END IF;
423 -- Debug Message
424 AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
425 CLOSE c_get_Pretty_Url;
426 */
427
428
429 If (l_tar_pretty_url_rec.object_version_number is NULL or
430 l_tar_pretty_url_rec.object_version_number = FND_API.G_MISS_NUM ) Then
431 AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
432 p_token_name => 'COLUMN',
433 p_token_value => 'Last_Update_Date') ;
434 raise FND_API.G_EXC_ERROR;
435 End if;
436 -- Check Whether record has been changed by someone else
437 If (l_tar_pretty_url_rec.object_version_number <> l_ref_pretty_url_rec.object_version_number) Then
438 AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
439 p_token_name => 'INFO',
440 p_token_value => 'Pretty_Url') ;
441 raise FND_API.G_EXC_ERROR;
442 End if;
443 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
444 THEN
445 -- Debug message
446 AMS_UTILITY_PVT.debug_message('Private API: Validate_Pretty_Url');
447
448 -- Invoke validation procedures
449 Validate_pretty_url(
450 p_api_version_number => 1.0,
451 p_init_msg_list => FND_API.G_FALSE,
452 p_validation_level => p_validation_level,
453 p_pretty_url_rec => p_pretty_url_rec,
454 x_return_status => x_return_status,
455 x_msg_count => x_msg_count,
456 x_msg_data => x_msg_data);
457 END IF;
458
459 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
460 RAISE FND_API.G_EXC_ERROR;
461 END IF;
462
463
464 -- Debug Message
465 AMS_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
466
467 -- Invoke table handler(AMS_PRETTY_URL_PKG.Update_Row)
468 AMS_PRETTY_URL_PKG.Update_Row(
469 p_pretty_url_id => p_pretty_url_rec.pretty_url_id,
470 p_creation_date => SYSDATE,
471 p_created_by => G_USER_ID,
472 p_last_update_date => SYSDATE,
473 p_last_updated_by => G_USER_ID,
474 p_last_update_login => G_LOGIN_ID,
475 p_object_version_number => p_pretty_url_rec.object_version_number,
476 p_landing_page_url => p_pretty_url_rec.landing_page_url);
477 --
478 -- End of API body.
479 --
480
481 -- Standard check for p_commit
482 IF FND_API.to_Boolean( p_commit )
483 THEN
484 COMMIT WORK;
485 END IF;
486
487
488 -- Debug Message
489 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
490
491 -- Standard call to get message count and if count is 1, get message info.
492 FND_MSG_PUB.Count_And_Get
493 (p_count => x_msg_count,
494 p_data => x_msg_data
495 );
496 EXCEPTION
497
498 WHEN AMS_Utility_PVT.resource_locked THEN
499 x_return_status := FND_API.g_ret_sts_error;
500 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
501
502 WHEN FND_API.G_EXC_ERROR THEN
503 ROLLBACK TO UPDATE_Pretty_Url_PVT;
504 x_return_status := FND_API.G_RET_STS_ERROR;
505 -- Standard call to get message count and if count=1, get the message
506 FND_MSG_PUB.Count_And_Get (
507 p_encoded => FND_API.G_FALSE,
508 p_count => x_msg_count,
509 p_data => x_msg_data
510 );
511
512 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
513 ROLLBACK TO UPDATE_Pretty_Url_PVT;
514 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
515 -- Standard call to get message count and if count=1, get the message
516 FND_MSG_PUB.Count_And_Get (
517 p_encoded => FND_API.G_FALSE,
518 p_count => x_msg_count,
519 p_data => x_msg_data
520 );
521
522 WHEN OTHERS THEN
523 ROLLBACK TO UPDATE_Pretty_Url_PVT;
524 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
525 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
526 THEN
527 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
528 END IF;
529 -- Standard call to get message count and if count=1, get the message
530 FND_MSG_PUB.Count_And_Get (
531 p_encoded => FND_API.G_FALSE,
532 p_count => x_msg_count,
533 p_data => x_msg_data
534 );
535 End Update_Pretty_Url;
536
537
538 PROCEDURE Delete_Pretty_Url(
539 p_api_version_number IN NUMBER,
540 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
541 p_commit IN VARCHAR2 := FND_API.G_FALSE,
542 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
543 x_return_status OUT NOCOPY VARCHAR2,
544 x_msg_count OUT NOCOPY NUMBER,
545 x_msg_data OUT NOCOPY VARCHAR2,
546 p_pretty_url_id IN NUMBER,
547 p_object_version_number IN NUMBER
548 )
549
550 IS
551 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Pretty_Url';
552 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
553 l_object_version_number NUMBER;
554
555 BEGIN
556 -- Standard Start of API savepoint
557 SAVEPOINT DELETE_Pretty_Url_PVT;
558
559 -- Standard call to check for call compatibility.
560 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
561 p_api_version_number,
562 l_api_name,
563 G_PKG_NAME)
564 THEN
565 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
566 END IF;
567
568 -- Initialize message list if p_init_msg_list is set to TRUE.
569 IF FND_API.to_Boolean( p_init_msg_list )
570 THEN
571 FND_MSG_PUB.initialize;
572 END IF;
573
574 -- Debug Message
575 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
576
577
578 -- Initialize API return status to SUCCESS
579 x_return_status := FND_API.G_RET_STS_SUCCESS;
580
581 --
582 -- Api body
583 --
584 -- Debug Message
585 AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
586
587 -- Invoke table handler(AMS_PRETTY_URL_PKG.Delete_Row)
588 AMS_PRETTY_URL_PKG.Delete_Row(
589 p_PRETTY_URL_ID => p_PRETTY_URL_ID);
590 --
591 -- End of API body
592 --
593
594 -- Standard check for p_commit
595 IF FND_API.to_Boolean( p_commit )
596 THEN
597 COMMIT WORK;
598 END IF;
599
600
601 -- Debug Message
602 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
603
604 -- Standard call to get message count and if count is 1, get message info.
605 FND_MSG_PUB.Count_And_Get
606 (p_count => x_msg_count,
607 p_data => x_msg_data
608 );
609 EXCEPTION
610
611 WHEN AMS_Utility_PVT.resource_locked THEN
612 x_return_status := FND_API.g_ret_sts_error;
613 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
614
615 WHEN FND_API.G_EXC_ERROR THEN
616 ROLLBACK TO DELETE_Pretty_Url_PVT;
617 x_return_status := FND_API.G_RET_STS_ERROR;
618 -- Standard call to get message count and if count=1, get the message
619 FND_MSG_PUB.Count_And_Get (
620 p_encoded => FND_API.G_FALSE,
621 p_count => x_msg_count,
622 p_data => x_msg_data
623 );
624
625 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
626 ROLLBACK TO DELETE_Pretty_Url_PVT;
627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
628 -- Standard call to get message count and if count=1, get the message
629 FND_MSG_PUB.Count_And_Get (
630 p_encoded => FND_API.G_FALSE,
631 p_count => x_msg_count,
632 p_data => x_msg_data
633 );
634
635 WHEN OTHERS THEN
636 ROLLBACK TO DELETE_Pretty_Url_PVT;
637 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
638 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
639 THEN
640 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
641 END IF;
642 -- Standard call to get message count and if count=1, get the message
643 FND_MSG_PUB.Count_And_Get (
644 p_encoded => FND_API.G_FALSE,
645 p_count => x_msg_count,
646 p_data => x_msg_data
647 );
648 End Delete_Pretty_Url;
649
650
651
652 -- Hint: Primary key needs to be returned.
653 PROCEDURE Lock_Pretty_Url(
654 p_api_version_number IN NUMBER,
655 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
656
657 x_return_status OUT NOCOPY VARCHAR2,
658 x_msg_count OUT NOCOPY NUMBER,
659 x_msg_data OUT NOCOPY VARCHAR2,
660
661 p_pretty_url_id IN NUMBER,
662 p_object_version IN NUMBER
663 )
664
665 IS
666 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Pretty_Url';
667 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
668 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
669 l_PRETTY_URL_ID NUMBER;
670
671 CURSOR c_Pretty_Url IS
672 SELECT PRETTY_URL_ID
673 FROM AMS_PRETTY_URL
674 WHERE PRETTY_URL_ID = p_PRETTY_URL_ID
675 AND object_version_number = p_object_version
676 FOR UPDATE NOWAIT;
677
678 BEGIN
679
680 -- Debug Message
681 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
682
683 -- Initialize message list if p_init_msg_list is set to TRUE.
684 IF FND_API.to_Boolean( p_init_msg_list )
685 THEN
686 FND_MSG_PUB.initialize;
687 END IF;
688
689 -- Standard call to check for call compatibility.
690 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
691 p_api_version_number,
692 l_api_name,
693 G_PKG_NAME)
694 THEN
695 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
696 END IF;
697
698
699 -- Initialize API return status to SUCCESS
700 x_return_status := FND_API.G_RET_STS_SUCCESS;
701
702
703 ------------------------ lock -------------------------
704
705 AMS_Utility_PVT.debug_message(l_full_name||': start');
706 OPEN c_Pretty_Url;
707
708 FETCH c_Pretty_Url INTO l_PRETTY_URL_ID;
709
710 IF (c_Pretty_Url%NOTFOUND) THEN
711 CLOSE c_Pretty_Url;
712 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
713 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
714 FND_MSG_PUB.add;
715 END IF;
716 RAISE FND_API.g_exc_error;
717 END IF;
718
719 CLOSE c_Pretty_Url;
720
721 -------------------- finish --------------------------
722 FND_MSG_PUB.count_and_get(
723 p_encoded => FND_API.g_false,
724 p_count => x_msg_count,
725 p_data => x_msg_data);
726 AMS_Utility_PVT.debug_message(l_full_name ||': end');
727 EXCEPTION
728
729 WHEN AMS_Utility_PVT.resource_locked THEN
730 x_return_status := FND_API.g_ret_sts_error;
731 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
732
733 WHEN FND_API.G_EXC_ERROR THEN
734 ROLLBACK TO LOCK_Pretty_Url_PVT;
735 x_return_status := FND_API.G_RET_STS_ERROR;
736 -- Standard call to get message count and if count=1, get the message
737 FND_MSG_PUB.Count_And_Get (
738 p_encoded => FND_API.G_FALSE,
739 p_count => x_msg_count,
740 p_data => x_msg_data
741 );
742
743 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
744 ROLLBACK TO LOCK_Pretty_Url_PVT;
745 x_return_status := FND_API.G_RET_STS_UNEXP_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 OTHERS THEN
754 ROLLBACK TO LOCK_Pretty_Url_PVT;
755 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
756 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
757 THEN
758 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
759 END IF;
760 -- Standard call to get message count and if count=1, get the message
761 FND_MSG_PUB.Count_And_Get (
762 p_encoded => FND_API.G_FALSE,
763 p_count => x_msg_count,
764 p_data => x_msg_data
765 );
766 End Lock_Pretty_Url;
767
768
769 PROCEDURE check_pretty_url_uk_items(
770 p_pretty_url_rec IN pretty_url_rec_type,
771 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
772 x_return_status OUT NOCOPY VARCHAR2)
773 IS
774 l_valid_flag VARCHAR2(1);
775
776 BEGIN
777 x_return_status := FND_API.g_ret_sts_success;
778 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
779 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
780 'AMS_PRETTY_URL',
781 'PRETTY_URL_ID = ''' || p_pretty_url_rec.PRETTY_URL_ID ||''''
782 );
783 ELSE
784 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
785 'AMS_PRETTY_URL',
786 'PRETTY_URL_ID = ''' || p_pretty_url_rec.PRETTY_URL_ID ||
787 ''' AND PRETTY_URL_ID <> ' || p_pretty_url_rec.PRETTY_URL_ID
788 );
789 END IF;
790
791 IF l_valid_flag = FND_API.g_false THEN
792 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_PRETTY_URL_ID_DUPLICATE');
793 x_return_status := FND_API.g_ret_sts_error;
794 RETURN;
795 END IF;
796
797 END check_pretty_url_uk_items;
798
799 PROCEDURE check_pretty_url_req_items(
800 p_pretty_url_rec IN pretty_url_rec_type,
801 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
802 x_return_status OUT NOCOPY VARCHAR2
803 )
804 IS
805 BEGIN
806 x_return_status := FND_API.g_ret_sts_success;
807
808 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
809
810
811 IF p_pretty_url_rec.pretty_url_id = FND_API.g_miss_num OR p_pretty_url_rec.pretty_url_id IS NULL THEN
812 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_pretty_url_id');
813 x_return_status := FND_API.g_ret_sts_error;
814 RETURN;
815 END IF;
816
817
818 IF p_pretty_url_rec.creation_date = FND_API.g_miss_date OR p_pretty_url_rec.creation_date IS NULL THEN
819 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_creation_date');
820 x_return_status := FND_API.g_ret_sts_error;
821 RETURN;
822 END IF;
823
824
825 IF p_pretty_url_rec.created_by = FND_API.g_miss_num OR p_pretty_url_rec.created_by IS NULL THEN
826 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_created_by');
827 x_return_status := FND_API.g_ret_sts_error;
828 RETURN;
829 END IF;
830
831
832 IF p_pretty_url_rec.last_update_date = FND_API.g_miss_date OR p_pretty_url_rec.last_update_date IS NULL THEN
833 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_last_update_date');
834 x_return_status := FND_API.g_ret_sts_error;
835 RETURN;
836 END IF;
837
838
839 IF p_pretty_url_rec.last_updated_by = FND_API.g_miss_num OR p_pretty_url_rec.last_updated_by IS NULL THEN
840 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_last_updated_by');
841 x_return_status := FND_API.g_ret_sts_error;
842 RETURN;
843 END IF;
844
845
846 IF p_pretty_url_rec.landing_page_url = FND_API.g_miss_char OR p_pretty_url_rec.landing_page_url IS NULL THEN
847 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_landing_page_url');
848 x_return_status := FND_API.g_ret_sts_error;
849 RETURN;
850 END IF;
851 ELSE
852
853
854 IF p_pretty_url_rec.pretty_url_id IS NULL THEN
855 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_pretty_url_id');
856 x_return_status := FND_API.g_ret_sts_error;
857 RETURN;
858 END IF;
859
860
861 IF p_pretty_url_rec.creation_date IS NULL THEN
862 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_creation_date');
863 x_return_status := FND_API.g_ret_sts_error;
864 RETURN;
865 END IF;
866
867
868 IF p_pretty_url_rec.created_by IS NULL THEN
869 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_created_by');
870 x_return_status := FND_API.g_ret_sts_error;
871 RETURN;
872 END IF;
873
874
875 IF p_pretty_url_rec.last_update_date IS NULL THEN
876 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_last_update_date');
877 x_return_status := FND_API.g_ret_sts_error;
878 RETURN;
879 END IF;
880
881
882 IF p_pretty_url_rec.last_updated_by IS NULL THEN
883 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_last_updated_by');
884 x_return_status := FND_API.g_ret_sts_error;
885 RETURN;
886 END IF;
887
888
889 IF p_pretty_url_rec.landing_page_url IS NULL THEN
890 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_pretty_url_NO_landing_page_url');
891 x_return_status := FND_API.g_ret_sts_error;
892 RETURN;
893 END IF;
894 END IF;
895
896 END check_pretty_url_req_items;
897
898 PROCEDURE check_pretty_url_FK_items(
899 p_pretty_url_rec IN pretty_url_rec_type,
900 x_return_status OUT NOCOPY VARCHAR2
901 )
902 IS
903 BEGIN
904 x_return_status := FND_API.g_ret_sts_success;
905
906 -- Enter custom code here
907
908 END check_pretty_url_FK_items;
909
910 PROCEDURE check_pretty_url_Lookup_items(
911 p_pretty_url_rec IN pretty_url_rec_type,
912 x_return_status OUT NOCOPY VARCHAR2
913 )
914 IS
915 BEGIN
916 x_return_status := FND_API.g_ret_sts_success;
917
918 -- Enter custom code here
919
920 END check_pretty_url_Lookup_items;
921
922 PROCEDURE Check_pretty_url_Items (
923 P_pretty_url_rec IN pretty_url_rec_type,
924 p_validation_mode IN VARCHAR2,
925 x_return_status OUT NOCOPY VARCHAR2
926 )
927 IS
928 BEGIN
929
930 -- Check Items Uniqueness API calls
931
932 check_pretty_url_uk_items(
933 p_pretty_url_rec => p_pretty_url_rec,
934 p_validation_mode => p_validation_mode,
935 x_return_status => x_return_status);
936 IF x_return_status <> FND_API.g_ret_sts_success THEN
937 RETURN;
938 END IF;
939
940 -- Check Items Required/NOT NULL API calls
941
942 check_pretty_url_req_items(
943 p_pretty_url_rec => p_pretty_url_rec,
944 p_validation_mode => p_validation_mode,
945 x_return_status => x_return_status);
946 IF x_return_status <> FND_API.g_ret_sts_success THEN
947 RETURN;
948 END IF;
949 -- Check Items Foreign Keys API calls
950
951 check_pretty_url_FK_items(
952 p_pretty_url_rec => p_pretty_url_rec,
953 x_return_status => x_return_status);
954 IF x_return_status <> FND_API.g_ret_sts_success THEN
955 RETURN;
956 END IF;
957 -- Check Items Lookups
958
959 check_pretty_url_Lookup_items(
960 p_pretty_url_rec => p_pretty_url_rec,
961 x_return_status => x_return_status);
962 IF x_return_status <> FND_API.g_ret_sts_success THEN
963 RETURN;
964 END IF;
965
966 END Check_pretty_url_Items;
967
968
969 PROCEDURE Complete_pretty_url_Rec (
970 p_pretty_url_rec IN pretty_url_rec_type,
971 x_complete_rec OUT NOCOPY pretty_url_rec_type)
972 IS
973 l_return_status VARCHAR2(1);
974
975 CURSOR c_complete IS
976 SELECT *
977 FROM ams_pretty_url
978 WHERE pretty_url_id = p_pretty_url_rec.pretty_url_id;
979 l_pretty_url_rec c_complete%ROWTYPE;
980 BEGIN
981 x_complete_rec := p_pretty_url_rec;
982
983
984 OPEN c_complete;
985 FETCH c_complete INTO l_pretty_url_rec;
986 CLOSE c_complete;
987
988 -- pretty_url_id
989 IF p_pretty_url_rec.pretty_url_id = FND_API.g_miss_num THEN
990 x_complete_rec.pretty_url_id := l_pretty_url_rec.pretty_url_id;
991 END IF;
992
993 -- creation_date
994 IF p_pretty_url_rec.creation_date = FND_API.g_miss_date THEN
995 x_complete_rec.creation_date := l_pretty_url_rec.creation_date;
996 END IF;
997
998 -- created_by
999 IF p_pretty_url_rec.created_by = FND_API.g_miss_num THEN
1000 x_complete_rec.created_by := l_pretty_url_rec.created_by;
1001 END IF;
1002
1003 -- last_update_date
1004 IF p_pretty_url_rec.last_update_date = FND_API.g_miss_date THEN
1005 x_complete_rec.last_update_date := l_pretty_url_rec.last_update_date;
1006 END IF;
1007
1008 -- last_updated_by
1009 IF p_pretty_url_rec.last_updated_by = FND_API.g_miss_num THEN
1010 x_complete_rec.last_updated_by := l_pretty_url_rec.last_updated_by;
1011 END IF;
1012
1013 -- last_update_login
1014 IF p_pretty_url_rec.last_update_login = FND_API.g_miss_num THEN
1015 x_complete_rec.last_update_login := l_pretty_url_rec.last_update_login;
1016 END IF;
1017
1018 -- object_version_number
1019 IF p_pretty_url_rec.object_version_number = FND_API.g_miss_num THEN
1020 x_complete_rec.object_version_number := l_pretty_url_rec.object_version_number;
1021 END IF;
1022
1023 -- landing_page_url
1024 IF p_pretty_url_rec.landing_page_url = FND_API.g_miss_char THEN
1025 x_complete_rec.landing_page_url := l_pretty_url_rec.landing_page_url;
1026 END IF;
1027 -- Note: Developers need to modify the procedure
1028 -- to handle any business specific requirements.
1029 END Complete_pretty_url_Rec;
1030 PROCEDURE Validate_pretty_url(
1031 p_api_version_number IN NUMBER,
1032 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1033 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1034 p_pretty_url_rec IN pretty_url_rec_type,
1035 x_return_status OUT NOCOPY VARCHAR2,
1036 x_msg_count OUT NOCOPY NUMBER,
1037 x_msg_data OUT NOCOPY VARCHAR2
1038 )
1039 IS
1040 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Pretty_Url';
1041 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1042 l_object_version_number NUMBER;
1043 l_pretty_url_rec AMS_Pretty_Url_PVT.pretty_url_rec_type;
1044
1045 BEGIN
1046 -- Standard Start of API savepoint
1047 SAVEPOINT VALIDATE_Pretty_Url_;
1048
1049 -- Standard call to check for call compatibility.
1050 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1051 p_api_version_number,
1052 l_api_name,
1053 G_PKG_NAME)
1054 THEN
1055 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1056 END IF;
1057
1058 -- Initialize message list if p_init_msg_list is set to TRUE.
1059 IF FND_API.to_Boolean( p_init_msg_list )
1060 THEN
1061 FND_MSG_PUB.initialize;
1062 END IF;
1063 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1064 Check_pretty_url_Items(
1065 p_pretty_url_rec => p_pretty_url_rec,
1066 p_validation_mode => JTF_PLSQL_API.g_update,
1067 x_return_status => x_return_status
1068 );
1069
1070 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1071 RAISE FND_API.G_EXC_ERROR;
1072 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1073 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1074 END IF;
1075 END IF;
1076
1077 Complete_pretty_url_Rec(
1078 p_pretty_url_rec => p_pretty_url_rec,
1079 x_complete_rec => l_pretty_url_rec
1080 );
1081
1082 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1083 Validate_pretty_url_Rec(
1084 p_api_version_number => 1.0,
1085 p_init_msg_list => FND_API.G_FALSE,
1086 x_return_status => x_return_status,
1087 x_msg_count => x_msg_count,
1088 x_msg_data => x_msg_data,
1089 p_pretty_url_rec => l_pretty_url_rec);
1090
1091 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1092 RAISE FND_API.G_EXC_ERROR;
1093 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1094 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1095 END IF;
1096 END IF;
1097
1098
1099 -- Debug Message
1100 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1101
1102
1103 -- Initialize API return status to SUCCESS
1104 x_return_status := FND_API.G_RET_STS_SUCCESS;
1105
1106
1107 -- Debug Message
1108 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1109
1110 -- Standard call to get message count and if count is 1, get message info.
1111 FND_MSG_PUB.Count_And_Get
1112 (p_count => x_msg_count,
1113 p_data => x_msg_data
1114 );
1115 EXCEPTION
1116
1117 WHEN AMS_Utility_PVT.resource_locked THEN
1118 x_return_status := FND_API.g_ret_sts_error;
1119 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1120
1121 WHEN FND_API.G_EXC_ERROR THEN
1122 ROLLBACK TO VALIDATE_Pretty_Url_;
1123 x_return_status := FND_API.G_RET_STS_ERROR;
1124 -- Standard call to get message count and if count=1, get the message
1125 FND_MSG_PUB.Count_And_Get (
1126 p_encoded => FND_API.G_FALSE,
1127 p_count => x_msg_count,
1128 p_data => x_msg_data
1129 );
1130
1131 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1132 ROLLBACK TO VALIDATE_Pretty_Url_;
1133 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1134 -- Standard call to get message count and if count=1, get the message
1135 FND_MSG_PUB.Count_And_Get (
1136 p_encoded => FND_API.G_FALSE,
1137 p_count => x_msg_count,
1138 p_data => x_msg_data
1139 );
1140
1141 WHEN OTHERS THEN
1142 ROLLBACK TO VALIDATE_Pretty_Url_;
1143 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1144 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1145 THEN
1146 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1147 END IF;
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 End Validate_Pretty_Url;
1155
1156
1157 PROCEDURE Validate_pretty_url_rec(
1158 p_api_version_number IN NUMBER,
1159 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1160 x_return_status OUT NOCOPY VARCHAR2,
1161 x_msg_count OUT NOCOPY NUMBER,
1162 x_msg_data OUT NOCOPY VARCHAR2,
1163 p_pretty_url_rec IN pretty_url_rec_type
1164 )
1165 IS
1166 BEGIN
1167 -- Initialize message list if p_init_msg_list is set to TRUE.
1168 IF FND_API.to_Boolean( p_init_msg_list )
1169 THEN
1170 FND_MSG_PUB.initialize;
1171 END IF;
1172
1173 -- Initialize API return status to SUCCESS
1174 x_return_status := FND_API.G_RET_STS_SUCCESS;
1175
1176 -- Hint: Validate data
1177 -- If data not valid
1178 -- THEN
1179 -- x_return_status := FND_API.G_RET_STS_ERROR;
1180
1181 -- Debug Message
1182 AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1183 -- Standard call to get message count and if count is 1, get message info.
1184 FND_MSG_PUB.Count_And_Get
1185 (p_count => x_msg_count,
1186 p_data => x_msg_data
1187 );
1188 END Validate_pretty_url_Rec;
1189
1190 --========================================================================
1191 -- PROCEDURE
1192 -- CHECK_PU_MANDATORY_FIELDS
1193 --
1194 -- PURPOSE
1195 -- This api is created to be used for validating pretty url mandatory fields during
1196 -- schedule status changes.
1197 --
1198 -- HISTORY
1199 -- 30-Aug-2006 dbiswas Created.
1200 --========================================================================
1201
1202 PROCEDURE CHECK_PU_MANDATORY_FIELDS(
1203 p_pretty_url_rec IN pretty_url_rec_type,
1204 x_return_status OUT NOCOPY VARCHAR2
1205 )
1206
1207 IS
1208 l_api_name VARCHAR2(30) := 'CHECK_PU_MANDATORY_FIELDS';
1209 BEGIN
1210 x_return_status := FND_API.g_ret_sts_success;
1211
1212
1213 IF p_pretty_url_rec.pretty_url_id = FND_API.g_miss_num OR p_pretty_url_rec.pretty_url_id IS NULL THEN
1214 WRITE_LOG(l_api_name, 'Pretty Url Id not found');
1215 --AMS_Utility_PVT.error_message('AMS_pretty_url_NO_pretty_url_id'); -- need to seed message here
1216 x_return_status := FND_API.g_ret_sts_error;
1217 FND_MESSAGE.set_name('AMS', 'AMS_pretty_url_NO_pretty_url_id');
1218 FND_MSG_PUB.add;
1219 RETURN;
1220 END IF;
1221
1222 IF p_pretty_url_rec.landing_page_url = FND_API.g_miss_char OR p_pretty_url_rec.landing_page_url IS NULL THEN
1223 WRITE_LOG(l_api_name, 'Landing page Url not found');
1224 --AMS_Utility_PVT.Error_Message('AMS_REQ_FIELDS_NOT_MAPPED');
1225 x_return_status := FND_API.g_ret_sts_error;
1226 FND_MESSAGE.set_name('AMS', 'AMS_PU_REQ_FIELDS_NOT_MAPPED');
1227 FND_MSG_PUB.add;
1228 RETURN;
1229 END IF;
1230
1231 END CHECK_PU_MANDATORY_FIELDS;
1232
1233
1234 END AMS_PRETTY_URL_PVT;