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