[Home] [Help]
PACKAGE BODY: APPS.JTF_IH_CORE_UTIL_PVT
Source
1 PACKAGE BODY JTF_IH_Core_UTIL_PVT AS
2 /* $Header: JTFIHCRB.pls 120.1 2005/07/02 02:05:44 appldev ship $ */
3
4 ------------------------------------------------------------------------------
5 -- Procedure : Add_Desc_Flex_Msg
6 ------------------------------------------------------------------------------
7
8 PROCEDURE Add_Desc_Flex_Msg
9 ( p_token_an IN VARCHAR2,
10 p_token_dfm IN VARCHAR2 )
11 IS
12 BEGIN
13 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
14 fnd_message.set_name('JTF', 'JTF_API_SR_DESC_FLEX_ERROR');
15 fnd_message.set_token('API_NAME', p_token_an);
16 fnd_message.set_token('DESC_FLEX_MSG', p_token_dfm);
17 fnd_msg_pub.add;
18 END IF;
19 END Add_Desc_Flex_Msg;
20
21 ------------------------------------------------------------------------------
22 -- Procedure : Add_Duplicate_Value_Msg
23 ------------------------------------------------------------------------------
24
25 PROCEDURE Add_Duplicate_Value_Msg
26 ( p_token_an IN VARCHAR2,
27 p_token_p IN VARCHAR2 )
28 IS
29 BEGIN
30 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
31 fnd_message.set_name('JTF', 'JTF_API_ALL_DUPLICATE_VALUE');
32 fnd_message.set_token('API_NAME', p_token_an);
33 fnd_message.set_token('DUPLICATE_VAL_PARAM', p_token_p);
34 fnd_msg_pub.add;
35 END IF;
36 END Add_Duplicate_Value_Msg;
37
38 ------------------------------------------------------------------------------
39 -- Procedure : Add_Invalid_Argument_Msg
40 ------------------------------------------------------------------------------
41
42 PROCEDURE Add_Invalid_Argument_Msg
43 ( p_token_an IN VARCHAR2,
44 p_token_v IN VARCHAR2,
45 p_token_p IN VARCHAR2 )
46 IS
47 x_msg_count NUMBER;
48 x_msg_data VARCHAR2(240);
49 x_token_value VARCHAR2(2000);
50 BEGIN
51 x_token_value := SUBSTR(p_token_v,1,2000);
52 IF (x_token_value = fnd_api.g_miss_char) THEN
53 x_token_value := '';
54 END IF;
55 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
56 fnd_message.set_name('JTF', 'JTF_API_ALL_INVALID_ARGUMENT');
57 fnd_message.set_token('API_NAME', p_token_an);
58 fnd_message.set_token('VALUE', x_token_value);
59 fnd_message.set_token('PARAMETER', p_token_p);
60 fnd_msg_pub.add;
61 END IF;
62
63 END Add_Invalid_Argument_Msg;
64
65 ------------------------------------------------------------------------------
66 -- Procedure : Add_Invalid_Argument_Msg_Gen
67 ------------------------------------------------------------------------------
68 PROCEDURE Add_Invalid_Argument_Msg_Gen
69 (
70 p_msg_code IN VARCHAR2,
71 p_msg_param IN param_tbl_type)
72 IS
73 x_token_value VARCHAR2(2000);
74 BEGIN
75 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
76 fnd_message.set_name('JTF', p_msg_code);
77
78 FOR i IN 1..p_msg_param.COUNT LOOP
79 x_token_value := SUBSTR(p_msg_param(i).token_value,1,2000);
80 IF (x_token_value = fnd_api.g_miss_char) THEN
81 x_token_value := '';
82 END IF;
83 fnd_message.set_token(p_msg_param(i).token_name, x_token_value);
84 END LOOP;
85 fnd_msg_pub.add;
86 END IF;
87
88 END Add_Invalid_Argument_Msg_Gen;
89
90 ------------------------------------------------------------------------------
91 -- Procedure : Add_Missing_Param_Msg
92 ------------------------------------------------------------------------------
93
94 PROCEDURE Add_Missing_Param_Msg
95 ( p_token_an IN VARCHAR2,
96 p_token_mp IN VARCHAR2 )
97 IS
98 BEGIN
99 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
100 fnd_message.set_name('JTF', 'JTF_API_ALL_MISSING_PARAM');
101 fnd_message.set_token('API_NAME', p_token_an);
102 fnd_message.set_token('MISSING_PARAM', p_token_mp);
103 fnd_msg_pub.add;
104 END IF;
105 END Add_MIssing_Param_Msg;
106
107 ------------------------------------------------------------------------------
108 -- Procedure : Add_Null_Parameter_Msg
109 ------------------------------------------------------------------------------
110
111 PROCEDURE Add_Null_Parameter_Msg
112 ( p_token_an IN VARCHAR2,
113 p_token_np IN VARCHAR2 )
114 IS
115 BEGIN
116 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
117 fnd_message.set_name('JTF', 'JTF_API_ALL_NULL_PARAMETER');
118 fnd_message.set_token('API_NAME', p_token_an);
119 fnd_message.set_token('NULL_PARAM', p_token_np);
120 fnd_msg_pub.add;
121 END IF;
122 END Add_Null_Parameter_Msg;
123
124 ------------------------------------------------------------------------------
125 -- Procedure : Add_Param_Ignored_Msg
126 ------------------------------------------------------------------------------
127
128 PROCEDURE Add_Param_Ignored_Msg
129 ( p_token_an IN VARCHAR2,
130 p_token_ip IN VARCHAR2 )
131 IS
132 BEGIN
133 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
134 fnd_message.set_name('JTF', 'JTF_API_ALL_PARAM_IGNORED');
135 fnd_message.set_token('API_NAME', p_token_an);
136 fnd_message.set_token('IGNORED_PARAM', p_token_ip);
137 fnd_msg_pub.add;
138 END IF;
139 END Add_Param_Ignored_Msg;
140
141 ------------------------------------------------------------------------------
142 -- Procedure : Add_Same_Val_Update_Msg
143 ------------------------------------------------------------------------------
144
145 PROCEDURE Add_Same_Val_Update_Msg
146 ( p_token_an IN VARCHAR2,
147 p_token_p IN VARCHAR2 )
148 IS
149 BEGIN
150 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
151 fnd_message.set_name('JTF', 'JTF_API_ALL_SAME_VAL_UPDATE');
152 fnd_message.set_token('API_NAME', p_token_an);
153 fnd_message.set_token('SAME_VAL_PARAM', p_token_p);
154 fnd_msg_pub.add;
155 END IF;
156 END Add_Same_Val_Update_Msg;
157
158
159 ------------------------------------------------------------------------------
160 -- Procedure : Convert_Lookup_To_Code
161 ------------------------------------------------------------------------------
162
163 PROCEDURE Convert_Lookup_To_Code
164 ( p_api_name IN VARCHAR2,
165 p_parameter_name IN VARCHAR2,
166 p_meaning IN VARCHAR2,
167 p_lookup_type IN VARCHAR2,
168 x_lookup_code OUT NOCOPY VARCHAR2,
169 x_return_status OUT NOCOPY VARCHAR2 )
170 IS
171 BEGIN
172 x_return_status := fnd_api.g_ret_sts_success;
173
174 SELECT lookup_code INTO x_lookup_code
175 FROM cs_lookups
176 WHERE lookup_type = p_lookup_type
177 AND meaning = p_meaning;
178 EXCEPTION
179 WHEN no_data_found THEN
180 x_return_status := fnd_api.g_ret_sts_error;
181 cs_core_util.add_invalid_argument_msg(p_api_name, p_meaning,
182 p_parameter_name);
183 END Convert_Lookup_To_Code;
184
185
186 ------------------------------------------------------------------------------
187 -- Procedure : Default_Common_Attributes
188 ------------------------------------------------------------------------------
189
190 PROCEDURE Default_Common_Attributes
191 ( p_api_name IN VARCHAR2,
192 p_resp_appl_id IN OUT NOCOPY NUMBER,
193 p_resp_id IN OUT NOCOPY NUMBER,
194 p_user_id IN OUT NOCOPY NUMBER,
195 p_login_id IN OUT NOCOPY NUMBER,
196 p_org_id IN OUT NOCOPY NUMBER,
197 p_inventory_org_id IN OUT NOCOPY NUMBER)
198 IS
199 BEGIN
200 -------------------------------------------------------------------------
201 -- FND_GLOBAL.RESP_APPL_ID, FND_GLOBAL.RESP_ID, and FND_GLOBAL.LOGIN_ID
202 -- returns -1 by default, which is an invalid value. FND_GLOBAL.USER_ID
203 -- is okay, because user ID -1 corresponds to user 'ANONYMOUS.' If
204 -- FND_GLOBAL returns -1, the variables are set to NULL instead.
205 -------------------------------------------------------------------------
206 IF p_resp_appl_id = fnd_api.g_miss_num THEN
207 IF fnd_global.resp_appl_id <> -1 THEN
208 p_resp_appl_id := fnd_global.resp_appl_id;
209 ELSE
210 p_resp_appl_id := NULL;
211 END IF;
212 END IF;
213
214 IF p_resp_id = fnd_api.g_miss_num THEN
215 IF fnd_global.resp_id <> -1 THEN
216 p_resp_id := fnd_global.resp_id;
217 ELSE
218 p_resp_id := NULL;
219 END IF;
220 END IF;
221
222 IF p_user_id = fnd_api.g_miss_num THEN
223 p_user_id := fnd_global.user_id;
224 END IF;
225
226 IF p_login_id = fnd_api.g_miss_num THEN
227 IF fnd_global.login_id NOT IN (-1,0) THEN
228 p_login_id := fnd_global.login_id;
229 ELSE
230 p_login_id := NULL;
231 END IF;
232 END IF;
233
234 --
235 -- If Multi-Org is enabled, get the default from the session variable
236 -- CLIENT_INFO. If it is not set, get the default from the ORG_ID profile
237 -- option.
238 --
239 IF cs_core_util.is_multiorg_enabled THEN
240 IF p_org_id = fnd_api.g_miss_num THEN
241 SELECT To_number(Decode(substrb(userenv('CLIENT_INFO'),1,1), ' ',
242 NULL, substrb(userenv('CLIENT_INFO'),1,10)))
243 INTO p_org_id
244 FROM dual;
245 IF p_org_id IS NULL THEN
246 p_org_id := To_number(fnd_profile.value_specific('ORG_ID',
247 p_user_id,
248 p_resp_id,
249 p_resp_appl_id));
250 END IF;
251 END IF;
252 END IF;
253
254 IF p_inventory_org_id = fnd_api.g_miss_num THEN
255 p_inventory_org_id :=
256 To_number(fnd_profile.value_specific('SO_ORGANIZATION_ID', p_user_id,
257 p_resp_id, p_resp_appl_id));
258 END IF;
259 END Default_Common_Attributes;
260
261 ------------------------------------------------------------------------------
262 -- Function : Is_MultiOrg_Enabled
263 ------------------------------------------------------------------------------
264
265 FUNCTION Is_MultiOrg_Enabled RETURN BOOLEAN IS
266 l_multiorg_enabled VARCHAR2(1);
267 BEGIN
268 SELECT multi_org_flag INTO l_multiorg_enabled
269 FROM fnd_product_groups;
270
271 IF l_multiorg_enabled = 'Y' THEN
272 RETURN TRUE;
273 ELSE
274 RETURN FALSE;
275 END IF;
276 END Is_MultiOrg_Enabled;
277
278 ------------------------------------------------------------------------------
279 -- Procedure : Trunc_String_Length
280 ------------------------------------------------------------------------------
281
282 PROCEDURE Trunc_String_length
283 ( p_api_name IN VARCHAR2,
284 p_parameter_name IN VARCHAR2,
285 p_str IN VARCHAR2,
286 p_len IN NUMBER,
287 x_str OUT NOCOPY VARCHAR2 )
288 IS
289 l_len NUMBER;
290 BEGIN
291 l_len := lengthb(p_str);
292 IF (l_len > p_len) THEN
293 IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
294 fnd_message.set_name('JTF', 'JTF_API_ALL_VALUE_TRUNCATED');
295 fnd_message.set_token('API_NAME', p_api_name);
296 fnd_message.set_token('TRUNCATED_PARAM', p_parameter_name);
297 fnd_message.set_token('VAL_LEN', l_len);
298 fnd_message.set_token('DB_LEN', p_len);
299 fnd_msg_pub.add;
300 END IF;
301 x_str := substrb(p_str, 1, p_len);
302 ELSE
303 x_str := p_str;
304 END IF;
305 END Trunc_String_Length;
306
307
308 ------------------------------------------------------------------------------
309 -- Procedure : Validate_Desc_Flex
310 ------------------------------------------------------------------------------
311
312 PROCEDURE Validate_Desc_Flex
313 ( p_api_name IN VARCHAR2,
314 p_desc_flex_name IN VARCHAR2,
315 p_column_name1 IN VARCHAR2,
316 p_column_name2 IN VARCHAR2,
317 p_column_name3 IN VARCHAR2,
318 p_column_name4 IN VARCHAR2,
319 p_column_name5 IN VARCHAR2,
320 p_column_name6 IN VARCHAR2,
321 p_column_name7 IN VARCHAR2,
322 p_column_name8 IN VARCHAR2,
323 p_column_name9 IN VARCHAR2,
324 p_column_name10 IN VARCHAR2,
325 p_column_name11 IN VARCHAR2,
326 p_column_name12 IN VARCHAR2,
327 p_column_name13 IN VARCHAR2,
328 p_column_name14 IN VARCHAR2,
329 p_column_name15 IN VARCHAR2,
330 p_column_value1 IN VARCHAR2,
331 p_column_value2 IN VARCHAR2,
332 p_column_value3 IN VARCHAR2,
333 p_column_value4 IN VARCHAR2,
334 p_column_value5 IN VARCHAR2,
335 p_column_value6 IN VARCHAR2,
336 p_column_value7 IN VARCHAR2,
337 p_column_value8 IN VARCHAR2,
338 p_column_value9 IN VARCHAR2,
339 p_column_value10 IN VARCHAR2,
340 p_column_value11 IN VARCHAR2,
341 p_column_value12 IN VARCHAR2,
342 p_column_value13 IN VARCHAR2,
343 p_column_value14 IN VARCHAR2,
344 p_column_value15 IN VARCHAR2,
345 p_context_value IN VARCHAR2,
346 p_resp_appl_id IN NUMBER := NULL,
347 p_resp_id IN NUMBER := NULL,
348 x_return_status OUT NOCOPY VARCHAR2 )
349 IS
350 l_error_message VARCHAR2(2000);
351 BEGIN
352 x_return_status := fnd_api.g_ret_sts_success;
353
354 fnd_flex_descval.set_column_value(p_column_name1, p_column_value1);
355 fnd_flex_descval.set_column_value(p_column_name2, p_column_value2);
356 fnd_flex_descval.set_column_value(p_column_name3, p_column_value3);
357 fnd_flex_descval.set_column_value(p_column_name4, p_column_value4);
358 fnd_flex_descval.set_column_value(p_column_name5, p_column_value5);
359 fnd_flex_descval.set_column_value(p_column_name6, p_column_value6);
360 fnd_flex_descval.set_column_value(p_column_name7, p_column_value7);
361 fnd_flex_descval.set_column_value(p_column_name8, p_column_value8);
362 fnd_flex_descval.set_column_value(p_column_name9, p_column_value9);
363 fnd_flex_descval.set_column_value(p_column_name10, p_column_value10);
364 fnd_flex_descval.set_column_value(p_column_name11, p_column_value11);
365 fnd_flex_descval.set_column_value(p_column_name12, p_column_value12);
366 fnd_flex_descval.set_column_value(p_column_name13, p_column_value13);
367 fnd_flex_descval.set_column_value(p_column_name14, p_column_value14);
368 fnd_flex_descval.set_column_value(p_column_name15, p_column_value15);
369 fnd_flex_descval.set_context_value(p_context_value);
370 --IF NOT fnd_flex_descval.validate_desccols
371 -- ( appl_short_name => 'JTF',
372 -- desc_flex_name => p_desc_flex_name,
373 -- resp_appl_id => p_resp_appl_id,
374 -- resp_id => p_resp_id ) THEN
375 -- l_error_message := fnd_flex_descval.error_message;
376 -- add_desc_flex_msg(p_api_name, l_error_message);
377 -- x_return_status := fnd_api.g_ret_sts_error;
378 --END IF;
379 END Validate_Desc_Flex;
380
381
382 ------------------------------------------------------------------------------
383 -- Procedure : Validate_Later_Date
384 ------------------------------------------------------------------------------
385
386 PROCEDURE Validate_Later_Date
387 ( p_api_name IN VARCHAR2,
388 p_parameter_name IN VARCHAR2,
389 p_later_date IN DATE,
390 p_earlier_date IN DATE,
391 x_return_status OUT NOCOPY VARCHAR2 )
392 IS
393 BEGIN
394 IF p_later_date >= p_earlier_date THEN
395 x_return_status := fnd_api.g_ret_sts_success;
396 ELSE
397 x_return_status := fnd_api.g_ret_sts_error;
398 add_invalid_argument_msg(p_api_name, To_char(p_later_date),
399 p_parameter_name);
400 END IF;
401 END Validate_Later_Date;
402
403 ------------------------------------------------------------------------------
404 -- Procedure : Validate_Lookup_Code
405 ------------------------------------------------------------------------------
406
407 PROCEDURE Validate_Lookup_Code
408 ( p_api_name IN VARCHAR2,
409 p_parameter_name IN VARCHAR2,
410 p_lookup_code IN VARCHAR2,
411 p_lookup_type IN VARCHAR2,
412 x_return_status OUT NOCOPY VARCHAR2 )
413 IS
414 l_dummy VARCHAR2(1);
415 BEGIN
416 x_return_status := fnd_api.g_ret_sts_success;
417
418 SELECT 'x' INTO l_dummy
419 FROM cs_lookups
420 WHERE lookup_code = p_lookup_code
421 AND lookup_type = p_lookup_type
422 AND enabled_flag = 'Y'
423 AND Trunc(Sysdate) BETWEEN Trunc(Nvl(start_date_active, Sysdate))
424 AND Trunc(Nvl(end_date_active, Sysdate));
425 EXCEPTION
426 WHEN no_data_found THEN
427 x_return_status := fnd_api.g_ret_sts_error;
428 add_invalid_argument_msg(p_api_name, p_lookup_code, p_parameter_name);
429 END Validate_Lookup_Code;
430
431 ------------------------------------------------------------------------------
432 -- Procedure : Validate_Who_Info
433 ------------------------------------------------------------------------------
434
435 --
436 -- Author Date Description
437 -- ------ ---- -----------
438 --
439 -- Jim Zheng 01SEP1999 Initial Implementation
440 -- Jim Baldo 09MAR2001 Implementation work around for bugdb # 1679511
441 -- Igor Aleshin 13May2004 Fixed Bug#3627777
442
443 PROCEDURE Validate_Who_Info
444 ( p_api_name IN VARCHAR2,
445 p_parameter_name_usr IN VARCHAR2,
446 p_parameter_name_log IN VARCHAR2,
447 p_user_id IN NUMBER,
448 p_login_id IN NUMBER,
449 p_resp_id IN NUMBER := NULL,
450 p_resp_appl_id IN NUMBER := NULL,
451 x_return_status OUT NOCOPY VARCHAR2 )
452 IS
453 l_dummy VARCHAR2(1);
454 BEGIN
455 x_return_status := fnd_api.g_ret_sts_success;
456
457 BEGIN
458 -- Special check to not check the dates when the user ID is (-1).
459 IF p_user_id = -1 THEN
460 SELECT 'x' INTO l_dummy
461 FROM fnd_user
462 WHERE user_id = p_user_id;
463 ELSE
464 SELECT 'x' INTO l_dummy
465 FROM fnd_user
466 WHERE user_id = p_user_id
467 AND Trunc(Sysdate) BETWEEN Trunc(Nvl(start_date, Sysdate))
468 AND Trunc(Nvl(end_date, Sysdate));
469 END IF;
470 EXCEPTION
471 WHEN no_data_found THEN
472 x_return_status := fnd_api.g_ret_sts_error;
473 add_invalid_argument_msg(p_api_name, To_char(p_user_id),
474 p_parameter_name_usr);
475 RETURN;
476 END;
477 END Validate_Who_Info;
478
479 END JTF_IH_CORE_UTIL_PVT;