7: -- HISTORY
8: -- 08/11/99 AWU CREATED(as AS_UTILITY)
9: -- 09/09/99 SOLIN UPDATED(change to JTF_PLSQL_API)
10: -- 04/09/00 SOLIN UPDATED(change back to AS_UTILITY)
11: -- 10/12/00 SOLIN ADD "p_encoded => FND_API.G_FALSE,"
12: -- in FND_MSG_PUB.Count_And_Get of
13: -- Handle_Exceptions()
14: -- 11/12/02 AXAVIER Bug#2659173 Changed the procedure Debug_Message.
15:
105:
106: PROCEDURE Handle_Exceptions(
107: P_API_NAME IN VARCHAR2,
108: P_PKG_NAME IN VARCHAR2,
109: P_EXCEPTION_LEVEL IN NUMBER := FND_API.G_MISS_NUM,
110: P_SQLCODE IN NUMBER DEFAULT NULL,
111: P_SQLERRM IN VARCHAR2 DEFAULT NULL,
112: P_PACKAGE_TYPE IN VARCHAR2,
113: P_ROLLBACK_FLAG IN VARCHAR2 := 'Y',
125: PROCEDURE Handle_Exceptions(
126: P_MODULE IN VARCHAR2,
127: P_API_NAME IN VARCHAR2,
128: P_PKG_NAME IN VARCHAR2,
129: P_EXCEPTION_LEVEL IN NUMBER := FND_API.G_MISS_NUM,
130: P_SQLCODE IN NUMBER DEFAULT NULL,
131: P_SQLERRM IN VARCHAR2 DEFAULT NULL,
132: P_PACKAGE_TYPE IN VARCHAR2,
133: P_ROLLBACK_FLAG IN VARCHAR2 := 'Y',
146: END IF;
147:
148: IF p_exception_level = FND_MSG_PUB.G_MSG_LVL_ERROR
149: THEN
150: x_return_status := FND_API.G_RET_STS_ERROR;
151: FND_MSG_PUB.Count_And_Get(
152: p_encoded => FND_API.G_FALSE,
153: p_count => x_msg_count,
154: p_data => x_msg_data);
148: IF p_exception_level = FND_MSG_PUB.G_MSG_LVL_ERROR
149: THEN
150: x_return_status := FND_API.G_RET_STS_ERROR;
151: FND_MSG_PUB.Count_And_Get(
152: p_encoded => FND_API.G_FALSE,
153: p_count => x_msg_count,
154: p_data => x_msg_data);
155: ELSIF p_exception_level = FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
156: THEN
153: p_count => x_msg_count,
154: p_data => x_msg_data);
155: ELSIF p_exception_level = FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
156: THEN
157: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
158: FND_MSG_PUB.Count_And_Get(
159: p_encoded => FND_API.G_FALSE,
160: p_count => x_msg_count,
161: p_data => x_msg_data);
155: ELSIF p_exception_level = FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
156: THEN
157: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
158: FND_MSG_PUB.Count_And_Get(
159: p_encoded => FND_API.G_FALSE,
160: p_count => x_msg_count,
161: p_data => x_msg_data);
162: ELSIF p_exception_level = G_EXC_OTHERS
163: THEN
160: p_count => x_msg_count,
161: p_data => x_msg_data);
162: ELSIF p_exception_level = G_EXC_OTHERS
163: THEN
164: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
165:
166: l_log_level := translate_log_level(p_exception_level);
167: IF l_log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
168: FND_MESSAGE.Set_Name('AS', 'Error number ' || to_char(P_SQLCODE));
177: -- end ffang 090902, bug 2552070
178:
179: FND_MSG_PUB.Add_Exc_Msg(p_pkg_name, p_api_name);
180: FND_MSG_PUB.Count_And_Get(
181: p_encoded => FND_API.G_FALSE,
182: p_count => x_msg_count,
183: p_data => x_msg_data);
184: END IF;
185:
202: fnd_msg_pub.add;
203: fnd_message.set_name('AS', 'API_MISSING_ORDERBY_ELEMENT');
204: SET_LOG('as.plsql.utl.get_subOrderBy', fnd_msg_pub.g_msg_lvl_error);
205: end if;
206: raise fnd_api.g_exc_error;
207: end if;
208:
209:
210: if (nls_upper(p_col_name) = 'CUSTOMER_NAME')
229: fnd_message.set_name('AS', 'API_INVALID_ORDERBY_CHOICE');
230: fnd_message.set_token('PARAM',p_col_choice, false);
231: set_log('as.plsql.utl.get_subOrderBy', fnd_msg_pub.g_msg_lvl_error);
232: end if;
233: raise fnd_api.g_exc_error;
234: return '';
235: end if;
236: end;
237:
236: end;
237:
238: PROCEDURE Translate_OrderBy
239: ( p_api_version_number IN NUMBER,
240: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
241: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
242: p_order_by_tbl IN UTIL_ORDER_BY_TBL_TYPE,
243: x_order_by_clause OUT NOCOPY VARCHAR2,
244: x_return_status OUT NOCOPY VARCHAR2,
237:
238: PROCEDURE Translate_OrderBy
239: ( p_api_version_number IN NUMBER,
240: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
241: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
242: p_order_by_tbl IN UTIL_ORDER_BY_TBL_TYPE,
243: x_order_by_clause OUT NOCOPY VARCHAR2,
244: x_return_status OUT NOCOPY VARCHAR2,
245: x_msg_count OUT NOCOPY NUMBER,
254: l_api_name CONSTANT VARCHAR2(30) := 'Translate_OrderBy';
255: l_api_version_number CONSTANT NUMBER := 1.0;
256: begin
257: -- Standard call to check for call compatibility.
258: IF NOT FND_API.Compatible_API_Call (l_api_version_number,
259: p_api_version_number,
260: l_api_name,
261: G_PKG_NAME)
262: THEN
268: FND_MESSAGE.Set_Name('AS', 'API_UNEXP_ERROR_IN_PROCESSING');
269: FND_MESSAGE.Set_Token('ROW', 'TRANSLATE_ORDERBY', TRUE);
270: SET_LOG('as.plsql.utl.Translate_OrderBy', fnd_msg_pub.g_msg_lvl_error);
271: END IF;
272: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
273: END IF;
274:
275: -- Initialize message list if p_init_msg_list is set to TRUE.
276: IF FND_API.to_Boolean( p_init_msg_list )
272: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
273: END IF;
274:
275: -- Initialize message list if p_init_msg_list is set to TRUE.
276: IF FND_API.to_Boolean( p_init_msg_list )
277: THEN
278: FND_MSG_PUB.initialize;
279: END IF;
280:
279: END IF;
280:
281: -- Initialize API return status to success
282: --
283: x_return_status := FND_API.G_RET_STS_SUCCESS;
284:
285: --
286: -- API body
287: --
327: x_order_by_clause := l_order_by_clause;
328:
329: EXCEPTION
330:
331: WHEN FND_API.G_EXC_ERROR THEN
332:
333: x_return_status := FND_API.G_RET_STS_ERROR ;
334:
335: FND_MSG_PUB.Count_And_Get
329: EXCEPTION
330:
331: WHEN FND_API.G_EXC_ERROR THEN
332:
333: x_return_status := FND_API.G_RET_STS_ERROR ;
334:
335: FND_MSG_PUB.Count_And_Get
336: ( p_count => x_msg_count,
337: p_data => x_msg_data
337: p_data => x_msg_data
338: );
339:
340:
341: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
342:
343: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344:
345: FND_MSG_PUB.Count_And_Get
339:
340:
341: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
342:
343: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
344:
345: FND_MSG_PUB.Count_And_Get
346: ( p_count => x_msg_count,
347: p_data => x_msg_data
350:
351: WHEN OTHERS THEN
352:
353:
354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
355:
356: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
357: THEN
358: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
396: and lng.language_id = x_lang_id;
397: BEGIN
398: FOR l_count in 1..p_message_count LOOP
399:
400: l_temp_msg := fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_true);
401: fnd_message.parse_encoded(l_temp_msg, l_appl_short_name, l_message_name);
402: OPEN Get_Appl_Id (l_appl_short_name);
403: FETCH Get_Appl_Id into l_id;
404: CLOSE Get_Appl_Id;
411: FETCH Get_Message_Num into l_message_num;
412: CLOSE Get_Message_Num;
413: END IF;
414:
415: l_temp_msg := fnd_msg_pub.get(fnd_msg_pub.g_previous, fnd_api.g_true);
416:
417: IF NVL(l_message_num, 0) <> 0
418: THEN
419: l_temp_msg := 'APP-' || to_char(l_message_num) || ': ';
423:
424: IF l_count = 1
425: THEN
426: l_msg_list := l_msg_list || l_temp_msg ||
427: fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false);
428: ELSE
429: l_msg_list := l_msg_list || l_temp_msg ||
430: fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false);
431: END IF;
426: l_msg_list := l_msg_list || l_temp_msg ||
427: fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false);
428: ELSE
429: l_msg_list := l_msg_list || l_temp_msg ||
430: fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false);
431: END IF;
432:
433: l_msg_list := l_msg_list || '
434: ';
677: p_token3 IN VARCHAR2,
678: p_token3_value IN VARCHAR2,
679: p_token4 IN VARCHAR2,
680: p_token4_value IN VARCHAR2,
681: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
682: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
683: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
684: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
685: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
678: p_token3_value IN VARCHAR2,
679: p_token4 IN VARCHAR2,
680: p_token4_value IN VARCHAR2,
681: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
682: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
683: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
684: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
685: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
686: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
679: p_token4 IN VARCHAR2,
680: p_token4_value IN VARCHAR2,
681: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
682: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
683: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
684: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
685: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
686: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
687: )
680: p_token4_value IN VARCHAR2,
681: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
682: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
683: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
684: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
685: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
686: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
687: )
688: IS
681: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
682: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
683: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
684: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
685: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
686: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
687: )
688: IS
689: BEGIN
682: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
683: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
684: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
685: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
686: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
687: )
688: IS
689: BEGIN
690: Set_Message(
707: p_token3 IN VARCHAR2,
708: p_token3_value IN VARCHAR2,
709: p_token4 IN VARCHAR2,
710: p_token4_value IN VARCHAR2,
711: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
712: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
708: p_token3_value IN VARCHAR2,
709: p_token4 IN VARCHAR2,
710: p_token4_value IN VARCHAR2,
711: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
712: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
716: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
709: p_token4 IN VARCHAR2,
710: p_token4_value IN VARCHAR2,
711: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
712: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
716: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
717: )
710: p_token4_value IN VARCHAR2,
711: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
712: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
716: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
717: )
718: IS
711: p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
712: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
716: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
717: )
718: IS
719: BEGIN
712: p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713: p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714: p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715: p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
716: p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
717: )
718: IS
719: BEGIN
720: IF FND_MSG_PUB.Check_Msg_Level(p_msg_level)
749: 'AS_UTILITY_PVT Generate Flexfield Where: begin');
750:
751: FOR i IN 1..p_flex_where_tbl_type.count LOOP
752: IF (p_flex_where_tbl_type(i).value IS NOT NULL
753: AND p_flex_where_tbl_type(i).value <> FND_API.G_MISS_CHAR) THEN
754: l_flex_where_cl := l_flex_where_cl||' AND '||p_flex_where_tbl_type(i).name
755: || ' = :p_ofso_flex_var'||i;
756: END IF;
757: END LOOP;
769: 'AS_UTILITY_PVT Bind Flexfield Where: begin');
770:
771: FOR i IN 1..p_flex_where_tbl_type.count LOOP
772: IF (p_flex_where_tbl_type(i).value IS NOT NULL
773: AND p_flex_where_tbl_type(i).value <> FND_API.G_MISS_CHAR) THEN
774: DBMS_SQL.Bind_Variable(p_cursor_id, ':p_ofso_flex_var'|| i,
775: p_flex_where_tbl_type(i).value);
776: END IF;
777: END LOOP;