1 PACKAGE ASO_UTILITY_PVT AUTHID CURRENT_USER as
2 /* $Header: asovutls.pls 120.8 2006/09/21 18:18:34 skulkarn ship $ */
3 -- Start of Comments
4 --
5 -- NAME
6 -- ASO_UTILITY_PVT
7 --
8 -- PURPOSE
9 -- This package is a public utility API developed from Sales Core group
10 --
11 -- Constants:
12 -- G_VALID_LEVEL_ITEM
13 -- G_VALID_LEVEL_RECORD
14 -- G_VALID_LEVEL_INTER_RECORD
15 -- G_VALID_LEVEL_INTER_ENTITY
16 -- G_PVT
17 -- G_PUB
18 -- G_EXC_OTHERS
19 -- G_CREATE
20 -- G_UPDATE
21 --
22 --
23 -- Procedures:
24 -- Start_API
25 -- End_API
26 -- Handle_Exceptions
27 -- Translate_OrderBy
28 -- Debug_Message
29 -- Set_Message
30 -- Gen_Flexfield_Where
31 -- Bind_Flexfield_Where
32 --
33 -- NOTES
34 --
35 --
36 -- HISTORY
37 --
38 --
39 -- End of Comments
40
41 --------------------------------------------------------------------
42 --
43 -- PUBLIC CONSTANTS
44 --
45 --------------------------------------------------------------------
46
47 -- ************************************************************
48 -- The following constants are for validation levels.
49 -- ************************************************************
50 --
51 -- There are four types of validation APIs need to be provided:
52 -- Item level validation, Record level validation, Inter-record
53 -- level validation and Inter-entity level validation.
54 --
55 -- 1. Item level validation:
56 -- Validation of an individual item needs to be checked.
57 -- 2. Record level validation:
58 -- Missing-field and cross-field dependencies should be checked
59 -- 3. Inter-record(table) level validation:
60 -- Cross-record dependencies should be checked
61 -- 4. Inter- entity(among different records) level validation:
62 -- For multi-instance child entities, cross entity validation
63 -- should be performed. The order of execution depends on business
64 -- logic.
65 --
66 -- Public APIs by definition have to perform FULL validation on all
67 -- data passed to them; Accordingly, there should be no validation
68 -- levels defined for public APIs. Private APIs should include
69 -- p_validation_level parameter. Therefore, private APIs have more
70 -- flexibility when it comes to validation.
71 --
72 -- When form interface calls APIs, it can call private APIs. it should
73 -- pass JTF_PL_SQL_API.G_VALID_LEVEL_XXX for parameter p_validation_level.
74 -- In our API coding, we need to handle those validation levels . Please
75 -- do the following check in your API:
76 --
77 -- IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM
78 -- THEN
79 -- Perform item level validation;
80 -- END IF;
81 --
82 -- IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_FIELD)
83 -- THEN
84 -- Perform record level validation;
85 -- END IF;
86 --
87 -- IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD)
88 -- THEN
89 -- Perform inter-record level validation;
90 -- END IF;
91 --
92 -- IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_ENTITY)
93 -- THEN
94 -- Perform inter-entity level validation;
95 -- END IF;
96 --
97 -- If you pass in JTF_PL_SQL_API.G_VALID_LEVEL_INTER_FIELD for
98 -- p_validation_level, item level validation will be bypassed. Record
99 -- level validation, inter-record level validation and inter-entity
100 -- level validation will be executed. For item level validation, form
101 -- interface can either use LOV or validation procedures to validate
102 -- data. If pass in validation level is FULL, all of the validations
103 -- above will be executed automatically. As for get_currentUser and
104 -- access check, we should do the following:
105 --
106 -- if (p_validation_level = FND_API.G_VALID_LEVEL_FULL)
107 -- then
108 -- Call get_currentUser;
109 -- Call has_xxxAccess;
110 -- end if;
111 -- Access API can be bypassed by Form since form will use business view
112 -- to handle access privilege check.
113 --
114
115 -- Perform item level validation only
116 G_VALID_LEVEL_ITEM CONSTANT NUMBER:= 90;
117
118 -- Perform record level(inter-field) validation only
119 G_VALID_LEVEL_RECORD CONSTANT NUMBER:= 80;
120
121 -- Perform inter-record level validation only
122 G_VALID_LEVEL_INTER_RECORD CONSTANT NUMBER:= 70;
123
124 -- Perform inter-entity level validation only
125 G_VALID_LEVEL_INTER_ENTITY CONSTANT NUMBER:= 60;
126
127
128 -- ************************************************************
129 -- The following constants are for exception handling routine
130 -- ************************************************************
131 --
132 -- Exceptions Handling Routine will do the following:
133 -- 1. Rollback to savepoint
134 -- 2. Handle expected, unexpected and other exceptions
135 -- 3. Add an error message to the API message list
136 -- 4. Return error status
137 --
138 -- The following is example of calling exception handling routines:
139 --
140 -- EXCEPTION
141 -- WHEN FND_API.G_EXC_ERROR THEN
142 -- ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
143 -- P_API_NAME => L_API_NAME
144 -- , P_PGK_NAME => G_PKG_NAME
145 -- , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
146 -- , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
147 -- , X_MSG_COUNT => X_MSG_COUNT
148 -- , X_MSG_DATA => X_MSG_DATA
149 -- , X_RETURN_STATUS => x_return_status
150 -- );
151
152 -- WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
153 -- ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
154 -- P_API_NAME => L_API_NAME
155 -- , P_PGK_NAME => G_PKG_NAME
156 -- , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
157 -- , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
158 -- , X_MSG_COUNT => X_MSG_COUNT
159 -- , X_MSG_DATA => X_MSG_DATA
160 -- , X_RETURN_STATUS => x_return_status
161 -- );
162
163 -- WHEN OTHERS THEN
164 -- ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
165 -- P_API_NAME => L_API_NAME
166 -- , P_PGK_NAME => G_PKG_NAME
167 -- , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
168 -- , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
169 -- , X_MSG_COUNT => X_MSG_COUNT
170 -- , X_MSG_DATA => X_MSG_DATA
171 -- , X_RETURN_STATUS => x_return_status
172 -- );
173
174 -- Global variables for package type, used in Handle_Exceptions
175 G_PVT VARCHAR2(30) := '_PVT';
176 G_INT VARCHAR2(30) := '_INT';
177 G_PUB VARCHAR2(30) := '_PUB';
178
179 -- Global variable for others exception
180 G_EXC_OTHERS NUMBER := 100;
181
182 -- ************************************************************
183 -- The following global variables is used in validation procedures
184 -- -> validation_mode
185 -- ************************************************************
186 G_CREATE VARCHAR2(30) := 'CREATE';
187 G_UPDATE VARCHAR2(30) := 'UPDATE';
188
189 -- Change START
190 -- Release 12 MOAC Changes : Bug 4500739
191 -- Changes Done by : Girish
192 -- Comments : The following global variables are used in the functions for
193 -- retrieving the HR EIT data.
194
195 G_DEFAULT_ORDER_TYPE VARCHAR2(100) := 'ORDER_TYPE';
196 G_DEFAULT_SALESREP VARCHAR2(100) := 'SALESREP';
197 G_DEFAULT_SALES_GROUP VARCHAR2(100) := 'SALES_GROUP';
198 G_DEFAULT_SALES_ROLE VARCHAR2(100) := 'SALES_ROLE';
199 G_DEFAULT_CONTRACT_TEMPLATE VARCHAR2(100) := 'CONTRACT_TEMPLATE';
200
201 -- Change END
202
203 --------------------------------------------------------------------
204 --
205 -- PUBLIC DATATYPES
206 --
207 --------------------------------------------------------------------
208
209 --
210 -- Start of Comments
211 --
212 -- Order by record: util_order_by_rec_type
213 --
214 -- Notes:
215 -- 1. col_choice is a two or three digit number.
216 -- First digit represents the priority for the order by column.
217 -- (If priority > 10, use 2 digits to represent it)
218 -- Second(or third) digit represents the descending or ascending
219 -- order for the query result. 1 for ascending and 0 for descending.
220 -- 2. col_name is the order by column name.
221 --
222 -- End of Comments
223
224 TYPE util_order_by_rec_type IS RECORD
225 (
226 col_choice NUMBER := FND_API.G_MISS_NUM,
227 col_name VARCHAR2(30) := FND_API.G_MISS_CHAR
228 );
229
230 G_MISS_UTIL_ORDER_BY_REC util_order_by_rec_type;
231
232 TYPE util_order_by_tbl_type IS TABLE OF util_order_by_rec_type
233 INDEX BY BINARY_INTEGER;
234
235 -- Start of Comments
236 --
237 -- Item property record: item_property_rec_type
238 --
239 -- Notes:
240 -- This record type is for record type for item level validation
241 --
242 -- End of Comments
243
244 TYPE item_property_rec_type IS RECORD
245 (
246 column_name VARCHAR2(30) := FND_API.G_MISS_CHAR,
247 required_flag VARCHAR2(1) := 'N', -- may be changed to FND_API.G_MISS_CHAR
248 update_allowed_flag VARCHAR2(1) := 'Y', -- may be changed to FND_API.G_MISS_CHAR
249 default_char_val VARCHAR2(320) := FND_API.G_MISS_CHAR,
250 default_num_val NUMBER := FND_API.G_MISS_NUM,
251 default_date_val DATE := FND_API.G_MISS_DATE
252 );
253
254 G_MISS_ITEM_PROPERTY_REC item_property_rec_type;
255
256 TYPE item_property_tbl_type IS TABLE OF item_property_rec_type
257 INDEX BY BINARY_INTEGER;
258
259
260 -- Start of Comments
261 --
262 -- Flexfield where record: flex_where_rec_type
263 --
264 -- Notes: 1. name is the column name in where clause. Its format is
265 -- table_alias.column_name.
266 -- 2. value is the search criteria for the column
267 --
268 -- End of Comments
269
270 TYPE flex_where_rec_type IS RECORD
271 (
272 name VARCHAR2(30) := FND_API.G_MISS_CHAR,
273 value VARCHAR2(150) := FND_API.G_MISS_CHAR
274 );
275
276 TYPE flex_where_tbl_type IS TABLE OF flex_where_rec_type
277 INDEX BY BINARY_INTEGER;
278
279 --
280 -- The following Table type is used by Query_pricing_line_rows.
281 -- This is used for collection parent service line id(s).
282 --
283
284 TYPE Index_Link_Tbl_Type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
285 G_MISS_Link_Tbl Index_Link_Tbl_Type;
286
287 --------------------------------------------------------------------
288 --
289 -- PUBLIC APIS
290 --
291 --------------------------------------------------------------------
292
293 -- Start of Comments
294 --
295 -- API name : Start_API
296 -- Type : Public
297 -- Function : Prolog before API starts
298 -- 1. Set saveporint
299 -- 2. Check version number
300 -- 3. Initialize message list
301 -- 4. Invoke callout procedure
302 --
303 --
304 -- Parameters :
305 -- IN :
306 -- p_api_name IN VARCHAR2,
307 -- p_pkg_name IN VARCHAR2,
308 -- p_init_msg_list IN VARCHAR2,
309 -- p_l_api_version IN NUMBER,
310 -- p_api_version IN NUMBER,
311 -- p_api_type IN VARCHAR2,
312 -- OUT NOCOPY /* file.sql.39 change */ :
313 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2(1)
314 --
315 -- Version : Current version 1.0
316 -- Initial version 1.0
317 --
318 --
319 -- End of Comments
320
321 PROCEDURE Start_API(
322 p_api_name IN VARCHAR2,
323 p_pkg_name IN VARCHAR2,
324 p_init_msg_list IN VARCHAR2,
325 p_l_api_version IN NUMBER,
326 p_api_version IN NUMBER,
327 p_api_type IN VARCHAR2,
328 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
329 );
330
331
332 -- Start of Comments
333 --
334 -- API name : End_API
335 -- Type : Public
336 -- Function : Epilog of API
337 -- 1. Check whether it needs commit or not
338 -- 2. Get message count
339 -- 3. Invoke callout procedure
340 --
341 --
342 -- Parameters :
343 -- IN : none.
344 -- OUT NOCOPY /* file.sql.39 change */ :
345 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
346 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
347 --
348 --
349 -- Version : Current version 1.0
350 -- Initial version 1.0
351 --
352 --
353 -- End of Comments
354
355 PROCEDURE End_API(
356 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
357 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
358 );
359
360
361 -- Start of Comments
362 --
363 -- API name : Handle_Exceptions
364 -- Type : Public
365 -- Function : Exception handling routine
366 -- 1. Called by Call_Exception_Handlers
367 -- 2. Handle exception according to different
368 -- p_exception_level
369 --
370 --
371 -- Parameters :
372 -- IN :
373 -- p_api_name IN VARCHAR2
374 -- p_pkg_name IN VARCHAR2
375 -- p_exception_level IN NUMBER
376 -- p_package_type IN VARCHAR2
377 -- x_msg_count IN NUMBER
378 -- x_msg_data IN VARCHAR2
379 -- OUT NOCOPY /* file.sql.39 change */ :
380 --
381 --
382 -- Version : Current version 1.0
383 -- Initial version 1.0
384 --
385 -- End of Comments
386 PROCEDURE Handle_Exceptions(
387 P_API_NAME IN VARCHAR2,
388 P_PKG_NAME IN VARCHAR2,
389 P_EXCEPTION_LEVEL IN NUMBER := FND_API.G_MISS_NUM,
390 P_SQLCODE IN NUMBER := NULL,
391 P_SQLERRM IN VARCHAR2 := NULL,
392 P_PACKAGE_TYPE IN VARCHAR2,
393 X_MSG_COUNT OUT NOCOPY /* file.sql.39 change */ NUMBER,
394 X_MSG_DATA OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
395 X_RETURN_STATUS OUT NOCOPY /* file.sql.39 change */ VARCHAR2
396 );
397
398
399
400 -- Start of Comments
401 --
402 -- API name : translate_orderBy
403 -- Type : Public
404 -- Function : translate order by choice numbers and columns into
405 -- a order by string with the order of column names and
406 -- descending or ascending request.
407 --
408 --
409 -- Parameters :
410 -- IN :
411 -- p_api_version_number IN NUMBER,
412 -- p_init_msg_list IN VARCHAR2
413 -- p_validation_level IN NUMBER
414 -- OUT NOCOPY /* file.sql.39 change */ :
415 -- x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2(1)
416 -- x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
417 -- x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2(2000)
418 --
419 -- Version : Current version 1.0
420 -- Initial version 1.0
421 --
422 --
423 -- End of Comments
424
425 PROCEDURE Translate_OrderBy(
426 p_api_version_number IN NUMBER,
427 p_init_msg_list IN VARCHAR2
428 := FND_API.G_FALSE,
429 p_validation_level IN NUMBER
430 := FND_API.G_VALID_LEVEL_FULL,
431 p_order_by_tbl IN UTIL_ORDER_BY_TBL_TYPE,
432 x_order_by_clause OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
433 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
434 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
435 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
436 );
437
438
439 -- Start of Comments
440 --
441 -- Message levels:
442 --
443 -- The pre-defined debug message levels are defined in FND_MSG_PUB
444 -- package as follows:
445 -- G_MSG_LVL_DEBUG_HIGH CONSTANT NUMBER := 30;
446 -- G_MSG_LVL_DEBUG_MEDIUM CONSTANT NUMBER := 20;
447 -- G_MSG_LVL_DEBUG_LOW CONSTANT NUMBER := 10;
448 -- The usage for the above mentioned debug levels:
449 -- High:
450 -- Procedure and function call signatures, and major events like
451 -- choosing one of two or more processing methods.
452 -- Medium:
453 -- Dynamic SQL statements, SQL bind variables and intermediate
454 -- level events like results of calculations or important flags.
455 -- Low:
456 -- Variables inside loops, all decisions, and all intermediate
457 -- results.
458 --
459 -- The pre-defined exception message levels in FND_MSG_PUB package
460 -- are as follows:
461 -- G_MSG_LVL_UNEXP_ERROR CONSTANT NUMBER := 60;
462 -- G_MSG_LVL_ERROR CONSTANT NUMBER := 50;
463 -- G_MSG_LVL_SUCCESS CONSTANT NUMBER := 40;
464 -- Their usage are as their names implied.
465 --
466 -- If you'd like to get message from message table, the sample code is below.
467 -- l_count NUMBER;
468 -- l_msg_data VARCHAR2(2000);
469 --
470 -- l_count := FND_MSG_PUB.Count_Msg;
471 -- FOR l_index IN 1..l_count LOOP
472 -- l_msg_data := FND_MSG_PUB.Get(
473 -- p_msg_index => l_index,
474 -- p_encoded => FND_API.G_TRUE);
475 -- END LOOP;
476 --
477 -- End of Comments
478
479
480 -- Start of Comments
481 --
482 -- API name : Debug_Message
483 -- Type : Public
484 -- Function : Put a debug message into FND_MSG_PUB
485 -- message table
486 --
487 -- Parameters :
488 -- IN :
489 -- p_msg_level IN NUMBER,
490 -- p_app_name IN VARCHAR2,
491 -- p_msg IN VARCHAR2
492 -- OUT NOCOPY /* file.sql.39 change */ : none.
493 --
494 --
495 --
496 -- Version : Current version 1.0
497 -- Initial version 1.0
498 --
499 -- Notes:
500 -- 1. If you want to print a debug message, you should not use
501 -- dbms_output.put_line(), instead, you should call this Debug_Message
502 -- procedure. The parameter p_msg_level can be one of the following:
503 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW
504 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM
505 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH
506 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_SUCCESS
507 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_ERROR
508 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_UNEXP_ERROR
509 -- 2. The calling example is like this:
510 -- ASO_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
511 -- 'Forecast Id: '||to_char(l_forecast_rec.forecast_id));
512 -- 3. This API is for printing debug message use. If you'd like to
513 -- put tokens into FND_MSG_PUB message table, please use
514 -- Set_Message API described below.
515 --
516 -- End of Comments
517 PROCEDURE Debug_Message(
518 p_msg_level IN NUMBER,
519 -- p_app_name IN VARCHAR2,
520 p_msg IN VARCHAR2
521 );
522
523
524
525 -- Start of Comments
526 --
527 -- The following four overloading Set_Message APIs will put message
528 -- name and token(s) into FND_MSG_PUB message table. These overloading
529 -- APIs are transparent to developers. We provide these APIs with
530 -- different number of arguments because of performance consideration.
531 -- System loader has to allocate stack for arguments at run time. If
532 -- there is only one token, it will invoke the API which needs one
533 -- token only, and hence take less resource than API with two tokens.
534 --
535 -- End of Comments
536
537
538 -- Start of Comments
539 --
540 -- API name : Set_Message
541 -- Type : Public
542 -- Function : Put 1 message into FND_MSG_PUB message table
543 --
544 -- Parameters :
545 -- IN :
546 -- p_msg_level IN NUMBER,
547 -- p_msg_name IN VARCHAR2,
548 -- p_token1 IN VARCHAR2,
549 -- p_token1_value IN VARCHAR2
550 -- OUT NOCOPY /* file.sql.39 change */ : none.
551 --
552 --
553 --
554 -- Version : Current version 1.0
555 -- Initial version 1.0
556 --
557 -- Notes:
558 -- 1. The parameter p_msg_level can be one of the following:
559 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW
560 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM
561 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH
562 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_SUCCESS
563 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_ERROR
564 -- FND_MSG_PUB.G_MSG_LVL_DEBUG_UNEXP_ERROR
565 -- 2. p_app_name is your short name of the application this message
566 -- is associated with.
567 -- 3. p_msg_name is the message name that identifies your message.
568 -- 4. p_token? specify the name of the token you want to substitute.
569 -- 5. p_token?_value indicate your substitute text. You can include
570 -- as much substitute text as necessary for the message you call.
571 -- 6. The number of token is restricted to be less than or equal to
572 -- the number of API name specifies.
573 -- 7. The calling example is like this:
574 -- ASO_UTILITY_PVT.Set_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'AS',
575 -- 'MY_AP_MESSAGE', 'FILENAME', 'myfile.doc');
576 -- ASO_UTILITY_PVT.Set_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'AS',
577 -- 'MY_AP_MESSAGE', 'FILENAME', 'myfile.doc', 'USERNAME', username);
578 --
579 -- End of Comments
580 PROCEDURE Set_Message(
581 p_msg_level IN NUMBER,
582 p_msg_name IN VARCHAR2,
583 p_token1 IN VARCHAR2,
584 p_token1_value IN VARCHAR2
585 );
586
587
588
589 -- Start of Comments
590 --
591 -- API name : Set_Message
592 -- Type : Public
593 -- Function : Put 2 messages into FND_MSG_PUB message table
594 --
595 -- Parameters :
596 -- IN :
597 -- p_msg_level IN NUMBER,
598 -- p_app_name IN VARCHAR2,
599 -- p_msg_name IN VARCHAR2,
600 -- p_token1 IN VARCHAR2,
601 -- p_token1_value IN VARCHAR2
602 -- p_token2 IN VARCHAR2,
603 -- p_token2_value IN VARCHAR2
604 -- OUT NOCOPY /* file.sql.39 change */ : none.
605 --
606 --
607 --
608 -- Version : Current version 1.0
609 -- Initial version 1.0
610 --
611 -- Notes:
612 -- See Set_Message()
613 --
614 -- End of Comments
615 PROCEDURE Set_Message(
616 p_msg_level IN NUMBER,
617 p_app_name IN VARCHAR2,
618 p_msg_name IN VARCHAR2,
619 p_token1 IN VARCHAR2,
620 p_token1_value IN VARCHAR2,
621 p_token2 IN VARCHAR2,
622 p_token2_value IN VARCHAR2
623 );
624
625
626
627 -- Start of Comments
628 --
629 -- API name : Set_Message
630 -- Type : Public
631 -- Function : Put 3 messags into FND_MSG_PUB message table
632 --
633 -- Parameters :
634 -- IN :
635 -- p_msg_level IN NUMBER,
636 -- p_app_name IN VARCHAR2,
637 -- p_msg_name IN VARCHAR2,
638 -- p_token1 IN VARCHAR2,
639 -- p_token1_value IN VARCHAR2,
640 -- p_token2 IN VARCHAR2,
641 -- p_token2_value IN VARCHAR2,
642 -- p_token3 IN VARCHAR2,
643 -- p_token3_value IN VARCHAR2
644 -- OUT NOCOPY /* file.sql.39 change */ : none.
645 --
646 --
647 --
648 -- Version : Current version 1.0
649 -- Initial version 1.0
650 --
651 -- Notes:
652 -- See Set_Message()
653 --
654 -- End of Comments
655 PROCEDURE Set_Message(
656 p_msg_level IN NUMBER,
657 p_app_name IN VARCHAR2,
658 p_msg_name IN VARCHAR2,
659 p_token1 IN VARCHAR2,
660 p_token1_value IN VARCHAR2,
661 p_token2 IN VARCHAR2,
662 p_token2_value IN VARCHAR2,
663 p_token3 IN VARCHAR2,
664 p_token3_value IN VARCHAR2
665 );
666
667 -- Start of Comments
668 --
669 -- API name : Set_Message
670 -- Type : Public
671 -- Function : Put 7 messages into FND_MSG_PUB message table
672 --
673 -- Parameters :
674 -- IN :
675 -- p_msg_level IN NUMBER,
676 -- p_app_name IN VARCHAR2,
677 -- p_msg_name IN VARCHAR2,
678 -- p_token1 IN VARCHAR2,
679 -- p_token1_value IN VARCHAR2,
680 -- p_token2 IN VARCHAR2,
681 -- p_token2_value IN VARCHAR2,
682 -- p_token3 IN VARCHAR2,
683 -- p_token3_value IN VARCHAR2,
684 -- p_token4 IN VARCHAR2,
685 -- p_token4_value IN VARCHAR2,
686 -- p_token5 IN VARCHAR2,
687 -- p_token5_value IN VARCHAR2,
688 -- p_token6 IN VARCHAR2,
689 -- p_token6_value IN VARCHAR2,
690 -- p_token7 IN VARCHAR2,
691 -- p_token7_value IN VARCHAR2
692 -- OUT NOCOPY /* file.sql.39 change */ : none.
693 --
694 --
695 --
696 -- Version : Current version 1.0
697 -- Initial version 1.0
698 --
699 -- Notes:
700 -- See Set_Message()
701 --
702 -- End of Comments
703 PROCEDURE Set_Message(
704 p_msg_level IN NUMBER,
705 p_app_name IN VARCHAR2,
706 p_msg_name IN VARCHAR2,
707 p_token1 IN VARCHAR2 := FND_API.G_MISS_CHAR,
708 p_token1_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
709 p_token2 IN VARCHAR2 := FND_API.G_MISS_CHAR,
710 p_token2_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
711 p_token3 IN VARCHAR2 := FND_API.G_MISS_CHAR,
712 p_token3_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
713 p_token4 IN VARCHAR2 := FND_API.G_MISS_CHAR,
714 p_token4_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
715 p_token5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
716 p_token5_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
717 p_token6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
718 p_token6_value IN VARCHAR2 := FND_API.G_MISS_CHAR,
719 p_token7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
720 p_token7_value IN VARCHAR2 := FND_API.G_MISS_CHAR
721 );
722
723
724
725
726
727 -- Start of Comments
728 --
729 -- API Name : Gen_Flexfield_Where
730 -- Type : Public
731 -- Function : common procedure for flexfield search with binding
732 -- Parameters :
733 -- IN :
734 -- p_flex_where_tbl_type : column names and the search criteria
735 -- for those columns in where clause
736 --
737 -- OUT NOCOPY /* file.sql.39 change */ :
738 -- x_flex_where_clause : where clause based on flexfield, the
739 -- format of which like ' AND
740 -- table.column1 = :p_ofso_flex_var1 AND
741 -- table.column2 = :p_ofso_flex_var2 ....'
742 --
743 --
744 -- Version : Current version 1.0
745 -- Initial version 1.0
746 --
747 -- Notes:
748 --
749 -- End of Comments
750
751 PROCEDURE Gen_Flexfield_Where(
752 p_flex_where_tbl_type IN ASO_UTILITY_PVT.flex_where_tbl_type,
753 x_flex_where_clause OUT NOCOPY /* file.sql.39 change */ VARCHAR2
754 );
755
756 -- Start of Comments
757 --
758 -- API Name : Bind_Flexfield_Where
759 -- Type : Public
760 -- Function : common procedure for flexfield search with binding.
761 -- Bind placeholders in the where clause generated by
762 -- Gen_Flexfield_Where.
763 -- Parameters :
764 -- IN :
765 -- p_cursor_id : identifier of the cursor for binding.
766 -- p_flex_where_tbl_type : column names and the search criteria
767 -- for those columns in where clause
768 --
769 -- OUT NOCOPY /* file.sql.39 change */ : none.
770 --
771 -- Version : Current version 1.0
772 -- Initial version 1.0
773 --
774 -- Notes:
775 --
776 -- End of Comments
777
778 PROCEDURE Bind_Flexfield_Where(
779 p_cursor_id IN NUMBER,
780 p_flex_where_tbl_type IN ASO_UTILITY_PVT.flex_where_tbl_type
781 );
782
783
784 PROCEDURE Get_Messages (p_message_count IN NUMBER,
785 x_msgs OUT NOCOPY /* file.sql.39 change */ VARCHAR2);
786
787 FUNCTION Query_Header_Row (
788 P_Qte_Header_Id IN NUMBER
789 ) RETURN ASO_QUOTE_PUB.qte_header_rec_Type;
790
791 FUNCTION Query_Price_Adj_Rows (
792 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
793 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
794 ) RETURN ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
795
796 FUNCTION Query_Price_Adj_NonPRG_Rows (
797 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
798 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
799 ) RETURN ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
800
801 FUNCTION Query_Price_Adj_Attr_Rows (
802 p_price_adj_tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type
803 ) RETURN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
804
805 FUNCTION Query_Payment_Rows (
806 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
807 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
808 ) RETURN ASO_QUOTE_PUB.Payment_Tbl_Type;
809
810 FUNCTION Query_Tax_Detail_Rows (
811 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
812 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM,
813 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type
814 ) RETURN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
815
816 FUNCTION Query_Shipment_Row (
817 P_Shipment_Id IN NUMBER := FND_API.G_MISS_NUM
818 ) RETURN ASO_QUOTE_PUB.Shipment_Rec_Type;
819
820 FUNCTION Query_Shipment_Rows (
821 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
822 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
823 ) RETURN ASO_QUOTE_PUB.Shipment_Tbl_Type;
824
825 FUNCTION Query_Line_Shipment_Row_atp (
826 P_Qte_Header_Id IN NUMBER,
827 P_Qte_Line_Id IN NUMBER
828 ) RETURN ASO_QUOTE_PUB.Shipment_Rec_Type;
829
830 FUNCTION Query_Freight_Charge_Rows (
831 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type
832 ) RETURN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
833
834 FUNCTION Query_Sales_Credit_Row (
835 P_Sales_Credit_Id IN NUMBER
836 ) RETURN ASO_QUOTE_PUB.Sales_Credit_rec_Type;
837
838 FUNCTION Query_Sales_Credit_Row (
839 P_qte_header_Id IN NUMBER,
840 p_qte_line_id IN NUMBER
841 ) RETURN ASO_QUOTE_PUB.Sales_Credit_tbl_Type;
842 FUNCTION Query_Quote_Party_Row (
843 P_Qte_header_Id IN NUMBER,
844 p_qte_line_id IN NUMBER
845 ) RETURN ASO_QUOTE_PUB.QUOTE_PARTY_tbl_Type;
846 FUNCTION Query_Quote_Party_Row (
847 P_Quote_Party_Id IN NUMBER
848 ) RETURN ASO_QUOTE_PUB.QUOTE_PARTY_rec_Type;
849
850 FUNCTION Query_Qte_Line_Row (
851 P_Qte_Line_Id IN NUMBER
852 ) RETURN ASO_QUOTE_PUB.qte_line_rec_Type;
853
854 FUNCTION Query_Qte_Line_Rows (
855 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM
856 ) RETURN ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
857
858 FUNCTION Query_Qte_Line_Rows_Submit (
859 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM
860 ) RETURN ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
861
862 FUNCTION Query_Qte_Line_Rows_Sort (
863 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM
864 ) RETURN ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
865
866 FUNCTION Query_Qte_Line_Rows_atp (
867 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM
868 ) RETURN ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
869
870 FUNCTION Query_Pricing_Line_Rows (
871 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
872 P_change_line_flag IN VARCHAR2 := FND_API.G_FALSE
873 ) RETURN ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
874
875 FUNCTION Query_Pricing_Line_Row (
876 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
877 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
878 ) RETURN ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
879
880 FUNCTION Query_Line_Dtl_Rows (
881 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
882 ) RETURN ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
883
884 FUNCTION Query_Line_Attribs_Ext_Rows(
885 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
886 ) RETURN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
887
888 FUNCTION Query_Line_Attribs_header_Rows(
889 P_Qte_header_Id IN NUMBER := FND_API.G_MISS_NUM
890 ) RETURN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
891
892
893 FUNCTION Query_Price_Attr_Rows (
894 P_Qte_Header_Id IN NUMBER := FND_API.G_MISS_NUM,
895 P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
896 ) RETURN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
897
898
899 FUNCTION Query_Price_Adj_Rltship_Rows (
900 P_Price_Adjustment_Id IN NUMBER := FND_API.G_MISS_NUM
901 ) RETURN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
902
903
904 FUNCTION Query_Price_Adj_Rltn_Rows (
905 P_Quote_Line_Id IN NUMBER := FND_API.G_MISS_NUM
906 ) RETURN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
907
908
909 FUNCTION Get_Profile_Obsolete_Status (
910 p_profile_name IN VARCHAR2,
911 p_application_id IN NUMBER
912 ) RETURN VARCHAR2;
913
914 FUNCTION GET_Control_Rec RETURN ASO_QUOTE_PUB.Control_Rec_TYPE;
915 FUNCTION GET_Qte_Header_Rec RETURN ASO_QUOTE_PUB.Qte_Header_Rec_TYPE;
916 FUNCTION GET_Qte_Sort_Rec RETURN ASO_QUOTE_PUB.Qte_Sort_Rec_TYPE;
917 FUNCTION GET_Qte_Line_Rec RETURN ASO_QUOTE_PUB.Qte_Line_Rec_TYPE;
918 FUNCTION GET_Qte_Line_sort_Rec RETURN ASO_QUOTE_PUB.Qte_Line_sort_Rec_TYPE;
919 FUNCTION GET_Qte_Line_Dtl_Rec RETURN ASO_QUOTE_PUB.Qte_Line_Dtl_Rec_TYPE;
920 FUNCTION GET_Price_Attributes_Rec RETURN ASO_QUOTE_PUB.Price_Attributes_Rec_TYPE;
921 FUNCTION GET_Price_Adj_Rec RETURN ASO_QUOTE_PUB.Price_Adj_Rec_TYPE;
922 FUNCTION GET_PRICE_ADJ_ATTR_Rec RETURN ASO_QUOTE_PUB.PRICE_ADJ_ATTR_Rec_TYPE;
923 FUNCTION GET_Price_Adj_Rltship_Rec RETURN ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_TYPE;
924 FUNCTION GET_Sales_Credit_Rec RETURN ASO_QUOTE_PUB.Sales_Credit_Rec_TYPE;
925 FUNCTION GET_Payment_Rec RETURN ASO_QUOTE_PUB.Payment_Rec_TYPE;
926 FUNCTION GET_Shipment_Rec RETURN ASO_QUOTE_PUB.Shipment_Rec_TYPE;
927 FUNCTION GET_Freight_Charge_Rec RETURN ASO_QUOTE_PUB.Freight_Charge_Rec_TYPE;
928 FUNCTION GET_Tax_Detail_Rec RETURN ASO_QUOTE_PUB.Tax_Detail_Rec_TYPE;
929 FUNCTION GET_Tax_Control_Rec RETURN ASO_TAX_INT.Tax_control_rec_type ;
930 FUNCTION GET_Header_Rltship_Rec RETURN ASO_QUOTE_PUB.Header_Rltship_Rec_TYPE;
931 FUNCTION GET_Line_Rltship_Rec RETURN ASO_QUOTE_PUB.Line_Rltship_Rec_TYPE;
932 FUNCTION GET_PARTY_RLTSHIP_Rec RETURN ASO_QUOTE_PUB.PARTY_RLTSHIP_Rec_TYPE;
933 FUNCTION GET_Related_Object_Rec RETURN ASO_QUOTE_PUB.Related_Object_Rec_TYPE;
934 FUNCTION GET_RELATED_OBJ_Rec RETURN ASO_QUOTE_PUB.RELATED_OBJ_Rec_TYPE;
935 FUNCTION GET_Line_Attribs_Ext_Rec RETURN ASO_QUOTE_PUB.Line_Attribs_Ext_Rec_TYPE;
936
937 FUNCTION GET_Order_Header_Rec RETURN ASO_QUOTE_PUB.Order_Header_Rec_TYPE;
938 FUNCTION GET_SUBMIT_CONTROL_REC RETURN ASO_QUOTE_PUB.Submit_Control_Rec_Type;
939 FUNCTION GET_Sales_Alloc_Control_Rec RETURN ASO_QUOTE_PUB.Sales_Alloc_Control_Rec_Type;
940
941 FUNCTION GET_Party_Rec RETURN ASO_PARTY_INT.Party_Rec_Type;
942 FUNCTION GET_Location_Rec RETURN ASO_PARTY_INT.Location_Rec_Type;
943 FUNCTION GET_Party_Site_Rec RETURN ASO_PARTY_INT.Party_Site_Rec_Type;
944 FUNCTION GET_Org_Contact_Rec RETURN ASO_PARTY_INT.Org_Contact_Rec_Type;
945 FUNCTION GET_Contact_Point_Rec RETURN ASO_PARTY_INT.Contact_Point_Rec_Type;
946 FUNCTION GET_Out_Contact_Point_Rec RETURN ASO_PARTY_INT.Out_Contact_Point_Rec_Type;
947 FUNCTION GET_Contact_Restriction_Rec RETURN ASO_PARTY_INT.Contact_Restrictions_Rec_Type;
948 FUNCTION GET_PRICING_CONTROL_REC RETURN ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
949 FUNCTION GET_X_Order_Header_Rec RETURN ASO_ORDER_INT.Order_Header_Rec_Type;
950 FUNCTION GET_X_Order_Line_Rec RETURN ASO_ORDER_INT.Order_Line_Rec_Type;
951 FUNCTION GET_X_Control_Rec RETURN ASO_ORDER_INT.Control_Rec_Type;
952 FUNCTION GET_QTE_IN_REC RETURN ASO_OPP_QTE_PUB.OPP_QTE_IN_REC_TYPE;
953 FUNCTION GET_QTE_OUT_REC RETURN ASO_OPP_QTE_PUB.OPP_QTE_OUT_REC_TYPE;
954 FUNCTION GET_Qte_Access_Rec RETURN ASO_SECURITY_INT.Qte_Access_Rec_Type;
955 FUNCTION GET_copy_qte_cntrl_Rec RETURN ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type;
956 FUNCTION GET_copy_qte_hdr_Rec RETURN ASO_COPY_QUOTE_PUB.Copy_Quote_Header_Rec_Type;
957
958 FUNCTION GET_Def_Control_Rec RETURN ASO_DEFAULTING_INT.Control_Rec_Type;
959 FUNCTION GET_Header_Misc_Rec RETURN ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
960 FUNCTION GET_Line_Misc_Rec RETURN ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
961 FUNCTION GET_Attr_Codes_Tbl RETURN ASO_DEFAULTING_INT.ATTRIBUTE_CODES_TBL_TYPE;
962
963 FUNCTION Decode(l_base_date DATE, comp1 DATE, date1 DATE, date2 DATE)
964 RETURN DATE;
965
966 -- Change START
967 -- Release 12 MOAC Changes : Bug 4500739
968 -- Changes Done by : Girish
969 -- Comments : The following functions are used for HR Extra Information Types
970
971 FUNCTION GET_DEFAULT_ORDER_TYPE RETURN VARCHAR2 ;
972 FUNCTION GET_DEFAULT_SALESREP RETURN VARCHAR2 ;
973 FUNCTION GET_DEFAULT_SALES_GROUP RETURN VARCHAR2 ;
974 FUNCTION GET_DEFAULT_SALES_ROLE RETURN VARCHAR2 ;
975 FUNCTION GET_DEFAULT_CONTRACT_TEMPLATE RETURN VARCHAR2 ;
976
977 FUNCTION get_ou_attribute_value(p_attribute IN VARCHAR2, p_organization_id IN NUMBER) RETURN VARCHAR2 ;
978 FUNCTION get_ou_attribute_value(p_attribute IN VARCHAR2) RETURN VARCHAR2;
979
980 -- Change END
981
982 -- Change START
983 -- Release 12
984 -- Changes Done by : Girish
985 -- Comments : Procedure to add entry in ASO_CHANGED_QUOTES
986
987 PROCEDURE UPDATE_CHANGED_QUOTES (p_quote_number ASO_CHANGED_QUOTES.QUOTE_NUMBER%TYPE);
988
989 -- Change END
990
991 --Procedure added by Anoop Rajan on 30/09/2005 to print login details
992 PROCEDURE PRINT_LOGIN_INFO;
993
994 FUNCTION Tax_Rec_Exists( p_tax_rec IN ASO_QUOTE_PUB.Tax_Detail_Rec_Type ) RETURN BOOLEAN;
995
996 END ASO_UTILITY_PVT;
997