42: --------------------------------------------------------------------------------
43: PROCEDURE Add_Perspective
44: (
45: p_api_version IN NUMBER,
46: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
47: p_commit IN VARCHAR2 := FND_API.G_FALSE,
48: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
49: x_return_status OUT NOCOPY VARCHAR2,
50: x_msg_count OUT NOCOPY NUMBER,
43: PROCEDURE Add_Perspective
44: (
45: p_api_version IN NUMBER,
46: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
47: p_commit IN VARCHAR2 := FND_API.G_FALSE,
48: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
49: x_return_status OUT NOCOPY VARCHAR2,
50: x_msg_count OUT NOCOPY NUMBER,
51: x_msg_data OUT NOCOPY VARCHAR2,
44: (
45: p_api_version IN NUMBER,
46: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
47: p_commit IN VARCHAR2 := FND_API.G_FALSE,
48: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
49: x_return_status OUT NOCOPY VARCHAR2,
50: x_msg_count OUT NOCOPY NUMBER,
51: x_msg_data OUT NOCOPY VARCHAR2,
52: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
48: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
49: x_return_status OUT NOCOPY VARCHAR2,
50: x_msg_count OUT NOCOPY NUMBER,
51: x_msg_data OUT NOCOPY VARCHAR2,
52: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
53: p_perspective_name IN VARCHAR2,
54: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
55: x_perspective_id OUT NOCOPY NUMBER
56: ) IS
50: x_msg_count OUT NOCOPY NUMBER,
51: x_msg_data OUT NOCOPY VARCHAR2,
52: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
53: p_perspective_name IN VARCHAR2,
54: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
55: x_perspective_id OUT NOCOPY NUMBER
56: ) IS
57: l_api_name CONSTANT VARCHAR2(30) := 'Add_Perspective';
58: l_api_version CONSTANT NUMBER := 1.0;
74: --
75: BEGIN
76: -- Standard call to check for call compatibility.
77: SAVEPOINT Add_Perspective_Pvt;
78: IF NOT FND_API.Compatible_API_Call (
79: l_api_version,
80: p_api_version,
81: l_api_name,
82: G_PKG_NAME) THEN
79: l_api_version,
80: p_api_version,
81: l_api_name,
82: G_PKG_NAME) THEN
83: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
84: END IF;
85: --Initialize message list if p_init_msg_list is TRUE.
86: IF FND_API.To_Boolean (p_init_msg_list) THEN
87: FND_MSG_PUB.initialize;
82: G_PKG_NAME) THEN
83: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
84: END IF;
85: --Initialize message list if p_init_msg_list is TRUE.
86: IF FND_API.To_Boolean (p_init_msg_list) THEN
87: FND_MSG_PUB.initialize;
88: END IF;
89: -- Initialize API return status to success
90: x_return_status := FND_API.G_RET_STS_SUCCESS;
86: IF FND_API.To_Boolean (p_init_msg_list) THEN
87: FND_MSG_PUB.initialize;
88: END IF;
89: -- Initialize API return status to success
90: x_return_status := FND_API.G_RET_STS_SUCCESS;
91: --
92: -- Get the current (login) user id.
93: AMV_UTILITY_PVT.Get_UserInfo(
94: x_resource_id => l_resource_id,
95: x_user_id => l_current_user_id,
96: x_login_id => l_current_login_id,
97: x_user_status => l_current_user_status
98: );
99: IF (p_check_login_user = FND_API.G_TRUE) THEN
100: -- Check if user is login and has the required privilege.
101: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
102: -- User is not login.
103: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
97: x_user_status => l_current_user_status
98: );
99: IF (p_check_login_user = FND_API.G_TRUE) THEN
100: -- Check if user is login and has the required privilege.
101: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
102: -- User is not login.
103: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
104: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
105: FND_MSG_PUB.Add;
103: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
104: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
105: FND_MSG_PUB.Add;
106: END IF;
107: RAISE FND_API.G_EXC_ERROR;
108: END IF;
109: AMV_USER_PVT.Is_Administrator
110: (
111: p_api_version => 1.0,
111: p_api_version => 1.0,
112: x_return_status => x_return_status,
113: x_msg_count => x_msg_count,
114: x_msg_data => x_msg_data,
115: p_check_login_user => FND_API.G_FALSE,
116: p_resource_id => l_resource_id,
117: x_result_flag => l_admin_flag
118: );
119: IF (l_admin_flag <> FND_API.G_TRUE) THEN
115: p_check_login_user => FND_API.G_FALSE,
116: p_resource_id => l_resource_id,
117: x_result_flag => l_admin_flag
118: );
119: IF (l_admin_flag <> FND_API.G_TRUE) THEN
120: -- User is not an administrator.
121: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
122: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
123: FND_MSG_PUB.Add;
121: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
122: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
123: FND_MSG_PUB.Add;
124: END IF;
125: RAISE FND_API.G_EXC_ERROR;
126: END IF;
127: END IF;
128: -- This is to make database happy
129: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
125: RAISE FND_API.G_EXC_ERROR;
126: END IF;
127: END IF;
128: -- This is to make database happy
129: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
130: l_current_login_id := -1;
131: l_current_user_id := -1;
132: END IF;
133: --
141: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
142: FND_MESSAGE.Set_Token('NAME', p_perspective_name);
143: FND_MSG_PUB.Add;
144: END IF;
145: RAISE FND_API.G_EXC_ERROR;
146: END IF;
147: CLOSE Check_DupPerspectName_csr;
148: --
149: OPEN Get_DateAndId_csr;
149: OPEN Get_DateAndId_csr;
150: FETCH Get_DateAndId_csr Into l_perspective_id, l_current_date;
151: CLOSE Get_DateAndId_csr;
152: --
153: IF (p_persp_description = FND_API.G_MISS_CHAR) THEN
154: l_persp_description := NULL;
155: ELSE
156: l_persp_description := p_persp_description;
157: END IF;
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: -- Debug Message
177: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
179: FND_MSG_PUB.Add;
180: END IF;
181: --Standard call to get message count and if count=1, get the message
182: FND_MSG_PUB.Count_And_Get (
183: p_encoded => FND_API.G_FALSE,
184: p_count => x_msg_count,
185: p_data => x_msg_data
186: );
187: EXCEPTION
184: p_count => x_msg_count,
185: p_data => x_msg_data
186: );
187: EXCEPTION
188: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
189: ROLLBACK TO Add_Perspective_Pvt;
190: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
191: -- Standard call to get message count and if count=1, get the message
192: FND_MSG_PUB.Count_And_Get (
186: );
187: EXCEPTION
188: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
189: ROLLBACK TO Add_Perspective_Pvt;
190: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
191: -- Standard call to get message count and if count=1, get the message
192: FND_MSG_PUB.Count_And_Get (
193: p_encoded => FND_API.G_FALSE,
194: p_count => x_msg_count,
189: ROLLBACK TO Add_Perspective_Pvt;
190: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
191: -- Standard call to get message count and if count=1, get the message
192: FND_MSG_PUB.Count_And_Get (
193: p_encoded => FND_API.G_FALSE,
194: p_count => x_msg_count,
195: p_data => x_msg_data
196: );
197: WHEN FND_API.G_EXC_ERROR THEN
193: p_encoded => FND_API.G_FALSE,
194: p_count => x_msg_count,
195: p_data => x_msg_data
196: );
197: WHEN FND_API.G_EXC_ERROR THEN
198: ROLLBACK TO Add_Perspective_Pvt;
199: x_return_status := FND_API.G_RET_STS_ERROR;
200: -- Standard call to get message count and if count=1, get the message
201: FND_MSG_PUB.Count_And_Get (
195: p_data => x_msg_data
196: );
197: WHEN FND_API.G_EXC_ERROR THEN
198: ROLLBACK TO Add_Perspective_Pvt;
199: x_return_status := FND_API.G_RET_STS_ERROR;
200: -- Standard call to get message count and if count=1, get the message
201: FND_MSG_PUB.Count_And_Get (
202: p_encoded => FND_API.G_FALSE,
203: p_count => x_msg_count,
198: ROLLBACK TO Add_Perspective_Pvt;
199: x_return_status := FND_API.G_RET_STS_ERROR;
200: -- Standard call to get message count and if count=1, get the message
201: FND_MSG_PUB.Count_And_Get (
202: p_encoded => FND_API.G_FALSE,
203: p_count => x_msg_count,
204: p_data => x_msg_data
205: );
206: WHEN OTHERS THEN
204: p_data => x_msg_data
205: );
206: WHEN OTHERS THEN
207: ROLLBACK TO Add_Perspective_Pvt;
208: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
209: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
210: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
211: END IF;
212: -- Standard call to get message count and if count=1, get the message
210: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
211: END IF;
212: -- Standard call to get message count and if count=1, get the message
213: FND_MSG_PUB.Count_And_Get (
214: p_encoded => FND_API.G_FALSE,
215: p_count => x_msg_count,
216: p_data => x_msg_data
217: );
218: --
220: --------------------------------------------------------------------------------
221: PROCEDURE Delete_Perspective
222: (
223: p_api_version IN NUMBER,
224: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
225: p_commit IN VARCHAR2 := FND_API.G_FALSE,
226: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
227: x_return_status OUT NOCOPY VARCHAR2,
228: x_msg_count OUT NOCOPY NUMBER,
221: PROCEDURE Delete_Perspective
222: (
223: p_api_version IN NUMBER,
224: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
225: p_commit IN VARCHAR2 := FND_API.G_FALSE,
226: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
227: x_return_status OUT NOCOPY VARCHAR2,
228: x_msg_count OUT NOCOPY NUMBER,
229: x_msg_data OUT NOCOPY VARCHAR2,
222: (
223: p_api_version IN NUMBER,
224: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
225: p_commit IN VARCHAR2 := FND_API.G_FALSE,
226: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
227: x_return_status OUT NOCOPY VARCHAR2,
228: x_msg_count OUT NOCOPY NUMBER,
229: x_msg_data OUT NOCOPY VARCHAR2,
230: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
226: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
227: x_return_status OUT NOCOPY VARCHAR2,
228: x_msg_count OUT NOCOPY NUMBER,
229: x_msg_data OUT NOCOPY VARCHAR2,
230: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
231: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
232: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR
233: ) IS
234: l_api_name CONSTANT VARCHAR2(30) := 'Delete_Perspective';
227: x_return_status OUT NOCOPY VARCHAR2,
228: x_msg_count OUT NOCOPY NUMBER,
229: x_msg_data OUT NOCOPY VARCHAR2,
230: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
231: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
232: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR
233: ) IS
234: l_api_name CONSTANT VARCHAR2(30) := 'Delete_Perspective';
235: l_api_version CONSTANT NUMBER := 1.0;
228: x_msg_count OUT NOCOPY NUMBER,
229: x_msg_data OUT NOCOPY VARCHAR2,
230: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
231: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
232: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR
233: ) IS
234: l_api_name CONSTANT VARCHAR2(30) := 'Delete_Perspective';
235: l_api_version CONSTANT NUMBER := 1.0;
236: l_resource_id NUMBER := -1;
244: --
245: BEGIN
246: -- Standard call to check for call compatibility.
247: SAVEPOINT Delete_Perspective_Pvt;
248: IF NOT FND_API.Compatible_API_Call (
249: l_api_version,
250: p_api_version,
251: l_api_name,
252: G_PKG_NAME) THEN
249: l_api_version,
250: p_api_version,
251: l_api_name,
252: G_PKG_NAME) THEN
253: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
254: END IF;
255: --Initialize message list if p_init_msg_list is TRUE.
256: IF FND_API.To_Boolean (p_init_msg_list) THEN
257: FND_MSG_PUB.initialize;
252: G_PKG_NAME) THEN
253: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
254: END IF;
255: --Initialize message list if p_init_msg_list is TRUE.
256: IF FND_API.To_Boolean (p_init_msg_list) THEN
257: FND_MSG_PUB.initialize;
258: END IF;
259: -- Initialize API return status to success
260: x_return_status := FND_API.G_RET_STS_SUCCESS;
256: IF FND_API.To_Boolean (p_init_msg_list) THEN
257: FND_MSG_PUB.initialize;
258: END IF;
259: -- Initialize API return status to success
260: x_return_status := FND_API.G_RET_STS_SUCCESS;
261: -- Get the current (login) user id.
262: AMV_UTILITY_PVT.Get_UserInfo(
263: x_resource_id => l_resource_id,
264: x_user_id => l_current_user_id,
264: x_user_id => l_current_user_id,
265: x_login_id => l_current_login_id,
266: x_user_status => l_current_user_status
267: );
268: IF (p_check_login_user = FND_API.G_TRUE) THEN
269: -- Check if user is login and has the required privilege.
270: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
271: -- User is not login.
272: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
266: x_user_status => l_current_user_status
267: );
268: IF (p_check_login_user = FND_API.G_TRUE) THEN
269: -- Check if user is login and has the required privilege.
270: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
271: -- User is not login.
272: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
273: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
274: FND_MSG_PUB.Add;
272: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
273: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
274: FND_MSG_PUB.Add;
275: END IF;
276: RAISE FND_API.G_EXC_ERROR;
277: END IF;
278: AMV_USER_PVT.Is_Administrator
279: (
280: p_api_version => 1.0,
280: p_api_version => 1.0,
281: x_return_status => x_return_status,
282: x_msg_count => x_msg_count,
283: x_msg_data => x_msg_data,
284: p_check_login_user => FND_API.G_FALSE,
285: p_resource_id => l_resource_id,
286: x_result_flag => l_admin_flag
287: );
288: IF (l_admin_flag <> FND_API.G_TRUE) THEN
284: p_check_login_user => FND_API.G_FALSE,
285: p_resource_id => l_resource_id,
286: x_result_flag => l_admin_flag
287: );
288: IF (l_admin_flag <> FND_API.G_TRUE) THEN
289: -- User is not an administrator.
290: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
291: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
292: FND_MSG_PUB.Add;
290: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
291: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
292: FND_MSG_PUB.Add;
293: END IF;
294: RAISE FND_API.G_EXC_ERROR;
295: END IF;
296: END IF;
297: -- This is to make database happy
298: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
294: RAISE FND_API.G_EXC_ERROR;
295: END IF;
296: END IF;
297: -- This is to make database happy
298: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
299: l_current_login_id := -1;
300: l_current_user_id := -1;
301: END IF;
302: --
299: l_current_login_id := -1;
300: l_current_user_id := -1;
301: END IF;
302: --
303: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
304: -- Check if user pass the valid perspective id
305: IF AMV_UTILITY_PVT.Is_PerspectiveIdValid(p_perspective_id) = TRUE THEN
306: l_perspective_id := p_perspective_id;
307: ELSE
310: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
311: FND_MESSAGE.Set_Token('ID', to_char(p_perspective_id));
312: FND_MSG_PUB.Add;
313: END IF;
314: RAISE FND_API.G_EXC_ERROR;
315: END IF;
316: ELSIF (p_perspective_name <> FND_API.G_MISS_CHAR) THEN
317: OPEN Check_ValidPerspectName_csr(p_perspective_name);
318: FETCH Check_ValidPerspectName_csr Into l_perspective_id;
312: FND_MSG_PUB.Add;
313: END IF;
314: RAISE FND_API.G_EXC_ERROR;
315: END IF;
316: ELSIF (p_perspective_name <> FND_API.G_MISS_CHAR) THEN
317: OPEN Check_ValidPerspectName_csr(p_perspective_name);
318: FETCH Check_ValidPerspectName_csr Into l_perspective_id;
319: IF (Check_ValidPerspectName_csr%NOTFOUND) THEN
320: CLOSE Check_ValidPerspectName_csr;
323: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
324: FND_MESSAGE.Set_Token('NAME', p_perspective_name);
325: FND_MSG_PUB.Add;
326: END IF;
327: RAISE FND_API.G_EXC_ERROR;
328: END IF;
329: CLOSE Check_ValidPerspectName_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_PERSPECTIVE_TK', TRUE);
334: FND_MSG_PUB.Add;
335: END IF;
336: RAISE FND_API.G_EXC_ERROR;
337: END IF;
338: -- Now do the deleting:
339: Delete from amv_c_chl_perspectives
340: where perspective_id = l_perspective_id;
346: (
347: X_PERSPECTIVE_ID => l_perspective_id
348: );
349: --Standard check of commit
350: IF FND_API.To_Boolean ( p_commit ) THEN
351: COMMIT WORK;
352: END IF;
353: --Standard call to get message count and if count=1, get the message
354: FND_MSG_PUB.Count_And_Get (
351: COMMIT WORK;
352: END IF;
353: --Standard call to get message count and if count=1, get the message
354: FND_MSG_PUB.Count_And_Get (
355: p_encoded => FND_API.G_FALSE,
356: p_count => x_msg_count,
357: p_data => x_msg_data
358: );
359: EXCEPTION
356: p_count => x_msg_count,
357: p_data => x_msg_data
358: );
359: EXCEPTION
360: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
361: ROLLBACK TO Delete_Perspective_Pvt;
362: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
363: -- Standard call to get message count and if count=1, get the message
364: FND_MSG_PUB.Count_And_Get (
358: );
359: EXCEPTION
360: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
361: ROLLBACK TO Delete_Perspective_Pvt;
362: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
363: -- Standard call to get message count and if count=1, get the message
364: FND_MSG_PUB.Count_And_Get (
365: p_encoded => FND_API.G_FALSE,
366: p_count => x_msg_count,
361: ROLLBACK TO Delete_Perspective_Pvt;
362: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
363: -- Standard call to get message count and if count=1, get the message
364: FND_MSG_PUB.Count_And_Get (
365: p_encoded => FND_API.G_FALSE,
366: p_count => x_msg_count,
367: p_data => x_msg_data
368: );
369: WHEN FND_API.G_EXC_ERROR THEN
365: p_encoded => FND_API.G_FALSE,
366: p_count => x_msg_count,
367: p_data => x_msg_data
368: );
369: WHEN FND_API.G_EXC_ERROR THEN
370: ROLLBACK TO Delete_Perspective_Pvt;
371: x_return_status := FND_API.G_RET_STS_ERROR;
372: -- Standard call to get message count and if count=1, get the message
373: FND_MSG_PUB.Count_And_Get (
367: p_data => x_msg_data
368: );
369: WHEN FND_API.G_EXC_ERROR THEN
370: ROLLBACK TO Delete_Perspective_Pvt;
371: x_return_status := FND_API.G_RET_STS_ERROR;
372: -- Standard call to get message count and if count=1, get the message
373: FND_MSG_PUB.Count_And_Get (
374: p_encoded => FND_API.G_FALSE,
375: p_count => x_msg_count,
370: ROLLBACK TO Delete_Perspective_Pvt;
371: x_return_status := FND_API.G_RET_STS_ERROR;
372: -- Standard call to get message count and if count=1, get the message
373: FND_MSG_PUB.Count_And_Get (
374: p_encoded => FND_API.G_FALSE,
375: p_count => x_msg_count,
376: p_data => x_msg_data
377: );
378: WHEN OTHERS THEN
376: p_data => x_msg_data
377: );
378: WHEN OTHERS THEN
379: ROLLBACK TO Delete_Perspective_Pvt;
380: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
381: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
382: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
383: END IF;
384: -- Standard call to get message count and if count=1, get the message
382: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
383: END IF;
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: --
392: --------------------------------------------------------------------------------
393: PROCEDURE Update_Perspective
394: (
395: p_api_version IN NUMBER,
396: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
397: p_commit IN VARCHAR2 := FND_API.G_FALSE,
398: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
399: x_return_status OUT NOCOPY VARCHAR2,
400: x_msg_count OUT NOCOPY NUMBER,
393: PROCEDURE Update_Perspective
394: (
395: p_api_version IN NUMBER,
396: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
397: p_commit IN VARCHAR2 := FND_API.G_FALSE,
398: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
399: x_return_status OUT NOCOPY VARCHAR2,
400: x_msg_count OUT NOCOPY NUMBER,
401: x_msg_data OUT NOCOPY VARCHAR2,
394: (
395: p_api_version IN NUMBER,
396: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
397: p_commit IN VARCHAR2 := FND_API.G_FALSE,
398: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
399: x_return_status OUT NOCOPY VARCHAR2,
400: x_msg_count OUT NOCOPY NUMBER,
401: x_msg_data OUT NOCOPY VARCHAR2,
402: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
398: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
399: x_return_status OUT NOCOPY VARCHAR2,
400: x_msg_count OUT NOCOPY NUMBER,
401: x_msg_data OUT NOCOPY VARCHAR2,
402: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
403: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
404: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
405: p_perspective_new_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
406: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR
399: x_return_status OUT NOCOPY VARCHAR2,
400: x_msg_count OUT NOCOPY NUMBER,
401: x_msg_data OUT NOCOPY VARCHAR2,
402: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
403: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
404: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
405: p_perspective_new_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
406: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR
407: ) IS
400: x_msg_count OUT NOCOPY NUMBER,
401: x_msg_data OUT NOCOPY VARCHAR2,
402: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
403: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
404: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
405: p_perspective_new_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
406: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR
407: ) IS
408: l_api_name CONSTANT VARCHAR2(30) := 'Update_Perspective';
401: x_msg_data OUT NOCOPY VARCHAR2,
402: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
403: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
404: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
405: p_perspective_new_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
406: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR
407: ) IS
408: l_api_name CONSTANT VARCHAR2(30) := 'Update_Perspective';
409: l_api_version CONSTANT NUMBER := 1.0;
402: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
403: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
404: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
405: p_perspective_new_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
406: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR
407: ) IS
408: l_api_name CONSTANT VARCHAR2(30) := 'Update_Perspective';
409: l_api_version CONSTANT NUMBER := 1.0;
410: l_resource_id NUMBER := -1;
425: --
426: BEGIN
427: -- Standard call to check for call compatibility.
428: SAVEPOINT Update_Perspective_Pvt;
429: IF NOT FND_API.Compatible_API_Call (
430: l_api_version,
431: p_api_version,
432: l_api_name,
433: G_PKG_NAME) THEN
430: l_api_version,
431: p_api_version,
432: l_api_name,
433: G_PKG_NAME) THEN
434: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
435: END IF;
436: --Initialize message list if p_init_msg_list is TRUE.
437: IF FND_API.To_Boolean (p_init_msg_list) THEN
438: FND_MSG_PUB.initialize;
433: G_PKG_NAME) THEN
434: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
435: END IF;
436: --Initialize message list if p_init_msg_list is TRUE.
437: IF FND_API.To_Boolean (p_init_msg_list) THEN
438: FND_MSG_PUB.initialize;
439: END IF;
440: -- Initialize API return status to success
441: x_return_status := FND_API.G_RET_STS_SUCCESS;
437: IF FND_API.To_Boolean (p_init_msg_list) THEN
438: FND_MSG_PUB.initialize;
439: END IF;
440: -- Initialize API return status to success
441: x_return_status := FND_API.G_RET_STS_SUCCESS;
442: -- Get the current (login) user id.
443: AMV_UTILITY_PVT.Get_UserInfo(
444: x_resource_id => l_resource_id,
445: x_user_id => l_current_user_id,
445: x_user_id => l_current_user_id,
446: x_login_id => l_current_login_id,
447: x_user_status => l_current_user_status
448: );
449: IF (p_check_login_user = FND_API.G_TRUE) THEN
450: -- Check if user is login and has the required privilege.
451: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
452: -- User is not login.
453: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
447: x_user_status => l_current_user_status
448: );
449: IF (p_check_login_user = FND_API.G_TRUE) THEN
450: -- Check if user is login and has the required privilege.
451: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
452: -- User is not login.
453: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
454: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
455: FND_MSG_PUB.Add;
453: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
454: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
455: FND_MSG_PUB.Add;
456: END IF;
457: RAISE FND_API.G_EXC_ERROR;
458: END IF;
459: AMV_USER_PVT.Is_Administrator
460: (
461: p_api_version => 1.0,
461: p_api_version => 1.0,
462: x_return_status => x_return_status,
463: x_msg_count => x_msg_count,
464: x_msg_data => x_msg_data,
465: p_check_login_user => FND_API.G_FALSE,
466: p_resource_id => l_resource_id,
467: x_result_flag => l_admin_flag
468: );
469: IF (l_admin_flag <> FND_API.G_TRUE) THEN
465: p_check_login_user => FND_API.G_FALSE,
466: p_resource_id => l_resource_id,
467: x_result_flag => l_admin_flag
468: );
469: IF (l_admin_flag <> FND_API.G_TRUE) THEN
470: -- User is not an administrator.
471: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
472: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
473: FND_MSG_PUB.Add;
471: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
472: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
473: FND_MSG_PUB.Add;
474: END IF;
475: RAISE FND_API.G_EXC_ERROR;
476: END IF;
477: END IF;
478: -- This is to make database happy
479: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
475: RAISE FND_API.G_EXC_ERROR;
476: END IF;
477: END IF;
478: -- This is to make database happy
479: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
480: l_current_login_id := -1;
481: l_current_user_id := -1;
482: END IF;
483: -- Ensure the name is not used yet.
490: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
491: FND_MESSAGE.Set_Token('NAME', p_perspective_new_name);
492: FND_MSG_PUB.Add;
493: END IF;
494: RAISE FND_API.G_EXC_ERROR;
495: END IF;
496: CLOSE Check_DupPerspectName_csr;
497: --
498: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
494: RAISE FND_API.G_EXC_ERROR;
495: END IF;
496: CLOSE Check_DupPerspectName_csr;
497: --
498: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
499: -- Check if user pass the valid perspective id
500: IF AMV_UTILITY_PVT.Is_PerspectiveIdValid(p_perspective_id) = TRUE THEN
501: l_perspective_id := p_perspective_id;
502: ELSE
505: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
506: FND_MESSAGE.Set_Token('ID', to_char(p_perspective_id));
507: FND_MSG_PUB.Add;
508: END IF;
509: RAISE FND_API.G_EXC_ERROR;
510: END IF;
511: ELSIF (p_perspective_name <> FND_API.G_MISS_CHAR) THEN
512: OPEN Check_ValidPerspectName_csr(p_perspective_name);
513: FETCH Check_ValidPerspectName_csr Into l_perspective_id;
507: FND_MSG_PUB.Add;
508: END IF;
509: RAISE FND_API.G_EXC_ERROR;
510: END IF;
511: ELSIF (p_perspective_name <> FND_API.G_MISS_CHAR) THEN
512: OPEN Check_ValidPerspectName_csr(p_perspective_name);
513: FETCH Check_ValidPerspectName_csr Into l_perspective_id;
514: IF (Check_ValidPerspectName_csr%NOTFOUND) THEN
515: CLOSE Check_ValidPerspectName_csr;
518: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
519: FND_MESSAGE.Set_Token('NAME', p_perspective_name);
520: FND_MSG_PUB.Add;
521: END IF;
522: RAISE FND_API.G_EXC_ERROR;
523: END IF;
524: CLOSE Check_ValidPerspectName_csr;
525: ELSE
526: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
527: FND_MESSAGE.Set_name('AMV','AMV_NEED_RECORD_NAME_OR_ID');
528: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
529: FND_MSG_PUB.Add;
530: END IF;
531: RAISE FND_API.G_EXC_ERROR;
532: END IF;
533: -- Get the current version number
534: OPEN Get_Version_csr(l_perspective_id);
535: FETCH Get_Version_csr INTO l_object_version;
545: X_LAST_UPDATED_BY => l_current_user_id,
546: X_LAST_UPDATE_LOGIN => l_current_login_id
547: );
548: --Standard check of commit
549: IF FND_API.To_Boolean ( p_commit ) THEN
550: COMMIT WORK;
551: END IF;
552: -- Debug Message
553: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
555: FND_MSG_PUB.Add;
556: END IF;
557: --Standard call to get message count and if count=1, get the message
558: FND_MSG_PUB.Count_And_Get (
559: p_encoded => FND_API.G_FALSE,
560: p_count => x_msg_count,
561: p_data => x_msg_data
562: );
563: --
561: p_data => x_msg_data
562: );
563: --
564: EXCEPTION
565: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
566: ROLLBACK TO Update_Perspective_Pvt;
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 (
563: --
564: EXCEPTION
565: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
566: ROLLBACK TO Update_Perspective_Pvt;
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,
566: ROLLBACK TO Update_Perspective_Pvt;
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: WHEN FND_API.G_EXC_ERROR THEN
570: p_encoded => FND_API.G_FALSE,
571: p_count => x_msg_count,
572: p_data => x_msg_data
573: );
574: WHEN FND_API.G_EXC_ERROR THEN
575: ROLLBACK TO Update_Perspective_Pvt;
576: x_return_status := FND_API.G_RET_STS_ERROR;
577: -- Standard call to get message count and if count=1, get the message
578: FND_MSG_PUB.Count_And_Get (
572: p_data => x_msg_data
573: );
574: WHEN FND_API.G_EXC_ERROR THEN
575: ROLLBACK TO Update_Perspective_Pvt;
576: x_return_status := FND_API.G_RET_STS_ERROR;
577: -- Standard call to get message count and if count=1, get the message
578: FND_MSG_PUB.Count_And_Get (
579: p_encoded => FND_API.G_FALSE,
580: p_count => x_msg_count,
575: ROLLBACK TO Update_Perspective_Pvt;
576: x_return_status := FND_API.G_RET_STS_ERROR;
577: -- Standard call to get message count and if count=1, get the message
578: FND_MSG_PUB.Count_And_Get (
579: p_encoded => FND_API.G_FALSE,
580: p_count => x_msg_count,
581: p_data => x_msg_data
582: );
583: WHEN OTHERS THEN
581: p_data => x_msg_data
582: );
583: WHEN OTHERS THEN
584: ROLLBACK TO Update_Perspective_Pvt;
585: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
586: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
587: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
588: END IF;
589: -- Standard call to get message count and if count=1, get the message
587: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
588: END IF;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
591: p_encoded => FND_API.G_FALSE,
592: p_count => x_msg_count,
593: p_data => x_msg_data
594: );
595: END Update_Perspective;
597: --------------------------------------------------------------------------------
598: PROCEDURE Get_Perspective
599: (
600: p_api_version IN NUMBER,
601: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
602: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
603: x_return_status OUT NOCOPY VARCHAR2,
604: x_msg_count OUT NOCOPY NUMBER,
605: x_msg_data OUT NOCOPY VARCHAR2,
598: PROCEDURE Get_Perspective
599: (
600: p_api_version IN NUMBER,
601: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
602: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
603: x_return_status OUT NOCOPY VARCHAR2,
604: x_msg_count OUT NOCOPY NUMBER,
605: x_msg_data OUT NOCOPY VARCHAR2,
606: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
602: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
603: x_return_status OUT NOCOPY VARCHAR2,
604: x_msg_count OUT NOCOPY NUMBER,
605: x_msg_data OUT NOCOPY VARCHAR2,
606: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
607: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
608: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
609: x_perspective_obj OUT NOCOPY AMV_PERSPECTIVE_OBJ_TYPE
610: ) IS
603: x_return_status OUT NOCOPY VARCHAR2,
604: x_msg_count OUT NOCOPY NUMBER,
605: x_msg_data OUT NOCOPY VARCHAR2,
606: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
607: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
608: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
609: x_perspective_obj OUT NOCOPY AMV_PERSPECTIVE_OBJ_TYPE
610: ) IS
611: l_api_name CONSTANT VARCHAR2(30) := 'Get_Perspective';
604: x_msg_count OUT NOCOPY NUMBER,
605: x_msg_data OUT NOCOPY VARCHAR2,
606: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
607: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM,
608: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
609: x_perspective_obj OUT NOCOPY AMV_PERSPECTIVE_OBJ_TYPE
610: ) IS
611: l_api_name CONSTANT VARCHAR2(30) := 'Get_Perspective';
612: l_api_version CONSTANT NUMBER := 1.0;
638: l_perspective_rec Get_PerspRecord_csr%ROWTYPE;
639: --
640: BEGIN
641: -- Standard call to check for call compatibility.
642: IF NOT FND_API.Compatible_API_Call (
643: l_api_version,
644: p_api_version,
645: l_api_name,
646: G_PKG_NAME) THEN
643: l_api_version,
644: p_api_version,
645: l_api_name,
646: G_PKG_NAME) THEN
647: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
648: END IF;
649: -- Debug Message
650: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
651: FND_MESSAGE.Set_name('AMV','PVT Get Persp. API: Start');
651: FND_MESSAGE.Set_name('AMV','PVT Get Persp. API: Start');
652: FND_MSG_PUB.Add;
653: END IF;
654: --Initialize message list if p_init_msg_list is TRUE.
655: IF FND_API.To_Boolean (p_init_msg_list) THEN
656: FND_MSG_PUB.initialize;
657: END IF;
658: -- Initialize API return status to success
659: x_return_status := FND_API.G_RET_STS_SUCCESS;
655: IF FND_API.To_Boolean (p_init_msg_list) THEN
656: FND_MSG_PUB.initialize;
657: END IF;
658: -- Initialize API return status to success
659: x_return_status := FND_API.G_RET_STS_SUCCESS;
660: --
661: -- Get the current (login) user id.
662: AMV_UTILITY_PVT.Get_UserInfo(
663: x_resource_id => l_resource_id,
664: x_user_id => l_current_user_id,
665: x_login_id => l_current_login_id,
666: x_user_status => l_current_user_status
667: );
668: IF (p_check_login_user = FND_API.G_TRUE) THEN
669: -- Check if user is login and has the required privilege.
670: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
671: -- User is not login.
672: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
666: x_user_status => l_current_user_status
667: );
668: IF (p_check_login_user = FND_API.G_TRUE) THEN
669: -- Check if user is login and has the required privilege.
670: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
671: -- User is not login.
672: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
673: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
674: FND_MSG_PUB.Add;
672: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
673: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
674: FND_MSG_PUB.Add;
675: END IF;
676: RAISE FND_API.G_EXC_ERROR;
677: END IF;
678: END IF;
679: -- This is to make database happy
680: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
676: RAISE FND_API.G_EXC_ERROR;
677: END IF;
678: END IF;
679: -- This is to make database happy
680: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
681: l_current_login_id := -1;
682: l_current_user_id := -1;
683: END IF;
684: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
680: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
681: l_current_login_id := -1;
682: l_current_user_id := -1;
683: END IF;
684: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
685: -- Check if user pass the valid perspective id
686: IF AMV_UTILITY_PVT.Is_PerspectiveIdValid(p_perspective_id) = TRUE THEN
687: l_perspective_id := p_perspective_id;
688: ELSE
691: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
692: FND_MESSAGE.Set_Token('ID', to_char(p_perspective_id));
693: FND_MSG_PUB.Add;
694: END IF;
695: RAISE FND_API.G_EXC_ERROR;
696: END IF;
697: ELSIF (p_perspective_name <> FND_API.G_MISS_CHAR) THEN
698: OPEN Check_ValidPerspectName_csr(p_perspective_name);
699: FETCH Check_ValidPerspectName_csr Into l_perspective_id;
693: FND_MSG_PUB.Add;
694: END IF;
695: RAISE FND_API.G_EXC_ERROR;
696: END IF;
697: ELSIF (p_perspective_name <> FND_API.G_MISS_CHAR) THEN
698: OPEN Check_ValidPerspectName_csr(p_perspective_name);
699: FETCH Check_ValidPerspectName_csr Into l_perspective_id;
700: IF (Check_ValidPerspectName_csr%NOTFOUND) THEN
701: CLOSE Check_ValidPerspectName_csr;
704: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
705: FND_MESSAGE.Set_Token('NAME', p_perspective_name);
706: FND_MSG_PUB.Add;
707: END IF;
708: RAISE FND_API.G_EXC_ERROR;
709: END IF;
710: CLOSE Check_ValidPerspectName_csr;
711: ELSE
712: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
713: FND_MESSAGE.Set_name('AMV','AMV_NEED_RECORD_NAME_OR_ID');
714: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
715: FND_MSG_PUB.Add;
716: END IF;
717: RAISE FND_API.G_EXC_ERROR;
718: END IF;
719: -- Now query and return the perspective record
720: OPEN Get_PerspRecord_csr(l_perspective_id);
721: FETCH Get_PerspRecord_csr INTO l_perspective_rec;
725: FND_MESSAGE.Set_name('AMV','AMV_RECORD_NOT_FOUND');
726: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
727: FND_MSG_PUB.Add;
728: END IF;
729: RAISE FND_API.G_EXC_ERROR;
730: ELSE
731: x_perspective_obj.perspective_id := l_perspective_rec.perspective_id;
732: x_perspective_obj.object_version_number := l_perspective_rec.object_version_number;
733: x_perspective_obj.perspective_name := l_perspective_rec.perspective_name;
758: END IF;
759: CLOSE Get_PerspRecord_csr;
760: --Standard call to get message count and if count=1, get the message
761: FND_MSG_PUB.Count_And_Get (
762: p_encoded => FND_API.G_FALSE,
763: p_count => x_msg_count,
764: p_data => x_msg_data
765: );
766: EXCEPTION
763: p_count => x_msg_count,
764: p_data => x_msg_data
765: );
766: EXCEPTION
767: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
768: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
769: -- Standard call to get message count and if count=1, get the message
770: FND_MSG_PUB.Count_And_Get (
771: p_encoded => FND_API.G_FALSE,
764: p_data => x_msg_data
765: );
766: EXCEPTION
767: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
768: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
769: -- Standard call to get message count and if count=1, get the message
770: FND_MSG_PUB.Count_And_Get (
771: p_encoded => FND_API.G_FALSE,
772: p_count => x_msg_count,
767: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
768: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
769: -- Standard call to get message count and if count=1, get the message
770: FND_MSG_PUB.Count_And_Get (
771: p_encoded => FND_API.G_FALSE,
772: p_count => x_msg_count,
773: p_data => x_msg_data
774: );
775: WHEN FND_API.G_EXC_ERROR THEN
771: p_encoded => FND_API.G_FALSE,
772: p_count => x_msg_count,
773: p_data => x_msg_data
774: );
775: WHEN FND_API.G_EXC_ERROR THEN
776: x_return_status := FND_API.G_RET_STS_ERROR;
777: -- Standard call to get message count and if count=1, get the message
778: FND_MSG_PUB.Count_And_Get (
779: p_encoded => FND_API.G_FALSE,
772: p_count => x_msg_count,
773: p_data => x_msg_data
774: );
775: WHEN FND_API.G_EXC_ERROR THEN
776: x_return_status := FND_API.G_RET_STS_ERROR;
777: -- Standard call to get message count and if count=1, get the message
778: FND_MSG_PUB.Count_And_Get (
779: p_encoded => FND_API.G_FALSE,
780: p_count => x_msg_count,
775: WHEN FND_API.G_EXC_ERROR THEN
776: x_return_status := FND_API.G_RET_STS_ERROR;
777: -- Standard call to get message count and if count=1, get the message
778: FND_MSG_PUB.Count_And_Get (
779: p_encoded => FND_API.G_FALSE,
780: p_count => x_msg_count,
781: p_data => x_msg_data
782: );
783: WHEN OTHERS THEN
780: p_count => x_msg_count,
781: p_data => x_msg_data
782: );
783: WHEN OTHERS THEN
784: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
785: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
786: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
787: END IF;
788: -- Standard call to get message count and if count=1, get the message
786: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
787: END IF;
788: -- Standard call to get message count and if count=1, get the message
789: FND_MSG_PUB.Count_And_Get (
790: p_encoded => FND_API.G_FALSE,
791: p_count => x_msg_count,
792: p_data => x_msg_data
793: );
794: --
796: --------------------------------------------------------------------------------
797: PROCEDURE Find_Perspective
798: (
799: p_api_version IN NUMBER,
800: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
801: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
802: x_return_status OUT NOCOPY VARCHAR2,
803: x_msg_count OUT NOCOPY NUMBER,
804: x_msg_data OUT NOCOPY VARCHAR2,
797: PROCEDURE Find_Perspective
798: (
799: p_api_version IN NUMBER,
800: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
801: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
802: x_return_status OUT NOCOPY VARCHAR2,
803: x_msg_count OUT NOCOPY NUMBER,
804: x_msg_data OUT NOCOPY VARCHAR2,
805: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
801: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
802: x_return_status OUT NOCOPY VARCHAR2,
803: x_msg_count OUT NOCOPY NUMBER,
804: x_msg_data OUT NOCOPY VARCHAR2,
805: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
806: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
807: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
808: p_subset_request_obj IN AMV_REQUEST_OBJ_TYPE,
809: x_subset_return_obj OUT NOCOPY AMV_RETURN_OBJ_TYPE,
802: x_return_status OUT NOCOPY VARCHAR2,
803: x_msg_count OUT NOCOPY NUMBER,
804: x_msg_data OUT NOCOPY VARCHAR2,
805: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
806: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
807: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
808: p_subset_request_obj IN AMV_REQUEST_OBJ_TYPE,
809: x_subset_return_obj OUT NOCOPY AMV_RETURN_OBJ_TYPE,
810: x_perspective_obj_varray OUT NOCOPY AMV_PERSPECTIVE_OBJ_VARRAY
803: x_msg_count OUT NOCOPY NUMBER,
804: x_msg_data OUT NOCOPY VARCHAR2,
805: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
806: p_perspective_name IN VARCHAR2 := FND_API.G_MISS_CHAR,
807: p_persp_description IN VARCHAR2 := FND_API.G_MISS_CHAR,
808: p_subset_request_obj IN AMV_REQUEST_OBJ_TYPE,
809: x_subset_return_obj OUT NOCOPY AMV_RETURN_OBJ_TYPE,
810: x_perspective_obj_varray OUT NOCOPY AMV_PERSPECTIVE_OBJ_VARRAY
811: ) IS
838: l_last_update_login NUMBER;
839: --
840: BEGIN
841: -- Standard call to check for call compatibility.
842: IF NOT FND_API.Compatible_API_Call (
843: l_api_version,
844: p_api_version,
845: l_api_name,
846: G_PKG_NAME) THEN
843: l_api_version,
844: p_api_version,
845: l_api_name,
846: G_PKG_NAME) THEN
847: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
848: END IF;
849: --Initialize message list if p_init_msg_list is TRUE.
850: IF FND_API.To_Boolean (p_init_msg_list) THEN
851: FND_MSG_PUB.initialize;
846: G_PKG_NAME) THEN
847: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
848: END IF;
849: --Initialize message list if p_init_msg_list is TRUE.
850: IF FND_API.To_Boolean (p_init_msg_list) THEN
851: FND_MSG_PUB.initialize;
852: END IF;
853: -- Initialize API return status to success
854: x_return_status := FND_API.G_RET_STS_SUCCESS;
850: IF FND_API.To_Boolean (p_init_msg_list) THEN
851: FND_MSG_PUB.initialize;
852: END IF;
853: -- Initialize API return status to success
854: x_return_status := FND_API.G_RET_STS_SUCCESS;
855: -- Get the current (login) user id.
856: AMV_UTILITY_PVT.Get_UserInfo(
857: x_resource_id => l_resource_id,
858: x_user_id => l_current_user_id,
858: x_user_id => l_current_user_id,
859: x_login_id => l_current_login_id,
860: x_user_status => l_current_user_status
861: );
862: IF (p_check_login_user = FND_API.G_TRUE) THEN
863: -- Check if user is login and has the required privilege.
864: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
865: -- User is not login.
866: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
860: x_user_status => l_current_user_status
861: );
862: IF (p_check_login_user = FND_API.G_TRUE) THEN
863: -- Check if user is login and has the required privilege.
864: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
865: -- User is not login.
866: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
867: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
868: FND_MSG_PUB.Add;
866: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
867: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
868: FND_MSG_PUB.Add;
869: END IF;
870: RAISE FND_API.G_EXC_ERROR;
871: END IF;
872: END IF;
873: -- This is to make database happy
874: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
870: RAISE FND_API.G_EXC_ERROR;
871: END IF;
872: END IF;
873: -- This is to make database happy
874: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
875: l_current_login_id := -1;
876: l_current_user_id := -1;
877: END IF;
878: -- Now create SQL statement and find the results:
897: l_where_clause :=
898: 'Where B.PERSPECTIVE_ID = T.PERSPECTIVE_ID ' ||
899: 'And T.LANGUAGE = userenv(''LANG'') ';
900: IF (p_perspective_name IS NOT NULL AND
901: p_perspective_name <> FND_API.G_MISS_CHAR) THEN
902: l_where_clause := l_where_clause ||
903: 'And T.PERSPECTIVE_NAME Like ''' || p_perspective_name || ''' ';
904: END IF;
905: IF (p_persp_description IS NOT NULL AND
902: l_where_clause := l_where_clause ||
903: 'And T.PERSPECTIVE_NAME Like ''' || p_perspective_name || ''' ';
904: END IF;
905: IF (p_persp_description IS NOT NULL AND
906: p_persp_description <> FND_API.G_MISS_CHAR) THEN
907: l_where_clause := l_where_clause ||
908: 'And T.DESCRIPTION Like ''' || p_persp_description || ''' ';
909: END IF;
910: l_sql_statement := l_sql_statement ||
923: FND_MESSAGE.Set_Token('ROW', l_sql_statement2);
924: FND_MSG_PUB.Add;
925: END IF;
926: --Execute the SQL statements to get the total count:
927: IF (p_subset_request_obj.return_total_count_flag = FND_API.G_TRUE) THEN
928: OPEN l_cursor FOR l_sql_statement2;
929: FETCH l_cursor INTO l_total_record_count;
930: CLOSE l_cursor;
931: END IF;
998: );
999: */
1000: --Standard call to get message count and if count=1, get the message
1001: FND_MSG_PUB.Count_And_Get (
1002: p_encoded => FND_API.G_FALSE,
1003: p_count => x_msg_count,
1004: p_data => x_msg_data
1005: );
1006: EXCEPTION
1003: p_count => x_msg_count,
1004: p_data => x_msg_data
1005: );
1006: EXCEPTION
1007: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1008: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1009: -- Standard call to get message count and if count=1, get the message
1010: FND_MSG_PUB.Count_And_Get (
1011: p_encoded => FND_API.G_FALSE,
1004: p_data => x_msg_data
1005: );
1006: EXCEPTION
1007: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1008: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1009: -- Standard call to get message count and if count=1, get the message
1010: FND_MSG_PUB.Count_And_Get (
1011: p_encoded => FND_API.G_FALSE,
1012: p_count => x_msg_count,
1007: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1008: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1009: -- Standard call to get message count and if count=1, get the message
1010: FND_MSG_PUB.Count_And_Get (
1011: p_encoded => FND_API.G_FALSE,
1012: p_count => x_msg_count,
1013: p_data => x_msg_data
1014: );
1015: WHEN FND_API.G_EXC_ERROR THEN
1011: p_encoded => FND_API.G_FALSE,
1012: p_count => x_msg_count,
1013: p_data => x_msg_data
1014: );
1015: WHEN FND_API.G_EXC_ERROR THEN
1016: x_return_status := FND_API.G_RET_STS_ERROR;
1017: -- Standard call to get message count and if count=1, get the message
1018: FND_MSG_PUB.Count_And_Get (
1019: p_encoded => FND_API.G_FALSE,
1012: p_count => x_msg_count,
1013: p_data => x_msg_data
1014: );
1015: WHEN FND_API.G_EXC_ERROR THEN
1016: x_return_status := FND_API.G_RET_STS_ERROR;
1017: -- Standard call to get message count and if count=1, get the message
1018: FND_MSG_PUB.Count_And_Get (
1019: p_encoded => FND_API.G_FALSE,
1020: p_count => x_msg_count,
1015: WHEN FND_API.G_EXC_ERROR THEN
1016: x_return_status := FND_API.G_RET_STS_ERROR;
1017: -- Standard call to get message count and if count=1, get the message
1018: FND_MSG_PUB.Count_And_Get (
1019: p_encoded => FND_API.G_FALSE,
1020: p_count => x_msg_count,
1021: p_data => x_msg_data
1022: );
1023: WHEN OTHERS THEN
1020: p_count => x_msg_count,
1021: p_data => x_msg_data
1022: );
1023: WHEN OTHERS THEN
1024: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1025: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1026: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1027: END IF;
1028: -- Standard call to get message count and if count=1, get the message
1026: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1027: END IF;
1028: -- Standard call to get message count and if count=1, get the message
1029: FND_MSG_PUB.Count_And_Get (
1030: p_encoded => FND_API.G_FALSE,
1031: p_count => x_msg_count,
1032: p_data => x_msg_data
1033: );
1034: END Find_Perspective;
1037: --------------------------------------------------------------------------------
1038: PROCEDURE Add_ItemPersps
1039: (
1040: p_api_version IN NUMBER,
1041: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1042: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1043: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1044: x_return_status OUT NOCOPY VARCHAR2,
1045: x_msg_count OUT NOCOPY NUMBER,
1038: PROCEDURE Add_ItemPersps
1039: (
1040: p_api_version IN NUMBER,
1041: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1042: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1043: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1044: x_return_status OUT NOCOPY VARCHAR2,
1045: x_msg_count OUT NOCOPY NUMBER,
1046: x_msg_data OUT NOCOPY VARCHAR2,
1039: (
1040: p_api_version IN NUMBER,
1041: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1042: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1043: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1044: x_return_status OUT NOCOPY VARCHAR2,
1045: x_msg_count OUT NOCOPY NUMBER,
1046: x_msg_data OUT NOCOPY VARCHAR2,
1047: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1043: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1044: x_return_status OUT NOCOPY VARCHAR2,
1045: x_msg_count OUT NOCOPY NUMBER,
1046: x_msg_data OUT NOCOPY VARCHAR2,
1047: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1048: p_item_id IN NUMBER,
1049: p_perspective_array IN AMV_NUMBER_VARRAY_TYPE
1050: ) IS
1051: l_api_name CONSTANT VARCHAR2(30) := 'Add_ItemPersps';
1074: --
1075: BEGIN
1076: -- Standard call to check for call compatibility.
1077: SAVEPOINT Add_ItemPersps_Pvt;
1078: IF NOT FND_API.Compatible_API_Call (
1079: l_api_version,
1080: p_api_version,
1081: l_api_name,
1082: G_PKG_NAME) THEN
1079: l_api_version,
1080: p_api_version,
1081: l_api_name,
1082: G_PKG_NAME) THEN
1083: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1084: END IF;
1085: --Initialize message list if p_init_msg_list is TRUE.
1086: IF FND_API.To_Boolean (p_init_msg_list) THEN
1087: FND_MSG_PUB.initialize;
1082: G_PKG_NAME) THEN
1083: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1084: END IF;
1085: --Initialize message list if p_init_msg_list is TRUE.
1086: IF FND_API.To_Boolean (p_init_msg_list) THEN
1087: FND_MSG_PUB.initialize;
1088: END IF;
1089: -- Initialize API return status to success
1090: x_return_status := FND_API.G_RET_STS_SUCCESS;
1086: IF FND_API.To_Boolean (p_init_msg_list) THEN
1087: FND_MSG_PUB.initialize;
1088: END IF;
1089: -- Initialize API return status to success
1090: x_return_status := FND_API.G_RET_STS_SUCCESS;
1091: --
1092: -- Get the current (login) user id.
1093: AMV_UTILITY_PVT.Get_UserInfo(
1094: x_resource_id => l_resource_id,
1095: x_user_id => l_current_user_id,
1096: x_login_id => l_current_login_id,
1097: x_user_status => l_current_user_status
1098: );
1099: IF (p_check_login_user = FND_API.G_TRUE) THEN
1100: -- Check if user is login and has the required privilege.
1101: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1102: -- User is not login.
1103: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1097: x_user_status => l_current_user_status
1098: );
1099: IF (p_check_login_user = FND_API.G_TRUE) THEN
1100: -- Check if user is login and has the required privilege.
1101: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1102: -- User is not login.
1103: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1104: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1105: FND_MSG_PUB.Add;
1103: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1104: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1105: FND_MSG_PUB.Add;
1106: END IF;
1107: RAISE FND_API.G_EXC_ERROR;
1108: END IF;
1109: AMV_USER_PVT.Is_Administrator
1110: (
1111: p_api_version => 1.0,
1111: p_api_version => 1.0,
1112: x_return_status => x_return_status,
1113: x_msg_count => x_msg_count,
1114: x_msg_data => x_msg_data,
1115: p_check_login_user => FND_API.G_FALSE,
1116: p_resource_id => l_resource_id,
1117: x_result_flag => l_admin_flag
1118: );
1119: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1115: p_check_login_user => FND_API.G_FALSE,
1116: p_resource_id => l_resource_id,
1117: x_result_flag => l_admin_flag
1118: );
1119: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1120: -- User is not an administrator.
1121: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1122: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1123: FND_MSG_PUB.Add;
1121: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1122: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1123: FND_MSG_PUB.Add;
1124: END IF;
1125: RAISE FND_API.G_EXC_ERROR;
1126: END IF;
1127: END IF;
1128: -- This is to make database happy
1129: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1125: RAISE FND_API.G_EXC_ERROR;
1126: END IF;
1127: END IF;
1128: -- This is to make database happy
1129: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1130: l_current_login_id := -1;
1131: l_current_user_id := -1;
1132: END IF;
1133: -- Check if item id is valid.
1137: FND_MESSAGE.Set_Token('RECORD', 'AMV_ITEM_TK', TRUE);
1138: FND_MESSAGE.Set_Token('ID', to_char(p_item_id));
1139: FND_MSG_PUB.Add;
1140: END IF;
1141: RAISE FND_API.G_EXC_ERROR;
1142: END IF;
1143: l_count := p_perspective_array.count;
1144: FOR i IN 1..l_count LOOP
1145: l_perspective_id := p_perspective_array(i);
1146: OPEN Check_ItemPerspectives_csr(l_perspective_id);
1147: FETCH Check_ItemPerspectives_csr INTO l_temp_number;
1148: IF (Check_ItemPerspectives_csr%FOUND) THEN
1149: CLOSE Check_ItemPerspectives_csr;
1150: x_return_status := FND_API.G_RET_STS_ERROR;
1151: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1152: FND_MESSAGE.Set_name('AMV','AMV_ENTITY_HAS_ATTR');
1153: FND_MESSAGE.Set_Token('ENTITY', 'AMV_ITEM_TK', TRUE);
1154: FND_MESSAGE.Set_Token('ENTID', to_char(p_item_id));
1185: p_item_id,
1186: l_perspective_id
1187: );
1188: ELSE
1189: x_return_status := FND_API.G_RET_STS_ERROR;
1190: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1191: FND_MESSAGE.Set_name('AMV','AMV_RECORD_ID_MISSING');
1192: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
1193: FND_MESSAGE.Set_Token('ID',
1197: END IF;
1198: END IF;
1199: END LOOP;
1200: --Standard check of commit
1201: IF FND_API.To_Boolean ( p_commit ) THEN
1202: COMMIT WORK;
1203: END IF;
1204: --Standard call to get message count and if count=1, get the message
1205: FND_MSG_PUB.Count_And_Get (
1202: COMMIT WORK;
1203: END IF;
1204: --Standard call to get message count and if count=1, get the message
1205: FND_MSG_PUB.Count_And_Get (
1206: p_encoded => FND_API.G_FALSE,
1207: p_count => x_msg_count,
1208: p_data => x_msg_data
1209: );
1210: EXCEPTION
1207: p_count => x_msg_count,
1208: p_data => x_msg_data
1209: );
1210: EXCEPTION
1211: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1212: ROLLBACK TO Add_ItemPersps_Pvt;
1213: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1214: -- Standard call to get message count and if count=1, get the message
1215: FND_MSG_PUB.Count_And_Get (
1209: );
1210: EXCEPTION
1211: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1212: ROLLBACK TO Add_ItemPersps_Pvt;
1213: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1214: -- Standard call to get message count and if count=1, get the message
1215: FND_MSG_PUB.Count_And_Get (
1216: p_encoded => FND_API.G_FALSE,
1217: p_count => x_msg_count,
1212: ROLLBACK TO Add_ItemPersps_Pvt;
1213: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1214: -- Standard call to get message count and if count=1, get the message
1215: FND_MSG_PUB.Count_And_Get (
1216: p_encoded => FND_API.G_FALSE,
1217: p_count => x_msg_count,
1218: p_data => x_msg_data
1219: );
1220: WHEN FND_API.G_EXC_ERROR THEN
1216: p_encoded => FND_API.G_FALSE,
1217: p_count => x_msg_count,
1218: p_data => x_msg_data
1219: );
1220: WHEN FND_API.G_EXC_ERROR THEN
1221: ROLLBACK TO Add_ItemPersps_Pvt;
1222: x_return_status := FND_API.G_RET_STS_ERROR;
1223: -- Standard call to get message count and if count=1, get the message
1224: FND_MSG_PUB.Count_And_Get (
1218: p_data => x_msg_data
1219: );
1220: WHEN FND_API.G_EXC_ERROR THEN
1221: ROLLBACK TO Add_ItemPersps_Pvt;
1222: x_return_status := FND_API.G_RET_STS_ERROR;
1223: -- Standard call to get message count and if count=1, get the message
1224: FND_MSG_PUB.Count_And_Get (
1225: p_encoded => FND_API.G_FALSE,
1226: p_count => x_msg_count,
1221: ROLLBACK TO Add_ItemPersps_Pvt;
1222: x_return_status := FND_API.G_RET_STS_ERROR;
1223: -- Standard call to get message count and if count=1, get the message
1224: FND_MSG_PUB.Count_And_Get (
1225: p_encoded => FND_API.G_FALSE,
1226: p_count => x_msg_count,
1227: p_data => x_msg_data
1228: );
1229: WHEN OTHERS THEN
1227: p_data => x_msg_data
1228: );
1229: WHEN OTHERS THEN
1230: ROLLBACK TO Add_ItemPersps_Pvt;
1231: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1232: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1233: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1234: END IF;
1235: -- Standard call to get message count and if count=1, get the message
1233: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1234: END IF;
1235: -- Standard call to get message count and if count=1, get the message
1236: FND_MSG_PUB.Count_And_Get (
1237: p_encoded => FND_API.G_FALSE,
1238: p_count => x_msg_count,
1239: p_data => x_msg_data
1240: );
1241: --
1243: --------------------------------------------------------------------------------
1244: PROCEDURE Add_ItemPersps
1245: (
1246: p_api_version IN NUMBER,
1247: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1248: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1249: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1250: x_return_status OUT NOCOPY VARCHAR2,
1251: x_msg_count OUT NOCOPY NUMBER,
1244: PROCEDURE Add_ItemPersps
1245: (
1246: p_api_version IN NUMBER,
1247: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1248: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1249: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1250: x_return_status OUT NOCOPY VARCHAR2,
1251: x_msg_count OUT NOCOPY NUMBER,
1252: x_msg_data OUT NOCOPY VARCHAR2,
1245: (
1246: p_api_version IN NUMBER,
1247: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1248: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1249: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1250: x_return_status OUT NOCOPY VARCHAR2,
1251: x_msg_count OUT NOCOPY NUMBER,
1252: x_msg_data OUT NOCOPY VARCHAR2,
1253: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1249: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1250: x_return_status OUT NOCOPY VARCHAR2,
1251: x_msg_count OUT NOCOPY NUMBER,
1252: x_msg_data OUT NOCOPY VARCHAR2,
1253: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1254: p_item_id IN NUMBER,
1255: p_perspective_id IN NUMBER
1256: ) IS
1257: l_api_name CONSTANT VARCHAR2(30) := 'Add_ItemPersps';
1278: --
1279: BEGIN
1280: -- Standard call to check for call compatibility.
1281: SAVEPOINT Add_ItemPersps_Pvt;
1282: IF NOT FND_API.Compatible_API_Call (
1283: l_api_version,
1284: p_api_version,
1285: l_api_name,
1286: G_PKG_NAME) THEN
1283: l_api_version,
1284: p_api_version,
1285: l_api_name,
1286: G_PKG_NAME) THEN
1287: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1288: END IF;
1289: --Initialize message list if p_init_msg_list is TRUE.
1290: IF FND_API.To_Boolean (p_init_msg_list) THEN
1291: FND_MSG_PUB.initialize;
1286: G_PKG_NAME) THEN
1287: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1288: END IF;
1289: --Initialize message list if p_init_msg_list is TRUE.
1290: IF FND_API.To_Boolean (p_init_msg_list) THEN
1291: FND_MSG_PUB.initialize;
1292: END IF;
1293: -- Initialize API return status to success
1294: x_return_status := FND_API.G_RET_STS_SUCCESS;
1290: IF FND_API.To_Boolean (p_init_msg_list) THEN
1291: FND_MSG_PUB.initialize;
1292: END IF;
1293: -- Initialize API return status to success
1294: x_return_status := FND_API.G_RET_STS_SUCCESS;
1295: -- Get the current (login) user id.
1296: AMV_UTILITY_PVT.Get_UserInfo(
1297: x_resource_id => l_resource_id,
1298: x_user_id => l_current_user_id,
1298: x_user_id => l_current_user_id,
1299: x_login_id => l_current_login_id,
1300: x_user_status => l_current_user_status
1301: );
1302: IF (p_check_login_user = FND_API.G_TRUE) THEN
1303: -- Check if user is login and has the required privilege.
1304: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1305: -- User is not login.
1306: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1300: x_user_status => l_current_user_status
1301: );
1302: IF (p_check_login_user = FND_API.G_TRUE) THEN
1303: -- Check if user is login and has the required privilege.
1304: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1305: -- User is not login.
1306: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1307: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1308: FND_MSG_PUB.Add;
1306: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1307: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1308: FND_MSG_PUB.Add;
1309: END IF;
1310: RAISE FND_API.G_EXC_ERROR;
1311: END IF;
1312: AMV_USER_PVT.Is_Administrator
1313: (
1314: p_api_version => 1.0,
1314: p_api_version => 1.0,
1315: x_return_status => x_return_status,
1316: x_msg_count => x_msg_count,
1317: x_msg_data => x_msg_data,
1318: p_check_login_user => FND_API.G_FALSE,
1319: p_resource_id => l_resource_id,
1320: x_result_flag => l_admin_flag
1321: );
1322: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1318: p_check_login_user => FND_API.G_FALSE,
1319: p_resource_id => l_resource_id,
1320: x_result_flag => l_admin_flag
1321: );
1322: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1323: -- User is not an administrator.
1324: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1325: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1326: FND_MSG_PUB.Add;
1324: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1325: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1326: FND_MSG_PUB.Add;
1327: END IF;
1328: RAISE FND_API.G_EXC_ERROR;
1329: END IF;
1330: END IF;
1331: -- This is to make database happy
1332: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1328: RAISE FND_API.G_EXC_ERROR;
1329: END IF;
1330: END IF;
1331: -- This is to make database happy
1332: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1333: l_current_login_id := -1;
1334: l_current_user_id := -1;
1335: END IF;
1336: -- Check if item id is valid.
1340: FND_MESSAGE.Set_Token('RECORD', 'AMV_ITEM_TK', TRUE);
1341: FND_MESSAGE.Set_Token('ID', to_char(p_item_id));
1342: FND_MSG_PUB.Add;
1343: END IF;
1344: RAISE FND_API.G_EXC_ERROR;
1345: END IF;
1346: IF (AMV_UTILITY_PVT.Is_PerspectiveIdValid(p_perspective_id) <> TRUE) THEN
1347: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1348: FND_MESSAGE.Set_name('AMV','AMV_RECORD_ID_MISSING');
1349: FND_MESSAGE.Set_Token('RECORD', 'AMV_PERSPECTIVE_TK', TRUE);
1350: FND_MESSAGE.Set_Token('ID', to_char(p_perspective_id));
1351: FND_MSG_PUB.Add;
1352: END IF;
1353: RAISE FND_API.G_EXC_ERROR;
1354: END IF;
1355: OPEN Check_ItemPerspectives_csr;
1356: FETCH Check_ItemPerspectives_csr INTO l_item_persp;
1357: IF (Check_ItemPerspectives_csr%FOUND) THEN
1355: OPEN Check_ItemPerspectives_csr;
1356: FETCH Check_ItemPerspectives_csr INTO l_item_persp;
1357: IF (Check_ItemPerspectives_csr%FOUND) THEN
1358: CLOSE Check_ItemPerspectives_csr;
1359: x_return_status := FND_API.G_RET_STS_ERROR;
1360: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1361: FND_MESSAGE.Set_name('AMV','AMV_ENTITY_HAS_ATTR');
1362: FND_MESSAGE.Set_Token('ENTITY', 'AMV_ITEM_TK', TRUE);
1363: FND_MESSAGE.Set_Token('ENTID', to_char(p_item_id));
1392: p_perspective_id
1393: );
1394: END IF;
1395: --Standard check of commit
1396: IF FND_API.To_Boolean ( p_commit ) THEN
1397: COMMIT WORK;
1398: END IF;
1399: --Standard call to get message count and if count=1, get the message
1400: FND_MSG_PUB.Count_And_Get (
1397: COMMIT WORK;
1398: END IF;
1399: --Standard call to get message count and if count=1, get the message
1400: FND_MSG_PUB.Count_And_Get (
1401: p_encoded => FND_API.G_FALSE,
1402: p_count => x_msg_count,
1403: p_data => x_msg_data
1404: );
1405: EXCEPTION
1402: p_count => x_msg_count,
1403: p_data => x_msg_data
1404: );
1405: EXCEPTION
1406: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1407: ROLLBACK TO Add_ItemPersps_Pvt;
1408: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1409: -- Standard call to get message count and if count=1, get the message
1410: FND_MSG_PUB.Count_And_Get (
1404: );
1405: EXCEPTION
1406: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1407: ROLLBACK TO Add_ItemPersps_Pvt;
1408: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1409: -- Standard call to get message count and if count=1, get the message
1410: FND_MSG_PUB.Count_And_Get (
1411: p_encoded => FND_API.G_FALSE,
1412: p_count => x_msg_count,
1407: ROLLBACK TO Add_ItemPersps_Pvt;
1408: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1409: -- Standard call to get message count and if count=1, get the message
1410: FND_MSG_PUB.Count_And_Get (
1411: p_encoded => FND_API.G_FALSE,
1412: p_count => x_msg_count,
1413: p_data => x_msg_data
1414: );
1415: WHEN FND_API.G_EXC_ERROR THEN
1411: p_encoded => FND_API.G_FALSE,
1412: p_count => x_msg_count,
1413: p_data => x_msg_data
1414: );
1415: WHEN FND_API.G_EXC_ERROR THEN
1416: ROLLBACK TO Add_ItemPersps_Pvt;
1417: x_return_status := FND_API.G_RET_STS_ERROR;
1418: -- Standard call to get message count and if count=1, get the message
1419: FND_MSG_PUB.Count_And_Get (
1413: p_data => x_msg_data
1414: );
1415: WHEN FND_API.G_EXC_ERROR THEN
1416: ROLLBACK TO Add_ItemPersps_Pvt;
1417: x_return_status := FND_API.G_RET_STS_ERROR;
1418: -- Standard call to get message count and if count=1, get the message
1419: FND_MSG_PUB.Count_And_Get (
1420: p_encoded => FND_API.G_FALSE,
1421: p_count => x_msg_count,
1416: ROLLBACK TO Add_ItemPersps_Pvt;
1417: x_return_status := FND_API.G_RET_STS_ERROR;
1418: -- Standard call to get message count and if count=1, get the message
1419: FND_MSG_PUB.Count_And_Get (
1420: p_encoded => FND_API.G_FALSE,
1421: p_count => x_msg_count,
1422: p_data => x_msg_data
1423: );
1424: WHEN OTHERS THEN
1422: p_data => x_msg_data
1423: );
1424: WHEN OTHERS THEN
1425: ROLLBACK TO Add_ItemPersps_Pvt;
1426: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1427: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1428: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1429: END IF;
1430: -- Standard call to get message count and if count=1, get the message
1428: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1429: END IF;
1430: -- Standard call to get message count and if count=1, get the message
1431: FND_MSG_PUB.Count_And_Get (
1432: p_encoded => FND_API.G_FALSE,
1433: p_count => x_msg_count,
1434: p_data => x_msg_data
1435: );
1436: --
1438: --------------------------------------------------------------------------------
1439: PROCEDURE Delete_ItemPersps
1440: (
1441: p_api_version IN NUMBER,
1442: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1443: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1444: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1445: x_return_status OUT NOCOPY VARCHAR2,
1446: x_msg_count OUT NOCOPY NUMBER,
1439: PROCEDURE Delete_ItemPersps
1440: (
1441: p_api_version IN NUMBER,
1442: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1443: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1444: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1445: x_return_status OUT NOCOPY VARCHAR2,
1446: x_msg_count OUT NOCOPY NUMBER,
1447: x_msg_data OUT NOCOPY VARCHAR2,
1440: (
1441: p_api_version IN NUMBER,
1442: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1443: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1444: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1445: x_return_status OUT NOCOPY VARCHAR2,
1446: x_msg_count OUT NOCOPY NUMBER,
1447: x_msg_data OUT NOCOPY VARCHAR2,
1448: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1444: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1445: x_return_status OUT NOCOPY VARCHAR2,
1446: x_msg_count OUT NOCOPY NUMBER,
1447: x_msg_data OUT NOCOPY VARCHAR2,
1448: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1449: p_item_id IN NUMBER,
1450: p_perspective_array IN AMV_NUMBER_VARRAY_TYPE
1451: ) IS
1452: l_api_name CONSTANT VARCHAR2(30) := 'Delete_ItemPersps';
1472: --
1473: BEGIN
1474: -- Standard call to check for call compatibility.
1475: SAVEPOINT Delete_ItemPersps_Pvt;
1476: IF NOT FND_API.Compatible_API_Call (
1477: l_api_version,
1478: p_api_version,
1479: l_api_name,
1480: G_PKG_NAME) THEN
1477: l_api_version,
1478: p_api_version,
1479: l_api_name,
1480: G_PKG_NAME) THEN
1481: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1482: END IF;
1483: --Initialize message list if p_init_msg_list is TRUE.
1484: IF FND_API.To_Boolean (p_init_msg_list) THEN
1485: FND_MSG_PUB.initialize;
1480: G_PKG_NAME) THEN
1481: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1482: END IF;
1483: --Initialize message list if p_init_msg_list is TRUE.
1484: IF FND_API.To_Boolean (p_init_msg_list) THEN
1485: FND_MSG_PUB.initialize;
1486: END IF;
1487: -- Initialize API return status to success
1488: x_return_status := FND_API.G_RET_STS_SUCCESS;
1484: IF FND_API.To_Boolean (p_init_msg_list) THEN
1485: FND_MSG_PUB.initialize;
1486: END IF;
1487: -- Initialize API return status to success
1488: x_return_status := FND_API.G_RET_STS_SUCCESS;
1489: -- Get the current (login) user id.
1490: AMV_UTILITY_PVT.Get_UserInfo(
1491: x_resource_id => l_resource_id,
1492: x_user_id => l_current_user_id,
1492: x_user_id => l_current_user_id,
1493: x_login_id => l_current_login_id,
1494: x_user_status => l_current_user_status
1495: );
1496: IF (p_check_login_user = FND_API.G_TRUE) THEN
1497: -- Check if user is login and has the required privilege.
1498: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1499: -- User is not login.
1500: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1494: x_user_status => l_current_user_status
1495: );
1496: IF (p_check_login_user = FND_API.G_TRUE) THEN
1497: -- Check if user is login and has the required privilege.
1498: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1499: -- User is not login.
1500: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1501: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1502: FND_MSG_PUB.Add;
1500: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1501: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1502: FND_MSG_PUB.Add;
1503: END IF;
1504: RAISE FND_API.G_EXC_ERROR;
1505: END IF;
1506: AMV_USER_PVT.Is_Administrator
1507: (
1508: p_api_version => 1.0,
1508: p_api_version => 1.0,
1509: x_return_status => x_return_status,
1510: x_msg_count => x_msg_count,
1511: x_msg_data => x_msg_data,
1512: p_check_login_user => FND_API.G_FALSE,
1513: p_resource_id => l_resource_id,
1514: x_result_flag => l_admin_flag
1515: );
1516: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1512: p_check_login_user => FND_API.G_FALSE,
1513: p_resource_id => l_resource_id,
1514: x_result_flag => l_admin_flag
1515: );
1516: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1517: -- User is not an administrator.
1518: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1519: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1520: FND_MSG_PUB.Add;
1518: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1519: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1520: FND_MSG_PUB.Add;
1521: END IF;
1522: RAISE FND_API.G_EXC_ERROR;
1523: END IF;
1524: END IF;
1525: -- This is to make database happy
1526: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1522: RAISE FND_API.G_EXC_ERROR;
1523: END IF;
1524: END IF;
1525: -- This is to make database happy
1526: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1527: l_current_login_id := -1;
1528: l_current_user_id := -1;
1529: END IF;
1530: -- Check if item id is valid.
1534: FND_MESSAGE.Set_Token('RECORD', 'AMV_ITEM_TK', TRUE);
1535: FND_MESSAGE.Set_Token('ID', to_char(p_item_id));
1536: FND_MSG_PUB.Add;
1537: END IF;
1538: RAISE FND_API.G_EXC_ERROR;
1539: END IF;
1540: l_count := p_perspective_array.count;
1541: FOR i IN 1..l_count LOOP
1542: l_perspective_id := p_perspective_array(i);
1543: OPEN Check_ItemPerspectives_csr(l_perspective_id);
1544: FETCH Check_ItemPerspectives_csr INTO l_temp_number;
1545: IF (Check_ItemPerspectives_csr%NOTFOUND) THEN
1546: CLOSE Check_ItemPerspectives_csr;
1547: x_return_status := FND_API.G_RET_STS_ERROR;
1548: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1549: FND_MESSAGE.Set_name('AMV','AMV_ENTITY_HAS_NOT_ATTR');
1550: FND_MESSAGE.Set_Token('ENTITY', 'AMV_ITEM_TK', TRUE);
1551: FND_MESSAGE.Set_Token('ENTID', to_char(p_item_id));
1560: And perspective_id = l_perspective_id;
1561: END IF;
1562: END LOOP;
1563: --Standard check of commit
1564: IF FND_API.To_Boolean ( p_commit ) THEN
1565: COMMIT WORK;
1566: END IF;
1567: --Standard call to get message count and if count=1, get the message
1568: FND_MSG_PUB.Count_And_Get (
1565: COMMIT WORK;
1566: END IF;
1567: --Standard call to get message count and if count=1, get the message
1568: FND_MSG_PUB.Count_And_Get (
1569: p_encoded => FND_API.G_FALSE,
1570: p_count => x_msg_count,
1571: p_data => x_msg_data
1572: );
1573: EXCEPTION
1570: p_count => x_msg_count,
1571: p_data => x_msg_data
1572: );
1573: EXCEPTION
1574: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1575: ROLLBACK TO Delete_ItemPersps_Pvt;
1576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1577: -- Standard call to get message count and if count=1, get the message
1578: FND_MSG_PUB.Count_And_Get (
1572: );
1573: EXCEPTION
1574: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1575: ROLLBACK TO Delete_ItemPersps_Pvt;
1576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1577: -- Standard call to get message count and if count=1, get the message
1578: FND_MSG_PUB.Count_And_Get (
1579: p_encoded => FND_API.G_FALSE,
1580: p_count => x_msg_count,
1575: ROLLBACK TO Delete_ItemPersps_Pvt;
1576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1577: -- Standard call to get message count and if count=1, get the message
1578: FND_MSG_PUB.Count_And_Get (
1579: p_encoded => FND_API.G_FALSE,
1580: p_count => x_msg_count,
1581: p_data => x_msg_data
1582: );
1583: WHEN FND_API.G_EXC_ERROR THEN
1579: p_encoded => FND_API.G_FALSE,
1580: p_count => x_msg_count,
1581: p_data => x_msg_data
1582: );
1583: WHEN FND_API.G_EXC_ERROR THEN
1584: ROLLBACK TO Delete_ItemPersps_Pvt;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: -- Standard call to get message count and if count=1, get the message
1587: FND_MSG_PUB.Count_And_Get (
1581: p_data => x_msg_data
1582: );
1583: WHEN FND_API.G_EXC_ERROR THEN
1584: ROLLBACK TO Delete_ItemPersps_Pvt;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: -- Standard call to get message count and if count=1, get the message
1587: FND_MSG_PUB.Count_And_Get (
1588: p_encoded => FND_API.G_FALSE,
1589: p_count => x_msg_count,
1584: ROLLBACK TO Delete_ItemPersps_Pvt;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: -- Standard call to get message count and if count=1, get the message
1587: FND_MSG_PUB.Count_And_Get (
1588: p_encoded => FND_API.G_FALSE,
1589: p_count => x_msg_count,
1590: p_data => x_msg_data
1591: );
1592: WHEN OTHERS THEN
1590: p_data => x_msg_data
1591: );
1592: WHEN OTHERS THEN
1593: ROLLBACK TO Delete_ItemPersps_Pvt;
1594: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1595: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1596: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1597: END IF;
1598: -- Standard call to get message count and if count=1, get the message
1596: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1597: END IF;
1598: -- Standard call to get message count and if count=1, get the message
1599: FND_MSG_PUB.Count_And_Get (
1600: p_encoded => FND_API.G_FALSE,
1601: p_count => x_msg_count,
1602: p_data => x_msg_data
1603: );
1604: --
1607: --------------------------------------------------------------------------------
1608: PROCEDURE Delete_ItemPersps
1609: (
1610: p_api_version IN NUMBER,
1611: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1612: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1613: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1614: x_return_status OUT NOCOPY VARCHAR2,
1615: x_msg_count OUT NOCOPY NUMBER,
1608: PROCEDURE Delete_ItemPersps
1609: (
1610: p_api_version IN NUMBER,
1611: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1612: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1613: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1614: x_return_status OUT NOCOPY VARCHAR2,
1615: x_msg_count OUT NOCOPY NUMBER,
1616: x_msg_data OUT NOCOPY VARCHAR2,
1609: (
1610: p_api_version IN NUMBER,
1611: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1612: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1613: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1614: x_return_status OUT NOCOPY VARCHAR2,
1615: x_msg_count OUT NOCOPY NUMBER,
1616: x_msg_data OUT NOCOPY VARCHAR2,
1617: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1613: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1614: x_return_status OUT NOCOPY VARCHAR2,
1615: x_msg_count OUT NOCOPY NUMBER,
1616: x_msg_data OUT NOCOPY VARCHAR2,
1617: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1618: p_item_id IN NUMBER,
1619: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM
1620: ) IS
1621: l_api_name CONSTANT VARCHAR2(30) := 'Delete_ItemPersps';
1615: x_msg_count OUT NOCOPY NUMBER,
1616: x_msg_data OUT NOCOPY VARCHAR2,
1617: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1618: p_item_id IN NUMBER,
1619: p_perspective_id IN NUMBER := FND_API.G_MISS_NUM
1620: ) IS
1621: l_api_name CONSTANT VARCHAR2(30) := 'Delete_ItemPersps';
1622: l_api_version CONSTANT NUMBER := 1.0;
1623: l_resource_id NUMBER := -1;
1637: --
1638: BEGIN
1639: -- Standard call to check for call compatibility.
1640: SAVEPOINT Delete_ItemPersps_Pvt;
1641: IF NOT FND_API.Compatible_API_Call (
1642: l_api_version,
1643: p_api_version,
1644: l_api_name,
1645: G_PKG_NAME) THEN
1642: l_api_version,
1643: p_api_version,
1644: l_api_name,
1645: G_PKG_NAME) THEN
1646: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1647: END IF;
1648: --Initialize message list if p_init_msg_list is TRUE.
1649: IF FND_API.To_Boolean (p_init_msg_list) THEN
1650: FND_MSG_PUB.initialize;
1645: G_PKG_NAME) THEN
1646: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1647: END IF;
1648: --Initialize message list if p_init_msg_list is TRUE.
1649: IF FND_API.To_Boolean (p_init_msg_list) THEN
1650: FND_MSG_PUB.initialize;
1651: END IF;
1652: -- Initialize API return status to success
1653: x_return_status := FND_API.G_RET_STS_SUCCESS;
1649: IF FND_API.To_Boolean (p_init_msg_list) THEN
1650: FND_MSG_PUB.initialize;
1651: END IF;
1652: -- Initialize API return status to success
1653: x_return_status := FND_API.G_RET_STS_SUCCESS;
1654: -- Get the current (login) user id.
1655: AMV_UTILITY_PVT.Get_UserInfo(
1656: x_resource_id => l_resource_id,
1657: x_user_id => l_current_user_id,
1657: x_user_id => l_current_user_id,
1658: x_login_id => l_current_login_id,
1659: x_user_status => l_current_user_status
1660: );
1661: IF (p_check_login_user = FND_API.G_TRUE) THEN
1662: -- Check if user is login and has the required privilege.
1663: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1664: -- User is not login.
1665: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1659: x_user_status => l_current_user_status
1660: );
1661: IF (p_check_login_user = FND_API.G_TRUE) THEN
1662: -- Check if user is login and has the required privilege.
1663: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1664: -- User is not login.
1665: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1666: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1667: FND_MSG_PUB.Add;
1665: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1666: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1667: FND_MSG_PUB.Add;
1668: END IF;
1669: RAISE FND_API.G_EXC_ERROR;
1670: END IF;
1671: AMV_USER_PVT.Is_Administrator
1672: (
1673: p_api_version => 1.0,
1673: p_api_version => 1.0,
1674: x_return_status => x_return_status,
1675: x_msg_count => x_msg_count,
1676: x_msg_data => x_msg_data,
1677: p_check_login_user => FND_API.G_FALSE,
1678: p_resource_id => l_resource_id,
1679: x_result_flag => l_admin_flag
1680: );
1681: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1677: p_check_login_user => FND_API.G_FALSE,
1678: p_resource_id => l_resource_id,
1679: x_result_flag => l_admin_flag
1680: );
1681: IF (l_admin_flag <> FND_API.G_TRUE) THEN
1682: -- User is not an administrator.
1683: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1684: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1685: FND_MSG_PUB.Add;
1683: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1684: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_HAVE_PRIVILEGE');
1685: FND_MSG_PUB.Add;
1686: END IF;
1687: RAISE FND_API.G_EXC_ERROR;
1688: END IF;
1689: END IF;
1690: -- This is to make database happy
1691: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1687: RAISE FND_API.G_EXC_ERROR;
1688: END IF;
1689: END IF;
1690: -- This is to make database happy
1691: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1692: l_current_login_id := -1;
1693: l_current_user_id := -1;
1694: END IF;
1695: -- Check if item id is valid.
1699: FND_MESSAGE.Set_Token('RECORD', 'AMV_ITEM_TK', TRUE);
1700: FND_MESSAGE.Set_Token('ID', to_char(p_item_id));
1701: FND_MSG_PUB.Add;
1702: END IF;
1703: RAISE FND_API.G_EXC_ERROR;
1704: END IF;
1705: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
1706: OPEN Check_ItemPerspectives_csr;
1707: FETCH Check_ItemPerspectives_csr INTO l_temp_number;
1701: FND_MSG_PUB.Add;
1702: END IF;
1703: RAISE FND_API.G_EXC_ERROR;
1704: END IF;
1705: IF (p_perspective_id <> FND_API.G_MISS_NUM) THEN
1706: OPEN Check_ItemPerspectives_csr;
1707: FETCH Check_ItemPerspectives_csr INTO l_temp_number;
1708: IF (Check_ItemPerspectives_csr%NOTFOUND) THEN
1709: CLOSE Check_ItemPerspectives_csr;
1714: FND_MESSAGE.Set_Token('ATTRIBUTE', 'AMV_PERSPECTIVE_TK', TRUE);
1715: FND_MESSAGE.Set_Token('ATTRID', to_char(p_perspective_id));
1716: FND_MSG_PUB.Add;
1717: END IF;
1718: RAISE FND_API.G_EXC_ERROR;
1719: ELSE
1720: CLOSE Check_ItemPerspectives_csr;
1721: Delete from amv_i_item_perspectives
1722: Where item_id = p_item_id
1728: Delete from amv_i_item_perspectives
1729: Where item_id = p_item_id;
1730: END IF;
1731: --Standard check of commit
1732: IF FND_API.To_Boolean ( p_commit ) THEN
1733: COMMIT WORK;
1734: END IF;
1735: --Standard call to get message count and if count=1, get the message
1736: FND_MSG_PUB.Count_And_Get (
1733: COMMIT WORK;
1734: END IF;
1735: --Standard call to get message count and if count=1, get the message
1736: FND_MSG_PUB.Count_And_Get (
1737: p_encoded => FND_API.G_FALSE,
1738: p_count => x_msg_count,
1739: p_data => x_msg_data
1740: );
1741: EXCEPTION
1738: p_count => x_msg_count,
1739: p_data => x_msg_data
1740: );
1741: EXCEPTION
1742: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1743: ROLLBACK TO Delete_ItemPersps_Pvt;
1744: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1745: -- Standard call to get message count and if count=1, get the message
1746: FND_MSG_PUB.Count_And_Get (
1740: );
1741: EXCEPTION
1742: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1743: ROLLBACK TO Delete_ItemPersps_Pvt;
1744: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1745: -- Standard call to get message count and if count=1, get the message
1746: FND_MSG_PUB.Count_And_Get (
1747: p_encoded => FND_API.G_FALSE,
1748: p_count => x_msg_count,
1743: ROLLBACK TO Delete_ItemPersps_Pvt;
1744: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1745: -- Standard call to get message count and if count=1, get the message
1746: FND_MSG_PUB.Count_And_Get (
1747: p_encoded => FND_API.G_FALSE,
1748: p_count => x_msg_count,
1749: p_data => x_msg_data
1750: );
1751: WHEN FND_API.G_EXC_ERROR THEN
1747: p_encoded => FND_API.G_FALSE,
1748: p_count => x_msg_count,
1749: p_data => x_msg_data
1750: );
1751: WHEN FND_API.G_EXC_ERROR THEN
1752: ROLLBACK TO Delete_ItemPersps_Pvt;
1753: x_return_status := FND_API.G_RET_STS_ERROR;
1754: -- Standard call to get message count and if count=1, get the message
1755: FND_MSG_PUB.Count_And_Get (
1749: p_data => x_msg_data
1750: );
1751: WHEN FND_API.G_EXC_ERROR THEN
1752: ROLLBACK TO Delete_ItemPersps_Pvt;
1753: x_return_status := FND_API.G_RET_STS_ERROR;
1754: -- Standard call to get message count and if count=1, get the message
1755: FND_MSG_PUB.Count_And_Get (
1756: p_encoded => FND_API.G_FALSE,
1757: p_count => x_msg_count,
1752: ROLLBACK TO Delete_ItemPersps_Pvt;
1753: x_return_status := FND_API.G_RET_STS_ERROR;
1754: -- Standard call to get message count and if count=1, get the message
1755: FND_MSG_PUB.Count_And_Get (
1756: p_encoded => FND_API.G_FALSE,
1757: p_count => x_msg_count,
1758: p_data => x_msg_data
1759: );
1760: WHEN OTHERS THEN
1758: p_data => x_msg_data
1759: );
1760: WHEN OTHERS THEN
1761: ROLLBACK TO Delete_ItemPersps_Pvt;
1762: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1763: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1764: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1765: END IF;
1766: -- Standard call to get message count and if count=1, get the message
1764: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1765: END IF;
1766: -- Standard call to get message count and if count=1, get the message
1767: FND_MSG_PUB.Count_And_Get (
1768: p_encoded => FND_API.G_FALSE,
1769: p_count => x_msg_count,
1770: p_data => x_msg_data
1771: );
1772: --
1775: --------------------------------------------------------------------------------
1776: PROCEDURE Update_ItemPersps
1777: (
1778: p_api_version IN NUMBER,
1779: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1780: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1781: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1782: x_return_status OUT NOCOPY VARCHAR2,
1783: x_msg_count OUT NOCOPY NUMBER,
1776: PROCEDURE Update_ItemPersps
1777: (
1778: p_api_version IN NUMBER,
1779: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1780: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1781: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1782: x_return_status OUT NOCOPY VARCHAR2,
1783: x_msg_count OUT NOCOPY NUMBER,
1784: x_msg_data OUT NOCOPY VARCHAR2,
1777: (
1778: p_api_version IN NUMBER,
1779: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1780: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1781: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1782: x_return_status OUT NOCOPY VARCHAR2,
1783: x_msg_count OUT NOCOPY NUMBER,
1784: x_msg_data OUT NOCOPY VARCHAR2,
1785: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1781: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1782: x_return_status OUT NOCOPY VARCHAR2,
1783: x_msg_count OUT NOCOPY NUMBER,
1784: x_msg_data OUT NOCOPY VARCHAR2,
1785: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1786: p_item_id IN NUMBER,
1787: p_perspective_array IN AMV_NUMBER_VARRAY_TYPE
1788: ) is
1789: begin
1798: x_msg_data => x_msg_data,
1799: p_check_login_user => p_check_login_user,
1800: p_item_id => p_item_id
1801: );
1802: IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1803: Add_ItemPersps
1804: (
1805: p_api_version => p_api_version,
1806: -- p_init_msg_list => p_init_msg_list,
1808: p_validation_level => p_validation_level,
1809: x_return_status => x_return_status,
1810: x_msg_count => x_msg_count,
1811: x_msg_data => x_msg_data,
1812: p_check_login_user => FND_API.G_FALSE,
1813: p_item_id => p_item_id,
1814: p_perspective_array => p_perspective_array
1815: );
1816: END IF;
1819: --------------------------------------------------------------------------------
1820: PROCEDURE Get_ItemPersps
1821: (
1822: p_api_version IN NUMBER,
1823: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1824: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1825: x_return_status OUT NOCOPY VARCHAR2,
1826: x_msg_count OUT NOCOPY NUMBER,
1827: x_msg_data OUT NOCOPY VARCHAR2,
1820: PROCEDURE Get_ItemPersps
1821: (
1822: p_api_version IN NUMBER,
1823: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1824: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1825: x_return_status OUT NOCOPY VARCHAR2,
1826: x_msg_count OUT NOCOPY NUMBER,
1827: x_msg_data OUT NOCOPY VARCHAR2,
1828: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1824: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1825: x_return_status OUT NOCOPY VARCHAR2,
1826: x_msg_count OUT NOCOPY NUMBER,
1827: x_msg_data OUT NOCOPY VARCHAR2,
1828: p_check_login_user IN VARCHAR2 := FND_API.G_TRUE,
1829: p_item_id IN NUMBER,
1830: x_perspective_obj_varray OUT NOCOPY AMV_PERSPECTIVE_OBJ_VARRAY
1831: ) IS
1832: l_api_name CONSTANT VARCHAR2(30) := 'Get_ItemPersps';
1861: l_fetch_count NUMBER := 0;
1862: --
1863: BEGIN
1864: -- Standard call to check for call compatibility.
1865: IF NOT FND_API.Compatible_API_Call (
1866: l_api_version,
1867: p_api_version,
1868: l_api_name,
1869: G_PKG_NAME) THEN
1866: l_api_version,
1867: p_api_version,
1868: l_api_name,
1869: G_PKG_NAME) THEN
1870: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1871: END IF;
1872: --Initialize message list if p_init_msg_list is TRUE.
1873: IF FND_API.To_Boolean (p_init_msg_list) THEN
1874: FND_MSG_PUB.initialize;
1869: G_PKG_NAME) THEN
1870: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1871: END IF;
1872: --Initialize message list if p_init_msg_list is TRUE.
1873: IF FND_API.To_Boolean (p_init_msg_list) THEN
1874: FND_MSG_PUB.initialize;
1875: END IF;
1876: -- Initialize API return status to success
1877: x_return_status := FND_API.G_RET_STS_SUCCESS;
1873: IF FND_API.To_Boolean (p_init_msg_list) THEN
1874: FND_MSG_PUB.initialize;
1875: END IF;
1876: -- Initialize API return status to success
1877: x_return_status := FND_API.G_RET_STS_SUCCESS;
1878: -- Get the current (login) user id.
1879: AMV_UTILITY_PVT.Get_UserInfo(
1880: x_resource_id => l_resource_id,
1881: x_user_id => l_current_user_id,
1881: x_user_id => l_current_user_id,
1882: x_login_id => l_current_login_id,
1883: x_user_status => l_current_user_status
1884: );
1885: IF (p_check_login_user = FND_API.G_TRUE) THEN
1886: -- Check if user is login and has the required privilege.
1887: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1888: -- User is not login.
1889: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1883: x_user_status => l_current_user_status
1884: );
1885: IF (p_check_login_user = FND_API.G_TRUE) THEN
1886: -- Check if user is login and has the required privilege.
1887: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1888: -- User is not login.
1889: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1890: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1891: FND_MSG_PUB.Add;
1889: IF FND_MSG_PUB.Check_Msg_level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1890: FND_MESSAGE.Set_name('AMV','AMV_USER_NOT_LOGIN');
1891: FND_MSG_PUB.Add;
1892: END IF;
1893: RAISE FND_API.G_EXC_ERROR;
1894: END IF;
1895: END IF;
1896: -- This is to make database happy
1897: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1893: RAISE FND_API.G_EXC_ERROR;
1894: END IF;
1895: END IF;
1896: -- This is to make database happy
1897: IF (l_current_login_id = FND_API.G_MISS_NUM) THEN
1898: l_current_login_id := -1;
1899: l_current_user_id := -1;
1900: END IF;
1901: -- Check if item id is valid.
1905: FND_MESSAGE.Set_Token('RECORD', 'AMV_ITEM_TK', TRUE);
1906: FND_MESSAGE.Set_Token('ID', to_char(p_item_id));
1907: FND_MSG_PUB.Add;
1908: END IF;
1909: RAISE FND_API.G_EXC_ERROR;
1910: END IF;
1911: --Execute the SQL statements to get records
1912: x_perspective_obj_varray := AMV_PERSPECTIVE_OBJ_VARRAY();
1913: FOR psp_rec in Get_ItemPerspective_csr LOOP
1942: */
1943: END LOOP;
1944: --Standard call to get message count and if count=1, get the message
1945: FND_MSG_PUB.Count_And_Get (
1946: p_encoded => FND_API.G_FALSE,
1947: p_count => x_msg_count,
1948: p_data => x_msg_data
1949: );
1950: EXCEPTION
1947: p_count => x_msg_count,
1948: p_data => x_msg_data
1949: );
1950: EXCEPTION
1951: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1952: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1953: -- Standard call to get message count and if count=1, get the message
1954: FND_MSG_PUB.Count_And_Get (
1955: p_encoded => FND_API.G_FALSE,
1948: p_data => x_msg_data
1949: );
1950: EXCEPTION
1951: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1952: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1953: -- Standard call to get message count and if count=1, get the message
1954: FND_MSG_PUB.Count_And_Get (
1955: p_encoded => FND_API.G_FALSE,
1956: p_count => x_msg_count,
1951: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1952: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1953: -- Standard call to get message count and if count=1, get the message
1954: FND_MSG_PUB.Count_And_Get (
1955: p_encoded => FND_API.G_FALSE,
1956: p_count => x_msg_count,
1957: p_data => x_msg_data
1958: );
1959: WHEN FND_API.G_EXC_ERROR THEN
1955: p_encoded => FND_API.G_FALSE,
1956: p_count => x_msg_count,
1957: p_data => x_msg_data
1958: );
1959: WHEN FND_API.G_EXC_ERROR THEN
1960: x_return_status := FND_API.G_RET_STS_ERROR;
1961: -- Standard call to get message count and if count=1, get the message
1962: FND_MSG_PUB.Count_And_Get (
1963: p_encoded => FND_API.G_FALSE,
1956: p_count => x_msg_count,
1957: p_data => x_msg_data
1958: );
1959: WHEN FND_API.G_EXC_ERROR THEN
1960: x_return_status := FND_API.G_RET_STS_ERROR;
1961: -- Standard call to get message count and if count=1, get the message
1962: FND_MSG_PUB.Count_And_Get (
1963: p_encoded => FND_API.G_FALSE,
1964: p_count => x_msg_count,
1959: WHEN FND_API.G_EXC_ERROR THEN
1960: x_return_status := FND_API.G_RET_STS_ERROR;
1961: -- Standard call to get message count and if count=1, get the message
1962: FND_MSG_PUB.Count_And_Get (
1963: p_encoded => FND_API.G_FALSE,
1964: p_count => x_msg_count,
1965: p_data => x_msg_data
1966: );
1967: WHEN OTHERS THEN
1964: p_count => x_msg_count,
1965: p_data => x_msg_data
1966: );
1967: WHEN OTHERS THEN
1968: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1969: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1970: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1971: END IF;
1972: -- Standard call to get message count and if count=1, get the message
1970: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1971: END IF;
1972: -- Standard call to get message count and if count=1, get the message
1973: FND_MSG_PUB.Count_And_Get (
1974: p_encoded => FND_API.G_FALSE,
1975: p_count => x_msg_count,
1976: p_data => x_msg_data
1977: );
1978: --