[Home] [Help]
PACKAGE BODY: APPS.AMS_TEMPLATE_ATTR_PVT
Source
1 PACKAGE BODY AMS_Template_Attr_PVT as
2 /* $Header: amsvpatb.pls 115.8 2004/05/06 00:18:52 musman ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 -- AMS_Template_Attr_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_Template_Attr_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvpatb.pls';
19
20
21 -- Hint: Primary key needs to be returned.
22 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
23 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
24 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
25
26 PROCEDURE Create_Template_Attr(
27 p_api_version_number IN NUMBER,
28 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
29 p_commit IN VARCHAR2 := FND_API.G_FALSE,
30 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
31
32 x_return_status OUT NOCOPY VARCHAR2,
33 x_msg_count OUT NOCOPY NUMBER,
34 x_msg_data OUT NOCOPY VARCHAR2,
35
36 p_template_attr_rec IN template_attr_rec_type := g_miss_template_attr_rec,
37 x_template_attribute_id OUT NOCOPY NUMBER
38 )
39
40 IS
41 L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Template_Attr';
42 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
43 l_return_status_full VARCHAR2(1);
44 l_object_version_number NUMBER := 1;
45 l_org_id NUMBER := FND_API.G_MISS_NUM;
46 l_TEMPLATE_ATTRIBUTE_ID NUMBER;
47 l_dummy NUMBER;
48
49 CURSOR c_id IS
50 SELECT AMS_PROD_TEMPLATE_ATTR_s.NEXTVAL
51 FROM dual;
52
53 CURSOR c_id_exists (l_id IN NUMBER) IS
54 SELECT 1
55 FROM AMS_PROD_TEMPLATE_ATTR
56 WHERE TEMPLATE_ATTRIBUTE_ID = l_id;
57
58 BEGIN
59 -- Standard Start of API savepoint
60 SAVEPOINT CREATE_Template_Attr_PVT;
61
62 -- Standard call to check for call compatibility.
63 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
64 p_api_version_number,
65 l_api_name,
66 G_PKG_NAME)
67 THEN
68 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
69 END IF;
70
71 -- Initialize message list if p_init_msg_list is set to TRUE.
72 IF FND_API.to_Boolean( p_init_msg_list )
73 THEN
74 FND_MSG_PUB.initialize;
75 END IF;
76
77 -- Debug Message
78 IF (AMS_DEBUG_HIGH_ON) THEN
79
80 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
81 END IF;
82
83
84 -- Initialize API return status to SUCCESS
85 x_return_status := FND_API.G_RET_STS_SUCCESS;
86
87 -- Local variable initialization
88
89 IF p_template_attr_rec.TEMPLATE_ATTRIBUTE_ID IS NULL OR p_template_attr_rec.TEMPLATE_ATTRIBUTE_ID = FND_API.g_miss_num THEN
90 LOOP
91 l_dummy := NULL;
92 OPEN c_id;
93 FETCH c_id INTO l_TEMPLATE_ATTRIBUTE_ID;
94 CLOSE c_id;
95
96 OPEN c_id_exists(l_TEMPLATE_ATTRIBUTE_ID);
97 FETCH c_id_exists INTO l_dummy;
98 CLOSE c_id_exists;
99 EXIT WHEN l_dummy IS NULL;
100 END LOOP;
101 END IF;
102
103 -- =========================================================================
104 -- Validate Environment
105 -- =========================================================================
106
107 IF FND_GLOBAL.User_Id IS NULL
108 THEN
109 AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
110 RAISE FND_API.G_EXC_ERROR;
111 END IF;
112
113 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
114 THEN
115 -- Debug message
116 IF (AMS_DEBUG_HIGH_ON) THEN
117
118 AMS_UTILITY_PVT.debug_message('Private API: Validate_Template_Attr');
119 END IF;
120
121 -- Invoke validation procedures
122 Validate_template_attr(
123 p_api_version_number => 1.0,
124 p_init_msg_list => FND_API.G_FALSE,
125 p_validation_level => p_validation_level,
126 p_validation_mode => JTF_PLSQL_API.g_create,
127 p_template_attr_rec => p_template_attr_rec,
128 x_return_status => x_return_status,
129 x_msg_count => x_msg_count,
130 x_msg_data => x_msg_data);
131 END IF;
132
133 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
134 RAISE FND_API.G_EXC_ERROR;
135 END IF;
136
137 INSERT INTO AMS_PROD_TEMPLATE_ATTR(
138 template_attribute_id,
139 template_id,
140 last_update_date,
141 last_updated_by,
142 creation_date,
143 created_by,
144 object_version_number,
145 last_update_login,
146 parent_attribute_code,
147 parent_select_all,
148 attribute_code,
149 default_flag,
150 editable_flag,
151 hide_flag
152 ) VALUES (
153 DECODE( l_template_attribute_id, FND_API.g_miss_num, NULL, l_template_attribute_id),
154 DECODE( p_template_attr_rec.template_id, FND_API.g_miss_num, NULL, p_template_attr_rec.template_id),
155 sysdate,
156 fnd_global.user_id,
157 SYSDATE,
158 fnd_global.user_id,
159 l_object_version_number,
160 FND_GLOBAL.CONC_LOGIN_ID,
161 DECODE( p_template_attr_rec.parent_attribute_code, FND_API.g_miss_char, NULL, p_template_attr_rec.parent_attribute_code),
162 DECODE( p_template_attr_rec.parent_select_all, FND_API.g_miss_char, NULL, p_template_attr_rec.parent_select_all),
163 DECODE( p_template_attr_rec.attribute_code, FND_API.g_miss_char, NULL, p_template_attr_rec.attribute_code),
164 DECODE( p_template_attr_rec.default_flag, FND_API.g_miss_char, NULL, p_template_attr_rec.default_flag),
165 DECODE( p_template_attr_rec.editable_flag, FND_API.g_miss_char, NULL, p_template_attr_rec.editable_flag),
166 DECODE( p_template_attr_rec.hide_flag, FND_API.g_miss_char, NULL, p_template_attr_rec.hide_flag));
167
168 x_template_attribute_id := l_template_attribute_id ;
169 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
170 RAISE FND_API.G_EXC_ERROR;
171 END IF;
172 --
173 -- End of API body
174 --
175
176 -- Standard check for p_commit
177 IF FND_API.to_Boolean( p_commit )
178 THEN
179 COMMIT WORK;
180 END IF;
181
182
183 -- Debug Message
184 IF (AMS_DEBUG_HIGH_ON) THEN
185
186 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
187 END IF;
188
189 -- Standard call to get message count and if count is 1, get message info.
190 FND_MSG_PUB.Count_And_Get
191 (p_count => x_msg_count,
192 p_data => x_msg_data
193 );
194 EXCEPTION
195
196 WHEN AMS_Utility_PVT.resource_locked THEN
197 x_return_status := FND_API.g_ret_sts_error;
198 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
199
200 WHEN FND_API.G_EXC_ERROR THEN
201 ROLLBACK TO CREATE_Template_Attr_PVT;
202 x_return_status := FND_API.G_RET_STS_ERROR;
203 -- Standard call to get message count and if count=1, get the message
204 FND_MSG_PUB.Count_And_Get (
205 p_encoded => FND_API.G_FALSE,
206 p_count => x_msg_count,
207 p_data => x_msg_data
208 );
209
210 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
211 ROLLBACK TO CREATE_Template_Attr_PVT;
212 x_return_status := FND_API.G_RET_STS_UNEXP_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 OTHERS THEN
221 ROLLBACK TO CREATE_Template_Attr_PVT;
222 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
223 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
224 THEN
225 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
226 END IF;
227 -- Standard call to get message count and if count=1, get the message
228 FND_MSG_PUB.Count_And_Get (
229 p_encoded => FND_API.G_FALSE,
230 p_count => x_msg_count,
231 p_data => x_msg_data
232 );
233 End Create_Template_Attr;
234
235
236 PROCEDURE Update_Template_Attr(
237 p_api_version_number IN NUMBER,
238 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
239 p_commit IN VARCHAR2 := FND_API.G_FALSE,
240 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
241
242 x_return_status OUT NOCOPY VARCHAR2,
243 x_msg_count OUT NOCOPY NUMBER,
244 x_msg_data OUT NOCOPY VARCHAR2,
245
246 p_template_attr_rec IN template_attr_rec_type
247 )
248
249 IS
250
251 CURSOR c_get_template_attr(p_template_attribute_id NUMBER) IS
252 SELECT *
253 FROM AMS_PROD_TEMPLATE_ATTR
254 WHERE template_attribute_id = p_template_attribute_id;
255 -- Hint: Developer need to provide Where clause
256
257 L_API_NAME CONSTANT VARCHAR2(30) := 'Update_Template_Attr';
258 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
259 -- Local Variables
260 l_object_version_number NUMBER;
261 l_TEMPLATE_ATTRIBUTE_ID NUMBER;
262 l_ref_template_attr_rec c_get_Template_Attr%ROWTYPE ;
263 l_tar_template_attr_rec AMS_Template_Attr_PVT.template_attr_rec_type := P_template_attr_rec;
264 l_rowid ROWID;
265
266 l_template_attr_rec template_attr_rec_Type := p_template_attr_rec;
267
268 BEGIN
269 -- Standard Start of API savepoint
270 SAVEPOINT UPDATE_Template_Attr_PVT;
271
272 -- Standard call to check for call compatibility.
273 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
274 p_api_version_number,
275 l_api_name,
276 G_PKG_NAME)
277 THEN
278 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
279 END IF;
280
281 -- Initialize message list if p_init_msg_list is set to TRUE.
282 IF FND_API.to_Boolean( p_init_msg_list )
283 THEN
284 FND_MSG_PUB.initialize;
285 END IF;
286
287 -- Debug Message
288 IF (AMS_DEBUG_HIGH_ON) THEN
289
290 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
291 END IF;
292
293
294 -- Initialize API return status to SUCCESS
295 x_return_status := FND_API.G_RET_STS_SUCCESS;
296
297 -- Debug Message
298 IF (AMS_DEBUG_HIGH_ON) THEN
299
300 AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
301 END IF;
302
303 /*
304 OPEN c_get_Template_Attr( l_tar_template_attr_rec.template_attribute_id);
305
306 FETCH c_get_Template_Attr INTO l_ref_template_attr_rec ;
307
308 If ( c_get_Template_Attr%NOTFOUND) THEN
309 AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
310 p_token_name => 'INFO',
311 p_token_value => 'Template_Attr') ;
312 RAISE FND_API.G_EXC_ERROR;
313 END IF;
314 -- Debug Message
315 IF (AMS_DEBUG_HIGH_ON) THEN
316
317 AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
318 END IF;
319 CLOSE c_get_Template_Attr;
320 */
321
322
323 If (l_tar_template_attr_rec.object_version_number is NULL or
324 l_tar_template_attr_rec.object_version_number = FND_API.G_MISS_NUM ) Then
325 AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
326 p_token_name => 'COLUMN',
327 p_token_value => 'Last_Update_Date') ;
328 raise FND_API.G_EXC_ERROR;
329 End if;
330 -- Check Whether record has been changed by someone else
331 If (l_tar_template_attr_rec.object_version_number <> l_ref_template_attr_rec.object_version_number) Then
332 AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
333 p_token_name => 'INFO',
334 p_token_value => 'Template_Attr') ;
335 raise FND_API.G_EXC_ERROR;
336 End if;
337 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
338 THEN
339 -- Debug message
340 IF (AMS_DEBUG_HIGH_ON) THEN
341
342 AMS_UTILITY_PVT.debug_message('Private API: Validate_Template_Attr');
343 END IF;
344
345 -- Invoke validation procedures
346 Validate_template_attr(
347 p_api_version_number => 1.0,
348 p_init_msg_list => FND_API.G_FALSE,
349 p_validation_level => p_validation_level,
350 p_validation_mode => JTF_PLSQL_API.g_update,
351 p_template_attr_rec => l_template_attr_rec,
352 x_return_status => x_return_status,
353 x_msg_count => x_msg_count,
354 x_msg_data => x_msg_data);
355 END IF;
356
357 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
358 RAISE FND_API.G_EXC_ERROR;
359 END IF;
360
361 IF (AMS_DEBUG_HIGH_ON) THEN
362 AMS_UTILITY_PVT.debug_message(' IN UPDATE API VALUE FOR DeFAULT FLAG IS :'||l_template_attr_rec.default_flag);
363 END IF;
364
365 /* If select all flag is "Y" then defaulting the default,editable flag to "Y" */
366 --IF l_template_attr_rec.parent_select_all ='Y'
367 --THEN
368 -- l_template_attr_rec.editable_flag := 'Y';
369 -- l_template_attr_rec.default_flag := 'Y';
370 --END IF;
371
372
373 Update AMS_PROD_TEMPLATE_ATTR
374 SET template_attribute_id = DECODE( l_template_attr_rec.template_attribute_id, FND_API.g_miss_num, template_attribute_id, l_template_attr_rec.template_attribute_id),
375 template_id = DECODE( l_template_attr_rec.template_id, FND_API.g_miss_num, template_id, l_template_attr_rec.template_id),
376 last_update_date = sysdate,
377 last_updated_by = fnd_global.user_id,
378 object_version_number = l_template_attr_rec.object_version_number + 1,
379 last_update_login = FND_GLOBAL.CONC_LOGIN_ID,
380 parent_attribute_code = DECODE( l_template_attr_rec.parent_attribute_code, FND_API.g_miss_char, parent_attribute_code, l_template_attr_rec.parent_attribute_code),
381 --parent_select_all = DECODE( l_template_attr_rec.parent_select_all, FND_API.g_miss_char, 'N', l_template_attr_rec.parent_select_all),
382 attribute_code = DECODE( l_template_attr_rec.attribute_code, FND_API.g_miss_char, attribute_code, l_template_attr_rec.attribute_code),
383 default_flag = DECODE( l_template_attr_rec.default_flag, FND_API.g_miss_char,'N', l_template_attr_rec.default_flag),
384 editable_flag = DECODE( l_template_attr_rec.editable_flag, FND_API.g_miss_char, 'N', l_template_attr_rec.editable_flag),
388
385 hide_flag = DECODE( l_template_attr_rec.hide_flag, FND_API.g_miss_char, 'N', l_template_attr_rec.hide_flag)
386 WHERE TEMPLATE_ATTRIBUTE_ID = l_template_attr_rec.TEMPLATE_ATTRIBUTE_ID
387 AND object_version_number = l_template_attr_rec.object_version_number;
389 IF (SQL%NOTFOUND) THEN
390 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
391 END IF;
392
393
394 IF (AMS_DEBUG_HIGH_ON)
395 THEN
396 AMS_UTILITY_PVT.debug_message(' l_template_attr_rec.attribute_code:' ||l_template_attr_rec.attribute_code);
397 AMS_UTILITY_PVT.debug_message(' l_template_attr_rec.parent_select_all:' ||l_template_attr_rec.parent_select_all);
398 AMS_UTILITY_PVT.debug_message(' l_template_attr_rec.parent_attribute_code:' ||l_template_attr_rec.parent_attribute_code);
399 AMS_UTILITY_PVT.debug_message(' l_template_attr_rec.template_id:' ||l_template_attr_rec.template_id);
400 END IF;
401
402 IF (l_template_attr_rec.attribute_code = 'AMS_PROD_INV_ITM'
403 OR l_template_attr_rec.attribute_code = 'AMS_PROD_BOA'
404 OR l_template_attr_rec.attribute_code = 'AMS_PROD_COST'
405 OR l_template_attr_rec.attribute_code = 'AMS_PROD_COLL_ITM'
406 OR l_template_attr_rec.attribute_code = 'AMS_PROD_CUST_O'
407 OR l_template_attr_rec.attribute_code = 'AMS_PROD_INV'
408 OR l_template_attr_rec.attribute_code = 'AMS_PROD_SRP'
409 OR l_template_attr_rec.attribute_code = 'AMS_PROD_ORDWB'
410 OR l_template_attr_rec.attribute_code = 'AMS_PROD_DEFTR'
411 OR l_template_attr_rec.attribute_code = 'AMS_PROD_ORDWB')
412 THEN
413
414 IF l_template_attr_rec.parent_select_all = FND_API.G_MISS_CHAR
415 THEN
416 l_template_attr_rec.parent_select_all := 'N';
417 END IF;
418
419 -- bug 3544835 fix start
420 -- standard who columns should be also modified ,so that the changes
421 -- in the seeded template done by the user,doesn't gets overwritten by the ldts
422
423 UPDATE ams_prod_template_attr
424 SET parent_select_all = l_template_attr_rec.parent_select_all
425 , last_update_date = sysdate
426 , last_updated_by = fnd_global.user_id
427 , last_update_login = FND_GLOBAL.CONC_LOGIN_ID
428 --, object_version_number = object_version_number + 1
429 WHERE template_id = l_template_attr_rec.template_id
430 AND parent_attribute_code = l_template_attr_rec.parent_attribute_code;
431
432 IF (AMS_DEBUG_HIGH_ON) THEN
433
434
435
436 AMS_UTILITY_PVT.debug_message('AFTER UPDATe for l_template_attr_rec.parent_select_all :'||l_template_attr_rec.parent_select_all );
437
438 END IF;
439 END IF;
440
441 --x_return_status :=FND_API.G_RET_STS_UNEXP_ERROR;
442
443 --
444 -- End of API body.
445 --
446
447 -- Standard check for p_commit
448 IF FND_API.to_Boolean( p_commit )
449 THEN
450 COMMIT WORK;
451 END IF;
452
453
454 -- Debug Message
455 IF (AMS_DEBUG_HIGH_ON) THEN
456
457 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
458 END IF;
459
460 -- Standard call to get message count and if count is 1, get message info.
461 FND_MSG_PUB.Count_And_Get
462 (p_count => x_msg_count,
463 p_data => x_msg_data
464 );
465 EXCEPTION
466
467 WHEN AMS_Utility_PVT.resource_locked THEN
468 x_return_status := FND_API.g_ret_sts_error;
469 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
470
471 WHEN FND_API.G_EXC_ERROR THEN
472 ROLLBACK TO UPDATE_Template_Attr_PVT;
473 x_return_status := FND_API.G_RET_STS_ERROR;
474 -- Standard call to get message count and if count=1, get the message
475 FND_MSG_PUB.Count_And_Get (
476 p_encoded => FND_API.G_FALSE,
477 p_count => x_msg_count,
478 p_data => x_msg_data
479 );
480
481 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
482 ROLLBACK TO UPDATE_Template_Attr_PVT;
483 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
484 -- Standard call to get message count and if count=1, get the message
485 FND_MSG_PUB.Count_And_Get (
486 p_encoded => FND_API.G_FALSE,
487 p_count => x_msg_count,
488 p_data => x_msg_data
489 );
490
491 WHEN OTHERS THEN
492 ROLLBACK TO UPDATE_Template_Attr_PVT;
493 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
494 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
495 THEN
496 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
497 END IF;
498 -- Standard call to get message count and if count=1, get the message
499 FND_MSG_PUB.Count_And_Get (
500 p_encoded => FND_API.G_FALSE,
501 p_count => x_msg_count,
502 p_data => x_msg_data
503 );
504 End Update_Template_Attr;
505
506
507 PROCEDURE Delete_Template_Attr(
508 p_api_version_number IN NUMBER,
509 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
510 p_commit IN VARCHAR2 := FND_API.G_FALSE,
511 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
515 p_template_attribute_id IN NUMBER,
512 x_return_status OUT NOCOPY VARCHAR2,
513 x_msg_count OUT NOCOPY NUMBER,
514 x_msg_data OUT NOCOPY VARCHAR2,
516 p_object_version_number IN NUMBER
517 )
518
519 IS
520 L_API_NAME CONSTANT VARCHAR2(30) := 'Delete_Template_Attr';
521 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
522 l_object_version_number NUMBER;
523
524 BEGIN
525 -- Standard Start of API savepoint
526 SAVEPOINT DELETE_Template_Attr_PVT;
527
528 -- Standard call to check for call compatibility.
529 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
530 p_api_version_number,
531 l_api_name,
532 G_PKG_NAME)
533 THEN
534 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
535 END IF;
536
537 -- Initialize message list if p_init_msg_list is set to TRUE.
538 IF FND_API.to_Boolean( p_init_msg_list )
539 THEN
540 FND_MSG_PUB.initialize;
541 END IF;
542
543 -- Debug Message
544 IF (AMS_DEBUG_HIGH_ON) THEN
545
546 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
547 END IF;
548
549
550 -- Initialize API return status to SUCCESS
551 x_return_status := FND_API.G_RET_STS_SUCCESS;
552
553
554 DELETE FROM AMS_PROD_TEMPLATE_ATTR
555 WHERE TEMPLATE_ATTRIBUTE_ID = p_TEMPLATE_ATTRIBUTE_ID;
556
557 If (SQL%NOTFOUND) then
558 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
559 End If;
560
561 -- Standard check for p_commit
562 IF FND_API.to_Boolean( p_commit )
563 THEN
564 COMMIT WORK;
565 END IF;
566
567
568 -- Debug Message
569 IF (AMS_DEBUG_HIGH_ON) THEN
570
571 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
572 END IF;
573
574 -- Standard call to get message count and if count is 1, get message info.
575 FND_MSG_PUB.Count_And_Get
576 (p_count => x_msg_count,
577 p_data => x_msg_data
578 );
579 EXCEPTION
580
581 WHEN AMS_Utility_PVT.resource_locked THEN
582 x_return_status := FND_API.g_ret_sts_error;
583 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
584
585 WHEN FND_API.G_EXC_ERROR THEN
586 ROLLBACK TO DELETE_Template_Attr_PVT;
587 x_return_status := FND_API.G_RET_STS_ERROR;
588 -- Standard call to get message count and if count=1, get the message
589 FND_MSG_PUB.Count_And_Get (
590 p_encoded => FND_API.G_FALSE,
591 p_count => x_msg_count,
592 p_data => x_msg_data
593 );
594
595 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
596 ROLLBACK TO DELETE_Template_Attr_PVT;
597 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
598 -- Standard call to get message count and if count=1, get the message
599 FND_MSG_PUB.Count_And_Get (
600 p_encoded => FND_API.G_FALSE,
601 p_count => x_msg_count,
602 p_data => x_msg_data
603 );
604
605 WHEN OTHERS THEN
606 ROLLBACK TO DELETE_Template_Attr_PVT;
607 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
608 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
609 THEN
610 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
611 END IF;
612 -- Standard call to get message count and if count=1, get the message
613 FND_MSG_PUB.Count_And_Get (
614 p_encoded => FND_API.G_FALSE,
615 p_count => x_msg_count,
616 p_data => x_msg_data
617 );
618 End Delete_Template_Attr;
619
620
621
622 -- Hint: Primary key needs to be returned.
623 PROCEDURE Lock_Template_Attr(
624 p_api_version_number IN NUMBER,
625 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
626
627 x_return_status OUT NOCOPY VARCHAR2,
628 x_msg_count OUT NOCOPY NUMBER,
629 x_msg_data OUT NOCOPY VARCHAR2,
630
631 p_template_attribute_id IN NUMBER,
632 p_object_version IN NUMBER
633 )
634
635 IS
636 L_API_NAME CONSTANT VARCHAR2(30) := 'Lock_Template_Attr';
637 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
638 L_FULL_NAME CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
639 l_TEMPLATE_ATTRIBUTE_ID NUMBER;
640
641 CURSOR c_Template_Attr IS
642 SELECT TEMPLATE_ATTRIBUTE_ID
643 FROM AMS_PROD_TEMPLATE_ATTR
644 WHERE TEMPLATE_ATTRIBUTE_ID = p_TEMPLATE_ATTRIBUTE_ID
645 AND object_version_number = p_object_version
646 FOR UPDATE NOWAIT;
647
648 BEGIN
649
650 -- Debug Message
651 IF (AMS_DEBUG_HIGH_ON) THEN
652
653 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
654 END IF;
658 THEN
655
656 -- Initialize message list if p_init_msg_list is set to TRUE.
657 IF FND_API.to_Boolean( p_init_msg_list )
659 FND_MSG_PUB.initialize;
660 END IF;
661
662 -- Standard call to check for call compatibility.
663 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
664 p_api_version_number,
665 l_api_name,
666 G_PKG_NAME)
667 THEN
668 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
669 END IF;
670
671
672 -- Initialize API return status to SUCCESS
673 x_return_status := FND_API.G_RET_STS_SUCCESS;
674
675
676 ------------------------ lock -------------------------
677
678 IF (AMS_DEBUG_HIGH_ON) THEN
679
680
681
682 AMS_Utility_PVT.debug_message(l_full_name||': start');
683
684 END IF;
685 OPEN c_Template_Attr;
686
687 FETCH c_Template_Attr INTO l_TEMPLATE_ATTRIBUTE_ID;
688
689 IF (c_Template_Attr%NOTFOUND) THEN
690 CLOSE c_Template_Attr;
691 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
692 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
693 FND_MSG_PUB.add;
694 END IF;
695 RAISE FND_API.g_exc_error;
696 END IF;
697
698 CLOSE c_Template_Attr;
699
700 -------------------- finish --------------------------
701 FND_MSG_PUB.count_and_get(
702 p_encoded => FND_API.g_false,
703 p_count => x_msg_count,
704 p_data => x_msg_data);
705 IF (AMS_DEBUG_HIGH_ON) THEN
706
707 AMS_Utility_PVT.debug_message(l_full_name ||': end');
708 END IF;
709 EXCEPTION
710
711 WHEN AMS_Utility_PVT.resource_locked THEN
712 x_return_status := FND_API.g_ret_sts_error;
713 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
714
715 WHEN FND_API.G_EXC_ERROR THEN
716 ROLLBACK TO LOCK_Template_Attr_PVT;
717 x_return_status := FND_API.G_RET_STS_ERROR;
718 -- Standard call to get message count and if count=1, get the message
719 FND_MSG_PUB.Count_And_Get (
720 p_encoded => FND_API.G_FALSE,
721 p_count => x_msg_count,
722 p_data => x_msg_data
723 );
724
725 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
726 ROLLBACK TO LOCK_Template_Attr_PVT;
727 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
728 -- Standard call to get message count and if count=1, get the message
729 FND_MSG_PUB.Count_And_Get (
730 p_encoded => FND_API.G_FALSE,
731 p_count => x_msg_count,
732 p_data => x_msg_data
733 );
734
735 WHEN OTHERS THEN
736 ROLLBACK TO LOCK_Template_Attr_PVT;
737 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
738 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
739 THEN
740 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
741 END IF;
742 -- Standard call to get message count and if count=1, get the message
743 FND_MSG_PUB.Count_And_Get (
744 p_encoded => FND_API.G_FALSE,
745 p_count => x_msg_count,
746 p_data => x_msg_data
747 );
748 End Lock_Template_Attr;
749
750
751 PROCEDURE check_template_attr_uk_items(
752 p_template_attr_rec IN template_attr_rec_type,
753 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
754 x_return_status OUT NOCOPY VARCHAR2)
755 IS
756 l_valid_flag VARCHAR2(1);
757
758 BEGIN
759 x_return_status := FND_API.g_ret_sts_success;
760 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
761 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
762 'AMS_PROD_TEMPLATE_ATTR',
763 'TEMPLATE_ATTRIBUTE_ID = ''' || p_template_attr_rec.TEMPLATE_ATTRIBUTE_ID ||''''
764 );
765 ELSE
766 l_valid_flag := AMS_Utility_PVT.check_uniqueness(
767 'AMS_PROD_TEMPLATE_ATTR',
768 'TEMPLATE_ATTRIBUTE_ID = ''' || p_template_attr_rec.TEMPLATE_ATTRIBUTE_ID ||
769 ''' AND TEMPLATE_ATTRIBUTE_ID <> ' || p_template_attr_rec.TEMPLATE_ATTRIBUTE_ID
770 );
771 END IF;
772
773 IF l_valid_flag = FND_API.g_false THEN
774 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_TEMPLATE_ID_DUPLICATE');
775 x_return_status := FND_API.g_ret_sts_error;
776 RETURN;
777 END IF;
778
779 END check_template_attr_uk_items;
780
781 PROCEDURE check_template_attr_req_items(
782 p_template_attr_rec IN template_attr_rec_type,
783 p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
784 x_return_status OUT NOCOPY VARCHAR2
785 )
786 IS
787 BEGIN
788 x_return_status := FND_API.g_ret_sts_success;
789
790 IF p_validation_mode = JTF_PLSQL_API.g_create THEN
791
792 IF p_template_attr_rec.template_id = FND_API.g_miss_num OR p_template_attr_rec.template_id IS NULL THEN
793 FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
794 FND_MESSAGE.set_token('MISS_FIELD','TEMPLATE_ID');
798
795 x_return_status := FND_API.g_ret_sts_error;
796 RETURN;
797 END IF;
799 ELSE
800
801 IF p_template_attr_rec.template_attribute_id IS NULL THEN
802 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_template_attr_NO_template_attribute_id');
803 x_return_status := FND_API.g_ret_sts_error;
804 RETURN;
805 END IF;
806
807
808 IF p_template_attr_rec.template_id IS NULL THEN
809 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_template_attr_NO_template_id');
810 x_return_status := FND_API.g_ret_sts_error;
811 RETURN;
812 END IF;
813 /*
814 IF (p_template_attr_rec.parent_select_all = 'Y'
815 AND(( p_template_attr_rec.editable_flag = 'N')
816 OR (p_template_attr_rec.default_flag = 'N')))
817 THEN
818 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
819 THEN
820 FND_MESSAGE.Set_Name('AMS', 'AMS_EDIT_SELECT_DEF_ERROR');
821 FND_MSG_PUB.Add;
822 END IF;
823
824 x_return_status := FND_API.g_ret_sts_error;
825 RETURN;
826
827 END IF;
828 */
829
830 END IF;
831
832 END check_template_attr_req_items;
833
834 PROCEDURE check_template_attr_FK_items(
835 p_template_attr_rec IN template_attr_rec_type,
836 x_return_status OUT NOCOPY VARCHAR2
837 )
838 IS
839 BEGIN
840 x_return_status := FND_API.g_ret_sts_success;
841
842 -- Enter custom code here
843
844 END check_template_attr_FK_items;
845
846 PROCEDURE check_template_attr_Lkup_items(
847 p_template_attr_rec IN template_attr_rec_type,
848 x_return_status OUT NOCOPY VARCHAR2
849 )
850 IS
851 BEGIN
852 x_return_status := FND_API.g_ret_sts_success;
853
854 -- Enter custom code here
855
856 END check_template_attr_Lkup_items;
857
858 PROCEDURE Check_template_attr_Items (
859 P_template_attr_rec IN template_attr_rec_type,
860 p_validation_mode IN VARCHAR2,
861 x_return_status OUT NOCOPY VARCHAR2
862 )
863 IS
864 BEGIN
865
866 -- Check Items Uniqueness API calls
867
868 check_template_attr_uk_items(
869 p_template_attr_rec => p_template_attr_rec,
870 p_validation_mode => p_validation_mode,
871 x_return_status => x_return_status);
872 IF x_return_status <> FND_API.g_ret_sts_success THEN
873 RETURN;
874 END IF;
875
876 -- Check Items Required/NOT NULL API calls
877
878 check_template_attr_req_items(
879 p_template_attr_rec => p_template_attr_rec,
880 p_validation_mode => p_validation_mode,
881 x_return_status => x_return_status);
882 IF x_return_status <> FND_API.g_ret_sts_success THEN
883 RETURN;
884 END IF;
885 -- Check Items Foreign Keys API calls
886
887 check_template_attr_FK_items(
888 p_template_attr_rec => p_template_attr_rec,
889 x_return_status => x_return_status);
890 IF x_return_status <> FND_API.g_ret_sts_success THEN
891 RETURN;
892 END IF;
893 -- Check Items Lookups
894
895 check_template_attr_Lkup_items(
896 p_template_attr_rec => p_template_attr_rec,
897 x_return_status => x_return_status);
898 IF x_return_status <> FND_API.g_ret_sts_success THEN
899 RETURN;
900 END IF;
901
902 END Check_template_attr_Items;
903
904
905
906 PROCEDURE Complete_template_attr_Rec (
907 p_template_attr_rec IN template_attr_rec_type,
908 x_complete_rec OUT NOCOPY template_attr_rec_type)
909 IS
910 l_return_status VARCHAR2(1);
911
912 CURSOR c_complete IS
913 SELECT *
914 FROM ams_prod_template_attr
915 WHERE template_attribute_id = p_template_attr_rec.template_attribute_id;
916 l_template_attr_rec c_complete%ROWTYPE;
917 BEGIN
918 x_complete_rec := p_template_attr_rec;
919
920
921 OPEN c_complete;
922 FETCH c_complete INTO l_template_attr_rec;
923 CLOSE c_complete;
924
925 -- template_attribute_id
926 IF p_template_attr_rec.template_attribute_id = FND_API.g_miss_num THEN
927 x_complete_rec.template_attribute_id := l_template_attr_rec.template_attribute_id;
928 END IF;
929
930 -- template_id
931 IF p_template_attr_rec.template_id = FND_API.g_miss_num THEN
932 x_complete_rec.template_id := l_template_attr_rec.template_id;
933 END IF;
934
935 -- last_update_date
936 IF p_template_attr_rec.last_update_date = FND_API.g_miss_date THEN
937 x_complete_rec.last_update_date := l_template_attr_rec.last_update_date;
938 END IF;
939
940 -- last_updated_by
941 IF p_template_attr_rec.last_updated_by = FND_API.g_miss_num THEN
942 x_complete_rec.last_updated_by := l_template_attr_rec.last_updated_by;
943 END IF;
944
945 -- creation_date
946 IF p_template_attr_rec.creation_date = FND_API.g_miss_date THEN
947 x_complete_rec.creation_date := l_template_attr_rec.creation_date;
948 END IF;
949
950 -- created_by
951 IF p_template_attr_rec.created_by = FND_API.g_miss_num THEN
955 -- object_version_number
952 x_complete_rec.created_by := l_template_attr_rec.created_by;
953 END IF;
954
956 IF p_template_attr_rec.object_version_number = FND_API.g_miss_num THEN
957 x_complete_rec.object_version_number := l_template_attr_rec.object_version_number;
958 END IF;
959
960 -- last_update_login
961 IF p_template_attr_rec.last_update_login = FND_API.g_miss_num THEN
962 x_complete_rec.last_update_login := l_template_attr_rec.last_update_login;
963 END IF;
964
965 -- security_group_id
966 IF p_template_attr_rec.security_group_id = FND_API.g_miss_num THEN
967 x_complete_rec.security_group_id := l_template_attr_rec.security_group_id;
968 END IF;
969
970 -- parent_attribute_code
971 IF p_template_attr_rec.parent_attribute_code = FND_API.g_miss_char THEN
972 x_complete_rec.parent_attribute_code := l_template_attr_rec.parent_attribute_code;
973 END IF;
974
975 -- parent_select_all
976 IF p_template_attr_rec.parent_select_all = FND_API.g_miss_char THEN
977 x_complete_rec.parent_select_all := l_template_attr_rec.parent_select_all;
978 END IF;
979
980 -- attribute_code
981 IF p_template_attr_rec.attribute_code = FND_API.g_miss_char THEN
982 x_complete_rec.attribute_code := l_template_attr_rec.attribute_code;
983 END IF;
984
985 -- default_flag
986 IF p_template_attr_rec.default_flag = FND_API.g_miss_char THEN
987 x_complete_rec.default_flag := l_template_attr_rec.default_flag;
988 END IF;
989
990 -- editable_flag
991 IF p_template_attr_rec.editable_flag = FND_API.g_miss_char THEN
992 x_complete_rec.editable_flag := l_template_attr_rec.editable_flag;
993 END IF;
994
995 -- hide_flag
996 IF p_template_attr_rec.hide_flag = FND_API.g_miss_char THEN
997 x_complete_rec.hide_flag := l_template_attr_rec.hide_flag;
998 END IF;
999 -- Note: Developers need to modify the procedure
1000 -- to handle any business specific requirements.
1001 END Complete_template_attr_Rec;
1002 PROCEDURE Validate_template_attr(
1003 p_api_version_number IN NUMBER,
1004 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1005 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1006 p_template_attr_rec IN template_attr_rec_type,
1007 p_validation_mode IN VARCHAR2,
1008 x_return_status OUT NOCOPY VARCHAR2,
1009 x_msg_count OUT NOCOPY NUMBER,
1010 x_msg_data OUT NOCOPY VARCHAR2
1011 )
1012 IS
1013 L_API_NAME CONSTANT VARCHAR2(30) := 'Validate_Template_Attr';
1014 L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
1015 l_object_version_number NUMBER;
1016 l_template_attr_rec AMS_Template_Attr_PVT.template_attr_rec_type;
1017
1018 BEGIN
1019
1020 -- Initialize API return status to SUCCESS
1021 x_return_status := FND_API.G_RET_STS_SUCCESS;
1022
1023
1024 -- Debug Message
1025 IF (AMS_DEBUG_HIGH_ON) THEN
1026
1027 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1028 END IF;
1029
1030 -- Standard Start of API savepoint
1031 SAVEPOINT VALIDATE_Template_Attr_;
1032
1033 -- Standard call to check for call compatibility.
1034 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1035 p_api_version_number,
1036 l_api_name,
1037 G_PKG_NAME)
1038 THEN
1039 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1040 END IF;
1041
1042 -- Initialize message list if p_init_msg_list is set to TRUE.
1043 IF FND_API.to_Boolean( p_init_msg_list )
1044 THEN
1045 FND_MSG_PUB.initialize;
1046 END IF;
1047 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1048 Check_template_attr_Items(
1049 p_template_attr_rec => p_template_attr_rec,
1050 p_validation_mode => p_validation_mode,
1051 x_return_status => x_return_status
1052 );
1053
1054 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1055 RAISE FND_API.G_EXC_ERROR;
1056 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1057 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1058 END IF;
1059 END IF;
1060
1061 Complete_template_attr_Rec(
1062 p_template_attr_rec => p_template_attr_rec,
1063 x_complete_rec => l_template_attr_rec
1064 );
1065
1066 IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1067 Validate_template_attr_Rec(
1068 p_api_version_number => 1.0,
1069 p_init_msg_list => FND_API.G_FALSE,
1070 x_return_status => x_return_status,
1071 x_msg_count => x_msg_count,
1072 x_msg_data => x_msg_data,
1073 p_template_attr_rec => l_template_attr_rec);
1074
1075 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1076 RAISE FND_API.G_EXC_ERROR;
1077 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1081
1078 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1079 END IF;
1080 END IF;
1082
1083 -- Debug Message
1084 IF (AMS_DEBUG_HIGH_ON) THEN
1085
1086 AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || ' end and the return status is '||x_return_status);
1087 END IF;
1088
1089 -- Standard call to get message count and if count is 1, get message info.
1090 FND_MSG_PUB.Count_And_Get
1091 (p_count => x_msg_count,
1092 p_data => x_msg_data
1093 );
1094 EXCEPTION
1095
1096 WHEN AMS_Utility_PVT.resource_locked THEN
1097 x_return_status := FND_API.g_ret_sts_error;
1098 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1099
1100 WHEN FND_API.G_EXC_ERROR THEN
1101 ROLLBACK TO VALIDATE_Template_Attr_;
1102 x_return_status := FND_API.G_RET_STS_ERROR;
1103 -- Standard call to get message count and if count=1, get the message
1104 FND_MSG_PUB.Count_And_Get (
1105 p_encoded => FND_API.G_FALSE,
1106 p_count => x_msg_count,
1107 p_data => x_msg_data
1108 );
1109
1110 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1111 ROLLBACK TO VALIDATE_Template_Attr_;
1112 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1113 -- Standard call to get message count and if count=1, get the message
1114 FND_MSG_PUB.Count_And_Get (
1115 p_encoded => FND_API.G_FALSE,
1116 p_count => x_msg_count,
1117 p_data => x_msg_data
1118 );
1119
1120 WHEN OTHERS THEN
1121 ROLLBACK TO VALIDATE_Template_Attr_;
1122 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1123 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1124 THEN
1125 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1126 END IF;
1127 -- Standard call to get message count and if count=1, get the message
1128 FND_MSG_PUB.Count_And_Get (
1129 p_encoded => FND_API.G_FALSE,
1130 p_count => x_msg_count,
1131 p_data => x_msg_data
1132 );
1133 End Validate_Template_Attr;
1134
1135
1136 PROCEDURE Validate_template_attr_rec(
1137 p_api_version_number IN NUMBER,
1138 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1139 x_return_status OUT NOCOPY VARCHAR2,
1140 x_msg_count OUT NOCOPY NUMBER,
1141 x_msg_data OUT NOCOPY VARCHAR2,
1142 p_template_attr_rec IN template_attr_rec_type
1143 )
1144 IS
1145 BEGIN
1146 -- Initialize message list if p_init_msg_list is set to TRUE.
1147 IF FND_API.to_Boolean( p_init_msg_list )
1148 THEN
1149 FND_MSG_PUB.initialize;
1150 END IF;
1151
1152 -- Initialize API return status to SUCCESS
1153 x_return_status := FND_API.G_RET_STS_SUCCESS;
1154
1155 -- Hint: Validate data
1156 -- If data not valid
1157 -- THEN
1158 -- x_return_status := FND_API.G_RET_STS_ERROR;
1159
1160 -- Debug Message
1161 IF (AMS_DEBUG_HIGH_ON) THEN
1162
1163 AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1164 END IF;
1165 -- Standard call to get message count and if count is 1, get message info.
1166 FND_MSG_PUB.Count_And_Get
1167 (p_count => x_msg_count,
1168 p_data => x_msg_data
1169 );
1170 END Validate_template_attr_Rec;
1171
1172 END AMS_Template_Attr_PVT;