DBA Data[Home] [Help]

PACKAGE: APPS.EGO_USER_ATTRS_DATA_PVT

Source


1 PACKAGE EGO_USER_ATTRS_DATA_PVT AUTHID DEFINER AS
2 /* $Header: EGOPEFDS.pls 120.17.12020000.1 2012/06/26 16:36:41 appldev ship $ */
3 
4 
5 
6 --=======================================================================--
7 --=*********************************************************************=--
8 --=*===================================================================*=--
9 --=*=                                                                 =*=--
10 --=*=  NOTE: This is a PRIVATE package; it is for internal use only,  =*=--
11 --=*=  and it is not supported for customer use.  For access to this  =*=--
12 --=*=  functionality, please use EGO_USER_ATTRS_DATA_PUB.             =*=--
13 --=*=                                                                 =*=--
14 --=*===================================================================*=--
15 --=*********************************************************************=--
16 --=======================================================================--
17 
18                        ----------------------
19                        -- Global Variables --
20                        ----------------------
21 
22 /*
23  * p_mode constants
24  * ----------------
25  * Possible values for p_mode parameter in Process_Row, Validate_Row,
26  * and Perform_DML_On_Row APIs: the value of the p_mode parameter
27  * affects how all three of these APIs treat the passed-in data.
28  * For example, passing G_CREATE_MODE to Perform_DML_On_Row will
29  * cause the API to execute an Insert statement on the extension table.
30  * As a more complicated example, consider an Attribute Group called
31  * 'Emp Info' with a 'Date Logged' Attribute and a 'Current Status'
32  * Attribute.  The 'Date Logged' Attribute might well have a Minimum
33  * and Maximum value range of 'SYSDATE'.  Thus, if G_CREATE_MODE were
34  * passed to Validate_Row, then the API would need to verify that the
35  * value of the 'Date Logged' Attribute was the Date on the day of that
36  * insertion.  Say, however, that sometime later the bug status changes,
37  * and we want to update the extension table to reflect this.  In this
38  * case, we wouldn't want Validate_Row to evaluate the 'Date Logged'
39  * Attribute as if it were just being inserted, so we'd pass either
40  * G_UPDATE_MODE or G_SYNC_MODE to Validate_Row so it would know the
41  * context in which it should apply the validation rules for the row.
42  * (G_SYNC_MODE instructs the API to determine for itself whether there
43  * exists a row in the extension table for the passed-in data.  If such
44  * a row exists, then it is updated; if not, a row is created and the
45  * data are inserted into it.)
46  * If no value is passed for p_mode, G_SYNC_MODE is assumed.  If an
47  * invalid value is passed for p_mode, such as G_DELETE_MODE on a row
48  * that doesn't exist, an error occurs.
49  */
50 
51     G_CREATE_MODE        CONSTANT VARCHAR2(10) := 'CREATE'; --4th
52     G_UPDATE_MODE        CONSTANT VARCHAR2(10) := 'UPDATE'; --2nd
53     G_DELETE_MODE        CONSTANT VARCHAR2(10) := 'DELETE'; --1st
54     G_SYNC_MODE          CONSTANT VARCHAR2(10) := 'SYNC';   --3rd
55 
56     -------------------------------------------------------------------------
57     -- The Business Object Identifier is used for error-handling purposes. --
58     -------------------------------------------------------------------------
59     G_BO_IDENTIFIER      CONSTANT VARCHAR2(30) := 'USER_ATTRS_BO';
60 
61 
62 
63                           ----------------
64                           -- Procedures --
65                           ----------------
66 
67 /*
68  * Process_User_Attrs_Data
69  * -----------------------
70  * Process_User_Attrs_Data processes User Attribute data for one object
71  * instance.  In addition to identifying information for the instance,
72  * the procedure takes in a table of Attribute Group row objects and an
73  * accompanying table of Attribute data objects; it organizes the two
74  * sets of tables and calls Process_Row for each Attribute Group row,
75  * passing all the Attribute objects for that row.  Process_Row then
76  * validates the data for each Attribute Group (in G_CREATE_MODE or
77  * G_UPDATE_MODE) and performs the appropriate DML operation on the
78  * appropriate extension table. If the passed-in mode is null or
79  * G_SYNC_MODE we decide whether the row needs to be inserted or updated.
80  */
81 
82 PROCEDURE Process_User_Attrs_Data (
83         p_api_version                   IN   NUMBER
84        ,p_object_name                   IN   VARCHAR2
85        ,p_attributes_row_table          IN   EGO_USER_ATTR_ROW_TABLE
86        ,p_attributes_data_table         IN   EGO_USER_ATTR_DATA_TABLE
87        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
88        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
89        ,p_user_privileges_on_object     IN   EGO_VARCHAR_TBL_TYPE DEFAULT NULL
90        ,p_change_info_table             IN   EGO_USER_ATTR_CHANGE_TABLE DEFAULT NULL
91        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT  NULL
92        ,p_pending_tl_table_name         IN   VARCHAR2   DEFAULT  NULL
93        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT  NULL
94        ,p_entity_id                     IN   NUMBER     DEFAULT  NULL
95        ,p_entity_index                  IN   NUMBER     DEFAULT  NULL
96        ,p_entity_code                   IN   VARCHAR2   DEFAULT  NULL
97        ,p_debug_level                   IN   NUMBER     DEFAULT  0
98        ,p_validate_only                 IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
99        ,p_validate_hierarchy            IN   VARCHAR2   DEFAULT  FND_API.G_TRUE
100        ,p_init_error_handler            IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
101        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
102        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
103        ,p_log_errors                    IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
104        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
105        ,p_commit                        IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
106        ,p_raise_business_event          IN   BOOLEAN DEFAULT TRUE
107        ,x_failed_row_id_list            OUT NOCOPY VARCHAR2
108        ,x_return_status                 OUT NOCOPY VARCHAR2
109        ,x_errorcode                     OUT NOCOPY NUMBER
110        ,x_msg_count                     OUT NOCOPY NUMBER
111        ,x_msg_data                      OUT NOCOPY VARCHAR2
112 );
113 
114 /*
115  * Process_User_Attrs_Data
116  * -----------------------
117  * Please read the documentation given in the above method.
118  * We are having only two additional parameters x_extension_id and x_mode
119  * which are output parameters to identify the mode of operation and the
120  * record that is updated.
121  */
122 
123 PROCEDURE Process_User_Attrs_Data (
124         p_api_version                   IN   NUMBER
125        ,p_object_name                   IN   VARCHAR2
126        ,p_attributes_row_table          IN   EGO_USER_ATTR_ROW_TABLE
127        ,p_attributes_data_table         IN   EGO_USER_ATTR_DATA_TABLE
128        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
129        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
130        ,p_user_privileges_on_object     IN   EGO_VARCHAR_TBL_TYPE DEFAULT NULL
131        ,p_change_info_table             IN   EGO_USER_ATTR_CHANGE_TABLE DEFAULT NULL
132        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT  NULL
133        ,p_pending_tl_table_name         IN   VARCHAR2   DEFAULT  NULL
134        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT  NULL
135        ,p_entity_id                     IN   NUMBER     DEFAULT  NULL
136        ,p_entity_index                  IN   NUMBER     DEFAULT  NULL
137        ,p_entity_code                   IN   VARCHAR2   DEFAULT  NULL
138        ,p_debug_level                   IN   NUMBER     DEFAULT  0
139        ,p_validate_only                 IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
140        ,p_validate_hierarchy            IN   VARCHAR2   DEFAULT  FND_API.G_TRUE
141        ,p_init_error_handler            IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
142        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
143        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
144        ,p_log_errors                    IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
145        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
146        ,p_commit                        IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
147        ,p_raise_business_event          IN   BOOLEAN    DEFAULT  TRUE
148        ,x_extension_id                  OUT NOCOPY NUMBER
149        ,x_mode                          OUT NOCOPY VARCHAR2
150        ,x_failed_row_id_list            OUT NOCOPY VARCHAR2
151        ,x_return_status                 OUT NOCOPY VARCHAR2
152        ,x_errorcode                     OUT NOCOPY NUMBER
153        ,x_msg_count                     OUT NOCOPY NUMBER
154        ,x_msg_data                      OUT NOCOPY VARCHAR2
155 );
156 
157 /*
158  * Get_User_Attrs_Data
159  * -------------------
160  * Get_User_Attrs_Data retrieves a requested subset of the User
161  * Attribute data for one object instance.  In addition to identifying
162  * information for the instance, the procedure takes in a table of
163  * Attribute Group request objects (each of which contains a list of the
164  * requested Attribute values within that Attribute Group) and calls
165  * a private procedure that gets rows of Attr Group data for each Attribute
166  * Group requested.  The procedure then converts those results into two
167  * tables: a table of Attribute Group row objects and a table of Attribute
168  * Group data objects.  Every row object has a ROW_IDENTIFIER value that is
169  * used to find all data objects for that row (they each have ROW_IDENTIFIER
170  * values as well, and their values will match that of the row to which they
171  * belong).
172  */
173 PROCEDURE Get_User_Attrs_Data (
174         p_api_version                   IN   NUMBER
175        ,p_object_name                   IN   VARCHAR2
176        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
177        ,p_attr_group_request_table      IN   EGO_ATTR_GROUP_REQUEST_TABLE
178        ,p_user_privileges_on_object     IN   EGO_VARCHAR_TBL_TYPE DEFAULT NULL
179        ,p_entity_id                     IN   NUMBER     DEFAULT  NULL
180        ,p_entity_index                  IN   NUMBER     DEFAULT  NULL
181        ,p_entity_code                   IN   VARCHAR2   DEFAULT  NULL
182        ,p_debug_level                   IN   NUMBER     DEFAULT  0
183        ,p_init_error_handler            IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
184        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
185        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
186        ,p_commit                        IN   VARCHAR2   DEFAULT  FND_API.G_FALSE
187        ,x_attributes_row_table          OUT NOCOPY EGO_USER_ATTR_ROW_TABLE
188        ,x_attributes_data_table         OUT NOCOPY EGO_USER_ATTR_DATA_TABLE
189        ,x_return_status                 OUT NOCOPY VARCHAR2
190        ,x_errorcode                     OUT NOCOPY NUMBER
191        ,x_msg_count                     OUT NOCOPY NUMBER
192        ,x_msg_data                      OUT NOCOPY VARCHAR2
193 );
194 
195 
196 /*
197  * Process_Row
198  * -----------
199  * Process_Row is the all-in-one API for handling the insertion, update,
200  * or deletion of one row from a User-Defined Attribute extension table.
201  * It internally handles validation to ensure that the passed-in data
202  * are correct with respect to formatting, data type, etc.  If the data
203  * pass this test, Process_Row performs a DML operation on the extension
204  * table according to the passed-in p_mode parameter (this will be one of
205  * the global variables defined above).
206  * This signature takes in the Object Name and Object ID so that the
207  * caller may pass either; it also takes in the Attr Group ID and the
208  * three Attr Group PKs for the same reason.
209  */
210 PROCEDURE Process_Row (
211         p_api_version                   IN   NUMBER
212        ,p_object_id                     IN   NUMBER     DEFAULT NULL
213        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
214        ,p_attr_group_id                 IN   NUMBER     DEFAULT NULL
215        ,p_application_id                IN   NUMBER     DEFAULT NULL
216        ,p_attr_group_type               IN   VARCHAR2   DEFAULT NULL
217        ,p_attr_group_name               IN   VARCHAR2   DEFAULT NULL
218        ,p_validate_hierarchy            IN   VARCHAR2   DEFAULT FND_API.G_TRUE
219        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
220        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
221        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
222        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
223        ,p_extension_id                  IN   NUMBER     DEFAULT NULL
224        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
225        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
226        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
227        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
228        ,p_validate_only                 IN   VARCHAR2   DEFAULT FND_API.G_FALSE
229        ,p_language_to_process           IN   VARCHAR2   DEFAULT NULL
230        ,p_mode                          IN   VARCHAR2   DEFAULT G_SYNC_MODE
231        ,p_change_obj                    IN   EGO_USER_ATTR_CHANGE_OBJ DEFAULT NULL
232        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT NULL
233        ,p_pending_tl_table_name         IN   VARCHAR2   DEFAULT NULL
234        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT NULL
235        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
236        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
237        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
238        ,p_raise_business_event                 IN   BOOLEAN DEFAULT TRUE
239        ,x_return_status                 OUT NOCOPY VARCHAR2
240        ,x_errorcode                     OUT NOCOPY NUMBER
241        ,x_msg_count                     OUT NOCOPY NUMBER
242        ,x_msg_data                      OUT NOCOPY VARCHAR2
243 );
244 
245 
246  /* Overload method with additional parameters x_extension_id, x_mode */
247 
248 PROCEDURE Process_Row (
249         p_api_version                   IN   NUMBER
250        ,p_object_id                     IN   NUMBER     DEFAULT NULL
251        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
252        ,p_attr_group_id                 IN   NUMBER     DEFAULT NULL
253        ,p_application_id                IN   NUMBER     DEFAULT NULL
254        ,p_attr_group_type               IN   VARCHAR2   DEFAULT NULL
255        ,p_attr_group_name               IN   VARCHAR2   DEFAULT NULL
256        ,p_validate_hierarchy            IN   VARCHAR2   DEFAULT FND_API.G_TRUE
257        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
258        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
259        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
260        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
261        ,p_extension_id                  IN   NUMBER     DEFAULT NULL
262        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
263        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
264        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
265        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
266        ,p_validate_only                 IN   VARCHAR2   DEFAULT FND_API.G_FALSE
267        ,p_language_to_process           IN   VARCHAR2   DEFAULT NULL
268        ,p_mode                          IN   VARCHAR2   DEFAULT G_SYNC_MODE
269        ,p_change_obj                    IN   EGO_USER_ATTR_CHANGE_OBJ DEFAULT NULL
270        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT NULL
271        ,p_pending_tl_table_name         IN   VARCHAR2   DEFAULT NULL
272        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT NULL
273        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
274        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
275        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
276        ,p_raise_business_event          IN   BOOLEAN DEFAULT TRUE
277        ,x_extension_id                  OUT NOCOPY NUMBER
278        ,x_mode                          OUT NOCOPY VARCHAR2
279        ,x_return_status                 OUT NOCOPY VARCHAR2
280        ,x_errorcode                     OUT NOCOPY NUMBER
281        ,x_msg_count                     OUT NOCOPY NUMBER
282        ,x_msg_data                      OUT NOCOPY VARCHAR2
286  * Validate_Row
283 );
284 
285 /*
287  * ------------
288  * Validate_Row is the API for checking to ensure that a particular set
289  * of User-Defined Attribute data is "valid"--i.e., that its values for
290  * each Attribute meet all constraints defined for that Attribute (these
291  * constraints may include data type, size, and value range, in addition
292  * to many other possible constraints).
293  * This signature takes in the Object Name and Object ID so that the
294  * caller may pass either; it also takes in the Attr Group ID and the
295  * three Attr Group PKs for the same reason.
296  */
297 PROCEDURE Validate_Row (
298         p_api_version                   IN   NUMBER
299        ,p_object_id                     IN   NUMBER     DEFAULT NULL
300        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
301        ,p_attr_group_id                 IN   NUMBER     DEFAULT NULL
302        ,p_application_id                IN   NUMBER     DEFAULT NULL
303        ,p_attr_group_type               IN   VARCHAR2   DEFAULT NULL
304        ,p_attr_group_name               IN   VARCHAR2   DEFAULT NULL
305        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
306        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
307        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
308        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
309        ,p_extension_id                  IN   NUMBER     DEFAULT NULL
310        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
311        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
312        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
313        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
314        ,p_mode                          IN   VARCHAR2   DEFAULT G_SYNC_MODE
315        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
316        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
317        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
318        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
319        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
320        ,x_return_status                 OUT NOCOPY VARCHAR2
321        ,x_errorcode                     OUT NOCOPY NUMBER
322        ,x_msg_count                     OUT NOCOPY NUMBER
323        ,x_msg_data                      OUT NOCOPY VARCHAR2
324 );
325 
326 
327 
328 /*
329  * Perform_DML_On_Row
330  * ------------------
331  * Perform_DML_On_Row is the API that actually inserts a row into, updates
332  * a row in, or deletes a row from the extension table.  It performs no
333  * validation, which means that undefined behavior may arise if invalid data
334  * are passed in.
335  * This signature takes in the Object Name and Object ID so that the
336  * caller may pass either; it also takes in the Attr Group ID and the
337  * three Attr Group PKs for the same reason.
338  */
339 PROCEDURE Perform_DML_On_Row (
340         p_api_version                   IN   NUMBER
341        ,p_object_id                     IN   NUMBER     DEFAULT NULL
342        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
343        ,p_attr_group_id                 IN   NUMBER     DEFAULT NULL
344        ,p_application_id                IN   NUMBER     DEFAULT NULL
345        ,p_attr_group_type               IN   VARCHAR2   DEFAULT NULL
346        ,p_attr_group_name               IN   VARCHAR2   DEFAULT NULL
347        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
348        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
349        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
350        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
351        ,p_extension_id                  IN   NUMBER     DEFAULT NULL
352        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
353        ,p_mode                          IN   VARCHAR2   DEFAULT G_SYNC_MODE
354        ,p_change_obj                    IN   EGO_USER_ATTR_CHANGE_OBJ DEFAULT NULL
355        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT NULL
356        ,p_pending_tl_table_name         IN   VARCHAR2   DEFAULT NULL
357        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT NULL
358        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
359        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
360        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
361        ,p_debug_level                   IN   NUMBER     DEFAULT 0
362        ,p_use_def_vals_on_insert        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
363        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
364        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
365        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
366        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
367        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
368        ,p_bulkload_flag                 IN   VARCHAR2   DEFAULT FND_API.G_FALSE
369        ,x_return_status                 OUT NOCOPY VARCHAR2
370        ,x_errorcode                     OUT NOCOPY NUMBER
371        ,x_msg_count                     OUT NOCOPY NUMBER
372        ,x_msg_data                      OUT NOCOPY VARCHAR2
373 );
374 
375 /* Overload method with additional parameters x_extension_id, x_mode */
376 
377 PROCEDURE Perform_DML_On_Row (
378         p_api_version                   IN   NUMBER
379        ,p_object_id                     IN   NUMBER     DEFAULT NULL
380        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
381        ,p_attr_group_id                 IN   NUMBER     DEFAULT NULL
382        ,p_application_id                IN   NUMBER     DEFAULT NULL
383        ,p_attr_group_type               IN   VARCHAR2   DEFAULT NULL
387        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
384        ,p_attr_group_name               IN   VARCHAR2   DEFAULT NULL
385        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
386        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
388        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
389        ,p_extension_id                  IN   NUMBER     DEFAULT NULL
390        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
391        ,p_mode                          IN   VARCHAR2   DEFAULT G_SYNC_MODE
392        ,p_change_obj                    IN   EGO_USER_ATTR_CHANGE_OBJ DEFAULT NULL
393        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT NULL
394        ,p_pending_tl_table_name         IN   VARCHAR2   DEFAULT NULL
395        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT NULL
396        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
397        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
398        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
399        ,p_debug_level                   IN   NUMBER     DEFAULT 0
400        ,p_use_def_vals_on_insert        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
401        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
402        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
403        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
404        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
405        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
406        ,p_bulkload_flag                 IN   VARCHAR2   DEFAULT FND_API.G_FALSE
407        --Added by geguo for 9373845 begin
408        ,p_creation_date                 IN   DATE       DEFAULT NULL
409        ,p_last_update_date              IN   DATE       DEFAULT NULL
410        --Added by geguo for 9373845 end
411        ,x_extension_id                  OUT NOCOPY NUMBER
412        ,x_mode                          OUT NOCOPY VARCHAR2
413        ,x_return_status                 OUT NOCOPY VARCHAR2
414        ,x_errorcode                     OUT NOCOPY NUMBER
415        ,x_msg_count                     OUT NOCOPY NUMBER
416        ,x_msg_data                      OUT NOCOPY VARCHAR2
417 );
418 
419 
420 
421 PROCEDURE Generate_DML_For_Row (
422         p_api_version                      IN   NUMBER
423        ,p_object_id                        IN   NUMBER     DEFAULT NULL
424        ,p_object_name                      IN   VARCHAR2   DEFAULT NULL
425        ,p_attr_group_id                    IN   NUMBER     DEFAULT NULL
426        ,p_application_id                   IN   NUMBER     DEFAULT NULL
427        ,p_attr_group_type                  IN   VARCHAR2   DEFAULT NULL
428        ,p_attr_group_name                  IN   VARCHAR2   DEFAULT NULL
429        ,p_pk_column_name_value_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
430        ,p_class_code_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
431        ,p_data_level                       IN   VARCHAR2   DEFAULT NULL --R12C
432        ,p_data_level_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
433        ,p_extension_id                     IN   NUMBER     DEFAULT NULL
434        ,p_attr_name_value_pairs            IN   EGO_USER_ATTR_DATA_TABLE
435        ,p_mode                             IN   VARCHAR2   DEFAULT G_SYNC_MODE
436        ,p_extra_pk_col_name_val_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
437        ,p_extra_attr_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
438        ,p_alternate_ext_b_table_name       IN   VARCHAR2   DEFAULT NULL
439        ,p_alternate_ext_tl_table_name      IN   VARCHAR2   DEFAULT NULL
440        ,p_alternate_ext_vl_name            IN   VARCHAR2   DEFAULT NULL
441        ,p_execute_dml                      IN   VARCHAR2   DEFAULT FND_API.G_FALSE
442        ,p_entity_id                        IN   NUMBER     DEFAULT NULL
443        ,p_entity_index                     IN   NUMBER     DEFAULT NULL
444        ,p_entity_code                      IN   VARCHAR2   DEFAULT NULL
445        ,p_debug_level                      IN   NUMBER     DEFAULT 0
446        ,p_use_def_vals_on_insert           IN   VARCHAR2   DEFAULT FND_API.G_FALSE
447        ,p_log_errors                       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
448        ,p_init_fnd_msg_list                IN   VARCHAR2   DEFAULT FND_API.G_FALSE
449        ,p_write_to_concurrent_log          IN   VARCHAR2   DEFAULT FND_API.G_FALSE
450        ,p_add_errors_to_fnd_stack          IN   VARCHAR2   DEFAULT FND_API.G_FALSE
451        ,p_commit                           IN   VARCHAR2   DEFAULT FND_API.G_FALSE
452        ,p_bulkload_flag                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
453        ,p_raise_business_event             IN   BOOLEAN DEFAULT TRUE
454        ,x_return_status                    OUT NOCOPY VARCHAR2
455        ,x_errorcode                        OUT NOCOPY NUMBER
456        ,x_msg_count                        OUT NOCOPY NUMBER
457        ,x_msg_data                         OUT NOCOPY VARCHAR2
458        ,x_b_dml_for_ag                     OUT NOCOPY VARCHAR2
459        ,x_tl_dml_for_ag                    OUT NOCOPY VARCHAR2
460        ,x_b_bind_count                     OUT NOCOPY NUMBER
461        ,x_tl_bind_count                    OUT NOCOPY NUMBER
462        ,x_b_bind_attr_table                OUT NOCOPY EGO_USER_ATTR_DATA_TABLE
463        ,x_tl_bind_attr_table               OUT NOCOPY EGO_USER_ATTR_DATA_TABLE
464        );
465 
466 
467 
468 FUNCTION Get_Extension_Id (
469         p_object_name                      IN   VARCHAR2
470        ,p_attr_group_id                    IN   NUMBER     DEFAULT NULL
471        ,p_application_id                   IN   NUMBER
472        ,p_attr_group_type                  IN   VARCHAR2
473        ,p_attr_group_name                  IN   VARCHAR2   DEFAULT NULL
474        ,p_pk_column_name_value_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
478        ,p_extra_pk_col_name_val_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
475        ,p_data_level                       IN   VARCHAR2   DEFAULT NULL --R12C
476        ,p_data_level_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
477        ,p_attr_name_value_pairs            IN   EGO_USER_ATTR_DATA_TABLE
479        ,p_extra_attr_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
480        ,p_alternate_ext_b_table_name       IN   VARCHAR2   DEFAULT NULL
481        ,p_alternate_ext_tl_table_name      IN   VARCHAR2   DEFAULT NULL
482        ,p_alternate_ext_vl_name            IN   VARCHAR2   DEFAULT NULL
483        ) RETURN NUMBER ;
484 
485 
486 /*
487  * Perform_DML_From_Template
488  * -------------------------
489  */
490 PROCEDURE Perform_DML_From_Template (
491         p_api_version                   IN   NUMBER
492        ,p_template_id                   IN   NUMBER
493        ,p_object_name                   IN   VARCHAR2
494        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
495        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
496        ,p_data_level                    IN   VARCHAR2 DEFAULT NULL
497        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
498        ,p_attr_group_ids_to_exclude     IN   EGO_NUMBER_TBL_TYPE           DEFAULT NULL
499        ,p_debug_level                   IN   NUMBER     DEFAULT 0
500        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
501        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
502        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
503        ,x_return_status                 OUT NOCOPY VARCHAR2
504        ,x_errorcode                     OUT NOCOPY NUMBER
505        ,x_msg_count                     OUT NOCOPY NUMBER
506        ,x_msg_data                      OUT NOCOPY VARCHAR2
507 );
508 
509 
510 
511 /*
512  * Copy_User_Attrs_Data
513  * --------------------
514  *  From PIM for Retail (R12C), when the user is copying data across data levels
515  *  user must pass old and new data level
516  *
517  */
518 PROCEDURE Copy_User_Attrs_Data (
519         p_api_version                   IN   NUMBER
520        ,p_application_id                IN   NUMBER
521        ,p_object_id                     IN   NUMBER     DEFAULT NULL
522        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
523        ,p_old_pk_col_value_pairs        IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
524        ,p_old_data_level_id             IN   NUMBER   DEFAULT  NULL
525        ,p_old_dtlevel_col_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
526        ,p_new_pk_col_value_pairs        IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
527        ,p_new_data_level_id             IN   NUMBER   DEFAULT  NULL
528        ,p_new_dtlevel_col_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
529        ,p_new_cc_col_value_pairs        IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
530        ,p_attr_group_list               IN   VARCHAR2   DEFAULT  NULL
531        ,p_init_error_handler            IN   VARCHAR2   DEFAULT FND_API.G_FALSE
532        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
533        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
534        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
535        ,x_return_status                 OUT NOCOPY VARCHAR2
536        ,x_errorcode                     OUT NOCOPY NUMBER
537        ,x_msg_count                     OUT NOCOPY NUMBER
538        ,x_msg_data                      OUT NOCOPY VARCHAR2
539 );
540 
541 /*
542  * Implement_Change_Line
543  * ---------------------
544  */
545 PROCEDURE Implement_Change_Line (
546         p_api_version                   IN   NUMBER
547        ,p_object_name                   IN   VARCHAR2
548        ,p_production_b_table_name       IN   VARCHAR2
549        ,p_production_tl_table_name      IN   VARCHAR2
550        ,p_change_b_table_name           IN   VARCHAR2
551        ,p_change_tl_table_name          IN   VARCHAR2
552        ,p_tables_application_id         IN   NUMBER
553        ,p_change_line_id                IN   NUMBER
554        ,p_old_data_level_nv_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
555        ,p_new_data_level_nv_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
556        ,p_related_class_code_function   IN   VARCHAR2
557        ,p_init_msg_list                 IN   VARCHAR2   DEFAULT FND_API.G_FALSE
558        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
559        ,x_return_status                 OUT NOCOPY VARCHAR2
560        ,x_errorcode                     OUT NOCOPY NUMBER
561        ,x_msg_count                     OUT NOCOPY NUMBER
562        ,x_msg_data                      OUT NOCOPY VARCHAR2
563 );
564 
565 /*
566  * Get_Ext_Data
567  * ---------------------
568  */
569 PROCEDURE Get_Ext_Data (
570         p_attr_group_metadata_obj   IN   EGO_ATTR_GROUP_METADATA_OBJ
571        ,p_attr_metadata_obj         IN   EGO_ATTR_METADATA_OBJ
572        ,p_pk_col1                   IN   VARCHAR2
573        ,p_pk_col2                   IN   VARCHAR2   DEFAULT NULL
574        ,p_pk_col3                   IN   VARCHAR2   DEFAULT NULL
575        ,p_pk_col4                   IN   VARCHAR2   DEFAULT NULL
576        ,p_pk_col5                   IN   VARCHAR2   DEFAULT NULL
577        ,p_pk_value1                 IN   VARCHAR2
578        ,p_pk_value2                 IN   VARCHAR2   DEFAULT NULL
579        ,p_pk_value3                 IN   VARCHAR2   DEFAULT NULL
580        ,p_pk_value4                 IN   VARCHAR2   DEFAULT NULL
581        ,p_pk_value5                 IN   VARCHAR2   DEFAULT NULL
582        ,p_data_level                IN   VARCHAR2   DEFAULT NULL
583        ,p_dl_pk_values              IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
587        ,x_date_val                  OUT  NOCOPY     DATE
584        ,p_dl_metadata_obj           IN   EGO_DATA_LEVEL_METADATA_OBJ   DEFAULT NULL
585        ,x_str_val                   OUT  NOCOPY     VARCHAR2
586        ,x_num_val                   OUT  NOCOPY     NUMBER
588 );
589 
590 
591 
592 /*
593  * Get_User_Attr_Val
594  * -----------------
595  */
596 FUNCTION Get_User_Attr_Val (
597         p_appl_id           IN   NUMBER
598        ,p_attr_grp_type     IN   VARCHAR2
599        ,p_attr_grp_name     IN   VARCHAR2
600        ,p_attr_name         IN   VARCHAR2
601        ,p_object_name       IN   VARCHAR2
602        ,p_pk_col1           IN   VARCHAR2
603        ,p_pk_col2           IN   VARCHAR2   DEFAULT NULL
604        ,p_pk_col3           IN   VARCHAR2   DEFAULT NULL
605        ,p_pk_col4           IN   VARCHAR2   DEFAULT NULL
606        ,p_pk_col5           IN   VARCHAR2   DEFAULT NULL
607        ,p_pk_value1         IN   VARCHAR2
608        ,p_pk_value2         IN   VARCHAR2   DEFAULT NULL
609        ,p_pk_value3         IN   VARCHAR2   DEFAULT NULL
610        ,p_pk_value4         IN   VARCHAR2   DEFAULT NULL
611        ,p_pk_value5         IN   VARCHAR2   DEFAULT NULL
612        ,p_data_level        IN   VARCHAR2   DEFAULT NULL
613        ,p_dl_pk_values      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
614 )
615 RETURN VARCHAR2;
616 
617 
618 /*
619  * Tokenized_Val_Set_Query
620  * -----------------------
621  */
622 FUNCTION Tokenized_Val_Set_Query (
623         p_attr_metadata_obj             IN   EGO_ATTR_METADATA_OBJ
624        ,p_attr_group_metadata_obj       IN   EGO_ATTR_GROUP_METADATA_OBJ
625        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
626        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
627        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
628        ,p_entity_id                     IN   VARCHAR2
629        ,p_entity_index                  IN   NUMBER
630        ,p_entity_code                   IN   VARCHAR2
631        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
632        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
633        ,p_is_disp_to_int_query          IN   BOOLEAN
634        ,p_final_bind_value              IN   VARCHAR2
635        ,p_return_bound_sql              IN   BOOLEAN DEFAULT FALSE
636 )
637 RETURN VARCHAR2;
638 
639 
640 
641 /*
642  * Get_Int_Val_For_Disp_Val
643  * ------------------------
644  */
645 FUNCTION Get_Int_Val_For_Disp_Val (
646         p_attr_metadata_obj             IN   EGO_ATTR_METADATA_OBJ
647        ,p_attr_value_obj                IN   EGO_USER_ATTR_DATA_OBJ
648        ,p_attr_group_metadata_obj       IN   EGO_ATTR_GROUP_METADATA_OBJ
649        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
650        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
651        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
652        ,p_entity_id                     IN   VARCHAR2
653        ,p_entity_index                  IN   NUMBER
654        ,p_entity_code                   IN   VARCHAR2
655        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
656 )
657 RETURN VARCHAR2;
658 
659 
660 
661 /*
662  * Update_Attributes
663  * -------------------------
664  */
665 PROCEDURE Update_Attributes
666         ( p_pk_column_name_value_pairs    IN EGO_COL_NAME_VALUE_PAIR_ARRAY
667         , p_class_code_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
668         , p_data_level                    IN VARCHAR2  DEFAULT NULL
669         , p_data_level_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
670         , p_attr_diffs                    IN EGO_USER_ATTR_DIFF_TABLE
671         , p_transaction_type              IN VARCHAR2
672         , p_attr_group_id                 IN NUMBER DEFAULT NULL
673         , x_error_message                 OUT NOCOPY VARCHAR2
674         );
675 
676 
677 
678 /*
679  * Set_Up_Debug_Session
680  * --------------------
681  */
682 PROCEDURE Set_Up_Debug_Session (
683         p_entity_id                     IN   NUMBER
684        ,p_entity_code                   IN   VARCHAR2
685        ,p_debug_level                   IN   NUMBER DEFAULT 0
686 );
687 
688 
689 
690 /*
691  * Debug_Msg
692  * ---------
693  */
694 PROCEDURE Debug_Msg (
695         p_message                       IN VARCHAR2
696        ,p_level_of_debug                IN NUMBER       DEFAULT 3
697 );
698 
699 -- BEGIN AMAY
700 PROCEDURE Get_Attr_Diffs
701         ( p_object_name                   IN VARCHAR2
702         , p_pk_column_name_value_pairs    IN EGO_COL_NAME_VALUE_PAIR_ARRAY
703         , p_class_code_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
704         , p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
705         , p_data_level_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
706         , p_attr_group_id                 IN NUMBER DEFAULT NULL
707         , p_application_id                IN NUMBER DEFAULT NULL
708         , p_attr_group_type               IN VARCHAR2 DEFAULT NULL
709         , p_attr_group_name               IN VARCHAR2 DEFAULT NULL
710         , px_attr_diffs                   IN OUT NOCOPY EGO_USER_ATTR_DIFF_TABLE
711         , x_error_message                 OUT NOCOPY VARCHAR2
712         );
713 -- END AMAY
714 
715 /*
716  * Get_Attr_Disp_Val_From_ValueSet
717  * -------------------------------
718  * Function returns the display value
719  * of the attribute for a given internal value.
720  */
721  --gnanda api created for bug   4038065
722 FUNCTION Get_Attr_Disp_Val_From_VSet (
726         ,p_attr_internal_num_value      IN   NUMBER   DEFAULT NULL
723          p_application_id               IN   NUMBER
724         ,p_attr_internal_date_value     IN   DATE     DEFAULT NULL
725         ,p_attr_internal_str_value      IN   VARCHAR2 DEFAULT NULL
727         ,p_attr_internal_name           IN   VARCHAR2
728         ,p_attr_group_type              IN   VARCHAR2
729         ,p_attr_group_int_name          IN   VARCHAR2
730         ,p_attr_id                      IN   NUMBER
731         ,p_object_name                  IN   VARCHAR2
732         ,p_pk1_column_name              IN   VARCHAR2
733         ,p_pk1_value                    IN   VARCHAR2
734         ,p_pk2_column_name              IN   VARCHAR2 DEFAULT NULL
735         ,p_pk2_value                    IN   VARCHAR2 DEFAULT NULL
736         ,p_pk3_column_name              IN   VARCHAR2 DEFAULT NULL
737         ,p_pk3_value                    IN   VARCHAR2 DEFAULT NULL
738         ,p_pk4_column_name              IN   VARCHAR2 DEFAULT NULL
739         ,p_pk4_value                    IN   VARCHAR2 DEFAULT NULL
740         ,p_pk5_column_name              IN   VARCHAR2 DEFAULT NULL
741         ,p_pk5_value                    IN   VARCHAR2 DEFAULT NULL
742         ,p_data_level1_column_name      IN   VARCHAR2 DEFAULT NULL
743         ,p_data_level1_value            IN   VARCHAR2 DEFAULT NULL
744         ,p_data_level2_column_name      IN   VARCHAR2 DEFAULT NULL
745         ,p_data_level2_value            IN   VARCHAR2 DEFAULT NULL
746         ,p_data_level3_column_name      IN   VARCHAR2 DEFAULT NULL
747         ,p_data_level3_value            IN   VARCHAR2 DEFAULT NULL
748 )
749 RETURN VARCHAR2;
750 
751 
752 /*
753  * Get_Attr_Int_Val_From_VSet
754  * -------------------------------
755  * Function returns the internal value for a given display value
756  */
757 
758 FUNCTION Get_Attr_Int_Val_From_VSet (
759          p_application_id               IN   NUMBER
760         ,p_attr_disp_value              IN   VARCHAR2
761         ,p_attr_internal_name           IN   VARCHAR2
762         ,p_attr_group_type              IN   VARCHAR2
763         ,p_attr_group_int_name          IN   VARCHAR2
764         ,p_attr_group_id                IN   NUMBER
765         ,p_attr_id                      IN   NUMBER
766         ,p_return_intf_col              IN   VARCHAR2
767         ,p_object_name                  IN   VARCHAR2
768         ,p_ext_table_metadata_obj       IN   EGO_EXT_TABLE_METADATA_OBJ
769         ,p_pk1_column_name              IN   VARCHAR2
770         ,p_pk1_value                    IN   VARCHAR2
771         ,p_pk2_column_name              IN   VARCHAR2
772         ,p_pk2_value                    IN   VARCHAR2
773         ,p_pk3_column_name              IN   VARCHAR2
774         ,p_pk3_value                    IN   VARCHAR2
775         ,p_pk4_column_name              IN   VARCHAR2
776         ,p_pk4_value                    IN   VARCHAR2
777         ,p_pk5_column_name              IN   VARCHAR2
778         ,p_pk5_value                    IN   VARCHAR2
779         ,p_data_level1_column_name      IN   VARCHAR2
780         ,p_data_level1_value            IN   VARCHAR2
781         ,p_data_level2_column_name      IN   VARCHAR2
782         ,p_data_level2_value            IN   VARCHAR2
783         ,p_data_level3_column_name      IN   VARCHAR2
784         ,p_data_level3_value            IN   VARCHAR2
785         ,p_entity_id                    IN   VARCHAR2
786         ,p_entity_index                 IN   NUMBER
787         ,p_entity_code                  IN   VARCHAR2
788 )
789 RETURN VARCHAR2;
790 
791 
792 -----------------------------------------------
793 -- Wrappers for Add_Bind and Init
794 -----------------------------------------------
795 
796 PROCEDURE Add_Bind ( p_bind_identifier   IN VARCHAR2 DEFAULT NULL
797                     ,p_value             IN VARCHAR2);
798 
799 
800 PROCEDURE Add_Bind ( p_bind_identifier   IN VARCHAR2 DEFAULT NULL
801                     ,p_value             IN DATE);
802 
803 
804 PROCEDURE Add_Bind ( p_bind_identifier   IN VARCHAR2 DEFAULT NULL
805                     ,p_value             IN NUMBER);
806 
807 
808 
809 PROCEDURE Set_Binds_And_Dml( p_sql IN VARCHAR2
810                             ,p_mode IN VARCHAR2);
811 
812 PROCEDURE Init;
813 ---------------------------------------------------------------
814 
815 
816 
817 
818 ------------------------------------------------------------------
819 -- Following API's are exposed for CM, they need these API's    --
820 -- for moving the change line implementation code to CM package --
821 -- :gnanda                                                      --
822 ------------------------------------------------------------------
823 
824 FUNCTION Get_Table_Columns_List (
825         p_application_id                IN   NUMBER
826        ,p_from_table_name               IN   VARCHAR2
827        ,p_from_cols_to_exclude_list     IN   VARCHAR2   DEFAULT NULL
828        ,p_from_table_alias_prefix       IN   VARCHAR2   DEFAULT NULL
829        ,p_to_table_name                 IN   VARCHAR2   DEFAULT NULL
830        ,p_to_table_alias_prefix         IN   VARCHAR2   DEFAULT NULL
831        ,p_in_line_view_where_clause     IN   VARCHAR2   DEFAULT NULL
832        ,p_cast_date_cols_to_char        IN   BOOLEAN    DEFAULT FALSE
833 )
834 RETURN VARCHAR2;
835 
836 FUNCTION Is_Data_Level_Correct (
837         p_object_id                     IN   NUMBER
838        ,p_attr_group_id                 IN   NUMBER
839        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
840        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
841        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
842        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
843        ,p_attr_group_disp_name          IN   VARCHAR2
847 RETURN BOOLEAN;
844        ,x_err_msg_name                  OUT NOCOPY VARCHAR2
845        ,x_token_table                   OUT NOCOPY ERROR_HANDLER.Token_Tbl_Type
846 )
848 
849 FUNCTION Get_Extension_Id_For_Row (
850         p_attr_group_metadata_obj       IN   EGO_ATTR_GROUP_METADATA_OBJ
851        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
852        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
853        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
854        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
855        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
856        ,p_change_obj                    IN   EGO_USER_ATTR_CHANGE_OBJ DEFAULT NULL
857        ,p_extra_pk_col_name_val_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
858        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT NULL
859        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT NULL
860 )
861 RETURN NUMBER;
862 ------------------------------------------------------------------
863 -- Above API's are exposed for CM, they need these API's        --
864 -- for moving the change line implementation code to CM package --
865 -- :gnanda                                                      --
866 ------------------------------------------------------------------
867 
868 /*
869  * Validate_Required_Attrs
870  * -----------------------
871  * Validate_Required_Attrs validates data for one object instance by
872  * checking which fields required fields does not have a value.
873  * The procedure takes in a primary key object, the object name,
874  * class code and data level information, as well as a list of
875  * attribute group types on which object data should be
876  * validated.
877  * The procedure returns a table of user attribute object listing
878  * required attributes for which the object does not have a value.
879  */
880 PROCEDURE Validate_Required_Attrs (
881         p_api_version                   IN   NUMBER
882        ,p_object_name                   IN   VARCHAR2
883        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
884        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
885        ,p_data_level_name               IN   EGO_DATA_LEVEL_B.DATA_LEVEL_NAME%TYPE := NULL
886        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
887        ,p_attr_group_type_table         IN   EGO_VARCHAR_TBL_TYPE
888        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
889        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
890        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
891        ,p_debug_level                   IN   NUMBER     DEFAULT 0
892        ,p_init_error_handler            IN   VARCHAR2   DEFAULT FND_API.G_TRUE
893        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
894        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
895        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
896        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
897        ,x_attributes_req_table          OUT NOCOPY EGO_USER_ATTR_TABLE
898        ,x_return_status                 OUT NOCOPY VARCHAR2
899        ,x_errorcode                     OUT NOCOPY NUMBER
900        ,x_msg_count                     OUT NOCOPY NUMBER
901        ,x_msg_data                      OUT NOCOPY VARCHAR2
902 );
903 
904 
905 
906 
907 /*
908  * Get_Object_Id_From_Name
909  * ------------
910  * This API would return the object id for a given object name.
911 */
912 
913 FUNCTION Get_Object_Id_From_Name (
914         p_object_name                   IN   VARCHAR2
915     )
916 RETURN NUMBER;
917 
918 
919 
920 /*
921  * Apply_Default_Vals_For_Entity
922  * ------------
923  * Apply_Default_Vals_For_Entity : This API should be called after the entity creation
924  * is successfuly done. This API would set the default values for attributes in the all
925  * the single row attribute groups not having a required attribute for the givent entity.
926  */
927 
928 
929 PROCEDURE Apply_Default_Vals_For_Entity (
930         p_object_name                   IN   VARCHAR2
931        ,p_application_id                IN   NUMBER
932        ,p_attr_group_type               IN   VARCHAR2
933        ,p_attr_groups_to_exclude        IN   VARCHAR2   DEFAULT NULL
934        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
935        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
936        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL
937        ,p_data_level_values             IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
938        ,p_additional_class_Code_list    IN   VARCHAR2   DEFAULT NULL
939        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
940        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
941        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
942        ,p_debug_level                   IN   NUMBER     DEFAULT 0
943        ,p_init_error_handler            IN   VARCHAR2   DEFAULT FND_API.G_FALSE
944        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
945        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
946        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
947        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
948        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
949        ,x_failed_row_id_list            OUT NOCOPY VARCHAR2
950        ,x_return_status                 OUT NOCOPY VARCHAR2
951        ,x_errorcode                     OUT NOCOPY NUMBER
952        ,x_msg_count                     OUT NOCOPY NUMBER
953        ,x_msg_data                      OUT NOCOPY VARCHAR2
954        );
955 
956 /*
957 *Bug:9277377
958 *Add the function to check column for both table and view oject
959 */
960 FUNCTION HAS_COLUMN_IN_TABLE_VIEW (p_object_name  IN  VARCHAR2
961                              ,p_column_name IN  VARCHAR2
962                              )
963 RETURN VARCHAR2;
964 
965 END EGO_USER_ATTRS_DATA_PVT;
966