[Home] [Help]
PACKAGE BODY: APPS.AMS_LIST_QUERY_PVT
Source
1 PACKAGE BODY AMS_List_Query_PVT as
2 /* $Header: amsvliqb.pls 120.1 2005/09/20 05:50:34 aanjaria noship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_List_Query_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15
16
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMS_List_Query_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvliqb.pls';
19
20
21 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
22 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
23 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
24
25 PROCEDURE Complete_list_query_Rec (
26 P_list_query_rec IN list_query_rec_type,
27 x_complete_rec OUT NOCOPY list_query_rec_type
28 ) ;
29 PROCEDURE Complete_List_Query_Rec_tbl(
30 p_listquery_rec IN list_query_rec_type_tbl ,
31 x_complete_rec OUT NOCOPY list_query_rec_type_tbl
32 );
33 -- Hint: Primary key needs to be returned.
34 PROCEDURE Create_List_Query(
35 p_api_version_number IN NUMBER,
36 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
37 p_commit IN VARCHAR2 := FND_API.G_FALSE,
38 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39 x_return_status OUT NOCOPY VARCHAR2,
40 x_msg_count OUT NOCOPY NUMBER,
41 x_msg_data OUT NOCOPY VARCHAR2,
42 p_list_query_rec IN list_query_rec_type := g_miss_list_query_rec,
43 x_list_query_id OUT NOCOPY NUMBER
44 )
45
46 IS
47 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_List_Query';
48 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
49 l_return_status_full VARCHAR2(1);
50 l_object_version_number NUMBER := 1;
51 l_org_id NUMBER := FND_API.G_MISS_NUM;
52 l_LIST_QUERY_ID NUMBER;
53 l_parent_list_query_id number;
54 l_dummy NUMBER;
55
56 CURSOR c_id IS
57 SELECT AMS_LIST_QUERIES_ALL_s.NEXTVAL
58 FROM dual;
59
60 CURSOR c_id_exists (l_id IN NUMBER) IS
61 SELECT 1 FROM dual
62 WHERE EXISTS (SELECT 1 FROM AMS_LIST_QUERIES_ALL
63 WHERE LIST_QUERY_ID = l_id);
64
65 BEGIN
66 -- Standard Start of API savepoint
67 SAVEPOINT CREATE_List_Query_PVT;
68
69 -- Standard call to check for call compatibility.
70 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
71 p_api_version_number,
72 l_api_name,
73 G_PKG_NAME)
74 THEN
75 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76 END IF;
77
78 -- Initialize message list if p_init_msg_list is set to TRUE.
79 IF FND_API.to_Boolean( p_init_msg_list )
80 THEN
81 FND_MSG_PUB.initialize;
82 END IF;
83
84 -- Debug Message
85 IF (AMS_DEBUG_HIGH_ON) THEN
86
87 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
88 END IF;
89 -- Initialize API return status to SUCCESS
90 x_return_status := FND_API.G_RET_STS_SUCCESS;
91
92 -- Local variable initialization
93
94 IF p_list_query_rec.LIST_QUERY_ID IS NULL OR p_list_query_rec.LIST_QUERY_ID = FND_API.g_miss_num THEN
95 LOOP
96 l_dummy := NULL;
97 OPEN c_id;
98 FETCH c_id INTO l_LIST_QUERY_ID;
99 CLOSE c_id;
100
101 OPEN c_id_exists(l_LIST_QUERY_ID);
102 FETCH c_id_exists INTO l_dummy;
103 CLOSE c_id_exists;
104 EXIT WHEN l_dummy IS NULL;
105 END LOOP;
106 END IF;
107
108 -- =========================================================================
109 -- Validate Environment
110 -- =========================================================================
111
112 IF FND_GLOBAL.User_Id IS NULL
113 THEN
114 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
115 RAISE FND_API.G_EXC_ERROR;
116 END IF;
117
118 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
119 THEN
120 -- Debug message
121 IF (AMS_DEBUG_HIGH_ON) THEN
122
123 AMS_UTILITY_PVT.debug_message('Private API: Validate_List_Query');
124 END IF;
125
126 -- Invoke validation procedures
127 Validate_list_query(
128 p_api_version_number => 1.0,
129 p_init_msg_list => FND_API.G_FALSE,
130 p_validation_level => p_validation_level,
131 p_list_query_rec => p_list_query_rec,
132 x_return_status => x_return_status,
133 x_msg_count => x_msg_count,
134 x_msg_data => x_msg_data);
135 END IF;
136
137 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
138 RAISE FND_API.G_EXC_ERROR;
139 END IF;
140
141
142 -- Debug Message
143 if (p_list_query_rec.parent_list_query_id is null or
144 p_list_query_rec.parent_list_query_id = FND_API.g_miss_num )then
145 l_parent_list_query_id := l_list_query_id;
146 else
147 l_parent_list_query_id := p_list_query_rec.parent_list_query_id;
148 end if;
149 IF (AMS_DEBUG_HIGH_ON) THEN
150
151 AMS_UTILITY_PVT.debug_message( 'Private API: Call create table handler');
152 END IF;
153 -- Invoke table handler(AMS_LIST_QUERIES_PKG.Insert_Row)
154 AMS_LIST_QUERIES_PKG.Insert_Row(
155 px_list_query_id => l_list_query_id,
156 p_last_update_date => SYSDATE,
157 p_last_updated_by => FND_GLOBAL.USER_ID,
158 p_creation_date => SYSDATE,
159 p_created_by => FND_GLOBAL.USER_ID,
160 p_last_update_login => FND_GLOBAL.CONC_LOGIN_ID,
161 px_object_version_number => l_object_version_number,
162 p_name => p_list_query_rec.name,
163 p_type => p_list_query_rec.type,
164 p_enabled_flag => p_list_query_rec.enabled_flag,
165 p_primary_key => p_list_query_rec.primary_key,
166 p_source_object_name => p_list_query_rec.source_object_name,
167 p_public_flag => p_list_query_rec.public_flag,
168 px_org_id => l_org_id,
169 p_comments => p_list_query_rec.comments,
170 p_act_list_query_used_by_id
171 => p_list_query_rec.act_list_query_used_by_id,
172 p_arc_act_list_query_used_by
173 => p_list_query_rec.arc_act_list_query_used_by,
174 p_sql_string => p_list_query_rec.sql_string,
175 p_parent_list_query_id => l_parent_list_query_id,
176 p_sequence_order => p_list_query_rec.sequence_order);
177 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
178 RAISE FND_API.G_EXC_ERROR;
179 END IF;
180
181 x_list_query_id := l_list_query_id;
182 --
183 -- End of API body
184 --
185
186 -- Standard check for p_commit
187 IF FND_API.to_Boolean( p_commit )
188 THEN
189 COMMIT WORK;
190 END IF;
191
192
193 -- Debug Message
194 IF (AMS_DEBUG_HIGH_ON) THEN
195
196 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
197 END IF;
198
199 -- Standard call to get message count and if count is 1, get message info.
200 FND_MSG_PUB.Count_And_Get
201 (p_count => x_msg_count,
202 p_data => x_msg_data
203 );
204 EXCEPTION
205
206 WHEN AMS_Utility_PVT.resource_locked THEN
207 x_return_status := FND_API.g_ret_sts_error;
208 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
209
210 WHEN FND_API.G_EXC_ERROR THEN
211 ROLLBACK TO CREATE_List_Query_PVT;
212 x_return_status := FND_API.G_RET_STS_ERROR;
213 -- Standard call to get message count and if count=1, get the message
214 FND_MSG_PUB.Count_And_Get (
215 p_encoded => FND_API.G_FALSE,
216 p_count => x_msg_count,
217 p_data => x_msg_data
218 );
219
220 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
221 ROLLBACK TO CREATE_List_Query_PVT;
222 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
223 -- Standard call to get message count and if count=1, get the message
224 FND_MSG_PUB.Count_And_Get (
225 p_encoded => FND_API.G_FALSE,
226 p_count => x_msg_count,
227 p_data => x_msg_data
228 );
229
230 WHEN OTHERS THEN
231 ROLLBACK TO CREATE_List_Query_PVT;
232 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
233 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
234 THEN
235 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
236 END IF;
237 -- Standard call to get message count and if count=1, get the message
238 FND_MSG_PUB.Count_And_Get (
239 p_encoded => FND_API.G_FALSE,
240 p_count => x_msg_count,
241 p_data => x_msg_data
242 );
243 End Create_List_Query;
244
245
246 PROCEDURE Create_List_Query(
247 p_api_version_number IN NUMBER,
248 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
249 p_commit IN VARCHAR2 := FND_API.G_FALSE,
250 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
251 x_return_status OUT NOCOPY VARCHAR2,
252 x_msg_count OUT NOCOPY NUMBER,
253 x_msg_data OUT NOCOPY VARCHAR2,
254 p_list_query_rec_tbl IN list_query_rec_type_tbl ,
255 p_sql_string_tbl in sql_string_tbl ,
256 x_parent_list_query_id OUT NOCOPY NUMBER
257 ) is
258 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_List_Query_tbl';
259 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
260 l_list_query_rec list_query_rec_type;
261 l_list_query_id number;
262 begin
263 x_parent_list_query_id := FND_API.g_miss_num;
264 -- Standard Start of API savepoint
265 SAVEPOINT CREATE_List_Query_PVT_TBL;
266
267 -- Standard call to check for call compatibility.
268 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
269 p_api_version_number,
270 l_api_name,
271 G_PKG_NAME)
272 THEN
273 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274 END IF;
275
276 -- Initialize message list if p_init_msg_list is set to TRUE.
277 IF FND_API.to_Boolean( p_init_msg_list )
278 THEN
279 FND_MSG_PUB.initialize;
280 END IF;
281
282 -- Debug Message
283 IF (AMS_DEBUG_HIGH_ON) THEN
284
285 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
286 END IF;
287 -- Initialize API return status to SUCCESS
288 x_return_status := FND_API.G_RET_STS_SUCCESS;
289
290 -- Local variable initialization
291
292 -- =========================================================================
293 -- Validate Environment
294 -- =========================================================================
295
296 IF FND_GLOBAL.User_Id IS NULL
297 THEN
298 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
299 RAISE FND_API.G_EXC_ERROR;
300 END IF;
301
302 for i in 1 .. p_sql_string_tbl.last
303 loop
304
305 l_list_query_rec.LIST_QUERY_ID := p_list_query_rec_tbl.LIST_QUERY_ID;
306 l_list_query_rec.LAST_UPDATE_DATE := p_list_query_rec_tbl.LAST_UPDATE_DATE;
307 l_list_query_rec.LAST_UPDATED_BY := p_list_query_rec_tbl.LAST_UPDATED_BY;
308 l_list_query_rec.CREATION_DATE := p_list_query_rec_tbl.CREATION_DATE;
309 l_list_query_rec.CREATED_BY := p_list_query_rec_tbl.CREATED_BY;
310 l_list_query_rec.LAST_UPDATE_LOGIN := p_list_query_rec_tbl.LAST_UPDATE_LOGIN;
311 l_list_query_rec.OBJECT_VERSION_NUMBER := p_list_query_rec_tbl.OBJECT_VERSION_NUMBER;
312 l_list_query_rec.NAME := p_list_query_rec_tbl.NAME;
313 l_list_query_rec.TYPE := p_list_query_rec_tbl.TYPE;
314 l_list_query_rec.ENABLED_FLAG := p_list_query_rec_tbl.ENABLED_FLAG;
315 l_list_query_rec.PRIMARY_KEY := p_list_query_rec_tbl.PRIMARY_KEY;
316 l_list_query_rec.PUBLIC_FLAG := p_list_query_rec_tbl.PUBLIC_FLAG;
317 l_list_query_rec.ORG_ID := p_list_query_rec_tbl.ORG_ID;
318 l_list_query_rec.COMMENTS := p_list_query_rec_tbl.COMMENTS;
319 l_list_query_rec.ACT_LIST_QUERY_USED_BY_ID :=
320 p_list_query_rec_tbl.ACT_LIST_QUERY_USED_BY_ID;
321 l_list_query_rec.ARC_ACT_LIST_QUERY_USED_BY :=
322 p_list_query_rec_tbl.ARC_ACT_LIST_QUERY_USED_BY;
323 l_list_query_rec.SEED_FLAG := p_list_query_rec_tbl.SEED_FLAG;
324 l_list_query_rec.SQL_STRING :=
325 p_sql_string_tbl(i);
326 l_list_query_rec.SOURCE_OBJECT_NAME :=
327 p_list_query_rec_tbl.SOURCE_OBJECT_NAME;
328 l_list_query_rec.PARENT_LIST_QUERY_ID := x_parent_list_query_id ;
329 l_list_query_rec.SEQUENCE_ORDER := i;
330 --IF (AMS_DEBUG_HIGH_ON) THENAMS_UTILITY_PVT.debug_message( 'Private API: Call create Query - Child');END IF;
331 -- Invoke table handler(AMS_LIST_QUERIES_PKG.Insert_Row)
332 Create_List_Query(
333 p_api_version_number => p_api_version_number,
334 p_init_msg_list => p_init_msg_list,
335 p_commit => p_commit ,
336 p_validation_level => p_validation_level ,
337 x_return_status => x_return_status ,
338 x_msg_count => x_msg_count ,
339 x_msg_data => x_msg_data ,
340 p_list_query_rec => l_list_query_rec ,
341 x_list_query_id => l_list_query_id
342 );
343 if i = 1 then
344 x_parent_list_query_id := l_list_query_id;
345 end if;
346
347 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
348 RAISE FND_API.G_EXC_ERROR;
349 END IF;
350 --
351 end loop;
352 --
353 -- End of API body
354 --
355
356 -- Standard check for p_commit
357 IF FND_API.to_Boolean( p_commit )
358 THEN
359 COMMIT WORK;
360 END IF;
361
362
363 -- Debug Message
364 IF (AMS_DEBUG_HIGH_ON) THEN
365
366 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
367 END IF;
368
369 -- Standard call to get message count and if count is 1, get message info.
370 FND_MSG_PUB.Count_And_Get
371 (p_count => x_msg_count,
372 p_data => x_msg_data
373 );
374 EXCEPTION
375
376 WHEN AMS_Utility_PVT.resource_locked THEN
377 x_return_status := FND_API.g_ret_sts_error;
378 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
379
380 WHEN FND_API.G_EXC_ERROR THEN
381 ROLLBACK TO CREATE_List_Query_PVT_TBL;
382 x_return_status := FND_API.G_RET_STS_ERROR;
386 p_count => x_msg_count,
383 -- Standard call to get message count and if count=1, get the message
384 FND_MSG_PUB.Count_And_Get (
385 p_encoded => FND_API.G_FALSE,
387 p_data => x_msg_data
388 );
389
390 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
391 ROLLBACK TO CREATE_List_Query_PVT_TBL;
392 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
393 -- Standard call to get message count and if count=1, get the message
394 FND_MSG_PUB.Count_And_Get (
395 p_encoded => FND_API.G_FALSE,
396 p_count => x_msg_count,
397 p_data => x_msg_data
398 );
399
400 WHEN OTHERS THEN
401 ROLLBACK TO CREATE_List_Query_PVT_TBL;
402 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
403 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
404 THEN
405 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
406 END IF;
407 -- Standard call to get message count and if count=1, get the message
408 FND_MSG_PUB.Count_And_Get (
409 p_encoded => FND_API.G_FALSE,
410 p_count => x_msg_count,
411 p_data => x_msg_data
412 );
413 end create_list_query;
414
415 PROCEDURE Create_List_Query(
416 p_api_version_number IN NUMBER,
417 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
418 p_commit IN VARCHAR2 := FND_API.G_FALSE,
419 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
420 x_return_status OUT NOCOPY VARCHAR2,
421 x_msg_count OUT NOCOPY NUMBER,
422 x_msg_data OUT NOCOPY VARCHAR2,
423 p_list_query_rec_tbl IN list_query_rec_type_tbl ,--:= g_miss_list_query_tbl ,
424 p_sql_string_tbl in sql_string_tbl ,
425 p_query_param in sql_string_tbl ,
426 x_parent_list_query_id OUT NOCOPY NUMBER
427 ) is
428 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_List_Query_tbl';
429 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
430 l_list_query_rec list_query_rec_type;
431 l_list_query_id number;
432 l_parent_list_query_id number;
433 l_return_status VARCHAR2(2000);
434 l_msg_count NUMBER;
435 l_msg_data VARCHAR2(2000);
436 begin
437 x_parent_list_query_id := FND_API.g_miss_num;
438 -- Standard Start of API savepoint
439 SAVEPOINT CREATE_List_Query_PVT_TBL_;
440
441 -- Standard call to check for call compatibility.
442 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
443 p_api_version_number,
444 l_api_name,
445 G_PKG_NAME)
446 THEN
447 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
448 END IF;
449
450 -- Initialize message list if p_init_msg_list is set to TRUE.
451 IF FND_API.to_Boolean( p_init_msg_list )
452 THEN
453 FND_MSG_PUB.initialize;
454 END IF;
455
456 -- Debug Message
457 IF (AMS_DEBUG_HIGH_ON) THEN
458
459 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
460 END IF;
461 -- Initialize API return status to SUCCESS
462 x_return_status := FND_API.G_RET_STS_SUCCESS;
463
464 -- Local variable initialization
465
466 -- =========================================================================
467 -- Validate Environment
468 -- =========================================================================
469
470 IF FND_GLOBAL.User_Id IS NULL
471 THEN
472 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
473 RAISE FND_API.G_EXC_ERROR;
474 END IF;
475
476 Create_List_Query(
477 p_api_version_number => p_api_version_number ,
478 p_init_msg_list => p_init_msg_list ,
479 p_commit => p_commit ,
480 p_validation_level => p_validation_level ,
481 x_return_status => l_return_status ,
482 x_msg_count => l_msg_count ,
483 x_msg_data => l_msg_data ,
484 p_list_query_rec_tbl => p_list_query_rec_tbl ,
485 p_sql_string_tbl => p_sql_string_tbl ,
486 x_parent_list_query_id => l_parent_list_query_id
487 ) ;
488 x_return_status := l_return_status ;
489 x_msg_count := l_msg_count ;
490 x_msg_data := l_msg_data ;
491 x_parent_list_query_id := l_parent_list_query_id ;
492 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
493 RAISE FND_API.G_EXC_ERROR;
494 END IF;
495 update ams_list_queries_all set parameterized_flag = 'Y'
496 where parent_list_query_id = l_parent_list_query_id;
497 delete from ams_list_queries_param
498 where list_query_id = l_parent_list_query_id ;
499 FOR I in p_query_param.first .. p_query_param.last
500 loop
501 INSERT INTO AMS_LIST_QUERIES_PARAM(
502 LIST_QUERY_PARAM_ID ,
503 LIST_QUERY_ID ,
504 LAST_UPDATE_DATE ,
508 LAST_UPDATE_LOGIN ,
505 LAST_UPDATED_BY ,
506 CREATION_DATE ,
507 CREATED_BY ,
509 OBJECT_VERSION_NUMBER ,
510 PARAMETER_ORDER ,
511 PARAMETER_VALUE
512 )
513 VALUES (
514 AMS_LIST_QUERIES_PARAM_S.NEXTVAL
515 ,l_parent_list_query_id
516 ,SYSDATE
517 ,FND_GLOBAL.User_Id
518 ,SYSDATE
519 ,FND_GLOBAL.User_Id
520 ,FND_GLOBAL.Conc_Login_Id
521 ,1
522 ,i
523 , p_query_param(i)
524 ) ;
525 end loop;
526 --
527 --
528 -- End of API body
529 --
530
531 -- Standard check for p_commit
532 IF FND_API.to_Boolean( p_commit )
533 THEN
534 COMMIT WORK;
535 END IF;
536
537
538 -- Debug Message
539 IF (AMS_DEBUG_HIGH_ON) THEN
540
541 AMS_UTILITY_PVT.debug_message('Private 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 CREATE_List_Query_PVT_TBL_;
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 CREATE_List_Query_PVT_TBL_;
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 CREATE_List_Query_PVT_TBL_;
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 end ;
589
590
591 PROCEDURE Update_List_Query(
592 p_api_version_number IN NUMBER,
593 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
594 p_commit IN VARCHAR2 := FND_API.G_FALSE,
595 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
596 x_return_status OUT NOCOPY VARCHAR2,
597 x_msg_count OUT NOCOPY NUMBER,
598 x_msg_data OUT NOCOPY VARCHAR2,
599 p_list_query_rec IN list_query_rec_type,
600 x_object_version_number OUT NOCOPY NUMBER
601 )
602
603 IS
604
605 CURSOR c_get_list_query(list_query_id NUMBER) IS
606 SELECT *
607 FROM AMS_LIST_QUERIES_ALL
608 WHERE list_query_id = p_list_query_rec.list_query_id;
609
610 -- Hint: Developer need to provide Where clause
611
612 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_List_Query';
613 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
614 -- Local Variables
615 l_object_version_number NUMBER;
616 l_LIST_QUERY_ID NUMBER;
617 l_ref_list_query_rec c_get_List_Query%ROWTYPE ;
618 l_tar_list_query_rec AMS_List_Query_PVT.list_query_rec_type := P_list_query_rec;
619 l_list_query_rec AMS_List_Query_PVT.list_query_rec_type := P_list_query_rec;
620 l_rowid ROWID;
621
622 BEGIN
623 -- Standard Start of API savepoint
624 SAVEPOINT UPDATE_List_Query_PVT;
625
626 -- Standard call to check for call compatibility.
627 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
628 p_api_version_number,
629 l_api_name,
630 G_PKG_NAME)
631 THEN
632 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
633 END IF;
634
635 -- Initialize message list if p_init_msg_list is set to TRUE.
636 IF FND_API.to_Boolean( p_init_msg_list )
637 THEN
638 FND_MSG_PUB.initialize;
639 END IF;
640
641 -- Debug Message
642 IF (AMS_DEBUG_HIGH_ON) THEN
643
644 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
645 END IF;
646
647
648 -- Initialize API return status to SUCCESS
649 x_return_status := FND_API.G_RET_STS_SUCCESS;
653
650
651 -- Debug Message
652 --IF (AMS_DEBUG_HIGH_ON) THENAMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');END IF;
654
655 OPEN c_get_List_Query( l_tar_list_query_rec.list_query_id);
656
657 FETCH c_get_List_Query INTO l_ref_list_query_rec ;
658
659 IF ( c_get_List_Query%NOTFOUND) THEN
660 AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
661 p_token_name => 'INFO',
662 p_token_value => 'List_Query') ;
663 RAISE FND_API.G_EXC_ERROR;
664 END IF;
665 -- Debug Message
666 IF (AMS_DEBUG_HIGH_ON) THEN
667
668 AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
669 END IF;
670 CLOSE c_get_List_Query;
671
672
673 IF (l_tar_list_query_rec.object_version_number is NULL or
674 l_tar_list_query_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
675 AMS_Utility_PVT.Error_Message(p_message_name
676 => 'API_VERSION_MISSING',
677 p_token_name => 'COLUMN',
678 p_token_value
679 => 'Object_version Number') ;
680 raise FND_API.G_EXC_ERROR;
681 END IF;
682
683 -- Check Whether record has been changed by someone else
684 IF (l_tar_list_query_rec.object_version_number <> l_ref_list_query_rec.object_version_number) THEN
685 AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
686 p_token_name => 'INFO',
687 p_token_value => 'List_Query') ;
688 raise FND_API.G_EXC_ERROR;
689 END IF;
690
691 Complete_list_query_Rec(
692 p_list_query_rec => p_list_query_rec,
693 x_complete_rec => l_list_query_rec
694 );
695 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
696 THEN
697 -- Debug message
698 IF (AMS_DEBUG_HIGH_ON) THEN
699
700 AMS_UTILITY_PVT.debug_message('Private API: Validate_List_Query');
701 END IF;
702
703 -- Invoke validation procedures
704 Validate_list_query(
705 p_api_version_number => 1.0,
706 p_init_msg_list => FND_API.G_FALSE,
707 p_validation_level => p_validation_level,
708 p_list_query_rec => l_list_query_rec,
709 x_return_status => x_return_status,
710 x_msg_count => x_msg_count,
711 x_msg_data => x_msg_data);
712 END IF;
713
714 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
715 RAISE FND_API.G_EXC_ERROR;
716 END IF;
717
718
719 -- Debug Message
720 -- IF (AMS_DEBUG_HIGH_ON) THEN AMS_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler'); END IF;
721
722
723 -- Invoke table handler(AMS_LIST_QUERIES_PKG.Update_Row)
724 AMS_LIST_QUERIES_PKG.Update_Row(
725 p_list_query_id => l_list_query_rec.list_query_id,
726 p_last_update_date => SYSDATE,
727 p_last_updated_by => FND_GLOBAL.USER_ID,
728 p_creation_date => l_list_query_rec.creation_date,
729 p_created_by => l_list_query_rec.created_by,
730 p_last_update_login => FND_GLOBAL.CONC_LOGIN_ID,
731 p_object_version_number => l_list_query_rec.object_version_number,
732 p_name => l_list_query_rec.name,
733 p_type => l_list_query_rec.type,
734 p_enabled_flag => l_list_query_rec.enabled_flag,
735 p_primary_key => l_list_query_rec.primary_key,
736 p_source_object_name => l_list_query_rec.source_object_name,
737 p_public_flag => l_list_query_rec.public_flag,
738 p_org_id => l_list_query_rec.org_id,
739 p_comments => l_list_query_rec.comments,
740 p_act_list_query_used_by_id =>
741 l_list_query_rec.act_list_query_used_by_id,
742 p_arc_act_list_query_used_by =>
743 l_list_query_rec.arc_act_list_query_used_by,
744 p_sql_string => l_list_query_rec.sql_string,
745 p_parent_list_query_id => p_list_query_rec.parent_list_query_id,
746 p_sequence_order => p_list_query_rec.sequence_order);
747 --
748 -- End of API body.
749 --
750 -- Standard check for p_commit
751 IF FND_API.to_Boolean( p_commit )
752 THEN
753 COMMIT WORK;
754 END IF;
755
756 --Set object version number
757 x_object_version_number:=l_list_query_rec.object_version_number+1;
758
759
760 -- Debug Message
761 IF (AMS_DEBUG_HIGH_ON) THEN
762
763 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
764 END IF;
765
766 -- Standard call to get message count and if count is 1, get message info.
767 FND_MSG_PUB.Count_And_Get
768 (p_count => x_msg_count,
769 p_data => x_msg_data
770 );
774 x_return_status := FND_API.g_ret_sts_error;
771 EXCEPTION
772
773 WHEN AMS_Utility_PVT.resource_locked THEN
775 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
776
777 WHEN FND_API.G_EXC_ERROR THEN
778 ROLLBACK TO UPDATE_List_Query_PVT;
779 x_return_status := FND_API.G_RET_STS_ERROR;
780 -- Standard call to get message count and if count=1, get the message
781 FND_MSG_PUB.Count_And_Get (
782 p_encoded => FND_API.G_FALSE,
783 p_count => x_msg_count,
784 p_data => x_msg_data
785 );
786
787 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
788 ROLLBACK TO UPDATE_List_Query_PVT;
789 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
790 -- Standard call to get message count and if count=1, get the message
791 FND_MSG_PUB.Count_And_Get (
792 p_encoded => FND_API.G_FALSE,
793 p_count => x_msg_count,
794 p_data => x_msg_data
795 );
796
797 WHEN OTHERS THEN
798 ROLLBACK TO UPDATE_List_Query_PVT;
799 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
800 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
801 THEN
802 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
803 END IF;
804 -- Standard call to get message count and if count=1, get the message
805 FND_MSG_PUB.Count_And_Get (
806 p_encoded => FND_API.G_FALSE,
807 p_count => x_msg_count,
808 p_data => x_msg_data
809 );
810 End Update_List_Query;
811 PROCEDURE Update_List_Query(
812 p_api_version_number IN NUMBER,
813 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
814 p_commit IN VARCHAR2 := FND_API.G_FALSE,
815 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
816 x_return_status OUT NOCOPY VARCHAR2,
817 x_msg_count OUT NOCOPY NUMBER,
818 x_msg_data OUT NOCOPY VARCHAR2,
819 p_list_query_rec_tbl IN list_query_rec_type_tbl,
820 p_sql_string_tbl in sql_string_tbl ,
821 x_object_version_number OUT NOCOPY NUMBER
822 ) is
823
824
825 CURSOR c_get_list_query IS
826 SELECT *
827 FROM AMS_LIST_QUERIES_ALL
828 WHERE list_query_id = p_list_query_rec_tbl.parent_list_query_id;
829 cursor c_get_list_count is
830 SELECT count(1)
831 FROM AMS_LIST_QUERIES_ALL
832 WHERE parent_list_query_id = p_list_query_rec_tbl.parent_list_query_id;
833
834 -- Hint: Developer need to provide Where clause
835
836 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_List_Query_tbl';
837 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
838 -- Local Variables
839 l_object_version_number NUMBER;
840 l_LIST_QUERY_ID NUMBER;
841 l_list_query_temp number;
842 l_list_query_rec AMS_List_Query_PVT.list_query_rec_type ;
843 l_list_query_rec_tbl AMS_List_Query_PVT.list_query_rec_type_tbl ;
844 l_rowid ROWID;
845 l_no_of_records number;
846 l_no_of_records_upd number;
847 l_parent_list_query_id number;
848 cursor c_get_query_id (cur_parent_query_id number,
849 cur_sequence_order number) is
850 select list_query_id ,object_version_number
851 from ams_list_queries_all
852 where parent_list_query_id = cur_parent_query_id
853 and sequence_order = cur_sequence_order ;
854
855 cursor c_query(cur_parent_query_id number) is
856 select query --sql_string column is obsolete bug 4604653
857 from ams_list_queries_all
858 where parent_list_query_id = cur_parent_query_id;
859 l_sql_string varchar2(4000);
860 l_sql_string_tbl AMS_List_Query_PVT.sql_string_tbl ;
861 j number:=0 ;
862 BEGIN
863 -- Standard Start of API savepoint
864 SAVEPOINT UPDATE_List_Query_PVT_TBL;
865
866 -- Standard call to check for call compatibility.
867 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
868 p_api_version_number,
869 l_api_name,
870 G_PKG_NAME)
871 THEN
872 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
873 END IF;
874
875 -- Initialize message list if p_init_msg_list is set to TRUE.
876 IF FND_API.to_Boolean( p_init_msg_list )
877 THEN
878 FND_MSG_PUB.initialize;
879 END IF;
880
881 -- Debug Message
882 IF (AMS_DEBUG_HIGH_ON) THEN
883
884 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
885 END IF;
886
887
888 -- Initialize API return status to SUCCESS
889 x_return_status := FND_API.G_RET_STS_SUCCESS;
890
891 -- Debug Message
892 --IF (AMS_DEBUG_HIGH_ON) THENAMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');END IF;
893
894
895 IF (AMS_DEBUG_HIGH_ON) THEN
896
897
898
899
900
901 AMS_UTILITY_PVT.debug_message('parent list header id'
902 || p_list_query_rec_tbl.PARENT_LIST_QUERY_ID );
903
904
905 END IF;
909 IF (AMS_DEBUG_HIGH_ON) THEN
906 if p_list_query_rec_tbl.PARENT_LIST_QUERY_ID is null
907 or p_list_query_rec_tbl.PARENT_LIST_QUERY_ID = FND_API.G_MISS_NUM then
908 --gjoby Add proper message name
910
911 AMS_UTILITY_PVT.debug_message('Please Provide parent list header id' );
912 END IF;
913 x_return_status := FND_API.g_ret_sts_error;
914 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
915 end if;
916
917 open c_get_list_count ;
918 fetch c_get_list_count into l_no_of_records ;
919 close c_get_list_count ;
920
921 Complete_list_query_Rec_tbl (
922 p_list_query_rec_tbl,
923 l_list_query_rec_tbl
924 );
925
926 if p_sql_string_tbl.count = 0 then
927 open c_query(p_list_query_rec_tbl.parent_list_query_id) ;
928 loop
929 fetch c_query into l_sql_string;
930 exit when c_query%notfound;
931 j := j+1;
932 l_sql_string_tbl(j) := l_sql_string;
933 end loop;
934 close c_query;
935 else
936 for j in 1 .. p_sql_string_tbl.last
937 loop
938 l_sql_string_tbl(j) := p_sql_string_tbl(j);
939 end loop;
940 end if;
941 for i in 1 .. l_sql_string_tbl.last
942 loop
943 l_list_query_rec.LIST_QUERY_ID := l_list_query_rec_tbl.LIST_QUERY_ID;
944 l_list_query_rec.LAST_UPDATE_DATE := l_list_query_rec_tbl.LAST_UPDATE_DATE;
945 l_list_query_rec.LAST_UPDATED_BY := l_list_query_rec_tbl.LAST_UPDATED_BY;
946 l_list_query_rec.CREATION_DATE := l_list_query_rec_tbl.CREATION_DATE;
947 l_list_query_rec.CREATED_BY := l_list_query_rec_tbl.CREATED_BY;
948 l_list_query_rec.LAST_UPDATE_LOGIN := l_list_query_rec_tbl.LAST_UPDATE_LOGIN;
949 l_list_query_rec.OBJECT_VERSION_NUMBER := l_list_query_rec_tbl.OBJECT_VERSION_NUMBER;
950 l_list_query_rec.NAME := l_list_query_rec_tbl.NAME;
951 l_list_query_rec.TYPE := l_list_query_rec_tbl.TYPE;
952 l_list_query_rec.ENABLED_FLAG := l_list_query_rec_tbl.ENABLED_FLAG;
953 l_list_query_rec.PRIMARY_KEY := l_list_query_rec_tbl.PRIMARY_KEY;
954 l_list_query_rec.PUBLIC_FLAG := l_list_query_rec_tbl.PUBLIC_FLAG;
955 l_list_query_rec.ORG_ID := l_list_query_rec_tbl.ORG_ID;
956 l_list_query_rec.COMMENTS := l_list_query_rec_tbl.COMMENTS;
957 l_list_query_rec.ACT_LIST_QUERY_USED_BY_ID :=
958 l_list_query_rec_tbl.ACT_LIST_QUERY_USED_BY_ID;
959 l_list_query_rec.ARC_ACT_LIST_QUERY_USED_BY :=
960 l_list_query_rec_tbl.ARC_ACT_LIST_QUERY_USED_BY;
961 l_list_query_rec.SEED_FLAG := l_list_query_rec_tbl.SEED_FLAG;
962 l_list_query_rec.SQL_STRING :=
963 l_sql_string_tbl(i);
964 l_list_query_rec.SOURCE_OBJECT_NAME :=
965 l_list_query_rec_tbl.SOURCE_OBJECT_NAME;
966 l_list_query_rec.PARENT_LIST_QUERY_ID := l_list_query_rec_tbl.PARENT_LIST_QUERY_ID ;
967 l_list_query_rec.SEQUENCE_ORDER := i;
968 IF (AMS_DEBUG_HIGH_ON) THEN
969
970 AMS_UTILITY_PVT.debug_message( 'Private API: Child->' || i || '<-'
971 || '->' || l_no_of_records|| '<-');
972 END IF;
973 if i > l_no_of_records then
974 --IF (AMS_DEBUG_HIGH_ON) THENAMS_UTILITY_PVT.debug_message( 'Private API: Create Child->' || i || '<-');END IF;
975 l_list_query_rec.LIST_QUERY_ID := '';
976 Create_List_Query(
977 p_api_version_number => p_api_version_number,
978 p_init_msg_list => p_init_msg_list,
979 p_commit => p_commit ,
980 p_validation_level => p_validation_level ,
981 x_return_status => x_return_status ,
982 x_msg_count => x_msg_count ,
983 x_msg_data => x_msg_data ,
984 p_list_query_rec => l_list_query_rec ,
985 x_list_query_id => l_list_query_id
986 );
987 else
988 IF (AMS_DEBUG_HIGH_ON) THEN
989
990 AMS_UTILITY_PVT.debug_message( '->' || l_list_query_rec.sequence_order || '<-');
991 END IF;
992 open c_get_query_id (l_list_query_rec.parent_list_query_id,
993 l_list_query_rec.sequence_order);
994 fetch c_get_query_id into l_list_query_rec.list_query_id,
995 l_list_query_rec.object_version_number;
996 IF (AMS_DEBUG_HIGH_ON) THEN
997
998 AMS_UTILITY_PVT.debug_message( '->' || l_list_query_rec.list_query_id || '<-');
999 END IF;
1000
1001 Update_List_Query(
1002 p_api_version_number => p_api_version_number,
1003 p_init_msg_list => p_init_msg_list,
1004 p_commit => p_commit ,
1005 p_validation_level => p_validation_level ,
1006 x_return_status => x_return_status ,
1007 x_msg_count => x_msg_count ,
1008 x_msg_data => x_msg_data ,
1012 IF (AMS_DEBUG_HIGH_ON) THEN
1009 p_list_query_rec => l_list_query_rec ,
1010 x_object_version_number => l_object_version_number
1011 );
1013
1014 AMS_UTILITY_PVT.debug_message( '->' || x_return_status || '<-');
1015 END IF;
1016 close c_get_query_id ;
1017
1018 end if;
1019 if i = 1 then
1020 l_parent_list_query_id := l_list_query_rec.parent_list_query_id;
1021 end if;
1022
1023 l_no_of_records_upd := i;
1024 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
1025 RAISE FND_API.G_EXC_ERROR;
1026 END IF;
1027 end loop;
1028 IF (AMS_DEBUG_HIGH_ON) THEN
1029
1030 AMS_UTILITY_PVT.debug_message( '->' || l_no_of_records_upd || '<-');
1031 END IF;
1032 IF (AMS_DEBUG_HIGH_ON) THEN
1033
1034 AMS_UTILITY_PVT.debug_message( '->' || l_parent_list_query_id || '<-');
1035 END IF;
1036 delete from ams_list_queries_all
1037 where parent_list_query_id = l_parent_list_query_id
1038 and sequence_order > l_no_of_records_upd ;
1039
1040
1041 -- End of API body.
1042 --
1043 -- Standard check for p_commit
1044 IF FND_API.to_Boolean( p_commit )
1045 THEN
1046 COMMIT WORK;
1047 END IF;
1048
1049
1050 -- Debug Message
1051 IF (AMS_DEBUG_HIGH_ON) THEN
1052
1053 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1054 END IF;
1055
1056 -- Standard call to get message count and if count is 1, get message info.
1057 FND_MSG_PUB.Count_And_Get
1058 (p_count => x_msg_count,
1059 p_data => x_msg_data
1060 );
1061 EXCEPTION
1062
1063 WHEN AMS_Utility_PVT.resource_locked THEN
1064 x_return_status := FND_API.g_ret_sts_error;
1065 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1066
1067 WHEN FND_API.G_EXC_ERROR THEN
1068 ROLLBACK TO UPDATE_List_Query_PVT_tbl;
1069 x_return_status := FND_API.G_RET_STS_ERROR;
1070 -- Standard call to get message count and if count=1, get the message
1071 FND_MSG_PUB.Count_And_Get (
1072 p_encoded => FND_API.G_FALSE,
1073 p_count => x_msg_count,
1074 p_data => x_msg_data
1075 );
1076
1077 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1078 ROLLBACK TO UPDATE_List_Query_PVT_tbl;
1079 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1080 -- Standard call to get message count and if count=1, get the message
1081 FND_MSG_PUB.Count_And_Get (
1082 p_encoded => FND_API.G_FALSE,
1083 p_count => x_msg_count,
1084 p_data => x_msg_data
1085 );
1086
1087 WHEN OTHERS THEN
1088 ROLLBACK TO UPDATE_List_Query_PVT_tbl;
1089 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1090 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1091 THEN
1092 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1093 END IF;
1094 -- Standard call to get message count and if count=1, get the message
1095 FND_MSG_PUB.Count_And_Get (
1096 p_encoded => FND_API.G_FALSE,
1097 p_count => x_msg_count,
1098 p_data => x_msg_data
1099 );
1100 END Update_List_Query;
1101
1102
1103
1104 PROCEDURE Delete_List_Query(
1105 p_api_version_number IN NUMBER,
1106 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1107 p_commit IN VARCHAR2 := FND_API.G_FALSE,
1108 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1109 x_return_status OUT NOCOPY VARCHAR2,
1110 x_msg_count OUT NOCOPY NUMBER,
1111 x_msg_data OUT NOCOPY VARCHAR2,
1112 p_list_query_id IN NUMBER,
1113 p_object_version_number IN NUMBER
1114 )
1115
1116 IS
1117 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_List_Query';
1118 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1119 l_object_version_number NUMBER;
1120
1121 BEGIN
1122 -- Standard Start of API savepoint
1123 SAVEPOINT DELETE_List_Query_PVT;
1124
1125 -- Standard call to check for call compatibility.
1126 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1127 p_api_version_number,
1128 l_api_name,
1129 G_PKG_NAME)
1130 THEN
1131 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1132 END IF;
1133
1134 -- Initialize message list if p_init_msg_list is set to TRUE.
1135 IF FND_API.to_Boolean( p_init_msg_list )
1136 THEN
1137 FND_MSG_PUB.initialize;
1138 END IF;
1139
1140 -- Debug Message
1141 IF (AMS_DEBUG_HIGH_ON) THEN
1142
1143 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1144 END IF;
1145
1146
1147 -- Initialize API return status to SUCCESS
1151 -- Api body
1148 x_return_status := FND_API.G_RET_STS_SUCCESS;
1149
1150 --
1152 --
1153 -- Debug Message
1154 IF (AMS_DEBUG_HIGH_ON) THEN
1155
1156 AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
1157 END IF;
1158
1159 -- Invoke table handler(AMS_LIST_QUERIES_PKG.Delete_Row)
1160 AMS_LIST_QUERIES_PKG.Delete_Row(
1161 p_LIST_QUERY_ID => p_LIST_QUERY_ID);
1162 --
1163 -- End of API body
1164 --
1165
1166 -- Standard check for p_commit
1167 IF FND_API.to_Boolean( p_commit )
1168 THEN
1169 COMMIT WORK;
1170 END IF;
1171
1172
1173 -- Debug Message
1174 IF (AMS_DEBUG_HIGH_ON) THEN
1175
1176 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1177 END IF;
1178
1179 -- Standard call to get message count and if count is 1, get message info.
1180 FND_MSG_PUB.Count_And_Get
1181 (p_count => x_msg_count,
1182 p_data => x_msg_data
1183 );
1184 EXCEPTION
1185
1186 WHEN AMS_Utility_PVT.resource_locked THEN
1187 x_return_status := FND_API.g_ret_sts_error;
1188 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1189
1190 WHEN FND_API.G_EXC_ERROR THEN
1191 ROLLBACK TO DELETE_List_Query_PVT;
1192 x_return_status := FND_API.G_RET_STS_ERROR;
1193 -- Standard call to get message count and if count=1, get the message
1194 FND_MSG_PUB.Count_And_Get (
1195 p_encoded => FND_API.G_FALSE,
1196 p_count => x_msg_count,
1197 p_data => x_msg_data
1198 );
1199
1200 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1201 ROLLBACK TO DELETE_List_Query_PVT;
1202 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1203 -- Standard call to get message count and if count=1, get the message
1204 FND_MSG_PUB.Count_And_Get (
1205 p_encoded => FND_API.G_FALSE,
1206 p_count => x_msg_count,
1207 p_data => x_msg_data
1208 );
1209
1210 WHEN OTHERS THEN
1211 ROLLBACK TO DELETE_List_Query_PVT;
1212 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1213 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1214 THEN
1215 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1216 END IF;
1217 -- Standard call to get message count and if count=1, get the message
1218 FND_MSG_PUB.Count_And_Get (
1219 p_encoded => FND_API.G_FALSE,
1220 p_count => x_msg_count,
1221 p_data => x_msg_data
1222 );
1223 End Delete_List_Query;
1224
1225 PROCEDURE Delete_parent_List_Query(
1226 p_api_version_number IN NUMBER,
1227 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1228 p_commit IN VARCHAR2 := FND_API.G_FALSE,
1229 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1230 x_return_status OUT NOCOPY VARCHAR2,
1231 x_msg_count OUT NOCOPY NUMBER,
1232 x_msg_data OUT NOCOPY VARCHAR2,
1233 p_parent_list_query_id IN NUMBER,
1234 p_object_version_number IN NUMBER
1235 ) is
1236 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_List_Query';
1237 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1238 l_object_version_number NUMBER;
1239
1240 cursor c_get_child_ids
1241 is select list_query_id
1242 from ams_list_queries_all
1243 where parent_list_query_id = p_parent_list_query_id ;
1244 l_list_query_id number;
1245
1246 BEGIN
1247 -- Standard Start of API savepoint
1248 SAVEPOINT DELETE_List_Query_PVT_tbl;
1249
1250 -- Standard call to check for call compatibility.
1251 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1252 p_api_version_number,
1253 l_api_name,
1254 G_PKG_NAME)
1255 THEN
1256 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1257 END IF;
1258
1259 -- Initialize message list if p_init_msg_list is set to TRUE.
1260 IF FND_API.to_Boolean( p_init_msg_list )
1261 THEN
1262 FND_MSG_PUB.initialize;
1263 END IF;
1264
1265 -- Debug Message
1266 IF (AMS_DEBUG_HIGH_ON) THEN
1267
1268 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1269 END IF;
1270
1271
1272 -- Initialize API return status to SUCCESS
1273 x_return_status := FND_API.G_RET_STS_SUCCESS;
1274
1275 --
1276 -- Api body
1277 --
1278 -- Debug Message
1279 IF (AMS_DEBUG_HIGH_ON) THEN
1280
1281 AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
1282 END IF;
1283
1284 open c_get_child_ids;
1285 loop
1286 fetch c_get_child_ids into l_list_query_id ;
1287 exit when c_get_child_ids%notfound;
1288 -- Invoke table handler(AMS_LIST_QUERIES_PKG.Delete_Row)
1289 AMS_LIST_QUERIES_PKG.Delete_Row(
1293 -- End of API body
1290 p_LIST_QUERY_ID => l_LIST_QUERY_ID);
1291 end loop;
1292 --
1294 --
1295
1296 -- Standard check for p_commit
1297 IF FND_API.to_Boolean( p_commit )
1298 THEN
1299 COMMIT WORK;
1300 END IF;
1301
1302
1303 -- Debug Message
1304 IF (AMS_DEBUG_HIGH_ON) THEN
1305
1306 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1307 END IF;
1308
1309 -- Standard call to get message count and if count is 1, get message info.
1310 FND_MSG_PUB.Count_And_Get
1311 (p_count => x_msg_count,
1312 p_data => x_msg_data
1313 );
1314 EXCEPTION
1315
1316 WHEN AMS_Utility_PVT.resource_locked THEN
1317 x_return_status := FND_API.g_ret_sts_error;
1318 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1319
1320 WHEN FND_API.G_EXC_ERROR THEN
1321 ROLLBACK TO DELETE_List_Query_PVT_tbl;
1322 x_return_status := FND_API.G_RET_STS_ERROR;
1323 -- Standard call to get message count and if count=1, get the message
1324 FND_MSG_PUB.Count_And_Get (
1325 p_encoded => FND_API.G_FALSE,
1326 p_count => x_msg_count,
1327 p_data => x_msg_data
1328 );
1329
1330 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1331 ROLLBACK TO DELETE_List_Query_PVT_tbl;
1332 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1333 -- Standard call to get message count and if count=1, get the message
1334 FND_MSG_PUB.Count_And_Get (
1335 p_encoded => FND_API.G_FALSE,
1336 p_count => x_msg_count,
1337 p_data => x_msg_data
1338 );
1339
1340 WHEN OTHERS THEN
1341 ROLLBACK TO DELETE_List_Query_PVT_tbl;
1342 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1343 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1344 THEN
1345 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1346 END IF;
1347 -- Standard call to get message count and if count=1, get the message
1348 FND_MSG_PUB.Count_And_Get (
1349 p_encoded => FND_API.G_FALSE,
1350 p_count => x_msg_count,
1351 p_data => x_msg_data
1352 );
1353 END Delete_parent_List_Query;
1354
1355
1356
1357
1358 -- Hint: Primary key needs to be returned.
1359 PROCEDURE Lock_List_Query(
1360 p_api_version_number IN NUMBER,
1361 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1362
1363 x_return_status OUT NOCOPY VARCHAR2,
1364 x_msg_count OUT NOCOPY NUMBER,
1365 x_msg_data OUT NOCOPY VARCHAR2,
1366
1367 p_list_query_id IN NUMBER,
1368 p_object_version IN NUMBER
1369 )
1370
1371 IS
1372 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_List_Query';
1373 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1374 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1375 l_LIST_QUERY_ID NUMBER;
1376
1377 CURSOR c_List_Query IS
1378 SELECT LIST_QUERY_ID
1379 FROM AMS_LIST_QUERIES_ALL
1380 WHERE LIST_QUERY_ID = p_LIST_QUERY_ID
1381 AND object_version_number = p_object_version
1382 FOR UPDATE NOWAIT;
1383
1384 BEGIN
1385
1386 -- Debug Message
1387 IF (AMS_DEBUG_HIGH_ON) THEN
1388
1389 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1390 END IF;
1391
1392 -- Initialize message list if p_init_msg_list is set to TRUE.
1393 IF FND_API.to_Boolean( p_init_msg_list )
1394 THEN
1395 FND_MSG_PUB.initialize;
1396 END IF;
1397
1398 -- Standard call to check for call compatibility.
1399 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1400 p_api_version_number,
1401 l_api_name,
1402 G_PKG_NAME)
1403 THEN
1404 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1405 END IF;
1406
1407
1408 -- Initialize API return status to SUCCESS
1409 x_return_status := FND_API.G_RET_STS_SUCCESS;
1410
1411
1412 ------------------------ lock -------------------------
1413
1414 IF (AMS_DEBUG_HIGH_ON) THEN
1415
1416
1417
1418 AMS_Utility_PVT.debug_message(l_full_name||': start');
1419
1420 END IF;
1421 OPEN c_List_Query;
1422
1423 FETCH c_List_Query INTO l_LIST_QUERY_ID;
1424
1425 IF (c_List_Query%NOTFOUND) THEN
1426 CLOSE c_List_Query;
1427 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1428 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1429 FND_MSG_PUB.add;
1430 END IF;
1431 RAISE FND_API.g_exc_error;
1432 END IF;
1433
1434 CLOSE c_List_Query;
1435
1436 -------------------- finish --------------------------
1437 FND_MSG_PUB.count_and_get(
1438 p_encoded => FND_API.g_false,
1439 p_count => x_msg_count,
1440 p_data => x_msg_data);
1441 IF (AMS_DEBUG_HIGH_ON) THEN
1442
1446
1443 AMS_Utility_PVT.debug_message(l_full_name ||': end');
1444 END IF;
1445 EXCEPTION
1447 WHEN AMS_Utility_PVT.resource_locked THEN
1448 x_return_status := FND_API.g_ret_sts_error;
1449 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1450
1451 WHEN FND_API.G_EXC_ERROR THEN
1452 ROLLBACK TO LOCK_List_Query_PVT;
1453 x_return_status := FND_API.G_RET_STS_ERROR;
1454 -- Standard call to get message count and if count=1, get the message
1455 FND_MSG_PUB.Count_And_Get (
1456 p_encoded => FND_API.G_FALSE,
1457 p_count => x_msg_count,
1458 p_data => x_msg_data
1459 );
1460
1461 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1462 ROLLBACK TO LOCK_List_Query_PVT;
1463 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1464 -- Standard call to get message count and if count=1, get the message
1465 FND_MSG_PUB.Count_And_Get (
1466 p_encoded => FND_API.G_FALSE,
1467 p_count => x_msg_count,
1468 p_data => x_msg_data
1469 );
1470
1471 WHEN OTHERS THEN
1472 ROLLBACK TO LOCK_List_Query_PVT;
1473 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1474 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1475 THEN
1476 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1477 END IF;
1478 -- Standard call to get message count and if count=1, get the message
1479 FND_MSG_PUB.Count_And_Get (
1480 p_encoded => FND_API.G_FALSE,
1481 p_count => x_msg_count,
1482 p_data => x_msg_data
1483 );
1484 End Lock_List_Query;
1485
1486
1487 PROCEDURE check_list_query_uk_items(
1488 p_list_query_rec IN list_query_rec_type,
1489 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
1490 x_return_status OUT NOCOPY VARCHAR2)
1491 IS
1492 l_valid_flag VARCHAR2(1);
1493
1494 --changed vbhandar 03/22/2005 to fix FTS performance issue.Also created index see case change 4115572 bugs
1495 cursor c_check_name
1496 is select FND_API.g_FALSE
1497 from ams_list_queries_vl
1498 where ( parent_list_query_id <> p_list_query_rec.parent_list_query_id
1499 or (parent_list_query_id is null
1500 and list_query_id <> p_list_query_rec.list_query_id ))
1501 and name = p_list_query_rec.name ;
1502 BEGIN
1503 x_return_status := FND_API.g_ret_sts_success;
1504
1505 -- check for uniqueness of id
1506 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1507 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
1508 'AMS_LIST_QUERIES_ALL',
1509 'LIST_QUERY_ID = ''' || p_list_query_rec.LIST_QUERY_ID ||''''
1510 );
1511 END IF;
1512
1513 IF l_valid_flag = FND_API.g_false THEN
1514 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_LIST_QUERY_ID_DUPLICATE');
1515 x_return_status := FND_API.g_ret_sts_error;
1516 RETURN;
1517 END IF;
1518
1519 -- check for uniqueness of name
1520
1521 l_valid_flag := FND_API.g_true ;
1522 open c_check_name;
1523 fetch c_check_name into l_valid_flag;
1524 close c_check_name;
1525
1526
1527 IF l_valid_flag = FND_API.g_false THEN
1528 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1529
1530 IF (AMS_DEBUG_HIGH_ON) THEN
1531
1532
1533
1534 AMS_UTILITY_PVT.debug_message('parent id: ' || p_list_query_rec.parent_list_query_id );
1535
1536 END IF;
1537 FND_MESSAGE.set_name('AMS', 'AMS_LIST_QUERY_DUPE_NAME');
1538 FND_MSG_PUB.add;
1539 END IF;
1540 x_return_status := FND_API.g_ret_sts_error;
1541 RETURN;
1542 END IF;
1543
1544 END check_list_query_uk_items;
1545
1546 PROCEDURE check_list_query_req_items(
1547 p_list_query_rec IN list_query_rec_type,
1548 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
1549 x_return_status OUT NOCOPY VARCHAR2
1550 )
1551 IS
1552 BEGIN
1553 x_return_status := FND_API.g_ret_sts_success;
1554
1555 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1556
1557 IF p_list_query_rec.name = FND_API.g_miss_char OR p_list_query_rec.name IS NULL THEN
1558 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_name');
1559 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1560 FND_MESSAGE.Set_Name('AMS', 'AMS_LIST_QUERY_NO_NAME');
1561 FND_MSG_PUB.Add;
1562 END IF;
1563 x_return_status := FND_API.g_ret_sts_error;
1564 RETURN;
1565 END IF;
1566
1567
1568 /*
1569 IF p_list_query_rec.act_list_query_used_by_id = FND_API.g_miss_num OR p_list_query_rec.act_list_query_used_by_id IS NULL THEN
1570 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_act_list_query_used_by_id');
1571 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1572 FND_MESSAGE.Set_Name('AMS', 'AMS_LIST_QUERY_NO_USEDBY_ID');
1573 FND_MSG_PUB.Add;
1574 END IF;
1575 x_return_status := FND_API.g_ret_sts_error;
1576 RETURN;
1577 END IF;
1578
1579
1580
1584 FND_MESSAGE.Set_Name('AMS', 'AMS_LIST_QUERY_NO_USEDBY');
1581 IF p_list_query_rec.arc_act_list_query_used_by = FND_API.g_miss_char OR p_list_query_rec.arc_act_list_query_used_by IS NULL THEN
1582 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_arc_act_list_query_used_by');
1583 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1585 FND_MSG_PUB.Add;
1586 END IF;
1587 x_return_status := FND_API.g_ret_sts_error;
1588 RETURN;
1589 END IF;
1590
1591 */
1592 IF p_list_query_rec.sql_string = FND_API.g_miss_char OR p_list_query_rec.sql_string IS NULL THEN
1593 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1594 FND_MESSAGE.Set_Name('AMS', 'AMS_LIST_QUERY_NO_SQLSTRING');
1595 FND_MSG_PUB.Add;
1596 END IF;
1597 x_return_status := FND_API.g_ret_sts_error;
1598 RETURN;
1599 END IF;
1600
1601 /* ------------------------ DON"T THINK I NEED IT BEGIN
1602 ELSE
1603
1604
1605 IF p_list_query_rec.list_query_id IS NULL THEN
1606 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_list_query_id');
1607 x_return_status := FND_API.g_ret_sts_error;
1608 RETURN;
1609 END IF;
1610
1611
1612 IF p_list_query_rec.name IS NULL THEN
1613 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_name');
1614 x_return_status := FND_API.g_ret_sts_error;
1615 RETURN;
1616 END IF;
1617
1618
1619 IF p_list_query_rec.type IS NULL THEN
1620 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_type');
1621 x_return_status := FND_API.g_ret_sts_error;
1622 RETURN;
1623 END IF;
1624
1625
1626 IF p_list_query_rec.enabled_flag IS NULL THEN
1627 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_enabled_flag');
1628 x_return_status := FND_API.g_ret_sts_error;
1629 RETURN;
1630 END IF;
1631
1632
1633 IF p_list_query_rec.primary_key IS NULL THEN
1634 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_primary_key');
1635 x_return_status := FND_API.g_ret_sts_error;
1636 RETURN;
1637 END IF;
1638
1639
1640 IF p_list_query_rec.public_flag IS NULL THEN
1641 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_list_query_NO_public_flag');
1642 x_return_status := FND_API.g_ret_sts_error;
1643 RETURN;
1644 END IF;
1645
1646 */------------------------ DON"T THINK I NEED IT END
1647
1648 END IF;
1649
1650 END check_list_query_req_items;
1651
1652 PROCEDURE check_list_query_FK_items(
1653 p_list_query_rec IN list_query_rec_type,
1654 x_return_status OUT NOCOPY VARCHAR2
1655 )
1656 IS
1657 l_table_name varchar2(100);
1658 l_pk_name varchar2(100);
1659
1660 BEGIN
1661 x_return_status := FND_API.g_ret_sts_success;
1662
1663 IF p_list_query_rec.arc_act_list_query_used_by <> FND_API.g_miss_char THEN
1664
1665 AMS_Utility_PVT.get_qual_table_name_and_pk(
1666 p_sys_qual => p_list_query_rec.arc_act_list_query_used_by,
1667 x_return_status => x_return_status,
1668 x_table_name => l_table_name,
1669 x_pk_name => l_pk_name
1670 );
1671
1672 IF x_return_status <> FND_API.g_ret_sts_success THEN
1673 RETURN;
1674 END IF;
1675
1676 IF p_list_query_rec.act_list_query_used_by_id <> FND_API.g_miss_num THEN
1677 IF ( AMS_Utility_PVT.Check_FK_Exists(l_table_name
1678 , l_pk_name
1679 , p_list_query_rec.act_list_query_used_by_id)
1680 = FND_API.G_TRUE)
1681 THEN
1682 x_return_status := FND_API.G_RET_STS_SUCCESS;
1683
1684 ELSE
1685 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1686 THEN
1687 FND_MESSAGE.set_name('AMS', 'AMS_LIST_QRY_USEDBYID_INVALID');
1688 FND_MSG_PUB.Add;
1689 END IF;
1690 x_return_status := FND_API.G_RET_STS_ERROR;
1691 RAISE FND_API.G_EXC_ERROR;
1692 END IF; -- end AMS_Utility_PVT.Check_FK_Exists
1693 END IF; -- end p_list_query_rec.act_list_query_used_by_id
1694 END IF; --end p_list_query_rec.arc_act_list_query_used_by <> FND_API.g_miss_char
1695
1696 END check_list_query_FK_items;
1697
1698 PROCEDURE check_list_query_Lookup_items(
1699 p_list_query_rec IN list_query_rec_type,
1700 x_return_status OUT NOCOPY VARCHAR2
1701 )
1702 IS
1703 BEGIN
1704 x_return_status := FND_API.g_ret_sts_success;
1705
1706 ----------------------- arc_act_list_query_used_by ------------------------
1707 IF p_list_query_rec.arc_act_list_query_used_by <> FND_API.g_miss_char THEN
1708 IF AMS_Utility_PVT.check_lookup_exists(
1709 p_lookup_type => 'AMS_LIST_QUERY_TYPE',
1710 p_lookup_code => p_list_query_rec.arc_act_list_query_used_by
1711 ) = FND_API.g_false
1712 THEN
1713 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1714 THEN
1718
1715 FND_MESSAGE.set_name('AMS', 'AMS_LIST_QUERY_USEDBY_INVALID');
1716 FND_MSG_PUB.add;
1717 END IF;
1719 x_return_status := FND_API.g_ret_sts_error;
1720 RETURN;
1721 END IF;
1722 END IF;
1723
1724 END check_list_query_Lookup_items;
1725
1726 PROCEDURE Check_list_query_Items (
1727 P_list_query_rec IN list_query_rec_type,
1728 p_validation_mode IN VARCHAR2,
1729 x_return_status OUT NOCOPY VARCHAR2
1730 )
1731 IS
1732 BEGIN
1733
1734 -- Check Items Uniqueness API calls
1735
1736 check_list_query_uk_items(
1737 p_list_query_rec => p_list_query_rec,
1738 p_validation_mode => p_validation_mode,
1739 x_return_status => x_return_status);
1740 IF x_return_status <> FND_API.g_ret_sts_success THEN
1741 RETURN;
1742 END IF;
1743
1744 -- Check Items Required/NOT NULL API calls
1745
1746 check_list_query_req_items(
1747 p_list_query_rec => p_list_query_rec,
1748 p_validation_mode => p_validation_mode,
1749 x_return_status => x_return_status);
1750 IF x_return_status <> FND_API.g_ret_sts_success THEN
1751 RETURN;
1752 END IF;
1753 -- Check Items Foreign Keys API calls
1754
1755 check_list_query_FK_items(
1756 p_list_query_rec => p_list_query_rec,
1757 x_return_status => x_return_status);
1758 IF x_return_status <> FND_API.g_ret_sts_success THEN
1759 RETURN;
1760 END IF;
1761 -- Check Items Lookups
1762
1763 check_list_query_Lookup_items(
1764 p_list_query_rec => p_list_query_rec,
1765 x_return_status => x_return_status);
1766 IF x_return_status <> FND_API.g_ret_sts_success THEN
1767 RETURN;
1768 END IF;
1769
1770 END Check_list_query_Items;
1771
1772
1773 PROCEDURE Complete_list_query_Rec (
1774 P_list_query_rec IN list_query_rec_type,
1775 x_complete_rec OUT NOCOPY list_query_rec_type
1776 )
1777 IS
1778 CURSOR c_query IS
1779 SELECT *
1780 FROM ams_list_queries_all
1781 WHERE list_query_id = p_list_query_rec.list_query_id;
1782
1783 l_query_rec c_query%ROWTYPE;
1784 BEGIN
1785
1786 x_complete_rec := p_list_query_rec;
1787
1788 OPEN c_query;
1789 FETCH c_query INTO l_query_rec;
1790 IF c_query%NOTFOUND THEN
1791 CLOSE c_query;
1792 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1793 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1794 FND_MSG_PUB.add;
1795 END IF;
1796 RAISE FND_API.g_exc_error;
1797 END IF;
1798 CLOSE c_query;
1799
1800
1801 IF p_list_query_rec.list_query_id = FND_API.g_miss_num THEN
1802 x_complete_rec.list_query_id := l_query_rec.list_query_id;
1803 END IF;
1804
1805 IF p_list_query_rec.last_update_date = FND_API.g_miss_date THEN
1806 x_complete_rec.last_update_date := l_query_rec.last_update_date;
1807 END IF;
1808
1809 IF p_list_query_rec.last_updated_by = FND_API.g_miss_num THEN
1810 x_complete_rec.last_updated_by := l_query_rec.last_updated_by;
1811 END IF;
1812
1813 IF p_list_query_rec.creation_date = FND_API.g_miss_date THEN
1814 x_complete_rec.creation_date := l_query_rec.creation_date;
1815 END IF;
1816
1817 IF p_list_query_rec.created_by = FND_API.g_miss_num THEN
1818 x_complete_rec.created_by := l_query_rec.created_by;
1819 END IF;
1820
1821 IF p_list_query_rec.last_update_login = FND_API.g_miss_num THEN
1822 x_complete_rec.last_update_login := l_query_rec.last_update_login;
1823 END IF;
1824
1825 IF p_list_query_rec.object_version_number = FND_API.g_miss_num THEN
1826 x_complete_rec.object_version_number := l_query_rec.object_version_number;
1827 END IF;
1828
1829 IF p_list_query_rec.name = FND_API.g_miss_char THEN
1830 x_complete_rec.name := l_query_rec.name;
1831 END IF;
1832
1833 IF p_list_query_rec.type = FND_API.g_miss_char THEN
1834 x_complete_rec.type := l_query_rec.type;
1835 END IF;
1836
1837
1838 IF p_list_query_rec.enabled_flag = FND_API.g_miss_char THEN
1839 x_complete_rec.enabled_flag := l_query_rec.enabled_flag;
1840 END IF;
1841
1842 IF p_list_query_rec.public_flag = FND_API.g_miss_char THEN
1843 x_complete_rec.public_flag := l_query_rec.public_flag ;
1844 END IF;
1845
1846 IF p_list_query_rec.org_id = FND_API.g_miss_num THEN
1847 x_complete_rec.org_id := l_query_rec.org_id;
1848 END IF;
1849
1850 IF p_list_query_rec.comments = FND_API.g_miss_char THEN
1851 x_complete_rec.comments := l_query_rec.comments;
1852 END IF;
1853
1854 IF p_list_query_rec.primary_key = FND_API.g_miss_char THEN
1855 x_complete_rec.primary_key := l_query_rec.primary_key;
1856 END IF;
1857
1858 IF p_list_query_rec.source_object_name = FND_API.g_miss_char THEN
1859 x_complete_rec.source_object_name := l_query_rec.source_object_name;
1860 END IF;
1861
1862
1863 IF p_list_query_rec.arc_act_list_query_used_by = FND_API.g_miss_char THEN
1864 x_complete_rec.arc_act_list_query_used_by := l_query_rec.arc_act_list_query_used_by;
1868 x_complete_rec.act_list_query_used_by_id := l_query_rec.act_list_query_used_by_id;
1865 END IF;
1866
1867 IF p_list_query_rec.act_list_query_used_by_id = FND_API.g_miss_num THEN
1869 END IF;
1870
1871 IF p_list_query_rec.sql_string = FND_API.g_miss_char THEN
1872 x_complete_rec.sql_string := l_query_rec.sql_string;
1873 END IF;
1874 IF p_list_query_rec.parent_list_query_id = FND_API.g_miss_num THEN
1875 x_complete_rec.parent_list_query_id := l_query_rec.parent_list_query_id;
1876 END IF;
1877 IF p_list_query_rec.sequence_order = FND_API.g_miss_num THEN
1878 x_complete_rec.sequence_order := l_query_rec.sequence_order;
1879 END IF;
1880
1881
1882
1883 END Complete_list_query_Rec;
1884
1885 PROCEDURE Validate_list_query(
1886 p_api_version_number IN NUMBER,
1887 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1888 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1889 p_list_query_rec IN list_query_rec_type,
1890 x_return_status OUT NOCOPY VARCHAR2,
1891 x_msg_count OUT NOCOPY NUMBER,
1892 x_msg_data OUT NOCOPY VARCHAR2
1893 )
1894 IS
1895 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_List_Query';
1896 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1897 l_object_version_number NUMBER;
1898 l_list_query_rec AMS_List_Query_PVT.list_query_rec_type;
1899
1900 BEGIN
1901 -- Standard Start of API savepoint
1902 SAVEPOINT VALIDATE_List_Query_;
1903
1904 -- Standard call to check for call compatibility.
1905 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1906 p_api_version_number,
1907 l_api_name,
1908 G_PKG_NAME)
1909 THEN
1910 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1911 END IF;
1912
1913 -- Initialize message list if p_init_msg_list is set to TRUE.
1914 IF FND_API.to_Boolean( p_init_msg_list )
1915 THEN
1916 FND_MSG_PUB.initialize;
1917 END IF;
1918 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1919 Check_list_query_Items(
1920 p_list_query_rec => p_list_query_rec,
1921 p_validation_mode => JTF_PLSQL_API.g_update,
1922 x_return_status => x_return_status
1923 );
1924
1925 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1926 RAISE FND_API.G_EXC_ERROR;
1927 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1928 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1929 END IF;
1930 END IF;
1931
1932
1933 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1934 Validate_list_query_Rec(
1935 p_api_version_number => 1.0,
1936 p_init_msg_list => FND_API.G_FALSE,
1937 x_return_status => x_return_status,
1938 x_msg_count => x_msg_count,
1939 x_msg_data => x_msg_data,
1940 p_list_query_rec => l_list_query_rec);
1941
1942 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1943 RAISE FND_API.G_EXC_ERROR;
1944 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1945 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1946 END IF;
1947 END IF;
1948
1949
1950 -- Debug Message
1951 IF (AMS_DEBUG_HIGH_ON) THEN
1952
1953 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1954 END IF;
1955
1956
1957 -- Initialize API return status to SUCCESS
1958 x_return_status := FND_API.G_RET_STS_SUCCESS;
1959
1960
1961 -- Debug Message
1962 IF (AMS_DEBUG_HIGH_ON) THEN
1963
1964 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1965 END IF;
1966
1967 -- Standard call to get message count and if count is 1, get message info.
1968 FND_MSG_PUB.Count_And_Get
1969 (p_count => x_msg_count,
1970 p_data => x_msg_data
1971 );
1972 EXCEPTION
1973
1974 WHEN AMS_Utility_PVT.resource_locked THEN
1975 x_return_status := FND_API.g_ret_sts_error;
1976 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1977
1978 WHEN FND_API.G_EXC_ERROR THEN
1979 ROLLBACK TO VALIDATE_List_Query_;
1980 x_return_status := FND_API.G_RET_STS_ERROR;
1981 -- Standard call to get message count and if count=1, get the message
1982 FND_MSG_PUB.Count_And_Get (
1983 p_encoded => FND_API.G_FALSE,
1984 p_count => x_msg_count,
1985 p_data => x_msg_data
1986 );
1987
1988 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1989 ROLLBACK TO VALIDATE_List_Query_;
1990 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1991 -- Standard call to get message count and if count=1, get the message
1992 FND_MSG_PUB.Count_And_Get (
1993 p_encoded => FND_API.G_FALSE,
1994 p_count => x_msg_count,
1998 WHEN OTHERS THEN
1995 p_data => x_msg_data
1996 );
1997
1999 ROLLBACK TO VALIDATE_List_Query_;
2000 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2001 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2002 THEN
2003 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2004 END IF;
2005 -- Standard call to get message count and if count=1, get the message
2006 FND_MSG_PUB.Count_And_Get (
2007 p_encoded => FND_API.G_FALSE,
2008 p_count => x_msg_count,
2009 p_data => x_msg_data
2010 );
2011 End Validate_List_Query;
2012
2013
2014 PROCEDURE Validate_list_query_rec(
2015 p_api_version_number IN NUMBER,
2016 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2017 x_return_status OUT NOCOPY VARCHAR2,
2018 x_msg_count OUT NOCOPY NUMBER,
2019 x_msg_data OUT NOCOPY VARCHAR2,
2020 p_list_query_rec IN list_query_rec_type
2021 )
2022 IS
2023 BEGIN
2024 -- Initialize message list if p_init_msg_list is set to TRUE.
2025 IF FND_API.to_Boolean( p_init_msg_list )
2026 THEN
2027 FND_MSG_PUB.initialize;
2028 END IF;
2029
2030 -- Initialize API return status to SUCCESS
2031 x_return_status := FND_API.G_RET_STS_SUCCESS;
2032
2033 -- Hint: Validate data
2034 -- If data not valid
2035 -- THEN
2036 -- x_return_status := FND_API.G_RET_STS_ERROR;
2037
2038 -- Debug Message
2039 IF (AMS_DEBUG_HIGH_ON) THEN
2040
2041 AMS_UTILITY_PVT.debug_message('Private API: Validate_query__rec->'
2042 || x_return_status);
2043 END IF;
2044 -- Standard call to get message count and if count is 1, get message info.
2045 FND_MSG_PUB.Count_And_Get
2046 (p_count => x_msg_count,
2047 p_data => x_msg_data
2048 );
2049 END Validate_list_query_Rec;
2050
2051 PROCEDURE Init_List_query_Rec(
2052 x_listquery_rec OUT NOCOPY list_query_rec_type_tbl
2053 )
2054 IS
2055 BEGIN
2056 x_listquery_rec.LIST_QUERY_ID := FND_API.g_miss_num ;
2057 x_listquery_rec.LAST_UPDATE_DATE := FND_API.g_miss_date ;
2058 x_listquery_rec.LAST_UPDATED_BY := FND_API.g_miss_num ;
2059 x_listquery_rec.CREATION_DATE := FND_API.g_miss_date ;
2060 x_listquery_rec.CREATED_BY := FND_API.g_miss_num ;
2061 x_listquery_rec.LAST_UPDATE_LOGIN := FND_API.g_miss_num ;
2062 x_listquery_rec.OBJECT_VERSION_NUMBER := FND_API.g_miss_num ;
2063 x_listquery_rec.NAME := FND_API.g_miss_char ;
2064 x_listquery_rec.TYPE := FND_API.g_miss_char ;
2065 x_listquery_rec.ENABLED_FLAG := FND_API.g_miss_char ;
2066 x_listquery_rec.PRIMARY_KEY := FND_API.g_miss_char ;
2067 x_listquery_rec.PUBLIC_FLAG := FND_API.g_miss_char ;
2068 x_listquery_rec.ORG_ID := FND_API.g_miss_num ;
2069 x_listquery_rec.COMMENTS := FND_API.g_miss_char ;
2070 x_listquery_rec.ACT_LIST_QUERY_USED_BY_ID := FND_API.g_miss_num ;
2071 x_listquery_rec.ARC_ACT_LIST_QUERY_USED_BY := FND_API.g_miss_char ;
2072 x_listquery_rec.SEED_FLAG := FND_API.g_miss_char ;
2073 x_listquery_rec.SOURCE_OBJECT_NAME := FND_API.g_miss_char ;
2074 x_listquery_rec.PARENT_LIST_QUERY_ID := FND_API.g_miss_num ;
2075 x_listquery_rec.SEQUENCE_ORDER := FND_API.g_miss_num ;
2076 END Init_List_Query_rec;
2077
2078
2079 PROCEDURE Init_List_query_Rec(
2080 x_listquery_rec OUT NOCOPY list_query_rec_type
2081 )
2082 IS
2083 BEGIN
2084 x_listquery_rec.LIST_QUERY_ID := FND_API.g_miss_num ;
2085 x_listquery_rec.LAST_UPDATE_DATE := FND_API.g_miss_date ;
2086 x_listquery_rec.LAST_UPDATED_BY := FND_API.g_miss_num ;
2087 x_listquery_rec.CREATION_DATE := FND_API.g_miss_date ;
2088 x_listquery_rec.CREATED_BY := FND_API.g_miss_num ;
2089 x_listquery_rec.LAST_UPDATE_LOGIN := FND_API.g_miss_num ;
2090 x_listquery_rec.OBJECT_VERSION_NUMBER := FND_API.g_miss_num ;
2091 x_listquery_rec.NAME := FND_API.g_miss_char ;
2092 x_listquery_rec.TYPE := FND_API.g_miss_char ;
2093 x_listquery_rec.ENABLED_FLAG := FND_API.g_miss_char ;
2094 x_listquery_rec.PRIMARY_KEY := FND_API.g_miss_char ;
2095 x_listquery_rec.PUBLIC_FLAG := FND_API.g_miss_char ;
2096 x_listquery_rec.ORG_ID := FND_API.g_miss_num ;
2097 x_listquery_rec.COMMENTS := FND_API.g_miss_char ;
2098 x_listquery_rec.ACT_LIST_QUERY_USED_BY_ID := FND_API.g_miss_num ;
2099 x_listquery_rec.ARC_ACT_LIST_QUERY_USED_BY := FND_API.g_miss_char ;
2100 x_listquery_rec.SEED_FLAG := FND_API.g_miss_char ;
2101 x_listquery_rec.SQL_STRING := FND_API.g_miss_char ;
2102 x_listquery_rec.SOURCE_OBJECT_NAME := FND_API.g_miss_char ;
2103 x_listquery_rec.PARENT_LIST_QUERY_ID := FND_API.g_miss_num ;
2104 x_listquery_rec.SEQUENCE_ORDER := FND_API.g_miss_num ;
2105 END Init_List_Query_rec;
2106
2107 PROCEDURE Complete_List_Query_Rec_tbl(
2108 p_listquery_rec IN list_query_rec_type_tbl ,
2109 x_complete_rec OUT NOCOPY list_query_rec_type_tbl
2110 )
2111 IS
2112
2113 CURSOR c_listquery IS
2114 SELECT *
2115 FROM ams_list_queries_all
2116 WHERE list_query_id = p_listquery_rec.parent_list_query_id
2117 and sequence_order = 1;
2118
2119 l_listquery_rec c_listquery%ROWTYPE;
2120
2121 BEGIN
2122
2126 IF c_listquery%NOTFOUND THEN
2123 x_complete_rec := p_listquery_rec;
2124 OPEN c_listquery;
2125 FETCH c_listquery INTO l_listquery_rec;
2127 CLOSE c_listquery;
2128 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2129 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2130 FND_MSG_PUB.add;
2131 END IF;
2132 RAISE FND_API.g_exc_error;
2133 END IF;
2134 CLOSE c_listquery;
2135
2136 IF p_listquery_rec.LIST_QUERY_ID = FND_API.g_miss_num THEN
2137 x_complete_rec.LIST_QUERY_ID := l_listquery_rec.LIST_QUERY_ID;
2138 END IF;
2139
2140 IF p_listquery_rec.LAST_UPDATE_DATE = FND_API.g_miss_date THEN
2141 x_complete_rec.LAST_UPDATE_DATE := l_listquery_rec.LAST_UPDATE_DATE;
2142 END IF;
2143
2144 IF p_listquery_rec.LAST_UPDATED_BY = FND_API.g_miss_num THEN
2145 x_complete_rec.LAST_UPDATED_BY := l_listquery_rec.LAST_UPDATED_BY;
2146 END IF;
2147
2148
2149 IF p_listquery_rec.CREATION_DATE = FND_API.g_miss_date THEN
2150 x_complete_rec.CREATION_DATE := l_listquery_rec.CREATION_DATE;
2151 END IF;
2152
2153 IF p_listquery_rec.CREATED_BY = FND_API.g_miss_num THEN
2154 x_complete_rec.CREATED_BY := l_listquery_rec.CREATED_BY;
2155 END IF;
2156
2157 IF p_listquery_rec.LAST_UPDATE_LOGIN = FND_API.g_miss_num THEN
2158 x_complete_rec.LAST_UPDATE_LOGIN := l_listquery_rec.LAST_UPDATE_LOGIN;
2159 END IF;
2160
2161 IF p_listquery_rec.OBJECT_VERSION_NUMBER = FND_API.g_miss_num THEN
2162 x_complete_rec.OBJECT_VERSION_NUMBER := l_listquery_rec.OBJECT_VERSION_NUMBER;
2163 END IF;
2164
2165 IF p_listquery_rec.NAME = FND_API.g_miss_char THEN
2166 x_complete_rec.NAME := l_listquery_rec.NAME;
2167 END IF;
2168
2169 IF p_listquery_rec.TYPE = FND_API.g_miss_char THEN
2170 x_complete_rec.TYPE := l_listquery_rec.TYPE;
2171 END IF;
2172
2173 IF p_listquery_rec.ENABLED_FLAG = FND_API.g_miss_char THEN
2174 x_complete_rec.ENABLED_FLAG := l_listquery_rec.ENABLED_FLAG;
2175 END IF;
2176
2177 IF p_listquery_rec.PRIMARY_KEY = FND_API.g_miss_char THEN
2178 x_complete_rec.PRIMARY_KEY := l_listquery_rec.PRIMARY_KEY;
2179 END IF;
2180
2181 IF p_listquery_rec.PUBLIC_FLAG = FND_API.g_miss_char THEN
2182 x_complete_rec.PUBLIC_FLAG := l_listquery_rec.PUBLIC_FLAG;
2183 END IF;
2184
2185 IF p_listquery_rec.ORG_ID = FND_API.g_miss_num THEN
2186 x_complete_rec.ORG_ID := l_listquery_rec.ORG_ID;
2187 END IF;
2188
2189 IF p_listquery_rec.COMMENTS = FND_API.g_miss_char THEN
2190 x_complete_rec.COMMENTS := l_listquery_rec.COMMENTS;
2191 END IF;
2192
2193
2194 IF p_listquery_rec.ACT_LIST_QUERY_USED_BY_ID = FND_API.g_miss_num THEN
2195 x_complete_rec.ACT_LIST_QUERY_USED_BY_ID := l_listquery_rec.ACT_LIST_QUERY_USED_BY_ID;
2196 END IF;
2197
2198 IF p_listquery_rec.ARC_ACT_LIST_QUERY_USED_BY = FND_API.g_miss_char THEN
2199 x_complete_rec.ARC_ACT_LIST_QUERY_USED_BY := l_listquery_rec.ARC_ACT_LIST_QUERY_USED_BY;
2200 END IF;
2201
2202 IF p_listquery_rec.SEED_FLAG = FND_API.g_miss_char THEN
2203 x_complete_rec.SEED_FLAG := l_listquery_rec.SEED_FLAG;
2204 END IF;
2205
2206
2207 IF p_listquery_rec.SOURCE_OBJECT_NAME = FND_API.g_miss_char THEN
2208 x_complete_rec.SOURCE_OBJECT_NAME := l_listquery_rec.SOURCE_OBJECT_NAME;
2209 END IF;
2210
2211 IF p_listquery_rec.PARENT_LIST_QUERY_ID = FND_API.g_miss_num THEN
2212 x_complete_rec.PARENT_LIST_QUERY_ID := l_listquery_rec.PARENT_LIST_QUERY_ID;
2213 END IF;
2214
2215 IF p_listquery_rec.SEQUENCE_ORDER = FND_API.g_miss_num THEN
2216 x_complete_rec.SEQUENCE_ORDER := l_listquery_rec.SEQUENCE_ORDER;
2217 END IF;
2218
2219
2220 END Complete_List_Query_rec_tbl;
2221
2222 PROCEDURE Complete_List_Query_Rec(
2223 p_listquery_rec IN list_query_rec_type ,
2224 x_complete_rec OUT NOCOPY list_query_rec_type
2225 )
2226 IS
2227
2228 CURSOR c_listquery IS
2229 SELECT *
2230 FROM ams_list_queries_all
2231 WHERE list_query_id = p_listquery_rec.list_query_id;
2232
2233 l_listquery_rec c_listquery%ROWTYPE;
2234
2235 BEGIN
2236
2237 x_complete_rec := p_listquery_rec;
2238 OPEN c_listquery;
2239 FETCH c_listquery INTO l_listquery_rec;
2240 IF c_listquery%NOTFOUND THEN
2241 CLOSE c_listquery;
2242 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2243 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
2244 FND_MSG_PUB.add;
2245 END IF;
2246 RAISE FND_API.g_exc_error;
2247 END IF;
2248 CLOSE c_listquery;
2249
2250 IF p_listquery_rec.LIST_QUERY_ID = FND_API.g_miss_num THEN
2251 x_complete_rec.LIST_QUERY_ID := l_listquery_rec.LIST_QUERY_ID;
2252 END IF;
2253
2254 IF p_listquery_rec.LAST_UPDATE_DATE = FND_API.g_miss_date THEN
2255 x_complete_rec.LAST_UPDATE_DATE := l_listquery_rec.LAST_UPDATE_DATE;
2256 END IF;
2257
2258 IF p_listquery_rec.LAST_UPDATED_BY = FND_API.g_miss_num THEN
2259 x_complete_rec.LAST_UPDATED_BY := l_listquery_rec.LAST_UPDATED_BY;
2260 END IF;
2261
2262
2266
2263 IF p_listquery_rec.CREATION_DATE = FND_API.g_miss_date THEN
2264 x_complete_rec.CREATION_DATE := l_listquery_rec.CREATION_DATE;
2265 END IF;
2267 IF p_listquery_rec.CREATED_BY = FND_API.g_miss_num THEN
2268 x_complete_rec.CREATED_BY := l_listquery_rec.CREATED_BY;
2269 END IF;
2270
2271 IF p_listquery_rec.LAST_UPDATE_LOGIN = FND_API.g_miss_num THEN
2272 x_complete_rec.LAST_UPDATE_LOGIN := l_listquery_rec.LAST_UPDATE_LOGIN;
2273 END IF;
2274
2275 IF p_listquery_rec.OBJECT_VERSION_NUMBER = FND_API.g_miss_num THEN
2276 x_complete_rec.OBJECT_VERSION_NUMBER := l_listquery_rec.OBJECT_VERSION_NUMBER;
2277 END IF;
2278
2279 IF p_listquery_rec.NAME = FND_API.g_miss_char THEN
2280 x_complete_rec.NAME := l_listquery_rec.NAME;
2281 END IF;
2282
2283 IF p_listquery_rec.TYPE = FND_API.g_miss_char THEN
2284 x_complete_rec.TYPE := l_listquery_rec.TYPE;
2285 END IF;
2286
2287 IF p_listquery_rec.ENABLED_FLAG = FND_API.g_miss_char THEN
2288 x_complete_rec.ENABLED_FLAG := l_listquery_rec.ENABLED_FLAG;
2289 END IF;
2290
2291 IF p_listquery_rec.PRIMARY_KEY = FND_API.g_miss_char THEN
2292 x_complete_rec.PRIMARY_KEY := l_listquery_rec.PRIMARY_KEY;
2293 END IF;
2294
2295 IF p_listquery_rec.PUBLIC_FLAG = FND_API.g_miss_char THEN
2296 x_complete_rec.PUBLIC_FLAG := l_listquery_rec.PUBLIC_FLAG;
2297 END IF;
2298
2299 IF p_listquery_rec.ORG_ID = FND_API.g_miss_num THEN
2300 x_complete_rec.ORG_ID := l_listquery_rec.ORG_ID;
2301 END IF;
2302
2303 IF p_listquery_rec.COMMENTS = FND_API.g_miss_char THEN
2304 x_complete_rec.COMMENTS := l_listquery_rec.COMMENTS;
2305 END IF;
2306
2307
2308 IF p_listquery_rec.ACT_LIST_QUERY_USED_BY_ID = FND_API.g_miss_num THEN
2309 x_complete_rec.ACT_LIST_QUERY_USED_BY_ID := l_listquery_rec.ACT_LIST_QUERY_USED_BY_ID;
2310 END IF;
2311
2312 IF p_listquery_rec.ARC_ACT_LIST_QUERY_USED_BY = FND_API.g_miss_char THEN
2313 x_complete_rec.ARC_ACT_LIST_QUERY_USED_BY := l_listquery_rec.ARC_ACT_LIST_QUERY_USED_BY;
2314 END IF;
2315
2316 IF p_listquery_rec.SEED_FLAG = FND_API.g_miss_char THEN
2317 x_complete_rec.SEED_FLAG := l_listquery_rec.SEED_FLAG;
2318 END IF;
2319
2320 IF p_listquery_rec.SQL_STRING = FND_API.g_miss_char THEN
2321 x_complete_rec.SQL_STRING := l_listquery_rec.SQL_STRING;
2322 END IF;
2323
2324 IF p_listquery_rec.SOURCE_OBJECT_NAME = FND_API.g_miss_char THEN
2325 x_complete_rec.SOURCE_OBJECT_NAME := l_listquery_rec.SOURCE_OBJECT_NAME;
2326 END IF;
2327
2328 IF p_listquery_rec.PARENT_LIST_QUERY_ID = FND_API.g_miss_num THEN
2329 x_complete_rec.PARENT_LIST_QUERY_ID := l_listquery_rec.PARENT_LIST_QUERY_ID;
2330 END IF;
2331
2332 IF p_listquery_rec.SEQUENCE_ORDER = FND_API.g_miss_num THEN
2333 x_complete_rec.SEQUENCE_ORDER := l_listquery_rec.SEQUENCE_ORDER;
2334 END IF;
2335
2336
2337 END Complete_List_Query_rec;
2338
2339 PROCEDURE Copy_List_Queries
2340 ( p_api_version IN NUMBER,
2341 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2342 p_commit IN VARCHAR2 := FND_API.G_FALSE,
2343 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
2344 p_source_listheader_id IN NUMBER,
2345 p_new_listheader_id IN NUMBER,
2346 p_new_listheader_name IN VARCHAR2,
2347 x_return_status OUT NOCOPY VARCHAR2,
2348 x_msg_count OUT NOCOPY NUMBER,
2349 x_msg_data OUT NOCOPY VARCHAR2
2350 )IS
2351
2352 l_api_name CONSTANT VARCHAR2(30) := 'Copy_List_Queries';
2353 l_api_version CONSTANT NUMBER := 1.0;
2354 j NUMBER:=0;
2355
2356 -- Status Local Variables
2357 l_return_status VARCHAR2(1); -- Return value from procedures
2358
2359 --l_listheader_id number;
2360
2361 x_rowid VARCHAR2(30);
2362
2363 l_sqlerrm varchar2(600);
2364 l_sqlcode varchar2(100);
2365
2366 l_init_msg_list VARCHAR2(2000) := FND_API.G_FALSE;
2367
2368
2369 CURSOR fetch_list_queries (listqueryId NUMBER) IS
2370 SELECT *
2371 FROM ams_list_queries_all
2372 WHERE parent_list_query_id =listqueryId
2373 ORDER BY sequence_order;
2374
2375 CURSOR fetch_list_select_actions(list_id NUMBER) IS
2376 SELECT incl_object_id,rank,order_number,description,list_action_type
2377 ,no_of_rows_requested,no_of_rows_available,no_of_rows_used
2378 ,distribution_pct,no_of_rows_targeted
2379 FROM ams_list_select_actions
2380 WHERE action_used_by_id =list_id
2381 AND arc_action_used_by='LIST'
2382 AND arc_incl_object_from='SQL';
2383
2384 l_list_queries_rec fetch_list_queries%ROWTYPE;
2385 l_action_rec AMS_ListAction_PVT.action_rec_type;
2386
2387 l_list_query_rec_type_tbl list_query_rec_type_tbl;
2388 l_sql_string_tbl sql_string_tbl;
2389 l_parent_list_query_id NUMBER;
2390 l_action_id NUMBER;
2391 BEGIN
2392
2393 -- Standard Start of API savepoint
2394 SAVEPOINT Copy_List_Queries_PVT;
2395
2396 x_return_status := FND_API.G_RET_STS_SUCCESS;
2397 -- Standard call to check for call compatibility.
2398 IF NOT FND_API.Compatible_API_Call ( l_api_version,
2399 p_api_version,
2400 l_api_name,
2401 G_PKG_NAME) THEN
2402 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2403 END IF;
2404
2405
2406 -- Initialize message list IF p_init_msg_list is set to TRUE.
2407 IF FND_API.to_Boolean( p_init_msg_list ) THEN
2408 FND_MSG_PUB.initialize;
2409 END IF;
2410
2411 -- Debug Message
2412 IF (AMS_DEBUG_HIGH_ON) THEN
2413 FND_MESSAGE.set_name('AMS', 'AMS_API_DEBUG_MESSAGE');
2414 FND_MESSAGE.Set_Token('TEXT', 'AMS_List_Query_PVT.Copy_List_Queries: Start', TRUE);
2415 FND_MSG_PUB.Add;
2416 END IF;
2417
2418 -- Initialize API return status to success
2419 x_return_status := FND_API.G_RET_STS_SUCCESS;
2420
2421
2422 FOR l_list_actions_rec IN fetch_list_select_actions(p_source_listheader_id)
2423 LOOP
2424
2425 j:=0;
2426 l_sql_string_tbl.DELETE;
2427 Init_List_query_Rec(l_list_query_rec_type_tbl);
2428
2429 open fetch_list_queries(l_list_actions_rec.incl_object_id);
2430 loop
2431 fetch fetch_list_queries into l_list_queries_rec;
2432 exit when fetch_list_queries%notfound;
2433
2434 IF l_list_queries_rec.list_query_id IS NOT NULL THEN
2435 -- l_list_query_rec_type_tbl.NAME := p_new_listheader_name || l_list_queries_rec.NAME;
2436 l_list_query_rec_type_tbl.NAME :=substr(rpad(substr(l_list_queries_rec.NAME,1,150),150,' ')||p_new_listheader_id||'_'||p_new_listheader_name,1,240);
2437 l_list_query_rec_type_tbl.TYPE := l_list_queries_rec.TYPE ;
2438 l_list_query_rec_type_tbl.ENABLED_FLAG := l_list_queries_rec.ENABLED_FLAG ;
2439 l_list_query_rec_type_tbl.PRIMARY_KEY := l_list_queries_rec.PRIMARY_KEY ;
2440 l_list_query_rec_type_tbl.PUBLIC_FLAG := l_list_queries_rec.PUBLIC_FLAG ;
2441 l_list_query_rec_type_tbl.SOURCE_OBJECT_NAME := l_list_queries_rec.SOURCE_OBJECT_NAME;
2442 j := j+1;
2443 l_sql_string_tbl(j) := l_list_queries_rec.sql_string;
2444 END IF;
2445 end loop;
2446 close fetch_list_queries;
2447
2448 IF l_list_queries_rec.list_query_id IS NOT NULL THEN
2449
2450 Create_List_Query(
2451 l_api_version ,
2452 l_init_msg_list,
2453 p_commit,
2454 p_validation_level ,
2455 x_return_status,
2456 x_msg_count,
2457 x_msg_data ,
2458 l_list_query_rec_type_tbl ,
2459 l_sql_string_tbl ,
2460 l_parent_list_query_id
2461 ) ;
2462
2463 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2464 RAISE FND_API.G_EXC_ERROR;
2465 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2466 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2467 END IF;
2468
2469 AMS_ListAction_PVT.init_action_rec(l_action_rec);
2470 l_action_rec.list_select_action_id := NULL;
2471 l_action_rec.order_number := l_list_actions_rec.order_number;
2472 l_action_rec.list_action_type := l_list_actions_rec.list_action_type;
2473 l_action_rec.arc_incl_object_from := 'SQL';
2474 l_action_rec.incl_object_id := l_parent_list_query_id;
2475 l_action_rec.rank := l_list_actions_rec.rank;
2476 l_action_rec.no_of_rows_available := l_list_actions_rec.no_of_rows_available;
2477 l_action_rec.no_of_rows_requested := l_list_actions_rec.no_of_rows_requested;
2478 l_action_rec.no_of_rows_used := l_list_actions_rec.no_of_rows_used;
2479 l_action_rec.distribution_pct := l_list_actions_rec.distribution_pct;
2480 l_action_rec.description := l_list_actions_rec.description;
2481 l_action_rec.arc_action_used_by := 'LIST';
2482 l_action_rec.action_used_by_id := p_new_listheader_id;
2483 l_action_rec.no_of_rows_targeted := l_list_actions_rec.no_of_rows_targeted;
2484
2485
2486
2487 AMS_ListAction_PVT.Create_ListAction
2488 (l_api_version,
2489 l_init_msg_list,
2490 p_commit ,
2491 p_validation_level,
2492 x_return_status ,
2493 x_msg_count,
2494 x_msg_data,
2495 l_action_rec,
2496 l_action_id
2497 ) ;
2498
2499 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2500 RAISE FND_API.G_EXC_ERROR;
2501 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2502 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2503 END IF;
2504
2505
2506 END IF; --l_list_queries_rec.list_query_id IS NOT NULL
2507
2508
2509 END LOOP;
2510
2511 -- Standard check of p_commit.
2512 IF FND_API.To_Boolean ( p_commit ) THEN
2513 COMMIT WORK;
2514 END IF;
2515
2516 -- Success Message
2517 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2518 THEN
2519 FND_MESSAGE.Set_Name('AMS', 'API_SUCCESS');
2520 FND_MESSAGE.Set_Token('ROW', 'AMS_List_Query_PVT.Copy_List_Queries', TRUE);
2521 FND_MSG_PUB.Add;
2522 END IF;
2523
2524 IF (AMS_DEBUG_HIGH_ON) THEN
2525 FND_MESSAGE.set_name('AMS', 'AMS_API_DEBUG_MESSAGE');
2526 FND_MESSAGE.Set_Token('TEXT', 'AMS_List_Query_PVT.Copy_List_Queries: END', TRUE);
2527 FND_MSG_PUB.Add;
2528 END IF;
2529
2530
2531 -- Standard call to get message count AND IF count is 1, get message info.
2532 FND_MSG_PUB.Count_AND_Get
2533 ( p_count => x_msg_count,
2534 p_data => x_msg_data,
2535 p_encoded => FND_API.G_FALSE
2536 );
2537
2538 EXCEPTION
2539 WHEN FND_API.G_EXC_ERROR THEN
2540 ROLLBACK TO Copy_List_Queries_PVT;
2541 x_return_status := FND_API.G_RET_STS_ERROR ;
2542
2543 FND_MSG_PUB.Count_AND_Get
2544 ( p_count => x_msg_count,
2545 p_data => x_msg_data,
2546 p_encoded => FND_API.G_FALSE
2547 );
2548
2549
2550 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2551 ROLLBACK TO Copy_List_Queries_PVT;
2552 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2553 FND_MSG_PUB.Count_AND_Get
2554 ( p_count => x_msg_count,
2555 p_data => x_msg_data,
2556 p_encoded => FND_API.G_FALSE
2557 );
2558
2559 WHEN OTHERS THEN
2560 ROLLBACK TO Copy_List_Queries_PVT;
2561 FND_MESSAGE.set_name('AMS','SQL ERROR ->' || sqlerrm );
2562 FND_MSG_PUB.Add;
2563 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2564 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2565 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2566 END IF;
2567
2568 FND_MSG_PUB.Count_AND_Get
2569 ( p_count => x_msg_count,
2570 p_data => x_msg_data,
2571 p_encoded => FND_API.G_FALSE
2572 );
2573
2574 END Copy_List_Queries;
2575
2576
2577 END AMS_List_Query_PVT;