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.15 2007/06/01 13:33:02 srajapar 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
284 
281        ,x_msg_count                     OUT NOCOPY NUMBER
282        ,x_msg_data                      OUT NOCOPY VARCHAR2
283 );
285 /*
286  * Validate_Row
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 
378         p_api_version                   IN   NUMBER
375 /* Overload method with additional parameters x_extension_id, x_mode */
376 
377 PROCEDURE Perform_DML_On_Row (
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
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
387        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
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        ,x_extension_id                  OUT NOCOPY NUMBER
408        ,x_mode                          OUT NOCOPY VARCHAR2
409        ,x_return_status                 OUT NOCOPY VARCHAR2
410        ,x_errorcode                     OUT NOCOPY NUMBER
411        ,x_msg_count                     OUT NOCOPY NUMBER
412        ,x_msg_data                      OUT NOCOPY VARCHAR2
413 );
414 
415 
416 
417 PROCEDURE Generate_DML_For_Row (
418         p_api_version                      IN   NUMBER
419        ,p_object_id                        IN   NUMBER     DEFAULT NULL
420        ,p_object_name                      IN   VARCHAR2   DEFAULT NULL
421        ,p_attr_group_id                    IN   NUMBER     DEFAULT NULL
422        ,p_application_id                   IN   NUMBER     DEFAULT NULL
423        ,p_attr_group_type                  IN   VARCHAR2   DEFAULT NULL
424        ,p_attr_group_name                  IN   VARCHAR2   DEFAULT NULL
425        ,p_pk_column_name_value_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
426        ,p_class_code_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
427        ,p_data_level                       IN   VARCHAR2   DEFAULT NULL --R12C
428        ,p_data_level_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
429        ,p_extension_id                     IN   NUMBER     DEFAULT NULL
430        ,p_attr_name_value_pairs            IN   EGO_USER_ATTR_DATA_TABLE
431        ,p_mode                             IN   VARCHAR2   DEFAULT G_SYNC_MODE
432        ,p_extra_pk_col_name_val_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
433        ,p_extra_attr_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
434        ,p_alternate_ext_b_table_name       IN   VARCHAR2   DEFAULT NULL
435        ,p_alternate_ext_tl_table_name      IN   VARCHAR2   DEFAULT NULL
436        ,p_alternate_ext_vl_name            IN   VARCHAR2   DEFAULT NULL
437        ,p_execute_dml                      IN   VARCHAR2   DEFAULT FND_API.G_FALSE
438        ,p_entity_id                        IN   NUMBER     DEFAULT NULL
439        ,p_entity_index                     IN   NUMBER     DEFAULT NULL
440        ,p_entity_code                      IN   VARCHAR2   DEFAULT NULL
441        ,p_debug_level                      IN   NUMBER     DEFAULT 0
442        ,p_use_def_vals_on_insert           IN   VARCHAR2   DEFAULT FND_API.G_FALSE
443        ,p_log_errors                       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
444        ,p_init_fnd_msg_list                IN   VARCHAR2   DEFAULT FND_API.G_FALSE
445        ,p_write_to_concurrent_log          IN   VARCHAR2   DEFAULT FND_API.G_FALSE
446        ,p_add_errors_to_fnd_stack          IN   VARCHAR2   DEFAULT FND_API.G_FALSE
447        ,p_commit                           IN   VARCHAR2   DEFAULT FND_API.G_FALSE
448        ,p_bulkload_flag                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
449        ,p_raise_business_event             IN   BOOLEAN DEFAULT TRUE
450        ,x_return_status                    OUT NOCOPY VARCHAR2
451        ,x_errorcode                        OUT NOCOPY NUMBER
452        ,x_msg_count                        OUT NOCOPY NUMBER
453        ,x_msg_data                         OUT NOCOPY VARCHAR2
454        ,x_b_dml_for_ag                     OUT NOCOPY VARCHAR2
455        ,x_tl_dml_for_ag                    OUT NOCOPY VARCHAR2
456        ,x_b_bind_count                     OUT NOCOPY NUMBER
457        ,x_tl_bind_count                    OUT NOCOPY NUMBER
458        ,x_b_bind_attr_table                OUT NOCOPY EGO_USER_ATTR_DATA_TABLE
462 
459        ,x_tl_bind_attr_table               OUT NOCOPY EGO_USER_ATTR_DATA_TABLE
460        );
461 
463 
464 FUNCTION Get_Extension_Id (
465         p_object_name                      IN   VARCHAR2
466        ,p_attr_group_id                    IN   NUMBER     DEFAULT NULL
467        ,p_application_id                   IN   NUMBER
468        ,p_attr_group_type                  IN   VARCHAR2
469        ,p_attr_group_name                  IN   VARCHAR2   DEFAULT NULL
470        ,p_pk_column_name_value_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
471        ,p_data_level                       IN   VARCHAR2   DEFAULT NULL --R12C
472        ,p_data_level_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
473        ,p_attr_name_value_pairs            IN   EGO_USER_ATTR_DATA_TABLE
474        ,p_extra_pk_col_name_val_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
475        ,p_extra_attr_name_value_pairs      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
476        ,p_alternate_ext_b_table_name       IN   VARCHAR2   DEFAULT NULL
477        ,p_alternate_ext_tl_table_name      IN   VARCHAR2   DEFAULT NULL
478        ,p_alternate_ext_vl_name            IN   VARCHAR2   DEFAULT NULL
479        ) RETURN NUMBER ;
480 
481 
482 /*
483  * Perform_DML_From_Template
484  * -------------------------
485  */
486 PROCEDURE Perform_DML_From_Template (
487         p_api_version                   IN   NUMBER
488        ,p_template_id                   IN   NUMBER
489        ,p_object_name                   IN   VARCHAR2
490        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
491        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
492        ,p_data_level                    IN   VARCHAR2 DEFAULT NULL
493        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
494        ,p_attr_group_ids_to_exclude     IN   EGO_NUMBER_TBL_TYPE           DEFAULT NULL
495        ,p_debug_level                   IN   NUMBER     DEFAULT 0
496        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
497        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
498        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
499        ,x_return_status                 OUT NOCOPY VARCHAR2
500        ,x_errorcode                     OUT NOCOPY NUMBER
501        ,x_msg_count                     OUT NOCOPY NUMBER
502        ,x_msg_data                      OUT NOCOPY VARCHAR2
503 );
504 
505 
506 
507 /*
508  * Copy_User_Attrs_Data
509  * --------------------
510  *  From PIM for Retail (R12C), when the user is copying data across data levels
511  *  user must pass old and new data level
512  *
513  */
514 PROCEDURE Copy_User_Attrs_Data (
515         p_api_version                   IN   NUMBER
516        ,p_application_id                IN   NUMBER
517        ,p_object_id                     IN   NUMBER     DEFAULT NULL
518        ,p_object_name                   IN   VARCHAR2   DEFAULT NULL
519        ,p_old_pk_col_value_pairs        IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
520        ,p_old_data_level_id             IN   NUMBER   DEFAULT  NULL
521        ,p_old_dtlevel_col_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
522        ,p_new_pk_col_value_pairs        IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
523        ,p_new_data_level_id             IN   NUMBER   DEFAULT  NULL
524        ,p_new_dtlevel_col_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
525        ,p_new_cc_col_value_pairs        IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
526        ,p_attr_group_list               IN   VARCHAR2   DEFAULT  NULL
527        ,p_init_error_handler            IN   VARCHAR2   DEFAULT FND_API.G_FALSE
528        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
529        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
530        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
531        ,x_return_status                 OUT NOCOPY VARCHAR2
532        ,x_errorcode                     OUT NOCOPY NUMBER
533        ,x_msg_count                     OUT NOCOPY NUMBER
534        ,x_msg_data                      OUT NOCOPY VARCHAR2
535 );
536 
537 /*
538  * Implement_Change_Line
539  * ---------------------
540  */
541 PROCEDURE Implement_Change_Line (
542         p_api_version                   IN   NUMBER
543        ,p_object_name                   IN   VARCHAR2
544        ,p_production_b_table_name       IN   VARCHAR2
545        ,p_production_tl_table_name      IN   VARCHAR2
546        ,p_change_b_table_name           IN   VARCHAR2
547        ,p_change_tl_table_name          IN   VARCHAR2
548        ,p_tables_application_id         IN   NUMBER
549        ,p_change_line_id                IN   NUMBER
550        ,p_old_data_level_nv_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
551        ,p_new_data_level_nv_pairs       IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
552        ,p_related_class_code_function   IN   VARCHAR2
553        ,p_init_msg_list                 IN   VARCHAR2   DEFAULT FND_API.G_FALSE
554        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
555        ,x_return_status                 OUT NOCOPY VARCHAR2
556        ,x_errorcode                     OUT NOCOPY NUMBER
557        ,x_msg_count                     OUT NOCOPY NUMBER
558        ,x_msg_data                      OUT NOCOPY VARCHAR2
559 );
560 
561 /*
562  * Get_Ext_Data
563  * ---------------------
564  */
565 PROCEDURE Get_Ext_Data (
569        ,p_pk_col2                   IN   VARCHAR2   DEFAULT NULL
566         p_attr_group_metadata_obj   IN   EGO_ATTR_GROUP_METADATA_OBJ
567        ,p_attr_metadata_obj         IN   EGO_ATTR_METADATA_OBJ
568        ,p_pk_col1                   IN   VARCHAR2
570        ,p_pk_col3                   IN   VARCHAR2   DEFAULT NULL
571        ,p_pk_col4                   IN   VARCHAR2   DEFAULT NULL
572        ,p_pk_col5                   IN   VARCHAR2   DEFAULT NULL
573        ,p_pk_value1                 IN   VARCHAR2
574        ,p_pk_value2                 IN   VARCHAR2   DEFAULT NULL
575        ,p_pk_value3                 IN   VARCHAR2   DEFAULT NULL
576        ,p_pk_value4                 IN   VARCHAR2   DEFAULT NULL
577        ,p_pk_value5                 IN   VARCHAR2   DEFAULT NULL
578        ,p_data_level                IN   VARCHAR2   DEFAULT NULL
579        ,p_dl_pk_values              IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
580        ,p_dl_metadata_obj           IN   EGO_DATA_LEVEL_METADATA_OBJ   DEFAULT NULL
581        ,x_str_val                   OUT  NOCOPY     VARCHAR2
582        ,x_num_val                   OUT  NOCOPY     NUMBER
583        ,x_date_val                  OUT  NOCOPY     DATE
584 );
585 
586 
587 
588 /*
589  * Get_User_Attr_Val
590  * -----------------
591  */
592 FUNCTION Get_User_Attr_Val (
593         p_appl_id           IN   NUMBER
594        ,p_attr_grp_type     IN   VARCHAR2
595        ,p_attr_grp_name     IN   VARCHAR2
596        ,p_attr_name         IN   VARCHAR2
597        ,p_object_name       IN   VARCHAR2
598        ,p_pk_col1           IN   VARCHAR2
599        ,p_pk_col2           IN   VARCHAR2   DEFAULT NULL
600        ,p_pk_col3           IN   VARCHAR2   DEFAULT NULL
601        ,p_pk_col4           IN   VARCHAR2   DEFAULT NULL
602        ,p_pk_col5           IN   VARCHAR2   DEFAULT NULL
603        ,p_pk_value1         IN   VARCHAR2
604        ,p_pk_value2         IN   VARCHAR2   DEFAULT NULL
605        ,p_pk_value3         IN   VARCHAR2   DEFAULT NULL
606        ,p_pk_value4         IN   VARCHAR2   DEFAULT NULL
607        ,p_pk_value5         IN   VARCHAR2   DEFAULT NULL
608        ,p_data_level        IN   VARCHAR2   DEFAULT NULL
609        ,p_dl_pk_values      IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
610 )
611 RETURN VARCHAR2;
612 
613 
614 /*
615  * Tokenized_Val_Set_Query
616  * -----------------------
617  */
618 FUNCTION Tokenized_Val_Set_Query (
619         p_attr_metadata_obj             IN   EGO_ATTR_METADATA_OBJ
620        ,p_attr_group_metadata_obj       IN   EGO_ATTR_GROUP_METADATA_OBJ
621        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
622        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
623        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
624        ,p_entity_id                     IN   VARCHAR2
625        ,p_entity_index                  IN   NUMBER
626        ,p_entity_code                   IN   VARCHAR2
627        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
628        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
629        ,p_is_disp_to_int_query          IN   BOOLEAN
630        ,p_final_bind_value              IN   VARCHAR2
631        ,p_return_bound_sql              IN   BOOLEAN DEFAULT FALSE
632 )
633 RETURN VARCHAR2;
634 
635 
636 
637 /*
638  * Get_Int_Val_For_Disp_Val
639  * ------------------------
640  */
641 FUNCTION Get_Int_Val_For_Disp_Val (
642         p_attr_metadata_obj             IN   EGO_ATTR_METADATA_OBJ
643        ,p_attr_value_obj                IN   EGO_USER_ATTR_DATA_OBJ
644        ,p_attr_group_metadata_obj       IN   EGO_ATTR_GROUP_METADATA_OBJ
645        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
646        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
647        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
648        ,p_entity_id                     IN   VARCHAR2
649        ,p_entity_index                  IN   NUMBER
650        ,p_entity_code                   IN   VARCHAR2
651        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
652 )
653 RETURN VARCHAR2;
654 
655 
656 
657 /*
658  * Update_Attributes
659  * -------------------------
660  */
661 PROCEDURE Update_Attributes
662         ( p_pk_column_name_value_pairs    IN EGO_COL_NAME_VALUE_PAIR_ARRAY
663         , p_class_code_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
664         , p_data_level                    IN VARCHAR2  DEFAULT NULL
665         , p_data_level_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
666         , p_attr_diffs                    IN EGO_USER_ATTR_DIFF_TABLE
667         , p_transaction_type              IN VARCHAR2
668         , p_attr_group_id                 IN NUMBER DEFAULT NULL
669         , x_error_message                 OUT NOCOPY VARCHAR2
670         );
671 
672 
673 
674 /*
675  * Set_Up_Debug_Session
676  * --------------------
677  */
678 PROCEDURE Set_Up_Debug_Session (
679         p_entity_id                     IN   NUMBER
680        ,p_entity_code                   IN   VARCHAR2
681        ,p_debug_level                   IN   NUMBER DEFAULT 0
682 );
683 
684 
685 
686 /*
687  * Debug_Msg
688  * ---------
689  */
690 PROCEDURE Debug_Msg (
691         p_message                       IN VARCHAR2
692        ,p_level_of_debug                IN NUMBER       DEFAULT 3
693 );
694 
698         , p_pk_column_name_value_pairs    IN EGO_COL_NAME_VALUE_PAIR_ARRAY
695 -- BEGIN AMAY
696 PROCEDURE Get_Attr_Diffs
697         ( p_object_name                   IN VARCHAR2
699         , p_class_code_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
700         , p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
701         , p_data_level_name_value_pairs   IN EGO_COL_NAME_VALUE_PAIR_ARRAY
702         , p_attr_group_id                 IN NUMBER DEFAULT NULL
703         , p_application_id                IN NUMBER DEFAULT NULL
704         , p_attr_group_type               IN VARCHAR2 DEFAULT NULL
705         , p_attr_group_name               IN VARCHAR2 DEFAULT NULL
706         , px_attr_diffs                   IN OUT NOCOPY EGO_USER_ATTR_DIFF_TABLE
707         , x_error_message                 OUT NOCOPY VARCHAR2
708         );
709 -- END AMAY
710 
711 /*
712  * Get_Attr_Disp_Val_From_ValueSet
713  * -------------------------------
714  * Function returns the display value
715  * of the attribute for a given internal value.
716  */
717  --gnanda api created for bug   4038065
718 FUNCTION Get_Attr_Disp_Val_From_VSet (
719          p_application_id               IN   NUMBER
720         ,p_attr_internal_date_value     IN   DATE     DEFAULT NULL
721         ,p_attr_internal_str_value      IN   VARCHAR2 DEFAULT NULL
722         ,p_attr_internal_num_value      IN   NUMBER   DEFAULT NULL
723         ,p_attr_internal_name           IN   VARCHAR2
724         ,p_attr_group_type              IN   VARCHAR2
725         ,p_attr_group_int_name          IN   VARCHAR2
726         ,p_attr_id                      IN   NUMBER
727         ,p_object_name                  IN   VARCHAR2
728         ,p_pk1_column_name              IN   VARCHAR2
729         ,p_pk1_value                    IN   VARCHAR2
730         ,p_pk2_column_name              IN   VARCHAR2 DEFAULT NULL
731         ,p_pk2_value                    IN   VARCHAR2 DEFAULT NULL
732         ,p_pk3_column_name              IN   VARCHAR2 DEFAULT NULL
733         ,p_pk3_value                    IN   VARCHAR2 DEFAULT NULL
734         ,p_pk4_column_name              IN   VARCHAR2 DEFAULT NULL
735         ,p_pk4_value                    IN   VARCHAR2 DEFAULT NULL
736         ,p_pk5_column_name              IN   VARCHAR2 DEFAULT NULL
737         ,p_pk5_value                    IN   VARCHAR2 DEFAULT NULL
738         ,p_data_level1_column_name      IN   VARCHAR2 DEFAULT NULL
739         ,p_data_level1_value            IN   VARCHAR2 DEFAULT NULL
740         ,p_data_level2_column_name      IN   VARCHAR2 DEFAULT NULL
741         ,p_data_level2_value            IN   VARCHAR2 DEFAULT NULL
742         ,p_data_level3_column_name      IN   VARCHAR2 DEFAULT NULL
743         ,p_data_level3_value            IN   VARCHAR2 DEFAULT NULL
744 )
745 RETURN VARCHAR2;
746 
747 
748 /*
749  * Get_Attr_Int_Val_From_VSet
750  * -------------------------------
751  * Function returns the internal value for a given display value
752  */
753 
754 FUNCTION Get_Attr_Int_Val_From_VSet (
755          p_application_id               IN   NUMBER
756         ,p_attr_disp_value              IN   VARCHAR2
757         ,p_attr_internal_name           IN   VARCHAR2
758         ,p_attr_group_type              IN   VARCHAR2
759         ,p_attr_group_int_name          IN   VARCHAR2
760         ,p_attr_group_id                IN   NUMBER
761         ,p_attr_id                      IN   NUMBER
762         ,p_return_intf_col              IN   VARCHAR2
763         ,p_object_name                  IN   VARCHAR2
764         ,p_ext_table_metadata_obj       IN   EGO_EXT_TABLE_METADATA_OBJ
765         ,p_pk1_column_name              IN   VARCHAR2
766         ,p_pk1_value                    IN   VARCHAR2
767         ,p_pk2_column_name              IN   VARCHAR2
768         ,p_pk2_value                    IN   VARCHAR2
769         ,p_pk3_column_name              IN   VARCHAR2
770         ,p_pk3_value                    IN   VARCHAR2
771         ,p_pk4_column_name              IN   VARCHAR2
772         ,p_pk4_value                    IN   VARCHAR2
773         ,p_pk5_column_name              IN   VARCHAR2
774         ,p_pk5_value                    IN   VARCHAR2
775         ,p_data_level1_column_name      IN   VARCHAR2
776         ,p_data_level1_value            IN   VARCHAR2
777         ,p_data_level2_column_name      IN   VARCHAR2
778         ,p_data_level2_value            IN   VARCHAR2
779         ,p_data_level3_column_name      IN   VARCHAR2
780         ,p_data_level3_value            IN   VARCHAR2
781         ,p_entity_id                    IN   VARCHAR2
782         ,p_entity_index                 IN   NUMBER
783         ,p_entity_code                  IN   VARCHAR2
784 )
785 RETURN VARCHAR2;
786 
787 
788 -----------------------------------------------
789 -- Wrappers for Add_Bind and Init
790 -----------------------------------------------
791 
792 PROCEDURE Add_Bind ( p_bind_identifier   IN VARCHAR2 DEFAULT NULL
793                     ,p_value             IN VARCHAR2);
794 
795 
796 PROCEDURE Add_Bind ( p_bind_identifier   IN VARCHAR2 DEFAULT NULL
797                     ,p_value             IN DATE);
798 
799 
800 PROCEDURE Add_Bind ( p_bind_identifier   IN VARCHAR2 DEFAULT NULL
801                     ,p_value             IN NUMBER);
802 
803 
804 
805 PROCEDURE Set_Binds_And_Dml( p_sql IN VARCHAR2
806                             ,p_mode IN VARCHAR2);
807 
808 PROCEDURE Init;
809 ---------------------------------------------------------------
810 
811 
812 
813 
817 -- :gnanda                                                      --
814 ------------------------------------------------------------------
815 -- Following API's are exposed for CM, they need these API's    --
816 -- for moving the change line implementation code to CM package --
818 ------------------------------------------------------------------
819 
820 FUNCTION Get_Table_Columns_List (
821         p_application_id                IN   NUMBER
822        ,p_from_table_name               IN   VARCHAR2
823        ,p_from_cols_to_exclude_list     IN   VARCHAR2   DEFAULT NULL
824        ,p_from_table_alias_prefix       IN   VARCHAR2   DEFAULT NULL
825        ,p_to_table_name                 IN   VARCHAR2   DEFAULT NULL
826        ,p_to_table_alias_prefix         IN   VARCHAR2   DEFAULT NULL
827        ,p_in_line_view_where_clause     IN   VARCHAR2   DEFAULT NULL
828        ,p_cast_date_cols_to_char        IN   BOOLEAN    DEFAULT FALSE
829 )
830 RETURN VARCHAR2;
831 
832 FUNCTION Is_Data_Level_Correct (
833         p_object_id                     IN   NUMBER
834        ,p_attr_group_id                 IN   NUMBER
835        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
836        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
837        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
838        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
839        ,p_attr_group_disp_name          IN   VARCHAR2
840        ,x_err_msg_name                  OUT NOCOPY VARCHAR2
841        ,x_token_table                   OUT NOCOPY ERROR_HANDLER.Token_Tbl_Type
842 )
843 RETURN BOOLEAN;
844 
845 FUNCTION Get_Extension_Id_For_Row (
846         p_attr_group_metadata_obj       IN   EGO_ATTR_GROUP_METADATA_OBJ
847        ,p_ext_table_metadata_obj        IN   EGO_EXT_TABLE_METADATA_OBJ
848        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
849        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL --R12C
850        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
851        ,p_attr_name_value_pairs         IN   EGO_USER_ATTR_DATA_TABLE
852        ,p_change_obj                    IN   EGO_USER_ATTR_CHANGE_OBJ DEFAULT NULL
853        ,p_extra_pk_col_name_val_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY DEFAULT NULL
854        ,p_pending_b_table_name          IN   VARCHAR2   DEFAULT NULL
855        ,p_pending_vl_name               IN   VARCHAR2   DEFAULT NULL
856 )
857 RETURN NUMBER;
858 ------------------------------------------------------------------
859 -- Above API's are exposed for CM, they need these API's        --
860 -- for moving the change line implementation code to CM package --
861 -- :gnanda                                                      --
862 ------------------------------------------------------------------
863 
864 /*
865  * Validate_Required_Attrs
866  * -----------------------
867  * Validate_Required_Attrs validates data for one object instance by
868  * checking which fields required fields does not have a value.
869  * The procedure takes in a primary key object, the object name,
870  * class code and data level information, as well as a list of
871  * attribute group types on which object data should be
872  * validated.
873  * The procedure returns a table of user attribute object listing
874  * required attributes for which the object does not have a value.
875  */
876 PROCEDURE Validate_Required_Attrs (
877         p_api_version                   IN   NUMBER
878        ,p_object_name                   IN   VARCHAR2
879        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
880        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
881        ,p_data_level_name               IN   EGO_DATA_LEVEL_B.DATA_LEVEL_NAME%TYPE := NULL
882        ,p_data_level_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
883        ,p_attr_group_type_table         IN   EGO_VARCHAR_TBL_TYPE
884        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
885        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
886        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
887        ,p_debug_level                   IN   NUMBER     DEFAULT 0
888        ,p_init_error_handler            IN   VARCHAR2   DEFAULT FND_API.G_TRUE
889        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
890        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
891        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
892        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
893        ,x_attributes_req_table          OUT NOCOPY EGO_USER_ATTR_TABLE
894        ,x_return_status                 OUT NOCOPY VARCHAR2
895        ,x_errorcode                     OUT NOCOPY NUMBER
896        ,x_msg_count                     OUT NOCOPY NUMBER
897        ,x_msg_data                      OUT NOCOPY VARCHAR2
898 );
899 
900 
901 
902 
903 /*
904  * Get_Object_Id_From_Name
905  * ------------
906  * This API would return the object id for a given object name.
907 */
908 
909 FUNCTION Get_Object_Id_From_Name (
910         p_object_name                   IN   VARCHAR2
911     )
912 RETURN NUMBER;
913 
914 
915 
916 /*
917  * Apply_Default_Vals_For_Entity
918  * ------------
919  * Apply_Default_Vals_For_Entity : This API should be called after the entity creation
920  * is successfuly done. This API would set the default values for attributes in the all
921  * the single row attribute groups not having a required attribute for the givent entity.
922  */
923 
924 
925 PROCEDURE Apply_Default_Vals_For_Entity (
926         p_object_name                   IN   VARCHAR2
927        ,p_application_id                IN   NUMBER
928        ,p_attr_group_type               IN   VARCHAR2
929        ,p_attr_groups_to_exclude        IN   VARCHAR2   DEFAULT NULL
930        ,p_pk_column_name_value_pairs    IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
931        ,p_class_code_name_value_pairs   IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
932        ,p_data_level                    IN   VARCHAR2   DEFAULT NULL
933        ,p_data_level_values             IN   EGO_COL_NAME_VALUE_PAIR_ARRAY
934        ,p_additional_class_Code_list    IN   VARCHAR2   DEFAULT NULL
935        ,p_entity_id                     IN   NUMBER     DEFAULT NULL
936        ,p_entity_index                  IN   NUMBER     DEFAULT NULL
937        ,p_entity_code                   IN   VARCHAR2   DEFAULT NULL
938        ,p_debug_level                   IN   NUMBER     DEFAULT 0
939        ,p_init_error_handler            IN   VARCHAR2   DEFAULT FND_API.G_FALSE
940        ,p_write_to_concurrent_log       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
941        ,p_init_fnd_msg_list             IN   VARCHAR2   DEFAULT FND_API.G_FALSE
942        ,p_log_errors                    IN   VARCHAR2   DEFAULT FND_API.G_FALSE
943        ,p_add_errors_to_fnd_stack       IN   VARCHAR2   DEFAULT FND_API.G_FALSE
944        ,p_commit                        IN   VARCHAR2   DEFAULT FND_API.G_FALSE
945        ,x_failed_row_id_list            OUT NOCOPY VARCHAR2
946        ,x_return_status                 OUT NOCOPY VARCHAR2
947        ,x_errorcode                     OUT NOCOPY NUMBER
948        ,x_msg_count                     OUT NOCOPY NUMBER
949        ,x_msg_data                      OUT NOCOPY VARCHAR2
950        );
951 
952 
953 END EGO_USER_ATTRS_DATA_PVT;
954