[Home] [Help]
PACKAGE BODY: APPS.AMV_CONTENT_TYPE_PVT
Source
1 PACKAGE BODY amv_content_type_pvt AS
2 /* $Header: amvvctpb.pls 120.1 2005/06/21 15:29:39 appldev ship $ */
3 --
4 -- NAME
5 -- AMV_CONTENT_TYPE_PVT
6 --
7 -- HISTORY
8 -- 07/19/1999 PWU CREATED
9 --
10 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AMV_CONTENT_TYPE_PVT';
11 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amvvctpb.pls';
12 --
13 -- Debug mode
14 --g_debug boolean := FALSE;
15 g_debug boolean := TRUE;
16 --
17 TYPE CursorType IS REF CURSOR;
18 --
19 ----------------------------- Private Cursors in this package ------------------
20 CURSOR Check_DupContTypeName_csr(p_name IN varchar2) IS
21 Select
22 content_type_id
23 From amv_i_content_types_tl
24 Where content_type_name = p_name
25 And language IN
26 (
27 Select L.language_code
28 From fnd_languages L
29 Where L.installed_flag in ('I', 'B')
30 )
31 ;
32 --
33 CURSOR Check_ValidContTypeName_csr(p_name varchar2) IS
34 Select
35 content_type_id
36 From amv_i_content_types_tl
37 Where content_type_name = p_name
38 And language = userenv('lang');
39 --
40 --------------------------- Private Utility inside this package ----------------
41 --------------------------------------------------------------------------------
42 --
43 --
44 --------------------------------------------------------------------------------
45 PROCEDURE Add_ContentType
46 (
47 p_api_version IN NUMBER,
48 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
49 p_commit IN VARCHAR2 := FND_API.G_FALSE,
50 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
51 x_return_status OUT NOCOPY VARCHAR2,
52 x_msg_count OUT NOCOPY NUMBER,
53 x_msg_data OUT NOCOPY VARCHAR2,
54 p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
55 p_content_type_name IN VARCHAR2,
56 p_cnt_type_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
57 x_content_type_id OUT NOCOPY NUMBER
58 ) IS
59 l_api_name CONSTANT VARCHAR2(30) := 'Add_ContentType';
60 l_api_version CONSTANT NUMBER := 1.0;
61 l_resource_id NUMBER := -1;
62 l_current_user_id NUMBER := -1;
63 l_current_login_id NUMBER := -1;
64 l_current_user_status VARCHAR2(80);
65 --
66 l_admin_flag VARCHAR2(1);
67 l_rowid VARCHAR2(500);
68 l_content_type_id NUMBER;
69 l_description VARCHAR2(2000);
70 l_current_date date;
71 --
72 CURSOR Get_DateAndId_csr IS
73 select
74 AMV_I_CONTENT_TYPES_B_S.nextval, sysdate
75 from dual;
76 --
77 BEGIN
78 -- Standard call to check for call compatibility.
79 SAVEPOINT Add_ContentType_Pvt;
80 IF NOT FND_API.Compatible_API_Call (
81 l_api_version,
82 p_api_version,
83 l_api_name,
84 G_PKG_NAME) THEN
85 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
86 END IF;
87 --Initialize message list if p_init_msg_list is TRUE.
88 IF FND_API.To_Boolean (p_init_msg_list) THEN
89 FND_MSG_PUB.initialize;
90 END IF;
91 -- Initialize API return status to success
92 x_return_status := FND_API.G_RET_STS_SUCCESS;
93 -- Get the current (login) user id.
94 AMV_UTILITY_PVT.Get_UserInfo(
95 x_resource_id => l_resource_id,
96 x_user_id => l_current_user_id,
97 x_login_id => l_current_login_id,
98 x_user_status => l_current_user_status
99 );
100 IF (p_check_login_user = FND_API.G_TRUE) THEN
101 -- Check if user is login and has the required privilege.
102 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
103 -- User is not login.
104 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
105 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
106 FND_MSG_PUB.Add;
107 END IF;
108 RAISE FND_API.G_EXC_ERROR;
109 END IF;
110 AMV_USER_PVT.Is_Administrator
111 (
112 p_api_version => 1.0,
113 x_return_status => x_return_status,
114 x_msg_count => x_msg_count,
115 x_msg_data => x_msg_data,
116 p_check_login_user => FND_API.G_FALSE,
117 p_resource_id => l_resource_id,
118 x_result_flag => l_admin_flag
119 );
120 IF (l_admin_flag <> FND_API.G_TRUE) THEN
121 -- User is not an administrator.
122 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
123 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
124 FND_MSG_PUB.Add;
125 END IF;
126 RAISE FND_API.G_EXC_ERROR;
127 END IF;
128 END IF;
129 -- This is to make database happy
130 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
131 l_current_login_id := -1;
132 l_current_user_id := -1;
133 END IF;
134 OPEN Check_DupContTypeName_csr(p_content_type_name);
135 FETCH Check_DupContTypeName_csr Into l_content_type_id;
136 IF Check_DupContTypeName_csr%FOUND THEN
137 -- The name is already used
138 CLOSE Check_DupContTypeName_csr;
139 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
140 FND_MESSAGE.Set_name('AMV','AMV_RECORD_NAME_DUPLICATED');
141 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
142 FND_MESSAGE.Set_Token('NAME', p_content_type_name);
143 FND_MSG_PUB.Add;
144 END IF;
145 RAISE FND_API.G_EXC_ERROR;
146 END IF;
147 CLOSE Check_DupContTypeName_csr;
148 --
149 OPEN Get_DateAndId_csr;
150 FETCH Get_DateAndId_csr Into l_content_type_id, l_current_date;
151 CLOSE Get_DateAndId_csr;
152 --
153 IF (p_cnt_type_description = FND_API.G_MISS_CHAR) THEN
154 l_description := NULL;
155 ELSE
156 l_description := p_cnt_type_description;
157 END IF;
158 --Do create the record now.
159 AMV_I_CONTENT_TYPES_PKG.INSERT_ROW
160 (
161 X_ROWID => l_rowid,
162 X_CONTENT_TYPE_ID => l_content_type_id,
163 X_OBJECT_VERSION_NUMBER => 1,
164 X_CONTENT_TYPE_NAME => p_content_type_name,
165 X_DESCRIPTION => l_description,
166 X_CREATION_DATE => l_current_date,
167 X_CREATED_BY => l_current_user_id,
168 X_LAST_UPDATE_DATE => l_current_date,
169 X_LAST_UPDATED_BY => l_current_user_id,
170 X_LAST_UPDATE_LOGIN => l_current_login_id
171 );
172 --Standard check of commit
173 IF FND_API.To_Boolean ( p_commit ) THEN
174 COMMIT WORK;
175 END IF;
176 --Standard call to get message count and if count=1, get the message
177 FND_MSG_PUB.Count_And_Get (
178 p_encoded => FND_API.G_FALSE,
179 p_count => x_msg_count,
180 p_data => x_msg_data
181 );
182 EXCEPTION
183 WHEN FND_API.G_EXC_ERROR THEN
184 ROLLBACK TO Add_ContentType_Pvt;
185 x_return_status := FND_API.G_RET_STS_ERROR;
186 -- Standard call to get message count and if count=1, get the message
187 FND_MSG_PUB.Count_And_Get (
188 p_encoded => FND_API.G_FALSE,
189 p_count => x_msg_count,
190 p_data => x_msg_data
191 );
192 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
193 ROLLBACK TO Add_ContentType_Pvt;
194 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
195 -- Standard call to get message count and if count=1, get the message
196 FND_MSG_PUB.Count_And_Get (
197 p_encoded => FND_API.G_FALSE,
198 p_count => x_msg_count,
199 p_data => x_msg_data
200 );
201 WHEN OTHERS THEN
202 ROLLBACK TO Add_ContentType_Pvt;
203 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
204 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
205 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
206 END IF;
207 -- Standard call to get message count and if count=1, get the message
208 FND_MSG_PUB.Count_And_Get (
209 p_encoded => FND_API.G_FALSE,
210 p_count => x_msg_count,
211 p_data => x_msg_data
212 );
213 --
214 END Add_ContentType;
215 --------------------------------------------------------------------------------
216 PROCEDURE Delete_ContentType
217 (
218 p_api_version IN NUMBER,
219 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
220 p_commit IN VARCHAR2 := FND_API.G_FALSE,
221 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
222 x_return_status OUT NOCOPY VARCHAR2,
223 x_msg_count OUT NOCOPY NUMBER,
224 x_msg_data OUT NOCOPY VARCHAR2,
225 p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
226 p_content_type_id IN NUMBER := FND_API.G_MISS_NUM,
227 p_content_type_name IN VARCHAR2 := FND_API.G_MISS_CHAR
228 ) IS
229 l_api_name CONSTANT VARCHAR2(30) := 'Delete_ContentType';
230 l_api_version CONSTANT NUMBER := 1.0;
231 l_resource_id NUMBER := -1;
232 l_current_user_id NUMBER := -1;
233 l_current_login_id NUMBER := -1;
234 l_current_user_status VARCHAR2(80);
235 --
236 l_admin_flag VARCHAR2(1);
237 l_content_type_id NUMBER;
238 l_item_id NUMBER;
239 --
240 CURSOR Get_Item_csr (p_ContentType_id IN NUMBER) IS
241 Select
242 item_id
243 From jtf_amv_items_b
244 Where content_type_id = p_ContentType_id;
245 --
246 BEGIN
247 -- Standard call to check for call compatibility.
248 SAVEPOINT Delete_ContentType_Pvt;
249 IF NOT FND_API.Compatible_API_Call (
250 l_api_version,
251 p_api_version,
252 l_api_name,
253 G_PKG_NAME) THEN
254 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
255 END IF;
256 --Initialize message list if p_init_msg_list is TRUE.
257 IF FND_API.To_Boolean (p_init_msg_list) THEN
258 FND_MSG_PUB.initialize;
259 END IF;
260 -- Initialize API return status to success
261 x_return_status := FND_API.G_RET_STS_SUCCESS;
262 -- Get the current (login) user id.
263 AMV_UTILITY_PVT.Get_UserInfo(
264 x_resource_id => l_resource_id,
265 x_user_id => l_current_user_id,
266 x_login_id => l_current_login_id,
267 x_user_status => l_current_user_status
268 );
269 IF (p_check_login_user = FND_API.G_TRUE) THEN
270 -- Check if user is login and has the required privilege.
271 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
272 -- User is not login.
273 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
274 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
275 FND_MSG_PUB.Add;
276 END IF;
277 RAISE FND_API.G_EXC_ERROR;
278 END IF;
279 AMV_USER_PVT.Is_Administrator
280 (
281 p_api_version => 1.0,
282 x_return_status => x_return_status,
283 x_msg_count => x_msg_count,
284 x_msg_data => x_msg_data,
285 p_check_login_user => FND_API.G_FALSE,
286 p_resource_id => l_resource_id,
287 x_result_flag => l_admin_flag
288 );
289 IF (l_admin_flag <> FND_API.G_TRUE) THEN
290 -- User is not an administrator.
291 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
292 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
293 FND_MSG_PUB.Add;
294 END IF;
295 RAISE FND_API.G_EXC_ERROR;
296 END IF;
297 END IF;
298 -- This is to make database happy
299 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
300 l_current_login_id := -1;
301 l_current_user_id := -1;
302 END IF;
303 IF (p_content_type_id <> FND_API.G_MISS_NUM) THEN
304 -- Check if user pass the valid content type id
305 IF AMV_UTILITY_PVT.Is_ContentTypeIdValid(p_content_type_id) = TRUE THEN
306 l_content_type_id := p_content_type_id;
307 ELSE
308 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
309 FND_MESSAGE.Set_name('AMV','AMV_RECORD_ID_MISSING');
310 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
311 FND_MESSAGE.Set_Token('ID', to_char(p_content_type_id));
312 FND_MSG_PUB.Add;
313 END IF;
314 RAISE FND_API.G_EXC_ERROR;
315 END IF;
316 ELSIF (p_content_type_name <> FND_API.G_MISS_CHAR) THEN
317 OPEN Check_ValidContTypeName_csr(p_content_type_name);
318 FETCH Check_ValidContTypeName_csr Into l_content_type_id;
319 IF (Check_ValidContTypeName_csr%NOTFOUND) THEN
320 CLOSE Check_ValidContTypeName_csr;
321 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
322 FND_MESSAGE.Set_name('AMV','AMV_RECORD_NAME_MISSING');
323 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
324 FND_MESSAGE.Set_Token('NAME', p_content_type_name);
325 FND_MSG_PUB.Add;
326 END IF;
327 RAISE FND_API.G_EXC_ERROR;
328 END IF;
329 CLOSE Check_ValidContTypeName_csr;
330 ELSE
331 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
332 FND_MESSAGE.Set_name('AMV','AMV_NEED_RECORD_NAME_OR_ID');
333 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
334 FND_MSG_PUB.Add;
335 END IF;
336 RAISE FND_API.G_EXC_ERROR;
337 END IF;
338 --
339 -- Check if any item uses this content type. If so, error out.
340 OPEN Get_Item_csr (l_content_type_id);
341 FETCH Get_Item_csr INTO l_item_id;
342 IF (Get_Item_csr%FOUND) THEN
343 CLOSE Get_Item_csr;
344 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
345 FND_MESSAGE.Set_name('AMV','AMV_ITEM_USING_ATTR');
346 FND_MESSAGE.Set_Token('RECORDID', TO_CHAR(l_item_id) );
347 FND_MSG_PUB.Add;
348 END IF;
349 RAISE FND_API.G_EXC_ERROR;
350 ELSE
351 CLOSE Get_Item_csr;
352 END IF;
353 -- Now do the deleting:
354 Delete from amv_c_content_types
355 where content_type_id = l_content_type_id;
356 --
357 AMV_I_CONTENT_TYPES_PKG.DELETE_ROW
358 (
359 X_CONTENT_TYPE_ID => l_content_type_id
360 );
361 --Standard check of commit
362 IF FND_API.To_Boolean ( p_commit ) THEN
363 COMMIT WORK;
364 END IF;
365 --Standard call to get message count and if count=1, get the message
366 FND_MSG_PUB.Count_And_Get (
367 p_encoded => FND_API.G_FALSE,
368 p_count => x_msg_count,
369 p_data => x_msg_data
370 );
371 EXCEPTION
372 WHEN FND_API.G_EXC_ERROR THEN
373 ROLLBACK TO Delete_ContentType_Pvt;
374 x_return_status := FND_API.G_RET_STS_ERROR;
375 -- Standard call to get message count and if count=1, get the message
376 FND_MSG_PUB.Count_And_Get (
377 p_encoded => FND_API.G_FALSE,
378 p_count => x_msg_count,
379 p_data => x_msg_data
380 );
381 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
382 ROLLBACK TO Delete_ContentType_Pvt;
383 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
384 -- Standard call to get message count and if count=1, get the message
385 FND_MSG_PUB.Count_And_Get (
386 p_encoded => FND_API.G_FALSE,
387 p_count => x_msg_count,
388 p_data => x_msg_data
389 );
390 WHEN OTHERS THEN
391 ROLLBACK TO Delete_ContentType_Pvt;
392 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
393 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
394 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
395 END IF;
396 -- Standard call to get message count and if count=1, get the message
397 FND_MSG_PUB.Count_And_Get (
398 p_encoded => FND_API.G_FALSE,
399 p_count => x_msg_count,
400 p_data => x_msg_data
401 );
402 --
403 END Delete_ContentType;
407 p_api_version IN NUMBER,
404 --------------------------------------------------------------------------------
405 PROCEDURE Update_ContentType
406 (
408 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
409 p_commit IN VARCHAR2 := FND_API.G_FALSE,
410 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
411 x_return_status OUT NOCOPY VARCHAR2,
412 x_msg_count OUT NOCOPY NUMBER,
413 x_msg_data OUT NOCOPY VARCHAR2,
414 p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
415 p_content_type_id IN NUMBER := FND_API.G_MISS_NUM,
416 p_content_type_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
417 p_content_type_new_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
418 p_cnt_type_description IN VARCHAR2 := FND_API.G_MISS_CHAR
419 ) IS
420 l_api_name CONSTANT VARCHAR2(30) := 'Update_ContentType';
421 l_api_version CONSTANT NUMBER := 1.0;
422 l_resource_id NUMBER := -1;
423 l_current_user_id NUMBER := -1;
424 l_current_login_id NUMBER := -1;
425 l_current_user_status VARCHAR2(80);
426 --
427 l_admin_flag VARCHAR2(1);
428 l_content_type_id NUMBER;
429 l_object_version NUMBER;
430 --
431 CURSOR Get_Version_csr(p_ctype_id IN NUMBER) IS
432 Select
433 object_version_number
434 from Amv_i_content_types_b
435 where content_type_id = p_ctype_id;
436 --
437 --
438 BEGIN
439 -- Standard call to check for call compatibility.
440 SAVEPOINT Update_ContentType_Pvt;
441 IF NOT FND_API.Compatible_API_Call (
442 l_api_version,
443 p_api_version,
444 l_api_name,
445 G_PKG_NAME) THEN
446 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
447 END IF;
448 --Initialize message list if p_init_msg_list is TRUE.
449 IF FND_API.To_Boolean (p_init_msg_list) THEN
450 FND_MSG_PUB.initialize;
451 END IF;
452 -- Initialize API return status to success
453 x_return_status := FND_API.G_RET_STS_SUCCESS;
454 -- Get the current (login) user id.
455 AMV_UTILITY_PVT.Get_UserInfo(
456 x_resource_id => l_resource_id,
457 x_user_id => l_current_user_id,
458 x_login_id => l_current_login_id,
459 x_user_status => l_current_user_status
460 );
461 IF (p_check_login_user = FND_API.G_TRUE) THEN
462 -- Check if user is login and has the required privilege.
463 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
464 -- User is not login.
465 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
466 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
467 FND_MSG_PUB.Add;
468 END IF;
469 RAISE FND_API.G_EXC_ERROR;
470 END IF;
471 AMV_USER_PVT.Is_Administrator
472 (
473 p_api_version => 1.0,
474 x_return_status => x_return_status,
475 x_msg_count => x_msg_count,
476 x_msg_data => x_msg_data,
477 p_check_login_user => FND_API.G_FALSE,
478 p_resource_id => l_resource_id,
479 x_result_flag => l_admin_flag
480 );
481 IF (l_admin_flag <> FND_API.G_TRUE) THEN
482 -- User is not an administrator.
483 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
484 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
485 FND_MSG_PUB.Add;
486 END IF;
487 RAISE FND_API.G_EXC_ERROR;
488 END IF;
489 END IF;
490 -- This is to make database happy
491 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
492 l_current_login_id := -1;
493 l_current_user_id := -1;
494 END IF;
495 -- Ensure the name is not used yet.
496 OPEN Check_DupContTypeName_csr(p_content_type_new_name);
497 FETCH Check_DupContTypeName_csr INTO l_content_type_id;
498 IF Check_DupContTypeName_csr%FOUND THEN
499 CLOSE Check_DupContTypeName_csr;
500 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
501 FND_MESSAGE.Set_name('AMV','AMV_RECORD_NAME_DUPLICATED');
502 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
503 FND_MESSAGE.Set_Token('NAME', p_content_type_new_name);
504 FND_MSG_PUB.Add;
505 END IF;
506 RAISE FND_API.G_EXC_ERROR;
507 END IF;
508 CLOSE Check_DupContTypeName_csr;
509 --
510 IF (p_content_type_id <> FND_API.G_MISS_NUM) THEN
511 -- Check if user pass the valid content type id
512 IF AMV_UTILITY_PVT.Is_ContentTypeIdValid(p_content_type_id) = TRUE THEN
513 l_content_type_id := p_content_type_id;
514 ELSE
515 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
516 FND_MESSAGE.Set_name('AMV','AMV_RECORD_ID_MISSING');
517 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
518 FND_MESSAGE.Set_Token('ID', to_char(p_content_type_id));
519 FND_MSG_PUB.Add;
520 END IF;
521 RAISE FND_API.G_EXC_ERROR;
522 END IF;
523 ELSIF (p_content_type_name <> FND_API.G_MISS_CHAR) THEN
524 OPEN Check_ValidContTypeName_csr(p_content_type_name);
525 FETCH Check_ValidContTypeName_csr Into l_content_type_id;
526 IF (Check_ValidContTypeName_csr%NOTFOUND) THEN
527 CLOSE Check_ValidContTypeName_csr;
528 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
529 FND_MESSAGE.Set_name('AMV','AMV_RECORD_NAME_MISSING');
530 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
531 FND_MESSAGE.Set_Token('NAME', p_content_type_name);
532 FND_MSG_PUB.Add;
533 END IF;
534 RAISE FND_API.G_EXC_ERROR;
535 END IF;
536 CLOSE Check_ValidContTypeName_csr;
537 ELSE
538 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
539 FND_MESSAGE.Set_name('AMV','AMV_NEED_RECORD_NAME_OR_ID');
540 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
541 FND_MSG_PUB.Add;
542 END IF;
543 RAISE FND_API.G_EXC_ERROR;
544 END IF;
545 -- Get the current version number
546 OPEN Get_Version_csr(l_content_type_id);
547 FETCH Get_Version_csr INTO l_object_version;
548 CLOSE Get_Version_csr;
549 -- Debug Message
550 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
551 FND_MESSAGE.Set_name('AMV','Updating Content Type.');
552 FND_MSG_PUB.Add;
553 END IF;
554 -- Now do the updating:
555 AMV_I_CONTENT_TYPES_PKG.UPDATE_ROW
556 (
557 X_CONTENT_TYPE_ID =>l_content_type_id,
558 X_OBJECT_VERSION_NUMBER => l_object_version + 1,
559 X_CONTENT_TYPE_NAME => p_content_type_new_name,
560 X_DESCRIPTION => p_cnt_type_description,
561 X_LAST_UPDATE_DATE => sysdate,
562 X_LAST_UPDATED_BY => l_current_user_id,
563 X_LAST_UPDATE_LOGIN => l_current_login_id
564 );
565 --Standard check of commit
566 IF FND_API.To_Boolean ( p_commit ) THEN
567 COMMIT WORK;
568 END IF;
569 --Standard call to get message count and if count=1, get the message
570 FND_MSG_PUB.Count_And_Get (
571 p_encoded => FND_API.G_FALSE,
572 p_count => x_msg_count,
573 p_data => x_msg_data
574 );
575 EXCEPTION
576 WHEN FND_API.G_EXC_ERROR THEN
577 ROLLBACK TO Update_ContentType_Pvt;
578 x_return_status := FND_API.G_RET_STS_ERROR;
579 -- Standard call to get message count and if count=1, get the message
580 FND_MSG_PUB.Count_And_Get (
581 p_encoded => FND_API.G_FALSE,
582 p_count => x_msg_count,
583 p_data => x_msg_data
584 );
585 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
586 ROLLBACK TO Update_ContentType_Pvt;
587 x_return_status := FND_API.G_RET_STS_UNEXP_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,
595 ROLLBACK TO Update_ContentType_Pvt;
592 p_data => x_msg_data
593 );
594 WHEN OTHERS THEN
596 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
597 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
598 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
599 END IF;
600 -- Standard call to get message count and if count=1, get the message
601 FND_MSG_PUB.Count_And_Get (
602 p_encoded => FND_API.G_FALSE,
603 p_count => x_msg_count,
604 p_data => x_msg_data
605 );
606 END Update_ContentType;
607 --
608 --------------------------------------------------------------------------------
609 PROCEDURE Get_ContentType
610 (
611 p_api_version IN NUMBER,
612 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
613 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
614 x_return_status OUT NOCOPY VARCHAR2,
615 x_msg_count OUT NOCOPY NUMBER,
616 x_msg_data OUT NOCOPY VARCHAR2,
617 p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
618 p_content_type_id IN NUMBER := FND_API.G_MISS_NUM,
619 p_content_type_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
620 x_content_type_obj OUT NOCOPY AMV_CONTENT_TYPE_OBJ_TYPE
621 ) IS
622 l_api_name CONSTANT VARCHAR2(30) := 'Get_ContentType';
623 l_api_version CONSTANT NUMBER := 1.0;
624 l_resource_id NUMBER := -1;
625 l_current_user_id NUMBER := -1;
626 l_current_login_id NUMBER := -1;
627 l_current_user_status VARCHAR2(80);
628 --
629 l_content_type_id NUMBER;
630 --
631 CURSOR Get_CntTypeRecord_csr (p_ID IN NUMBER) IS
632 Select
633 B.CONTENT_TYPE_ID,
634 B.OBJECT_VERSION_NUMBER,
635 T.CONTENT_TYPE_NAME,
636 T.DESCRIPTION,
640 B.CREATED_BY,
637 T.LANGUAGE,
638 T.SOURCE_LANG,
639 B.CREATION_DATE,
641 B.LAST_UPDATE_DATE,
642 B.LAST_UPDATED_BY,
643 B.LAST_UPDATE_LOGIN
644 From AMV_I_CONTENT_TYPES_TL T, AMV_I_CONTENT_TYPES_B B
645 Where B.CONTENT_TYPE_ID = T.CONTENT_TYPE_ID
646 And T.LANGUAGE = userenv('LANG')
647 And B.CONTENT_TYPE_ID = p_ID;
648 --
649 l_content_type_rec Get_CntTypeRecord_csr%ROWTYPE;
650 --
651 BEGIN
652 -- Standard call to check for call compatibility.
653 IF NOT FND_API.Compatible_API_Call (
654 l_api_version,
655 p_api_version,
656 l_api_name,
657 G_PKG_NAME) THEN
658 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
659 END IF;
660 --Initialize message list if p_init_msg_list is TRUE.
661 IF FND_API.To_Boolean (p_init_msg_list) THEN
662 FND_MSG_PUB.initialize;
663 END IF;
664 -- Initialize API return status to success
665 x_return_status := FND_API.G_RET_STS_SUCCESS;
666 -- Get the current (login) user id.
667 AMV_UTILITY_PVT.Get_UserInfo(
668 x_resource_id => l_resource_id,
669 x_user_id => l_current_user_id,
670 x_login_id => l_current_login_id,
671 x_user_status => l_current_user_status
672 );
673 IF (p_check_login_user = FND_API.G_TRUE) THEN
674 -- Check if user is login and has the required privilege.
675 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
676 -- User is not login.
677 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
678 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
679 FND_MSG_PUB.Add;
680 END IF;
681 RAISE FND_API.G_EXC_ERROR;
682 END IF;
683 END IF;
684 -- This is to make database happy
685 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
686 l_current_login_id := -1;
687 l_current_user_id := -1;
688 END IF;
689 IF (p_content_type_id <> FND_API.G_MISS_NUM) THEN
690 -- Check if user pass the valid content type id
691 IF AMV_UTILITY_PVT.Is_ContentTypeIdValid(p_content_type_id) = TRUE THEN
692 l_content_type_id := p_content_type_id;
693 ELSE
694 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
695 FND_MESSAGE.Set_name('AMV','AMV_RECORD_ID_MISSING');
696 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
697 FND_MESSAGE.Set_Token('ID', to_char(p_content_type_id));
698 FND_MSG_PUB.Add;
699 END IF;
700 RAISE FND_API.G_EXC_ERROR;
701 END IF;
702 ELSIF (p_content_type_name <> FND_API.G_MISS_CHAR) THEN
703 OPEN Check_ValidContTypeName_csr(p_content_type_name);
707 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
704 FETCH Check_ValidContTypeName_csr Into l_content_type_id;
705 IF (Check_ValidContTypeName_csr%NOTFOUND) THEN
706 CLOSE Check_ValidContTypeName_csr;
708 FND_MESSAGE.Set_name('AMV','AMV_RECORD_NAME_MISSING');
709 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
710 FND_MESSAGE.Set_Token('NAME', p_content_type_name);
711 FND_MSG_PUB.Add;
712 END IF;
713 RAISE FND_API.G_EXC_ERROR;
714 END IF;
715 CLOSE Check_ValidContTypeName_csr;
716 ELSE
717 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
718 FND_MESSAGE.Set_name('AMV','AMV_NEED_RECORD_NAME_OR_ID');
719 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
720 FND_MSG_PUB.Add;
721 END IF;
722 RAISE FND_API.G_EXC_ERROR;
723 END IF;
724 -- Now query and return the content type record
725 OPEN Get_CntTypeRecord_csr(l_content_type_id);
726 FETCH Get_CntTypeRecord_csr INTO l_content_type_rec;
727 IF (Get_CntTypeRecord_csr%NOTFOUND) THEN
728 CLOSE Get_CntTypeRecord_csr;
729 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
730 FND_MESSAGE.Set_name('AMV','AMV_RECORD_NOT_FOUND');
731 FND_MESSAGE.Set_Token('RECORD', 'AMV_CONTENTTYPE_TK', TRUE);
732 FND_MSG_PUB.Add;
733 END IF;
734 RAISE FND_API.G_EXC_ERROR;
735 ELSE
736 x_content_type_obj.content_type_id := l_content_type_rec.content_type_id;
737 x_content_type_obj.object_version_number := l_content_type_rec.object_version_number;
738 x_content_type_obj.content_type_name := l_content_type_rec.content_type_name;
739 x_content_type_obj.description := l_content_type_rec.description;
740 x_content_type_obj.language := l_content_type_rec.language;
741 x_content_type_obj.source_lang := l_content_type_rec.source_lang;
742 x_content_type_obj.creation_date := l_content_type_rec.creation_date;
743 x_content_type_obj.created_by := l_content_type_rec.created_by;
744 x_content_type_obj.last_update_date := l_content_type_rec.last_update_date;
745 x_content_type_obj.last_updated_by := l_content_type_rec.last_updated_by;
746 x_content_type_obj.last_update_login := l_content_type_rec.last_update_login;
747
748 /* x_content_type_obj := AMV_CONTENT_TYPE_OBJ_TYPE
749 (
750 l_content_type_rec.content_type_id,
751 l_content_type_rec.object_version_number,
752 l_content_type_rec.content_type_name,
753 l_content_type_rec.description,
754 l_content_type_rec.language,
755 l_content_type_rec.source_lang,
756 l_content_type_rec.creation_date,
757 l_content_type_rec.created_by,
758 l_content_type_rec.last_update_date,
759 l_content_type_rec.last_updated_by,
760 l_content_type_rec.last_update_login
761 );
762 */
763 END IF;
764 CLOSE Get_CntTypeRecord_csr;
765 --Standard call to get message count and if count=1, get the message
766 FND_MSG_PUB.Count_And_Get (
767 p_encoded => FND_API.G_FALSE,
768 p_count => x_msg_count,
769 p_data => x_msg_data
770 );
771 EXCEPTION
772 WHEN FND_API.G_EXC_ERROR THEN
773 x_return_status := FND_API.G_RET_STS_ERROR;
774 -- Standard call to get message count and if count=1, get the message
775 FND_MSG_PUB.Count_And_Get (
776 p_encoded => FND_API.G_FALSE,
777 p_count => x_msg_count,
778 p_data => x_msg_data
779 );
780 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
781 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
782 -- Standard call to get message count and if count=1, get the message
786 p_data => x_msg_data
783 FND_MSG_PUB.Count_And_Get (
784 p_encoded => FND_API.G_FALSE,
785 p_count => x_msg_count,
787 );
788 WHEN OTHERS THEN
789 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
790 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
791 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
792 END IF;
793 -- Standard call to get message count and if count=1, get the message
794 FND_MSG_PUB.Count_And_Get (
795 p_encoded => FND_API.G_FALSE,
796 p_count => x_msg_count,
797 p_data => x_msg_data
798 );
799 --
800 END Get_ContentType;
801 --
802 --------------------------------------------------------------------------------
803 PROCEDURE Find_ContentType
804 (
805 p_api_version IN NUMBER,
806 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
807 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
808 x_return_status OUT NOCOPY VARCHAR2,
809 x_msg_count OUT NOCOPY NUMBER,
810 x_msg_data OUT NOCOPY VARCHAR2,
811 p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
812 p_content_type_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
813 p_cnt_type_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
814 p_subset_request_obj IN AMV_REQUEST_OBJ_TYPE,
815 x_subset_return_obj OUT NOCOPY AMV_RETURN_OBJ_TYPE,
816 x_content_type_obj_varray OUT NOCOPY AMV_CONTENT_TYPE_OBJ_VARRAY
817 ) IS
818 l_api_name CONSTANT VARCHAR2(30) := 'Find_ContentType';
819 l_api_version CONSTANT NUMBER := 1.0;
820 l_resource_id NUMBER := -1;
821 l_current_user_id NUMBER := -1;
822 l_current_login_id NUMBER := -1;
823 l_current_user_status VARCHAR2(80);
824 --
825 l_cursor CursorType;
826 l_sql_statement VARCHAR2(2000);
827 l_sql_statement2 VARCHAR2(2000);
828 l_where_clause VARCHAR2(2000);
829 l_total_count NUMBER := 1;
830 l_fetch_count NUMBER := 0;
831 l_start_with NUMBER;
832 l_total_record_count NUMBER;
833 --
834 l_content_type_id NUMBER;
835 l_object_version_number NUMBER;
836 l_content_type_name VARCHAR2(80);
837 l_description VARCHAR2(2000);
838 l_language VARCHAR2(4);
839 l_source_lang VARCHAR2(4);
840 l_creation_date DATE;
841 l_created_by NUMBER;
842 l_last_update_date DATE;
843 l_last_updated_by NUMBER;
844 l_last_update_login NUMBER;
845 --
846 BEGIN
847 -- Standard call to check for call compatibility.
848 IF NOT FND_API.Compatible_API_Call (
849 l_api_version,
850 p_api_version,
851 l_api_name,
852 G_PKG_NAME) THEN
853 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
854 END IF;
855 --Initialize message list if p_init_msg_list is TRUE.
856 IF FND_API.To_Boolean (p_init_msg_list) THEN
857 FND_MSG_PUB.initialize;
858 END IF;
859 -- Initialize API return status to success
860 x_return_status := FND_API.G_RET_STS_SUCCESS;
861 -- Get the current (login) user id.
862 AMV_UTILITY_PVT.Get_UserInfo(
863 x_resource_id => l_resource_id,
864 x_user_id => l_current_user_id,
865 x_login_id => l_current_login_id,
866 x_user_status => l_current_user_status
867 );
868 IF (p_check_login_user = FND_API.G_TRUE) THEN
869 -- Check if user is login and has the required privilege.
870 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
871 -- User is not login.
872 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
873 FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
874 FND_MSG_PUB.Add;
875 END IF;
876 RAISE FND_API.G_EXC_ERROR;
877 END IF;
878 END IF;
879 -- This is to make database happy
880 IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
881 l_current_login_id := -1;
882 l_current_user_id := -1;
883 END IF;
884 -- Now create SQL statement and find the results:
885 l_sql_statement :=
886 'Select ' ||
887 'B.CONTENT_TYPE_ID, ' ||
888 'B.OBJECT_VERSION_NUMBER, ' ||
889 'T.CONTENT_TYPE_NAME, ' ||
890 'T.DESCRIPTION, ' ||
891 'T.LANGUAGE, ' ||
892 'T.SOURCE_LANG, ' ||
893 'B.CREATION_DATE, ' ||
894 'B.CREATED_BY, ' ||
895 'B.LAST_UPDATE_DATE, ' ||
896 'B.LAST_UPDATED_BY, ' ||
897 'B.LAST_UPDATE_LOGIN ' ||
898 'From AMV_I_CONTENT_TYPES_TL T, AMV_I_CONTENT_TYPES_B B ';
899 l_sql_statement2 :=
900 'Select count(*) ' ||
901 'From AMV_I_CONTENT_TYPES_TL T, AMV_I_CONTENT_TYPES_B B ';
902 --
903 l_where_clause :=
904 'Where B.CONTENT_TYPE_ID = T.CONTENT_TYPE_ID ' ||
905 'And T.LANGUAGE = userenv(''LANG'') ';
906 IF (p_content_type_name IS NOT NULL AND
907 p_content_type_name <> FND_API.G_MISS_CHAR) THEN
908 l_where_clause := l_where_clause ||
909 'And T.CONTENT_TYPE_NAME Like ''' || p_content_type_name || ''' ';
910 END IF;
911 IF (p_cnt_type_description IS NOT NULL AND
912 p_cnt_type_description <> FND_API.G_MISS_CHAR) THEN
913 l_where_clause := l_where_clause ||
914 'And T.DESCRIPTION Like ''' || p_cnt_type_description || ''' ';
915 END IF;
916 l_sql_statement := l_sql_statement ||
920 IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
917 l_where_clause || 'ORDER BY T.CONTENT_TYPE_NAME ';
918 l_sql_statement2 := l_sql_statement2 || l_where_clause;
919 --
921 FND_MESSAGE.Set_name('AMV','AMV_API_DEBUG_MESSAGE');
922 FND_MESSAGE.Set_Token('ROW', l_sql_statement);
923 FND_MSG_PUB.Add;
924 --
925 FND_MESSAGE.Set_name('AMV','AMV_API_DEBUG_MESSAGE');
926 FND_MESSAGE.Set_Token('ROW', l_sql_statement2);
927 FND_MSG_PUB.Add;
928 END IF;
929
930 --Execute the SQL statements to get the total count:
931 IF (p_subset_request_obj.return_total_count_flag = FND_API.G_TRUE) THEN
932 OPEN l_cursor FOR l_sql_statement2;
933 FETCH l_cursor INTO l_total_record_count;
934 CLOSE l_cursor;
935 END IF;
936 --dbms_output.put_line('Total=' || l_total_record_count);
937 --Execute the SQL statements to get records
938 l_start_with := p_subset_request_obj.start_record_position;
939 x_content_type_obj_varray := AMV_CONTENT_TYPE_OBJ_VARRAY();
943 l_content_type_id,
940 OPEN l_cursor FOR l_sql_statement;
941 LOOP
942 FETCH l_cursor INTO
944 l_object_version_number,
945 l_content_type_name,
946 l_description,
947 l_language,
948 l_source_lang,
949 l_creation_date,
950 l_created_by,
951 l_last_update_date,
952 l_last_updated_by,
953 l_last_update_login;
954 EXIT WHEN l_cursor%NOTFOUND;
955 IF (l_start_with <= l_total_count AND
956 l_fetch_count < p_subset_request_obj.records_requested) THEN
957 l_fetch_count := l_fetch_count + 1;
958 x_content_type_obj_varray.extend;
959 x_content_type_obj_varray(l_fetch_count).content_type_id := l_content_type_id;
960 x_content_type_obj_varray(l_fetch_count).object_version_number := l_object_version_number;
961 x_content_type_obj_varray(l_fetch_count).content_type_name := l_content_type_name;
962 x_content_type_obj_varray(l_fetch_count).description := l_description;
963 x_content_type_obj_varray(l_fetch_count).language := l_language;
964 x_content_type_obj_varray(l_fetch_count).source_lang := l_source_lang;
965 x_content_type_obj_varray(l_fetch_count).creation_date := l_creation_date;
966 x_content_type_obj_varray(l_fetch_count).created_by := l_created_by;
967 x_content_type_obj_varray(l_fetch_count).last_update_date := l_last_update_date;
968 x_content_type_obj_varray(l_fetch_count).last_updated_by := l_last_updated_by;
969 x_content_type_obj_varray(l_fetch_count).last_update_login := l_last_update_login;
970
971 /*
972 x_content_type_obj_varray(l_fetch_count) := amv_content_type_obj_type
973 (
974 l_content_type_id,
975 l_object_version_number,
976 l_content_type_name,
977 l_description,
978 l_language,
979 l_source_lang,
980 l_creation_date,
981 l_created_by,
982 l_last_update_date,
983 l_last_updated_by,
984 l_last_update_login
985 );
986 */
987 END IF;
988 IF (l_fetch_count >= p_subset_request_obj.records_requested) THEN
989 exit;
990 END IF;
991 l_total_count := l_total_count + 1;
992 END LOOP;
993 CLOSE l_cursor;
994 x_subset_return_obj.returned_record_count := l_fetch_count;
995 x_subset_return_obj.next_record_position := p_subset_request_obj.start_record_position + l_fetch_count;
996 x_subset_return_obj.total_record_count := l_total_record_count;
997
998 /*:= AMV_RETURN_OBJ_TYPE
999 (
1000 l_fetch_count,
1001 p_subset_request_obj.start_record_position + l_fetch_count,
1002 l_total_record_count
1003 );
1004 */
1005
1006 --Standard call to get message count and if count=1, get the message
1007 FND_MSG_PUB.Count_And_Get (
1008 p_encoded => FND_API.G_FALSE,
1009 p_count => x_msg_count,
1010 p_data => x_msg_data
1011 );
1012 EXCEPTION
1013 WHEN FND_API.G_EXC_ERROR THEN
1014 x_return_status := FND_API.G_RET_STS_ERROR;
1015 -- Standard call to get message count and if count=1, get the message
1016 FND_MSG_PUB.Count_And_Get (
1017 p_encoded => FND_API.G_FALSE,
1018 p_count => x_msg_count,
1019 p_data => x_msg_data
1020 );
1021 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1022 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1023 -- Standard call to get message count and if count=1, get the message
1024 FND_MSG_PUB.Count_And_Get (
1025 p_encoded => FND_API.G_FALSE,
1026 p_count => x_msg_count,
1027 p_data => x_msg_data
1028 );
1029 WHEN OTHERS THEN
1030 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1031 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1032 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1033 END IF;
1034 -- Standard call to get message count and if count=1, get the message
1035 FND_MSG_PUB.Count_And_Get (
1036 p_encoded => FND_API.G_FALSE,
1037 p_count => x_msg_count,
1038 p_data => x_msg_data
1039 );
1040 --
1041 END Find_ContentType;
1042 --
1043 --
1044 --------------------------------------------------------------------------------
1045 END amv_content_type_pvt;