[Home] [Help]
PACKAGE BODY: APPS.PO_UDA_DEFAULTING_PKG
Source
1 PACKAGE BODY po_uda_defaulting_pkg AS
2 /* $Header: PO_UDA_DEFAULTING_PKG.plb 120.25.12020000.2 2013/02/11 01:55:11 vegajula ship $ */
3
4
5 --------------------------------------------------------------------------------------------------------------------
6 --Start of Comments
7 --Name: IS_VALID_AG_LIST
8 --Function:
9 -- This function returns true or false depending on the pk values, template id and attribute group table
10 -- wether the attribute groups are populated in the extention table or not
11 --Parameters:
12 --IN:
13 -- 1. p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value
14 -- The Primary Key values for the UDA Attributes
15 -- 2. p_template_id
16 -- This variable would contain the template id for which the actions are to be executed
17 -- 3. p_attr_grp_ids_list
18 -- This variable would contain the list attribute groups to find out if they are populated in the
19 -- Ext. table via. UI
20 --RETURN
21 -- BOOLEAN
22 --End of Comments
23 --------------------------------------------------------------------------------------------------------------------
24 g_debug_stmt CONSTANT BOOLEAN := PO_DEBUG.is_debug_stmt_on;
25 g_debug_unexp CONSTANT BOOLEAN := PO_DEBUG.is_debug_unexp_on;
26
27 FUNCTION IS_VALID_AG_LIST
28 (
29 p_pk1_value IN NUMBER
30 ,p_pk2_value IN NUMBER
31 ,p_pk3_value IN NUMBER
32 ,p_pk4_value IN NUMBER
33 ,p_pk5_value IN NUMBER
34 ,p_template_id IN NUMBER
35 ,p_attr_grp_ids_list IN PO_TBL_NUMBER
36 )
37 RETURN BOOLEAN IS
38
39 d_progress NUMBER;
40 l_return_status BOOLEAN;
41 l_err_txt VARCHAR2(2000);
42
43 BEGIN
44 /* We need to loop through all the AG's in the list
45 for checking if ag_list is valid. Even if one AG for
46 a usage is having rows populated return false so that
47 defaulting doesn't happen again*/
48
49 d_progress := 10;
50 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.IS_VALID_AG_LIST with parameters' , d_progress);
51 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value :' || p_pk1_value, d_progress);
52 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value :' || p_pk1_value, d_progress);
53 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value :' || p_pk1_value, d_progress);
54 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value :' || p_pk1_value, d_progress);
55 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk5_value :' || p_pk1_value, d_progress);
56 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id :' || p_template_id, d_progress);
57 PO_UDA_DEFAULTING_PKG.DEBUG(p_attr_grp_ids_list, d_progress);
58 d_progress := 20;
59
60 IF p_attr_grp_ids_list.Count > 0 THEN
61 PO_UDA_DEFAULTING_PKG.DEBUG('Count of p_attr_grp_ids_list is : > 0' , d_progress);
62 d_progress := 30;
63 FOR i IN 1.. p_attr_grp_ids_list.last LOOP
64 d_progress := 40;
65 l_return_status := IS_VALID_AG (p_pk1_value => p_pk1_value
66 ,p_pk2_value => p_pk2_value
67 ,p_pk3_value => p_pk3_value
68 ,p_pk4_value => p_pk4_value
69 ,p_pk5_value => p_pk5_value
70 ,p_template_id => p_template_id
71 ,p_attr_grp_id => p_attr_grp_ids_list(i)
72 );
73 d_progress := 50;
74 IF (l_return_status = FALSE) THEN
75 d_progress := 60;
76 PO_UDA_DEFAULTING_PKG.DEBUG('IS_VALID_AG_LIST is returning with FALSE' , d_progress);
77 RETURN FALSE;
78 END IF;
79 END LOOP;
80 ELSE
81 d_progress := 70;
82 PO_UDA_DEFAULTING_PKG.DEBUG('Count of p_attr_grp_ids_list is : NOT > 0' , d_progress);
83 END IF;
84 d_progress := 80;
85 PO_UDA_DEFAULTING_PKG.DEBUG('IS_VALID_AG_LIST is returning with TRUE' , d_progress);
86 RETURN TRUE;
87
88 EXCEPTION
89 WHEN OTHERS THEN
90 l_err_txt := 'Exception in IS_VALID_AG_LIST with ERROR : ' || SQLERRM;
91 PO_MESSAGE_S.add_exc_msg
92 (
93 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
94 p_procedure_name => 'IS_VALID_AG_LIST' || '.' || d_progress,
95 p_error_text => l_err_txt
96 );
97 PO_UDA_DEFAULTING_PKG.DEBUG(l_err_txt, d_progress);
98 RETURN FALSE;
99 END IS_VALID_AG_LIST;
100
101 --------------------------------------------------------------------------------------------------------------------
102 --Start of Comments
103 --Name: IS_VALID_AG
104 --Function:
105 -- This function returns true or false depending on the pk values, template id and attribute group
106 -- wether the attribute group is populated in the extention table or not
107 --Parameters:
108 --IN:
109 -- 1. p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value
110 -- The Primary Key values for the UDA Attributes
111 -- 2. p_template_id
112 -- This variable would contain the template id for which the actions are to be executed
113 -- 3. p_attr_grp_id
114 -- This variable would contain the attribute group to find out if they are populated in the
115 -- Ext. table via. UI
116 --RETURN
117 -- BOOLEAN
118 --End of Comments
119 --------------------------------------------------------------------------------------------------------------------
120
121 FUNCTION IS_VALID_AG
122 (
123 p_pk1_value IN NUMBER
124 ,p_pk2_value IN NUMBER
125 ,p_pk3_value IN NUMBER
126 ,p_pk4_value IN NUMBER
127 ,p_pk5_value IN NUMBER
128 ,p_template_id IN NUMBER
129 ,p_attr_grp_id IN NUMBER
130 )
131 RETURN BOOLEAN IS
132
133 l_entity_code VARCHAR2(200);
134 l_base_table VARCHAR2(200);
135 l_idc_type VARCHAR2(200);
136 l_attr_category po_uda_ag_template_usages.ATTRIBUTE_CATEGORY%TYPE;
137
138 l_contract_type VARCHAR2(200);
139 d_progress NUMBER;
140 l_context EGO_COL_NAME_VALUE_PAIR_ARRAY;
141
142 l_ext_table VARCHAR2(200);
143 l_sql_query VARCHAR2(4000);
144 l_mod_add_query VARCHAR2(2000);
145 l_pk1_column_name VARCHAR2(200);
146 l_pk2_column_name VARCHAR2(200);
147 l_pk3_column_name VARCHAR2(200);
148 l_pk4_column_name VARCHAR2(200);
149 l_pk5_column_name VARCHAR2(200);
150 v_query_hdl NUMBER;
151 l_check NUMBER;
152 l_rows_processed NUMBER;
153 l_err_txt VARCHAR2(2000);
154
155 BEGIN
156
157 d_progress := 10;
158 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.IS_VALID_AG with parameters' , d_progress);
159 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value :' || p_pk1_value, d_progress);
160 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value :' || p_pk1_value, d_progress);
161 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value :' || p_pk1_value, d_progress);
162 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value :' || p_pk1_value, d_progress);
163 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk5_value :' || p_pk1_value, d_progress);
164 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id :' || p_template_id, d_progress);
165 PO_UDA_DEFAULTING_PKG.DEBUG('p_attr_grp_id :' || p_attr_grp_id, d_progress);
166 d_progress := 20;
167
168 BEGIN
169 d_progress := 30;
170 SELECT ENTITY_CODE
171 INTO l_entity_code
172 FROM PO_UDA_AG_TEMPLATES
173 WHERE TEMPLATE_ID = p_template_id;
174 d_progress := 40;
175
176 PO_UDA_DEFAULTING_PKG.DEBUG('l_entity_code :' || l_entity_code, d_progress);
177 EXCEPTION
178 WHEN OTHERS THEN
179 d_progress := 50;
180 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the ENTITY CODE', d_progress);
181 RAISE;
182 END;
183 d_progress := 60;
184 l_ext_table := PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_ext_b_table;
185 PO_UDA_DEFAULTING_PKG.DEBUG('l_ext_table :' || l_ext_table, d_progress);
186
187 BEGIN
188 d_progress := 70;
189 select o.pk1_column_name,
190 o.pk2_column_name,
191 o.pk3_column_name,
192 o.pk4_column_name,
193 o.pk5_column_name
194 into l_pk1_column_name,
195 l_pk2_column_name,
196 l_pk3_column_name,
197 l_pk4_column_name,
198 l_pk5_column_name
199 from fnd_objects_vl o
200 where o.obj_name = PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name;
201
202 d_progress := 80;
203 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk1_column_name :' || l_pk1_column_name, d_progress);
204 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk2_column_name :' || l_pk2_column_name, d_progress);
205 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk3_column_name :' || l_pk3_column_name, d_progress);
206 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk4_column_name :' || l_pk4_column_name, d_progress);
207 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk5_column_name :' || l_pk5_column_name, d_progress);
208 EXCEPTION
209 WHEN OTHERS THEN
210 d_progress := 90;
211 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the PK values', d_progress);
212 RAISE;
213 END;
214
215 --bug11872637 Start : Determine Attribute Category
216 SELECT DISTINCT(ATTRIBUTE_CATEGORY)
217 INTO l_attr_category
218 FROM po_uda_ag_template_usages
219 WHERE template_id = p_template_id
220 AND attribute_group_id = p_attr_grp_id;
221 --bug11872637 End
222
223
224 --Using the bind vriables to avoid the maximum cursors opened issue.
225 d_progress := 100;
226 l_sql_query := 'SELECT 1 FROM ' || l_ext_table;
227 l_sql_query := l_sql_query || ' WHERE ATTR_GROUP_ID = :p_attr_grp_id ';
228
229 d_progress := 110;
230 IF p_pk1_value IS NOT NULL THEN
231 l_sql_query := l_sql_query || ' AND ' || l_pk1_column_name || ' = :p_pk1_value ';
232 END IF;
233 IF p_pk2_value IS NOT NULL THEN
234 l_sql_query := l_sql_query || ' AND ' || l_pk2_column_name || ' = :p_pk2_value ';
235 END IF;
236 IF p_pk3_value IS NOT NULL THEN
237 l_sql_query := l_sql_query || ' AND ' || l_pk3_column_name || ' = :p_pk3_value ';
238 END IF;
239 IF p_pk4_value IS NOT NULL THEN
240 l_sql_query := l_sql_query || ' AND ' || l_pk4_column_name || ' = :p_pk4_value ';
241 END IF;
242 IF p_pk5_value IS NOT NULL THEN
243 l_sql_query := l_sql_query || ' AND ' || l_pk5_column_name || ' = :p_pk5_value ';
244 END IF;
245
246 --bug11872637 Start : Add Condition for Mod Specific Lookup Codes of Type 'PO_MOD_UDA_ADDRESS_TYPES'
247 IF(l_attr_category = 'ADDRESS' AND l_entity_code = 'PO_HEADER_EXT_ATTRS') THEN
248 IF (l_pk2_column_name = 'DRAFT_ID' AND p_pk2_value <> -1 ) THEN --This is a Modification
249 l_mod_add_query := ' AND C_EXT_ATTR40 = '|| '''PO_MOD_UDA_ADDRESS_TYPES''' ||
250 ' AND C_EXT_ATTR39 IN (' || '''MOD_ADMIN_OFFICE''' ||',' || '''MOD_ISSUING_OFFICE''' || ')';
251 l_sql_query := l_sql_query || l_mod_add_query;
252 END IF;
253 END IF;
254 --bug11872637 End
255
256 d_progress := 120;
257 PO_UDA_DEFAULTING_PKG.DEBUG('l_sql_query :' || l_sql_query, d_progress);
258
259 BEGIN
260 d_progress := 130;
261 v_query_hdl := DBMS_SQL.open_cursor;
262 DBMS_SQL.parse(v_query_hdl, l_sql_query, DBMS_SQL.native);
263
264 DBMS_SQL.bind_variable(v_query_hdl,':p_attr_grp_id',p_attr_grp_id );
265 IF p_pk1_value IS NOT NULL THEN
266 DBMS_SQL.bind_variable(v_query_hdl,':p_pk1_value',p_pk1_value );
267 END IF ;
268 IF p_pk2_value IS NOT NULL THEN
269 DBMS_SQL.bind_variable(v_query_hdl,':p_pk2_value',p_pk2_value);
270 END IF ;
271 IF p_pk3_value IS NOT NULL THEN
272 DBMS_SQL.bind_variable(v_query_hdl,':p_pk3_value',p_pk3_value);
273 END IF ;
274 IF p_pk4_value IS NOT NULL THEN
275 DBMS_SQL.bind_variable(v_query_hdl,':p_pk4_value',p_pk4_value);
276 END IF ;
277 IF p_pk5_value IS NOT NULL THEN
278 DBMS_SQL.bind_variable(v_query_hdl,':p_pk5_value',p_pk5_value);
279 END IF ;
280
281 DBMS_SQL.define_column(v_query_hdl, 1, l_check);
282 l_rows_processed := DBMS_SQL.EXECUTE(v_query_hdl);
283
284 d_progress := 140;
285 IF DBMS_SQL.fetch_rows(v_query_hdl) <= 0 THEN
286 d_progress := 150;
287 PO_UDA_DEFAULTING_PKG.DEBUG('Returning IS_VALID_AG with TRUE', d_progress);
288 IF DBMS_SQL.is_open(v_query_hdl) THEN
289 DBMS_SQL.close_cursor(v_query_hdl);
290 END IF ;
291 RETURN TRUE;
292 END IF;
293
294 IF DBMS_SQL.is_open(v_query_hdl) THEN
295 DBMS_SQL.close_cursor(v_query_hdl);
296 END IF ;
297
298
299 EXCEPTION
300 WHEN OTHERS THEN
301 d_progress := 150;
302
303 IF DBMS_SQL.is_open(v_query_hdl) THEN
304 DBMS_SQL.close_cursor(v_query_hdl);
305 END IF ;
306
307 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to run a sql :' || l_sql_query, d_progress);
308 RAISE;
309 END;
310 d_progress := 160;
311 PO_UDA_DEFAULTING_PKG.DEBUG('Returning IS_VALID_AG with FALSE', d_progress);
312 RETURN FALSE;
313
314 EXCEPTION
315 WHEN OTHERS THEN
316 l_err_txt := 'Exception in IS_VALID_AG with ERROR : ' || SQLERRM;
317 PO_MESSAGE_S.add_exc_msg
318 (
319 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
320 p_procedure_name => 'IS_VALID_AG_LIST' || '.' || d_progress,
321 p_error_text => l_err_txt
322 );
323 PO_UDA_DEFAULTING_PKG.DEBUG(l_err_txt, d_progress);
324 RETURN FALSE;
325 END IS_VALID_AG;
326
327 --------------------------------------------------------------------------------------------------------------------
328 --Start of Comments
329 --Name: CONSTRUCT_USAGE_OBJECT_ARRAY
330 --Procedure:
331 -- This procedure would construct the PO_UDA_USAGE_OBJECT_ARRAY with the usages for which the attribute groups
332 -- are not populated in the extention table throught the UI.
333 --Parameters:
334 --IN:
335 -- 1. p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value
336 -- The Primary Key values for the UDA Attributes
337 -- 2. p_template_id
338 -- This variable would contain the template id for which the actions are to be executed
339 --OUT:
340 -- 1. x_po_uda_usage_object_array
341 -- This variable of type PO_UDA_USAGE_OBJECT_ARRAY contains data of hhe usages.
342 -- 2. x_return_status - Generic Out parameter having return status
343 -- 3. x_errorcode - Generic Out parameter having error code
344 -- 4. x_msg_count - Generic Out parameter having return msg Count
345 -- 5. x_msg_data - Generic Out parameter having return msg
346 --
347 --End of Comments
348 --------------------------------------------------------------------------------------------------------------------
349 PROCEDURE CONSTRUCT_USAGE_OBJECT_ARRAY
350 (
351 p_pk1_value IN NUMBER
352 ,p_pk2_value IN NUMBER
353 ,p_pk3_value IN NUMBER
354 ,p_pk4_value IN NUMBER
355 ,p_pk5_value IN NUMBER
356 ,p_template_id IN NUMBER
357 ,x_po_uda_usage_object_array OUT NOCOPY PO_UDA_USAGE_OBJECT_ARRAY
358 ,x_return_status OUT NOCOPY VARCHAR2
359 ,x_errorcode OUT NOCOPY NUMBER
360 ,x_msg_count OUT NOCOPY NUMBER
361 ,x_msg_data OUT NOCOPY VARCHAR2
362 )
363 IS
364
365 CURSOR c_get_usages(p_template_id NUMBER) IS
366 SELECT DISTINCT(ATTRIBUTE_CATEGORY)
367 FROM po_uda_ag_template_usages
368 WHERE template_id = p_template_id;
369
370 CURSOR c_get_usage_context1(p_line_id NUMBER, p_draft_id NUMBER) IS
371 SELECT CLM_IDC_TYPE, CONTRACT_TYPE
372 FROM po_lines_merge_v
373 WHERE PO_LINE_ID = p_line_id
374 AND DRAFT_ID = p_draft_id;
375
376 CURSOR c_get_usage_context2(p_header_id NUMBER, p_draft_id NUMBER) IS
377 SELECT CLM_STANDARD_FORM
378 FROM po_headers_merge_v
379 WHERE po_header_id = p_header_id
380 AND DRAFT_ID = p_draft_id;
381
382 -- CURSORS FOR ALL CONTEXTS should be added later if needed
383
384 l_entity_code VARCHAR2(200);
385 l_context_array EGO_COL_NAME_VALUE_PAIR_ARRAY;
386 l_po_uda_usage_object PO_UDA_USAGE_OBJECT;
387 l_po_uda_usage_object_array PO_UDA_USAGE_OBJECT_ARRAY;
388 l_attr_grp_ids_list PO_TBL_NUMBER;
389 l_idc_type VARCHAR2(200);
390 l_std_form VARCHAR2(200);
391 l_contract_type VARCHAR2(200);
392 l_doc_type VARCHAR2(200);
393 l_issuing_off VARCHAR2(200);
394
395 l_context EGO_COL_NAME_VALUE_PAIR_OBJ;
396
397 d_progress NUMBER := 0;
398 l_err_txt VARCHAR2(2000);
399
400
401 BEGIN
402
403 x_return_status := FND_API.G_RET_STS_SUCCESS;
404
405 d_progress := 10;
406 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.CONSTRUCT_USAGE_OBJECT_ARRAY with parameters' , d_progress);
407 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value :' || p_pk1_value, d_progress);
408 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value :' || p_pk2_value, d_progress);
409 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value :' || p_pk3_value, d_progress);
410 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value :' || p_pk4_value, d_progress);
411 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk5_value :' || p_pk5_value, d_progress);
412 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id :' || p_template_id, d_progress);
413
414 BEGIN
415 d_progress := 20;
416 SELECT ENTITY_CODE
417 INTO l_entity_code
418 FROM PO_UDA_AG_TEMPLATES
419 WHERE TEMPLATE_ID = p_template_id;
420
421 d_progress := 30;
422 PO_UDA_DEFAULTING_PKG.DEBUG('l_entity_code :' || l_entity_code, d_progress);
423 EXCEPTION
424 WHEN OTHERS THEN
425 d_progress := 40;
426 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the ENTITY CODE', d_progress);
427 RAISE;
428 END;
429
430 d_progress := 50;
431 l_po_uda_usage_object := PO_UDA_USAGE_OBJECT();
432 l_po_uda_usage_object_array := PO_UDA_USAGE_OBJECT_ARRAY();
433
434 d_progress := 60;
435 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized objects l_po_uda_usage_object, l_po_uda_usage_object_array', d_progress);
436
437 FOR c_get_usages_rec IN c_get_usages(p_template_id) LOOP
438 l_context_array := EGO_COL_NAME_VALUE_PAIR_ARRAY();
439 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized objects l_context_array', d_progress);
440
441 d_progress := 70;
442 if(c_get_usages_rec.attribute_category = 'PRICING') AND l_entity_code = 'PO_LINE_EXT_ATTRS' then
443
444 d_progress := 80;
445 OPEN c_get_usage_context1(p_pk1_value, p_pk2_value);
446 FETCH c_get_usage_context1 INTO l_idc_type, l_contract_type;
447 CLOSE c_get_usage_context1;
448
449 d_progress := 90;
450 l_context := EGO_COL_NAME_VALUE_PAIR_OBJ( 'IDC_TYPE', l_idc_type);
451 l_context_array.EXTEND(1);
452 l_context_array(l_context_array.COUNT) := l_context;
453 l_context := EGO_COL_NAME_VALUE_PAIR_OBJ( 'CONTRACT_LINE_TYPE', l_contract_type);
454 l_context_array.EXTEND(1);
455 l_context_array(l_context_array.COUNT) := l_context;
456
457 d_progress := 100;
458 end if;
459 d_progress := 110;
460 if(c_get_usages_rec.attribute_category = 'FORMS') AND l_entity_code = 'PO_HEADER_EXT_ATTRS' then
461
462 d_progress := 120;
463 OPEN c_get_usage_context2(p_pk1_value, p_pk2_value);
464 FETCH c_get_usage_context2 INTO l_std_form;
465 CLOSE c_get_usage_context2;
466
467 d_progress := 130;
468 l_context := EGO_COL_NAME_VALUE_PAIR_OBJ( 'FORM_TYPE', l_std_form);
469 l_context_array.EXTEND(1);
470 l_context_array(l_context_array.COUNT) := l_context;
471 d_progress := 140;
472 end if;
473 d_progress := 150;
474 -- IF CASES FOR ALL USAGES which have a context
475 -- FOR ALL CONTEXTS should be added later if needed
476
477 l_po_uda_usage_object := po_uda_usage_object.new_instance(p_template_id, c_get_usages_rec.attribute_category, l_context_array);
478 l_attr_grp_ids_list := l_po_uda_usage_object.Attr_group_Id;
479
480 d_progress := 160;
481 PO_UDA_DEFAULTING_PKG.DEBUG('Before is_valid_ag_list' , d_progress);
482
483 IF is_valid_ag_list (p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value, p_template_id, l_attr_grp_ids_list)
484 THEN
485 d_progress := 170;
486 PO_UDA_DEFAULTING_PKG.DEBUG('The Usage Object is valid' , d_progress);
487 l_po_uda_usage_object_array.EXTEND(1);
488 l_po_uda_usage_object_array(l_po_uda_usage_object_array.COUNT) := l_po_uda_usage_object;
489 PO_UDA_DEFAULTING_PKG.DEBUG('Added usage object' , d_progress);
490 d_progress := 180;
491 ELSE
492 d_progress := 190;
493 PO_UDA_DEFAULTING_PKG.DEBUG('The Usage Object is not valid' , d_progress);
494 END IF;
495 d_progress := 200;
496 END LOOP;
497
498 d_progress := 210;
499 PO_UDA_DEFAULTING_PKG.DEBUG('The Usage Object array constructed is as follows' , d_progress);
500 PO_UDA_DEFAULTING_PKG.DEBUG(l_po_uda_usage_object_array, d_progress);
501 x_po_uda_usage_object_array := l_po_uda_usage_object_array;
502 d_progress := 220;
503
504 EXCEPTION
505 WHEN OTHERS THEN
506 l_err_txt := 'Exception in CONSTRUCT_USAGE_OBJECT_ARRAY with ERROR : ' || SQLERRM;
507 PO_MESSAGE_S.add_exc_msg
508 (
509 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
510 p_procedure_name => 'CONSTRUCT_USAGE_OBJECT_ARRAY' || '.' || d_progress,
511 p_error_text => l_err_txt
512 );
513 PO_UDA_DEFAULTING_PKG.DEBUG(l_err_txt, d_progress);
514 x_return_status := 'U';
515 END CONSTRUCT_USAGE_OBJECT_ARRAY;
516
517 --------------------------------------------------------------------------------------------------------------------
518 --Start of Comments
519 --Name: UDA_SUBMISSION_CHECK
520 --Procedure:
521 -- This procedure would execute ego_user_attrs_data_pub.Get_User_Attrs_Data to get the
522 -- EGO_USER_ATTR_ROW_TABLE and EGO_USER_ATTR_DATA_TABLE to execute all the XSC Uda functions
523 --Parameters:
524 --IN:
525 -- 1. p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value
526 -- The Primary Key values for the UDA Attributes
527 -- 2. p_template_id
528 -- This variable would contain the template id for which the actions are to be executed
529 --IN/OUT:
530 -- 1. x_external_attr_value_pairs
531 -- This variable would contain an array of attribute value pairs (EGO_COL_NAME_VALUE_PAIR_TABLE)
532 --OUT:
533 -- 1. x_return_status - Generic Out parameter having return status
534 -- 2. x_errorcode - Generic Out parameter having error code
535 -- 3. x_msg_count - Generic Out parameter having return msg Count
536 -- 4. x_msg_data - Generic Out parameter having return msg
537 --
538 --End of Comments
539 --------------------------------------------------------------------------------------------------------------------
540 PROCEDURE UDA_SUBMISSION_CHECK
541 (
542 p_pk1_value IN NUMBER
543 ,p_pk2_value IN NUMBER DEFAULT NULL
544 ,p_pk3_value IN NUMBER DEFAULT NULL
545 ,p_pk4_value IN NUMBER DEFAULT NULL
546 ,p_pk5_value IN NUMBER DEFAULT NULL
547 ,p_template_id IN NUMBER
548 ,p_address_lookup_type IN VARCHAR2 DEFAULT NULL
549 ,x_external_attr_value_pairs IN OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
550 ,x_return_status OUT NOCOPY VARCHAR2
551 ,x_errorcode OUT NOCOPY NUMBER
552 ,x_msg_count OUT NOCOPY NUMBER
553 ,x_msg_data OUT NOCOPY VARCHAR2
554 )
555 IS
556 d_progress NUMBER := 0;
557
558 CURSOR c_po_header_ext(p_header_id NUMBER, p_draft_id NUMBER) IS
559 SELECT DISTINCT ATTR_GROUP_ID
560 FROM PO_HEADERS_ALL_EXT_B
561 WHERE PO_HEADER_ID = p_header_id
562 AND DRAFT_ID = p_draft_id;
563
564 CURSOR c_po_line_ext(p_line_id NUMBER, p_draft_id NUMBER) IS
565 SELECT DISTINCT ATTR_GROUP_ID
566 FROM PO_LINES_ALL_EXT_B
567 WHERE PO_LINE_ID = p_line_id
568 AND DRAFT_ID = p_draft_id;
569
570 CURSOR c_po_location_ext(p_location_id NUMBER, p_draft_id NUMBER) IS
571 SELECT DISTINCT ATTR_GROUP_ID
572 FROM PO_LINE_LOCATIONS_ALL_EXT_B
573 WHERE LINE_LOCATION_ID = p_location_id
574 AND DRAFT_ID = p_draft_id;
575
576 CURSOR c_po_attr_list(p_ag_type VARCHAR2, p_ag_name VARCHAR2) IS
577 SELECT END_USER_COLUMN_NAME
578 FROM FND_DESCR_FLEX_COLUMN_USAGES
579 WHERE DESCRIPTIVE_FLEXFIELD_NAME = p_ag_type
580 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = p_ag_name;
581
582 is_valid_entity_ag BOOLEAN := FALSE;
583
584 l_pk_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
585 l_entity_code VARCHAR2(200);
586 l_ag_type VARCHAR2(200);
587 l_ag_name VARCHAR2(200);
588 l_attr_list VARCHAR2(2000);
589 l_data_level VARCHAR2(200);
590 l_pk1_column_name VARCHAR2(200);
591 l_pk2_column_name VARCHAR2(200);
592 l_pk3_column_name VARCHAR2(200);
593 l_pk4_column_name VARCHAR2(200);
594 l_pk5_column_name VARCHAR2(200);
595
596 l_attr_group_request_table EGO_ATTR_GROUP_REQUEST_TABLE;
597
598 l_attributes_row_table EGO_USER_ATTR_ROW_TABLE;
599 l_attr_name_value_pairs EGO_USER_ATTR_DATA_TABLE;
600 l_class_code_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
601
602 l_pk_col_name_value_pairs_ind NUMBER;
603 l_attr_name_value_pairs_ind NUMBER;
604 l_attributes_row_table_ind NUMBER;
605 l_attr_group_request_table_ind NUMBER;
606
607 l_pk_column_name_value EGO_COL_NAME_VALUE_PAIR_OBJ;
608 l_attr_name_value EGO_USER_ATTR_DATA_OBJ;
609 l_attributes_row ego_user_attr_row_obj;
610 l_attr_group_request ego_attr_group_request_obj;
611
612 l_err_txt VARCHAR2(2000);
613
614 BEGIN
615
616 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.UDA_SUBMISSION_CHECK with parameters' , d_progress);
617 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value :' || p_pk1_value, d_progress);
618 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value :' || p_pk2_value, d_progress);
619 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value :' || p_pk3_value, d_progress);
620 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value :' || p_pk4_value, d_progress);
621 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk5_value :' || p_pk5_value, d_progress);
622 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id :' || p_template_id, d_progress);
623 PO_UDA_DEFAULTING_PKG.DEBUG('p_address_lookup_type :' || p_address_lookup_type, d_progress);
624 PO_UDA_DEFAULTING_PKG.DEBUG('x_external_attr_value_pairs are as Follows', d_progress);
625 PO_UDA_DEFAULTING_PKG.DEBUG(x_external_attr_value_pairs, d_progress);
626 d_progress := 10;
627
628 x_return_status := FND_API.G_RET_STS_SUCCESS;
629
630 IF p_template_id IS NULL THEN
631 d_progress := 20;
632 x_return_status := 'E';
633 RETURN;
634 END IF;
635
636 d_progress := 30;
637 l_attr_group_request_table := EGO_ATTR_GROUP_REQUEST_TABLE();
638 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_group_request_table', d_progress);
639 d_progress := 40;
640
641 BEGIN
642 d_progress := 50;
643 SELECT ENTITY_CODE
644 INTO l_entity_code
645 FROM PO_UDA_AG_TEMPLATES
646 WHERE TEMPLATE_ID = p_template_id;
647
648 d_progress := 60;
649 PO_UDA_DEFAULTING_PKG.DEBUG('l_entity_code :' || l_entity_code, d_progress);
650 EXCEPTION
651 WHEN OTHERS THEN
652 d_progress := 70;
653 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the ENTITY CODE', d_progress);
654 RAISE;
655 END;
656
657 d_progress := 80;
658
659 IF l_entity_code = 'PO_HEADER_EXT_ATTRS' THEN
660 d_progress := 90;
661 FOR c_po_header_ext_rec IN c_po_header_ext(p_pk1_value, p_pk2_value) LOOP
662
663 d_progress := 100;
664 BEGIN
665 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID :' || c_po_header_ext_rec.ATTR_GROUP_ID, d_progress);
666 SELECT DESCRIPTIVE_FLEXFIELD_NAME, DESCRIPTIVE_FLEX_CONTEXT_CODE
667 INTO l_ag_type, l_ag_name
668 FROM EGO_FND_DSC_FLX_CTX_EXT
669 WHERE ATTR_GROUP_ID = c_po_header_ext_rec.ATTR_GROUP_ID;
670
671 d_progress := 110;
672 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_type :' || l_ag_type, d_progress);
673 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_name :' || l_ag_name, d_progress);
674 EXCEPTION
675 WHEN OTHERS THEN
676 d_progress := 120;
677 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the AG TYPE and AG NAME', d_progress);
678 RAISE;
679 END;
680
681 d_progress := 130;
682 l_attr_list := '';
683 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_list', d_progress);
684
685 d_progress := 140;
686 FOR c_po_attr_list_rec IN c_po_attr_list(l_ag_type, l_ag_name) LOOP
687 d_progress := 150;
688 IF l_attr_list IS NULL OR l_attr_list = '' THEN
689 d_progress := 160;
690 l_attr_list := c_po_attr_list_rec.END_USER_COLUMN_NAME;
691 ELSE
692 d_progress := 170;
693 l_attr_list := l_attr_list || ',' || c_po_attr_list_rec.END_USER_COLUMN_NAME;
694 END IF;
695 d_progress := 180;
696 END LOOP;
697 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_list :' || l_attr_list, d_progress);
698
699 l_data_level := 'PO_HEADER';
700
701 d_progress := 190;
702
703 IF l_attr_list IS NOT NULL THEN
704 d_progress := 200;
705 is_valid_entity_ag := TRUE;
706 l_attr_group_request_table.EXTEND(1);
707 l_attr_group_request_table(l_attr_group_request_table.COUNT) := ego_attr_group_request_obj
708 (
709 c_po_header_ext_rec.ATTR_GROUP_ID
710 ,201
711 ,l_ag_type
712 ,l_ag_name
713 ,l_data_level
714 ,NULL
715 ,NULL
716 ,NULL
717 ,NULL
718 ,NULL
719 ,l_attr_list
720 );
721 d_progress := 210;
722 END IF;
723 d_progress := 220;
724 END LOOP;
725 d_progress := 230;
726 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows', d_progress);
727 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
728 END IF;
729
730 d_progress := 240;
731 IF l_entity_code = 'PO_LINE_EXT_ATTRS' THEN
732 d_progress := 250;
733 FOR c_po_line_ext_rec IN c_po_line_ext(p_pk1_value, p_pk2_value) LOOP
734 d_progress := 260;
735 BEGIN
736 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID :' || c_po_line_ext_rec.ATTR_GROUP_ID, d_progress);
737 d_progress := 270;
738 SELECT DESCRIPTIVE_FLEXFIELD_NAME, DESCRIPTIVE_FLEX_CONTEXT_CODE
739 INTO l_ag_type, l_ag_name
740 FROM EGO_FND_DSC_FLX_CTX_EXT
741 WHERE ATTR_GROUP_ID = c_po_line_ext_rec.ATTR_GROUP_ID;
742
743 d_progress := 280;
744 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_type :' || l_ag_type, d_progress);
745 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_name :' || l_ag_name, d_progress);
746 EXCEPTION
747 WHEN OTHERS THEN
748 d_progress := 290;
749 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the AG TYPE and AG NAME', d_progress);
750 RAISE;
751 END;
752
753 d_progress := 300;
754 l_attr_list := '';
755 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_list', d_progress);
756
757 d_progress := 310;
758 FOR c_po_attr_list_rec IN c_po_attr_list(l_ag_type, l_ag_name) LOOP
759 d_progress := 320;
760 IF l_attr_list IS NULL OR l_attr_list = '' THEN
761 d_progress := 330;
762 l_attr_list := c_po_attr_list_rec.END_USER_COLUMN_NAME;
763 ELSE
764 d_progress := 340;
765 l_attr_list := l_attr_list || ',' || c_po_attr_list_rec.END_USER_COLUMN_NAME;
766 END IF;
767 d_progress := 350;
768 END LOOP;
769 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_list :' || l_attr_list, d_progress);
770
771 l_data_level := 'PO_LINE';
772 d_progress := 360;
773
774 IF l_attr_list IS NOT NULL THEN
775 d_progress := 370;
776 is_valid_entity_ag := TRUE;
777 l_attr_group_request_table.EXTEND(1);
778 l_attr_group_request_table(l_attr_group_request_table.COUNT) := ego_attr_group_request_obj
779 (
780 c_po_line_ext_rec.ATTR_GROUP_ID
781 ,201
782 ,l_ag_type
783 ,l_ag_name
784 ,l_data_level
785 ,NULL
786 ,NULL
787 ,NULL
788 ,NULL
789 ,NULL
790 ,l_attr_list
791 );
792 d_progress := 380;
793 END IF;
794 END LOOP;
795 d_progress := 390;
796 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows', d_progress);
797 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
798 END IF;
799 d_progress := 400;
800 IF l_entity_code = 'PO_SHIPMENTS_EXT_ATTRS' THEN
801 d_progress := 410;
802 FOR c_po_location_ext_rec IN c_po_location_ext(p_pk1_value, p_pk2_value) LOOP
803 d_progress := 420;
804
805 BEGIN
806 d_progress := 430;
807 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID :' || c_po_location_ext_rec.ATTR_GROUP_ID, d_progress);
808
809 SELECT DESCRIPTIVE_FLEXFIELD_NAME, DESCRIPTIVE_FLEX_CONTEXT_CODE
810 INTO l_ag_type, l_ag_name
811 FROM EGO_FND_DSC_FLX_CTX_EXT
812 WHERE ATTR_GROUP_ID = c_po_location_ext_rec.ATTR_GROUP_ID;
813
814 d_progress := 440;
815 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_type :' || l_ag_type, d_progress);
816 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_name :' || l_ag_name, d_progress);
817 EXCEPTION
818 WHEN OTHERS THEN
819 d_progress := 450;
820 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the AG TYPE and AG NAME', d_progress);
821 RAISE;
822 END;
823
824 d_progress := 460;
825 l_attr_list := '';
826 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_list', d_progress);
827
828 d_progress := 470;
829 FOR c_po_attr_list_rec IN c_po_attr_list(l_ag_type, l_ag_name) LOOP
830 d_progress := 480;
831 IF l_attr_list IS NULL OR l_attr_list = '' THEN
832 d_progress := 490;
833 l_attr_list := c_po_attr_list_rec.END_USER_COLUMN_NAME;
834 ELSE
835 d_progress := 500;
836 l_attr_list := l_attr_list || ',' || c_po_attr_list_rec.END_USER_COLUMN_NAME;
837 END IF;
838 d_progress := 510;
839 END LOOP;
840 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_list :' || l_attr_list, d_progress);
841
842 l_data_level := 'PO_SHIPMENT';
843 d_progress := 520;
844
845 IF l_attr_list IS NOT NULL THEN
846 d_progress := 530;
847 is_valid_entity_ag := TRUE;
848 l_attr_group_request_table.EXTEND(1);
849 l_attr_group_request_table(l_attr_group_request_table.COUNT) := ego_attr_group_request_obj
850 (
851 c_po_location_ext_rec.ATTR_GROUP_ID
852 ,201
853 ,l_ag_type
854 ,l_ag_name
855 ,l_data_level
856 ,NULL
857 ,NULL
858 ,NULL
859 ,NULL
860 ,NULL
861 ,l_attr_list
862 );
863 d_progress := 540;
864 END IF;
865 END LOOP;
866 d_progress := 550;
867 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows', d_progress);
868 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
869 END IF;
870
871 d_progress := 560;
872
873 IF is_valid_entity_ag THEN
874 d_progress := 560;
875 PO_UDA_DEFAULTING_PKG.DEBUG('is_valid_entity_ag : TRUE', d_progress);
876 PO_UDA_DEFAULTING_PKG.DEBUG('Before PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT' , d_progress);
877
878 PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT(
879 PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name
880 ,p_pk1_value
881 ,p_pk2_value
882 ,p_pk3_value
883 ,p_pk4_value
884 ,p_pk5_value
885 ,l_pk_column_name_value_pairs
886 );
887 d_progress := 570;
888 PO_UDA_DEFAULTING_PKG.DEBUG('After PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT' , d_progress);
889 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows :', d_progress);
890 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
891
892 l_attributes_row_table := EGO_USER_ATTR_ROW_TABLE();
893 l_attr_name_value_pairs := EGO_USER_ATTR_DATA_TABLE();
894 d_progress := 580;
895 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized objects l_attributes_row_table, l_attr_name_value_pairs' , d_progress);
896
897 PO_UDA_DEFAULTING_PKG.DEBUG('x_return_status : ' || x_return_status , d_progress);
898 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
899
900 d_progress := 590;
901 PO_UDA_DEFAULTING_PKG.DEBUG('Before ego_user_attrs_data_pub.Get_User_Attrs_Data', d_progress);
902 PO_UDA_DEFAULTING_PKG.DEBUG('p_object_name : ' || PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name, d_progress);
903 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows ', d_progress);
904 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
905 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows ', d_progress);
906 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
907 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows ', d_progress);
908 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
909 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_name_value_pairs is as follows ', d_progress);
910 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
911
912 ego_user_attrs_data_pub.Get_User_Attrs_Data
913 (
914 p_api_version => 1.0
915 ,p_object_name => PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name
916 ,p_pk_column_name_value_pairs => l_pk_column_name_value_pairs
917 ,p_attr_group_request_table => l_attr_group_request_table
918 ,x_attributes_row_table => l_attributes_row_table
919 ,x_attributes_data_table => l_attr_name_value_pairs
920 ,x_return_status => x_return_status
921 ,x_errorcode => x_errorcode
922 ,x_msg_count => x_msg_count
923 ,x_msg_data => x_msg_data
924 );
925 d_progress := 600;
926 PO_UDA_DEFAULTING_PKG.DEBUG('After ego_user_attrs_data_pub.Get_User_Attrs_Data', d_progress);
927 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows ', d_progress);
928 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
929 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_name_value_pairs is as follows ', d_progress);
930 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
931 PO_UDA_DEFAULTING_PKG.DEBUG('x_return_status :' || x_return_status, d_progress);
932 PO_UDA_DEFAULTING_PKG.DEBUG('x_errorcode :' || x_errorcode, d_progress);
933 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_count :' || x_msg_count, d_progress);
934 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_data :' || x_msg_data, d_progress);
935
936 END IF;
937
938 d_progress := 610;
939
940 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
941 d_progress := 620;
942 PO_UDA_DEFAULTING_PKG.DEBUG('Before EXECUTE_IMPORT_UDA_FUNCTION (XSC) ' || x_return_status, d_progress);
943 PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION
944 (
945 p_template_id => p_template_id || ''
946 ,p_event => 'XSC'
947 ,x_external_attr_value_pairs => x_external_attr_value_pairs
948 ,x_pk_column_name_value_pairs => l_pk_column_name_value_pairs
949 ,x_attr_name_value_pairs => l_attr_name_value_pairs
950 ,x_attributes_row_table => l_attributes_row_table
951 ,x_return_status => x_return_status
952 ,x_errorcode => x_errorcode
953 ,x_msg_count => x_msg_count
954 ,x_msg_data => x_msg_data
955 );
956 PO_UDA_DEFAULTING_PKG.DEBUG('After EXECUTE_IMPORT_UDA_FUNCTION (XSC) ' || x_return_status, d_progress);
957 d_progress := 630;
958 END IF;
959 END IF;
960
961 EXCEPTION
962 WHEN OTHERS THEN
963 l_err_txt := 'Exception in IS_VALID_AG_LIST with ERROR : ' || SQLERRM;
964 PO_MESSAGE_S.add_exc_msg
965 (
966 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
967 p_procedure_name => 'UDA_SUBMISSION_CHECK' || '.' || d_progress,
968 p_error_text => l_err_txt
969 );
970 PO_UDA_DEFAULTING_PKG.DEBUG(l_err_txt, d_progress);
971 x_return_status := 'U';
972 END UDA_SUBMISSION_CHECK;
973
974
975 -------------------------------------------------------------------------------------------------------------------
976 --Start of Comments
977 --Name: PO_UDA_SUBMISSION_CHECK
978 --Procedure:
979 -- This procedure would submit all the attribute groups which are not rendered on the UI
980 -- For the header , lines and shipment which ever appropriate
981 --Parameters:
982 --IN:
983 -- 1. p_po_header_id
984 -- The po_header_id for which the defaulting should take place
985 -- 2. p_draft_id
986 -- The draft_id for which the defaulting should take place
987 -- 3. p_address_lookup_type
988 -- This variable would contain the address lookup type to get the address type
989 --OUT:
990 -- 1. x_external_attr_value_pairs
991 -- This variable would contain an array of attribute value pairs (EGO_COL_NAME_VALUE_PAIR_TABLE)
992 -- 2. x_return_status - Generic Out parameter having return status
993 --
994 --End of Comments
995 --------------------------------------------------------------------------------------------------------------------
996 PROCEDURE PO_UDA_SUBMISSION_CHECK
997 (
998 p_po_header_id IN NUMBER
999 ,p_draft_id IN NUMBER
1000 ,x_external_attr_value_pairs OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
1001 ,x_return_status OUT NOCOPY VARCHAR2
1002 ,x_msg_count OUT NOCOPY NUMBER
1003 )
1004 IS
1005 d_progress NUMBER := 0;
1006
1007 l_template_id NUMBER;
1008 l_line_template_id NUMBER;
1009 l_shipment_template_id NUMBER;
1010
1011 l_address_lookup_type VARCHAR2(200);
1012
1013 l_msg_count NUMBER;
1014 l_errorcode NUMBER;
1015 l_msg_data VARCHAR2(100);
1016
1017 CURSOR c_get_lines
1018 (
1019 p_po_header_id NUMBER
1020 ,p_draft_id NUMBER
1021 )IS
1022 SELECT PO_LINE_ID, ITEM_ID, LINE_TYPE_ID
1023 FROM po_lines_merge_v pll
1024 WHERE PO_HEADER_ID = p_po_header_id
1025 AND DRAFT_ID = p_draft_id
1026 AND EXISTS ( SELECT 1 FROM EGO_ACTION_DISPLAYS_B actdisp , ego_actions_b act , po_uda_ag_template_usages pousage
1027 WHERE act.action_id = actdisp.action_id
1028 AND pousage.template_id = pll.uda_template_id
1029 AND pousage.attribute_group_id = act.attr_group_id
1030 AND To_Char(pousage.template_id) = act.classification_code
1031 AND actdisp.execution_method = 'XSC');
1032 CURSOR c_get_shipments
1033 (
1034 p_po_header_id NUMBER
1035 ,p_line_id NUMBER
1036 ,p_draft_id NUMBER
1037 )IS
1038 SELECT LINE_LOCATION_ID, SHIP_TO_LOCATION_ID
1039 FROM po_line_locations_merge_v pll
1040 WHERE PO_HEADER_ID = p_po_header_id
1041 AND PO_LINE_ID = p_line_id
1042 AND DRAFT_ID = p_draft_id
1043 AND EXISTS ( SELECT 1 FROM EGO_ACTION_DISPLAYS_B actdisp , ego_actions_b act , po_uda_ag_template_usages pousage
1044 WHERE act.action_id = actdisp.action_id
1045 AND pousage.template_id = pll.uda_template_id
1046 AND pousage.attribute_group_id = act.attr_group_id
1047 AND To_Char(pousage.template_id) = act.classification_code
1048 AND actdisp.execution_method = 'XSC');
1049
1050 l_vendor_id NUMBER;
1051 l_vendor_site_id NUMBER;
1052 l_vendor_contact_id NUMBER;
1053
1054 g_xsc_return_status VARCHAR2(3) := FND_API.G_RET_STS_SUCCESS;
1055 ext_name_val_obj EGO_COL_NAME_VALUE_PAIR_OBJ;
1056
1057 l_err_txt VARCHAR2(2000);
1058
1059 BEGIN
1060
1061 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.PO_UDA_SUBMISSION_CHECK with parameters' , d_progress);
1062 PO_UDA_DEFAULTING_PKG.DEBUG(' p_po_header_id :' || p_po_header_id, d_progress);
1063 PO_UDA_DEFAULTING_PKG.DEBUG(' p_draft_id :' || p_draft_id, d_progress);
1064 PO_UDA_DEFAULTING_PKG.DEBUG('x_external_attr_value_pairs is as follows ', d_progress);
1065 PO_UDA_DEFAULTING_PKG.DEBUG(x_external_attr_value_pairs, d_progress);
1066 d_progress := 10;
1067
1068 x_return_status := FND_API.G_RET_STS_SUCCESS;
1069 BEGIN
1070 d_progress := 20;
1071 SELECT VENDOR_ID, VENDOR_SITE_ID, VENDOR_CONTACT_ID
1072 INTO l_vendor_id, l_vendor_site_id, l_vendor_contact_id
1073 FROM po_headers_merge_v
1074 WHERE PO_HEADER_ID = p_po_header_id
1075 AND DRAFT_ID = p_draft_id;
1076
1077 d_progress := 30;
1078 PO_UDA_DEFAULTING_PKG.DEBUG('l_vendor_id :' || l_vendor_id , d_progress);
1079 PO_UDA_DEFAULTING_PKG.DEBUG('l_vendor_site_id :' || l_vendor_site_id , d_progress);
1080 PO_UDA_DEFAULTING_PKG.DEBUG('l_vendor_contact_id :' || l_vendor_contact_id , d_progress);
1081 EXCEPTION
1082 WHEN OTHERS THEN
1083 d_progress := 40;
1084 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the vendor details', d_progress);
1085 RAISE;
1086 END;
1087 d_progress := 50;
1088
1089 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', FND_API.G_RET_STS_SUCCESS, x_external_attr_value_pairs);
1090 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_errorcode', '0', x_external_attr_value_pairs);
1091 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_msg_count', '0', x_external_attr_value_pairs);
1092 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_msg_data', 'SUCCESS', x_external_attr_value_pairs);
1093 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_CONTACT_ID', l_vendor_contact_id || '', x_external_attr_value_pairs);
1094 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_SITE_ID', l_vendor_site_id || '', x_external_attr_value_pairs);
1095 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_ID', l_vendor_id || '', x_external_attr_value_pairs);
1096
1097 d_progress := 60;
1098 BEGIN
1099 PO_UDA_DEFAULTING_PKG.DEBUG('Header ID is'|| p_po_header_id, d_progress);
1100 PO_UDA_DEFAULTING_PKG.DEBUG('Draft Id is '|| p_draft_id, d_progress);
1101 d_progress := 70;
1102 SELECT UDA_TEMPLATE_ID
1103 INTO l_template_id
1104 FROM po_headers_merge_v
1105 WHERE PO_HEADER_ID = p_po_header_id
1106 AND DRAFT_ID = p_draft_id;
1107
1108 d_progress := 80;
1109 PO_UDA_DEFAULTING_PKG.DEBUG('l_template_id :' || l_template_id , d_progress);
1110 EXCEPTION
1111 WHEN OTHERS THEN
1112 d_progress := 90;
1113 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Template ID', d_progress);
1114 RAISE;
1115 END;
1116 d_progress := 100;
1117
1118 IF p_draft_id = -1 THEN
1119 d_progress := 110;
1120 l_address_lookup_type := 'PO_UDA_ADDRESS_TYPES';
1121 ELSE
1122 d_progress := 120;
1123 l_address_lookup_type := 'PO_MOD_UDA_ADDRESS_TYPES';
1124 END IF;
1125
1126 PO_UDA_DEFAULTING_PKG.DEBUG('l_address_lookup_type :' || l_address_lookup_type, d_progress);
1127 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_SUBMISSION_CHECK for header : ' || x_return_status, d_progress);
1128 d_progress := 130;
1129 PO_UDA_DEFAULTING_PKG.UDA_SUBMISSION_CHECK
1130 (
1131 p_pk1_value => p_po_header_id
1132 ,p_pk2_value => p_draft_id
1133 ,p_template_id => l_template_id
1134 ,p_address_lookup_type => l_address_lookup_type
1135 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1136 ,x_return_status => x_return_status
1137 ,x_errorcode => l_errorcode
1138 ,x_msg_count => l_msg_count
1139 ,x_msg_data => l_msg_data
1140 );
1141 d_progress := 140;
1142 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_SUBMISSION_CHECK for header : ' || x_return_status, d_progress);
1143 PO_UDA_DEFAULTING_PKG.GET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', x_external_attr_value_pairs, ext_name_val_obj);
1144 g_xsc_return_status := ext_name_val_obj.VALUE ;
1145
1146 d_progress := 150;
1147 PO_UDA_DEFAULTING_PKG.DEBUG('Looping for Submission Check for lines', d_progress);
1148 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN -- LOOP FOR ALL THE LINES DEFUALTING
1149 d_progress := 160;
1150 FOR c_get_lines_rec IN c_get_lines(p_po_header_id, p_draft_id) LOOP
1151 d_progress := 170;
1152 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('ITEM_ID', c_get_lines_rec.ITEM_ID || '', x_external_attr_value_pairs);
1153 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('LINE_TYPE_ID', c_get_lines_rec.LINE_TYPE_ID || '', x_external_attr_value_pairs);
1154 d_progress := 180;
1155 BEGIN
1156 d_progress := 190;
1157 PO_UDA_DEFAULTING_PKG.DEBUG('Line ID is'|| c_get_lines_rec.PO_LINE_ID, d_progress);
1158 PO_UDA_DEFAULTING_PKG.DEBUG('Draft Id is '|| p_draft_id, d_progress);
1159
1160 SELECT UDA_TEMPLATE_ID
1161 INTO l_line_template_id
1162 FROM po_lines_draft_all
1163 WHERE PO_LINE_ID = c_get_lines_rec.PO_LINE_ID
1164 AND DRAFT_ID = p_draft_id;
1165
1166 d_progress := 200;
1167 PO_UDA_DEFAULTING_PKG.DEBUG('l_line_template_id :' || l_line_template_id , d_progress);
1168 EXCEPTION
1169 WHEN OTHERS THEN
1170 d_progress := 210;
1171 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Line Template ID ', d_progress);
1172 RAISE;
1173 END;
1174 d_progress := 220;
1175
1176 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_SUBMISSION_CHECK for line : ' || x_return_status, d_progress);
1177 d_progress := 230;
1178 PO_UDA_DEFAULTING_PKG.UDA_SUBMISSION_CHECK
1179 (
1180 p_pk1_value => c_get_lines_rec.PO_LINE_ID
1181 ,p_pk2_value => p_draft_id
1182 ,p_template_id => l_line_template_id
1183 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1184 ,x_return_status => x_return_status
1185 ,x_errorcode => l_errorcode
1186 ,x_msg_count => l_msg_count
1187 ,x_msg_data => l_msg_data
1188 );
1189 d_progress := 240;
1190 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_SUBMISSION_CHECK for line : ' || x_return_status, d_progress);
1191 PO_UDA_DEFAULTING_PKG.GET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', x_external_attr_value_pairs, ext_name_val_obj);
1192 IF g_xsc_return_status = FND_API.G_RET_STS_SUCCESS THEN
1193 d_progress := 250;
1194 g_xsc_return_status := ext_name_val_obj.VALUE ;
1195 END IF;
1196
1197 d_progress := 260;
1198 PO_UDA_DEFAULTING_PKG.DEBUG('Looping for Submission Check for Shipments', d_progress);
1199 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN -- LOOP FOR ALL THE SHIPMENTS DEFUALTING
1200 d_progress := 270;
1201 FOR c_get_shipments_rec IN c_get_shipments(p_po_header_id, c_get_lines_rec.PO_LINE_ID, p_draft_id) LOOP
1202 d_progress := 280;
1203 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('SHIP_TO_LOC_ID', c_get_lines_rec.ITEM_ID || '', x_external_attr_value_pairs);
1204
1205 BEGIN
1206 d_progress := 290;
1207 PO_UDA_DEFAULTING_PKG.DEBUG('Shipment ID is'|| c_get_shipments_rec.LINE_LOCATION_ID, d_progress);
1208 PO_UDA_DEFAULTING_PKG.DEBUG('Draft Id is '|| p_draft_id, d_progress);
1209
1210 SELECT UDA_TEMPLATE_ID
1211 INTO l_shipment_template_id
1212 FROM PO_LINE_LOCATIONS_draft_all
1213 WHERE LINE_LOCATION_ID = c_get_shipments_rec.LINE_LOCATION_ID
1214 AND DRAFT_ID = p_draft_id;
1215
1216 d_progress := 300;
1217 PO_UDA_DEFAULTING_PKG.DEBUG('Template Id for Shipment '|| l_shipment_template_id, d_progress);
1218 EXCEPTION
1219 WHEN OTHERS THEN
1220 d_progress := 310;
1221 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Shipment Template ID', d_progress);
1222 RAISE;
1223 END;
1224 d_progress := 320;
1225 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_SUBMISSION_CHECK for shipment : ' || x_return_status, d_progress);
1226 d_progress := 330;
1227 PO_UDA_DEFAULTING_PKG.UDA_SUBMISSION_CHECK
1228 (
1229 p_pk1_value => c_get_shipments_rec.LINE_LOCATION_ID
1230 ,p_pk2_value => p_draft_id
1231 ,p_template_id => l_shipment_template_id
1232 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1233 ,x_return_status => x_return_status
1234 ,x_errorcode => l_errorcode
1235 ,x_msg_count => l_msg_count
1236 ,x_msg_data => l_msg_data
1237 );
1238 d_progress := 340;
1239 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_SUBMISSION_CHECK for shipment : ' || x_return_status, d_progress);
1240 PO_UDA_DEFAULTING_PKG.GET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', x_external_attr_value_pairs, ext_name_val_obj);
1241 IF g_xsc_return_status = FND_API.G_RET_STS_SUCCESS THEN
1242 d_progress := 350;
1243 g_xsc_return_status := ext_name_val_obj.VALUE ;
1244 END IF;
1245
1246 d_progress := 360;
1247 END LOOP;
1248 END IF;
1249 END LOOP;
1250 END IF;
1251 d_progress := 370;
1252 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', g_xsc_return_status, x_external_attr_value_pairs);
1253 d_progress := 380;
1254 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_SUBMISSION_CHECK fully done : ' || x_return_status, d_progress);
1255 EXCEPTION
1256 WHEN OTHERS THEN
1257 l_err_txt := 'Exception in PO_UDA_SUBMISSION_CHECK with ERROR : ' || SQLERRM;
1258 PO_MESSAGE_S.add_exc_msg
1259 (
1260 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
1261 p_procedure_name => 'PO_UDA_SUBMISSION_CHECK' || '.' || d_progress,
1262 p_error_text => l_err_txt
1263 );
1264 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, d_progress);
1265 x_return_status := 'U';
1266 END PO_UDA_SUBMISSION_CHECK;
1267
1268
1269 -------------------------------------------------------------------------------------------------------------------
1270 --Start of Comments
1271 --Name: DEFAULTING_NON_RENDERERED_AGS
1272 --Procedure:
1273 -- This procedure would default all the attribute groups which are not rendered on the UI
1274 -- For the header/draft, lines and shipmets which ever appropriate
1275 --Parameters:
1276 --IN:
1277 -- 1. p_po_header_id
1278 -- The po_header_id for which the defaulting should take place
1279 -- 2. p_draft_id
1280 -- The draft_id for which the defaulting should take place
1281 -- 3. p_address_lookup_type
1282 -- This variable would contain the address lookup type to get the address type
1283 --OUT:
1284 -- 1. x_external_attr_value_pairs
1285 -- This variable would contain an array of attribute value pairs (EGO_COL_NAME_VALUE_PAIR_TABLE)
1286 -- 2. x_return_status - Generic Out parameter having return status
1287 --
1288 --End of Comments
1289 --------------------------------------------------------------------------------------------------------------------
1290 PROCEDURE DEFAULTING_NON_RENDERERED_AGS
1291 (
1292 p_po_header_id IN NUMBER
1293 ,p_draft_id IN NUMBER
1294 ,p_doc_type IN VARCHAR2 DEFAULT 'MOD'
1295 ,x_external_attr_value_pairs OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
1296 ,x_return_status OUT NOCOPY VARCHAR2
1297 )
1298 IS
1299 d_progress NUMBER := 0;
1300
1301 l_template_id NUMBER;
1302 l_line_template_id NUMBER;
1303 l_shipment_template_id NUMBER;
1304 l_agent_id NUMBER;
1305 l_org_id NUMBER;
1306
1307 l_address_lookup_type VARCHAR2(200);
1308
1309 l_msg_count NUMBER;
1310 l_errorcode NUMBER;
1311 l_msg_data VARCHAR2(100);
1312
1313 CURSOR c_get_lines
1314 (
1315 p_po_header_id NUMBER
1316 ,p_draft_id NUMBER
1317 )IS
1318 SELECT PO_LINE_ID, ITEM_ID, LINE_TYPE_ID, CONTRACT_TYPE, CATEGORY_ID
1319 FROM PO_LINES_DRAFT_ALL
1320 WHERE PO_HEADER_ID = p_po_header_id
1321 AND DRAFT_ID = p_draft_id;
1322
1323 CURSOR c_get_shipments
1324 (
1325 p_po_header_id NUMBER
1326 ,p_line_id NUMBER
1327 ,p_draft_id NUMBER
1328 )IS
1329 SELECT LINE_LOCATION_ID, SHIP_TO_LOCATION_ID
1330 FROM PO_LINE_LOCATIONS_DRAFT_ALL
1331 WHERE PO_HEADER_ID = p_po_header_id
1332 AND PO_LINE_ID = p_line_id
1333 AND DRAFT_ID = p_draft_id;
1334
1335
1336 l_vendor_id NUMBER;
1337 l_vendor_site_id NUMBER;
1338 l_vendor_contact_id NUMBER;
1339 l_draft_id NUMBER;
1340 l_header_dirty_flag VARCHAR2(1) := 'Y';
1341
1342 l_err_txt VARCHAR2(2000);
1343 l_present NUMBER := 0;
1344
1345 BEGIN
1346 d_progress := 10;
1347 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.DEFAULTING_NON_RENDERERED_AGS with parameters' , d_progress);
1348 PO_UDA_DEFAULTING_PKG.DEBUG(' p_po_header_id :' || p_po_header_id, d_progress);
1349 PO_UDA_DEFAULTING_PKG.DEBUG(' p_draft_id :' || p_draft_id, d_progress);
1350 PO_UDA_DEFAULTING_PKG.DEBUG(' p_doc_type :' || p_doc_type, d_progress);
1351 x_return_status := FND_API.G_RET_STS_SUCCESS;
1352
1353 d_progress := 20;
1354 BEGIN
1355 d_progress := 30;
1356 IF p_doc_type = 'PO' THEN
1357 BEGIN
1358 d_progress := 40;
1359 SELECT VENDOR_ID, VENDOR_SITE_ID, VENDOR_CONTACT_ID, ORG_ID, AGENT_ID, UDA_TEMPLATE_ID
1360 INTO l_vendor_id, l_vendor_site_id, l_vendor_contact_id, l_org_id, l_agent_id, l_template_id
1361 FROM PO_HEADERS_MERGE_V
1362 WHERE PO_HEADER_ID = p_po_header_id
1363 AND DRAFT_ID = p_draft_id;
1364
1365 d_progress := 50;
1366 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_id :' || l_vendor_id, d_progress);
1367 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_site_id :' || l_vendor_site_id, d_progress);
1368 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_contact_id :' || l_vendor_contact_id, d_progress);
1369 PO_UDA_DEFAULTING_PKG.DEBUG(' l_org_id :' || l_org_id, d_progress);
1370 PO_UDA_DEFAULTING_PKG.DEBUG(' l_agent_id :' || l_agent_id, d_progress);
1371 PO_UDA_DEFAULTING_PKG.DEBUG(' l_template_id :' || l_template_id, d_progress);
1372 EXCEPTION
1373 WHEN No_Data_Found THEN -- the case where header is no longer dirty, some line is dirty
1374 d_progress := 60;
1375
1376 l_header_dirty_flag := 'N';
1377 SELECT VENDOR_ID, VENDOR_SITE_ID, VENDOR_CONTACT_ID, ORG_ID, AGENT_ID, UDA_TEMPLATE_ID
1378 INTO l_vendor_id, l_vendor_site_id, l_vendor_contact_id, l_org_id, l_agent_id, l_template_id
1379 FROM PO_HEADERS_MERGE_V
1380 WHERE PO_HEADER_ID = p_po_header_id
1381 AND DRAFT_ID = -1;
1382
1383 d_progress := 70;
1384 PO_UDA_DEFAULTING_PKG.DEBUG('Header is Not dirty', d_progress);
1385 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_id :' || l_vendor_id, d_progress);
1386 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_site_id :' || l_vendor_site_id, d_progress);
1387 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_contact_id :' || l_vendor_contact_id, d_progress);
1388 PO_UDA_DEFAULTING_PKG.DEBUG(' l_org_id :' || l_org_id, d_progress);
1389 PO_UDA_DEFAULTING_PKG.DEBUG(' l_agent_id :' || l_agent_id, d_progress);
1390 PO_UDA_DEFAULTING_PKG.DEBUG(' l_template_id :' || l_template_id, d_progress);
1391 END ;
1392 ELSE -- mod case. mod is not supposed to throw a NDF with +ve draft id, dirty or not dirty
1393 d_progress := 80;
1394 SELECT VENDOR_ID, VENDOR_SITE_ID, VENDOR_CONTACT_ID, ORG_ID, AGENT_ID, UDA_TEMPLATE_ID
1395 INTO l_vendor_id, l_vendor_site_id, l_vendor_contact_id, l_org_id, l_agent_id, l_template_id
1396 FROM PO_HEADERS_MERGE_V
1397 WHERE PO_HEADER_ID = p_po_header_id
1398 AND DRAFT_ID = p_draft_id;
1399
1400 d_progress := 90;
1401 PO_UDA_DEFAULTING_PKG.DEBUG('Mod Case', d_progress);
1402 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_id :' || l_vendor_id, d_progress);
1403 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_site_id :' || l_vendor_site_id, d_progress);
1404 PO_UDA_DEFAULTING_PKG.DEBUG(' l_vendor_contact_id :' || l_vendor_contact_id, d_progress);
1405 PO_UDA_DEFAULTING_PKG.DEBUG(' l_org_id :' || l_org_id, d_progress);
1406 PO_UDA_DEFAULTING_PKG.DEBUG(' l_agent_id :' || l_agent_id, d_progress);
1407 PO_UDA_DEFAULTING_PKG.DEBUG(' l_template_id :' || l_template_id, d_progress);
1408 END IF;
1409 d_progress := 100;
1410 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_CONTACT_ID', l_vendor_contact_id || '', x_external_attr_value_pairs);
1411 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_SITE_ID', l_vendor_site_id || '', x_external_attr_value_pairs);
1412 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_ID', l_vendor_id || '', x_external_attr_value_pairs);
1413 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('ORG_ID', l_org_id || '', x_external_attr_value_pairs);
1414 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('AGENT_ID', l_agent_id || '', x_external_attr_value_pairs);
1415 d_progress := 110;
1416
1417 IF p_doc_type = 'PO' THEN
1418 d_progress := 120;
1419 l_draft_id := -1;
1420 l_address_lookup_type := 'PO_UDA_ADDRESS_TYPES';
1421 --<PAR Project Start>
1422 ELSIF p_doc_type = 'MOD' THEN
1423 d_progress := 130;
1424 l_draft_id := p_draft_id;
1425 l_address_lookup_type := 'PO_MOD_UDA_ADDRESS_TYPES';
1426 ELSE
1427 d_progress := 135;
1428 l_draft_id := p_draft_id;
1429 l_address_lookup_type := 'PO_UDA_ADDRESS_TYPES';
1430 END IF;
1431 --<PAR Project End>
1432 PO_UDA_DEFAULTING_PKG.DEBUG('l_address_lookup_type :' || l_address_lookup_type, d_progress);
1433 d_progress := 140;
1434 -- Setting the draft ID here which will be used in Post DML Functions.
1435 -- as the data is still in draft table and we can't pass that draft
1436 -- in defaulting function so PO Case.
1437 PO_FED_FIELD_FUNCTIONS.XPD_DRAFT_ID := p_draft_id ;
1438
1439 IF l_header_dirty_flag = 'Y' THEN
1440 d_progress := 150;
1441 PO_UDA_DEFAULTING_PKG.DEBUG('Header is dirty so calling PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS', d_progress);
1442 PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS
1443 (
1444 p_pk1_value => p_po_header_id
1445 ,p_pk2_value => l_draft_id
1446 ,p_template_id => l_template_id
1447 ,p_address_lookup_type => l_address_lookup_type
1448 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1449 ,x_return_status => x_return_status
1450 ,x_errorcode => l_errorcode
1451 ,x_msg_count => l_msg_count
1452 ,x_msg_data => l_msg_data
1453 );
1454 d_progress := 160;
1455 PO_UDA_DEFAULTING_PKG.DEBUG('After PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS', d_progress);
1456 d_progress := 165;
1457 ELSE
1458 d_progress := 170;
1459 PO_UDA_DEFAULTING_PKG.DEBUG('Header is NOT dirty so NOT calling PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS', d_progress);
1460 END IF;
1461 --Bug 11894977
1462 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_EXECUTE_ACTIONS for line : ' || x_return_status, d_progress);
1463 PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS
1464 (
1465 p_pk1_value => p_po_header_id
1466 ,p_pk2_value => l_draft_id
1467 ,p_template_id => l_template_id
1468 ,p_event_type => 'XPD'
1469 ,p_write_to => 'FALSE'
1470 ,x_return_status => x_return_status
1471 ,x_errorcode => l_errorcode
1472 ,x_msg_count => l_msg_count
1473 ,x_msg_data => l_msg_data
1474 );
1475 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_EXECUTE_ACTIONS for header : ' || x_return_status, d_progress);
1476 --Bug 11894977
1477 d_progress := 180;
1478 d_progress := 50;
1479
1480 EXCEPTION
1481 WHEN NO_DATA_FOUND THEN
1482 -- initialize the external attributes with nulls.
1483 -- this is required for the lines code to work corectly
1484 d_progress := 190;
1485 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_CONTACT_ID', l_vendor_contact_id || '', x_external_attr_value_pairs);
1486 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_SITE_ID', l_vendor_site_id || '', x_external_attr_value_pairs);
1487 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('VENDOR_ID', l_vendor_id || '', x_external_attr_value_pairs);
1488 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('ORG_ID', l_org_id || '', x_external_attr_value_pairs);
1489 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('AGENT_ID', l_agent_id || '', x_external_attr_value_pairs);
1490 END;
1491 d_progress := 200;
1492 PO_UDA_DEFAULTING_PKG.DEBUG('Before Looping for Lines', d_progress);
1493 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN -- LOOP FOR ALL THE LINES DEFUALTING
1494 d_progress := 210;
1495 FOR c_get_lines_rec IN c_get_lines(p_po_header_id, p_draft_id) LOOP
1496 d_progress := 220;
1497 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('ITEM_ID', c_get_lines_rec.ITEM_ID || '', x_external_attr_value_pairs);
1498 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('LINE_TYPE_ID', c_get_lines_rec.LINE_TYPE_ID || '', x_external_attr_value_pairs);
1499 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('CONTRACT_TYPE', c_get_lines_rec.CONTRACT_TYPE || '', x_external_attr_value_pairs);
1500 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('CATEGORY_ID', c_get_lines_rec.CATEGORY_ID || '', x_external_attr_value_pairs);
1501
1502 BEGIN
1503 d_progress := 230;
1504 BEGIN
1505 PO_UDA_DEFAULTING_PKG.DEBUG('Line ID is'|| c_get_lines_rec.PO_LINE_ID, d_progress);
1506 PO_UDA_DEFAULTING_PKG.DEBUG('Draft Id is '|| p_draft_id, d_progress);
1507 d_progress := 240;
1508 SELECT UDA_TEMPLATE_ID
1509 INTO l_line_template_id
1510 FROM PO_LINES_DRAFT_ALL
1511 WHERE PO_LINE_ID = c_get_lines_rec.PO_LINE_ID
1512 AND DRAFT_ID = p_draft_id;
1513
1514 d_progress := 250;
1515 PO_UDA_DEFAULTING_PKG.DEBUG('l_line_template_id :' || l_line_template_id , d_progress);
1516 EXCEPTION
1517 WHEN OTHERS THEN
1518 d_progress := 260;
1519 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Line Template ID', d_progress);
1520 RAISE;
1521 END;
1522 d_progress := 270;
1523
1524 IF p_doc_type = 'PO' THEN
1525 l_draft_id := -1;
1526 ELSE
1527 l_draft_id := p_draft_id;
1528 END IF;
1529 d_progress := 280;
1530
1531
1532 BEGIN
1533 select 1
1534 into l_present
1535 from po_Lines_all_ext_b
1536 where po_line_id = c_get_lines_rec.PO_LINE_ID
1537 and draft_id = l_draft_id
1538 AND ROWNUM < 2;
1539 EXCEPTION
1540 WHEN NO_DATA_FOUND THEN
1541 l_present := 0;
1542 END;
1543
1544 d_progress := 290;
1545
1546 IF (l_present = 0) THEN
1547 -- If no ext record was found we need to fire defaulting functions.
1548 PO_UDA_DEFAULTING_PKG.DEBUG('Before PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS for lines', d_progress);
1549 PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS
1550 (
1551 p_pk1_value => c_get_lines_rec.PO_LINE_ID
1552 ,p_pk2_value => l_draft_id
1553 ,p_template_id => l_line_template_id
1554 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1555 ,x_return_status => x_return_status
1556 ,x_errorcode => l_errorcode
1557 ,x_msg_count => l_msg_count
1558 ,x_msg_data => l_msg_data
1559 );
1560 d_progress := 300;
1561 PO_UDA_DEFAULTING_PKG.DEBUG('After PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS for lines', d_progress);
1562 ELSE
1563 -- If the record is there then just fire POST DML actions.
1564 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_EXECUTE_ACTIONS for line : ' || x_return_status, d_progress);
1565 PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS
1566 (
1567 p_pk1_value => c_get_lines_rec.PO_LINE_ID
1568 ,p_pk2_value => l_draft_id
1569 ,p_template_id => l_line_template_id
1570 ,p_event_type => 'XPD'
1571 ,p_write_to => 'FALSE'
1572 ,x_return_status => x_return_status
1573 ,x_errorcode => l_errorcode
1574 ,x_msg_count => l_msg_count
1575 ,x_msg_data => l_msg_data
1576 );
1577 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_EXECUTE_ACTIONS for line : ' || x_return_status, d_progress);
1578 d_progress := 310;
1579 END IF;
1580 EXCEPTION
1581 WHEN NO_DATA_FOUND THEN
1582 d_progress := 320;
1583 NULL; -- (In case Line is not dirty)
1584 END;
1585 PO_UDA_DEFAULTING_PKG.DEBUG('Before Looping for Shipments', d_progress);
1586 d_progress := 330;
1587 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN -- LOOP FOR ALL THE SHIPMENTS DEFUALTING
1588 d_progress := 340;
1589 FOR c_get_shipments_rec IN c_get_shipments(p_po_header_id, c_get_lines_rec.PO_LINE_ID, p_draft_id) LOOP
1590 d_progress := 350;
1591 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('SHIP_TO_LOC_ID', c_get_shipments_rec.SHIP_TO_LOCATION_ID || '', x_external_attr_value_pairs);
1592
1593 BEGIN
1594 d_progress := 360;
1595 BEGIN
1596 d_progress := 370;
1597 PO_UDA_DEFAULTING_PKG.DEBUG('LINE_LOCATION_ID is'|| c_get_shipments_rec.LINE_LOCATION_ID, d_progress);
1598 PO_UDA_DEFAULTING_PKG.DEBUG('Draft Id is '|| p_draft_id, d_progress);
1599
1600 SELECT UDA_TEMPLATE_ID
1601 INTO l_shipment_template_id
1602 FROM PO_LINE_LOCATIONS_DRAFT_ALL
1603 WHERE LINE_LOCATION_ID = c_get_shipments_rec.LINE_LOCATION_ID
1604 AND DRAFT_ID = p_draft_id;
1605 d_progress := 380;
1606 PO_UDA_DEFAULTING_PKG.DEBUG('l_line_template_id :' || l_shipment_template_id , d_progress);
1607 EXCEPTION
1608 WHEN OTHERS THEN
1609 d_progress := 390;
1610 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Shipment Template ID', d_progress);
1611 RAISE;
1612 END;
1613 d_progress := 400;
1614
1615 IF p_doc_type = 'PO' THEN
1616 d_progress := 410;
1617 l_draft_id := -1;
1618 ELSE
1619 d_progress := 420;
1620 l_draft_id := p_draft_id;
1621 END IF;
1622
1623 BEGIN
1624 SELECT 1
1625 INTO l_present
1626 FROM po_Line_locations_all_ext_b
1627 WHERE line_location_id = c_get_shipments_rec.LINE_LOCATION_ID
1628 AND draft_id = l_draft_id
1629 AND ROWNUM < 2;
1630 EXCEPTION
1631 WHEN NO_DATA_FOUND THEN
1632 l_present := 0;
1633 END;
1634
1635 d_progress := 430;
1636
1637 IF ( l_present = 0) THEN
1638 PO_UDA_DEFAULTING_PKG.DEBUG('Before PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS for shipments', d_progress);
1639 PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS
1640 (
1641 p_pk1_value => c_get_shipments_rec.LINE_LOCATION_ID
1642 ,p_pk2_value => l_draft_id
1643 ,p_template_id => l_shipment_template_id
1644 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1645 ,x_return_status => x_return_status
1646 ,x_errorcode => l_errorcode
1647 ,x_msg_count => l_msg_count
1648 ,x_msg_data => l_msg_data
1649 );
1650 d_progress := 440;
1651 PO_UDA_DEFAULTING_PKG.DEBUG('After PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS for shipments', d_progress);
1652 ELSE
1653 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_EXECUTE_ACTIONS for shipment : ' || x_return_status, d_progress);
1654 PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS
1655 (
1656 p_pk1_value => c_get_shipments_rec.LINE_LOCATION_ID
1657 ,p_pk2_value => -1
1658 ,p_template_id => l_shipment_template_id
1659 ,p_event_type => 'XPD'
1660 ,p_write_to => 'FALSE'
1661 ,x_return_status => x_return_status
1662 ,x_errorcode => l_errorcode
1663 ,x_msg_count => l_msg_count
1664 ,x_msg_data => l_msg_data
1665 );
1666 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_EXECUTE_ACTIONS for shipment : ' || x_return_status, d_progress);
1667 d_progress := 450;
1668 END IF;
1669
1670 EXCEPTION
1671 WHEN NO_DATA_FOUND THEN
1672 d_progress := 460;
1673 NULL; -- (In case Shipment is not dirty)
1674 END;
1675 END LOOP; -- For shipments
1676 END IF;
1677 END LOOP; -- For Lines
1678 END IF;
1679 d_progress := 470;
1680 PO_UDA_DEFAULTING_PKG.DEBUG('Looping for Lines is done', d_progress);
1681
1682 EXCEPTION
1683 WHEN OTHERS THEN
1684 l_err_txt := 'Exception in DEFAULTING_NON_RENDERERED_AGS with ERROR : ' || SQLERRM;
1685 PO_MESSAGE_S.add_exc_msg
1686 (
1687 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
1688 p_procedure_name => 'DEFAULTING_NON_RENDERERED_AGS' || '.' || d_progress,
1689 p_error_text => l_err_txt
1690 );
1691 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, d_progress);
1692 x_return_status := 'U';
1693 END DEFAULTING_NON_RENDERERED_AGS;
1694
1695
1696 --------------------------------------------------------------------------------------------------------------------
1697 --Start of Comments
1698 --Name: DEFAULTING_ATTRIBUTE_GROUPS
1699 --Procedure:
1700 -- This procedure would execute CONSTRUCT_USAGE_OBJECT_ARRAY procedure and then get the usage objects for which the
1701 -- defaulting should be done with all the validations.
1702 -- Then it executes the DEFAULT_AGS_FROM_USAGE_OBJECT procexdure whcih actually defaults the AGs and its
1703 -- corresponding Attributes.
1704 --Parameters:
1705 --IN:
1706 -- 1. p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value
1707 -- The Primary Key values for the UDA Attributes
1708 -- 2. p_template_id
1709 -- This variable would contain the template id for which the actions are to be executed
1710 -- 3. p_address_lookup_type
1711 -- This variable would contain the address lookup type to get the address type
1712 --IN/OUT:
1713 -- 1. x_external_attr_value_pairs
1714 -- This variable would contain an array of attribute value pairs (EGO_COL_NAME_VALUE_PAIR_TABLE)
1715 --OUT:
1716 -- 1. x_return_status - Generic Out parameter having return status
1717 -- 2. x_errorcode - Generic Out parameter having error code
1718 -- 3. x_msg_count - Generic Out parameter having return msg Count
1719 -- 4. x_msg_data - Generic Out parameter having return msg
1720 --
1721 --End of Comments
1722 --------------------------------------------------------------------------------------------------------------------
1723 PROCEDURE DEFAULTING_ATTRIBUTE_GROUPS
1724 (
1725 p_pk1_value IN NUMBER
1726 ,p_pk2_value IN NUMBER DEFAULT NULL
1727 ,p_pk3_value IN NUMBER DEFAULT NULL
1728 ,p_pk4_value IN NUMBER DEFAULT NULL
1729 ,p_pk5_value IN NUMBER DEFAULT NULL
1730 ,p_template_id IN NUMBER
1731 ,p_address_lookup_type IN VARCHAR2 DEFAULT NULL
1732 ,x_external_attr_value_pairs IN OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
1733 ,x_return_status OUT NOCOPY VARCHAR2
1734 ,x_errorcode OUT NOCOPY NUMBER
1735 ,x_msg_count OUT NOCOPY NUMBER
1736 ,x_msg_data OUT NOCOPY VARCHAR2
1737 )
1738 IS
1739 d_progress NUMBER := 0;
1740 l_po_uda_usage_object_array PO_UDA_USAGE_OBJECT_ARRAY;
1741
1742 l_attr_name_value_pairs EGO_USER_ATTR_DATA_TABLE;
1743 l_attributes_row_table EGO_USER_ATTR_ROW_TABLE;
1744
1745 l_pk_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
1746
1747 l_pk1_column_name VARCHAR2(200);
1748 l_pk2_column_name VARCHAR2(200);
1749 l_pk3_column_name VARCHAR2(200);
1750 l_pk4_column_name VARCHAR2(200);
1751 l_pk5_column_name VARCHAR2(200);
1752
1753 l_base_object_name VARCHAR2(200);
1754
1755 l_failed_row_id_list VARCHAR2(2000);
1756 l_entity_code VARCHAR2(200);
1757
1758 l_err_txt VARCHAR2(2000);
1759
1760 BEGIN
1761
1762 d_progress := 10;
1763 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.DEFAULTING_ATTRIBUTE_GROUPS with parameters' , d_progress);
1764 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value : ' || p_pk1_value, d_progress);
1765 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value : ' || p_pk2_value, d_progress);
1766 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value : ' || p_pk3_value, d_progress);
1767 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value : ' || p_pk4_value, d_progress);
1768 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk5_value : ' || p_pk5_value, d_progress);
1769 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id : ' || p_template_id, d_progress);
1770 PO_UDA_DEFAULTING_PKG.DEBUG('p_address_lookup_type : ' || p_address_lookup_type, d_progress);
1771 PO_UDA_DEFAULTING_PKG.DEBUG('x_external_attr_value_pairs is as follows :', d_progress);
1772 PO_UDA_DEFAULTING_PKG.DEBUG(x_external_attr_value_pairs, d_progress);
1773
1774 x_return_status := FND_API.G_RET_STS_SUCCESS;
1775 d_progress := 20;
1776 IF p_template_id IS NULL THEN
1777 d_progress := 30;
1778 x_return_status := 'E';
1779 RETURN;
1780 END IF;
1781
1782 d_progress := 40;
1783 PO_UDA_DEFAULTING_PKG.DEBUG('Before CONSTRUCT_USAGE_OBJECT_ARRAY ' || x_return_status, d_progress);
1784 PO_UDA_DEFAULTING_PKG.CONSTRUCT_USAGE_OBJECT_ARRAY
1785 (
1786 p_pk1_value => p_pk1_value
1787 ,p_pk2_value => p_pk2_value
1788 ,p_pk3_value => p_pk3_value
1789 ,p_pk4_value => p_pk4_value
1790 ,p_pk5_value => p_pk5_value
1791 ,p_template_id => p_template_id
1792 ,x_po_uda_usage_object_array => l_po_uda_usage_object_array
1793 ,x_return_status => x_return_status
1794 ,x_errorcode => x_errorcode
1795 ,x_msg_count => x_msg_count
1796 ,x_msg_data => x_msg_data
1797 );
1798 d_progress := 50;
1799 PO_UDA_DEFAULTING_PKG.DEBUG('After CONSTRUCT_USAGE_OBJECT_ARRAY ' || x_return_status, d_progress);
1800
1801 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1802 d_progress := 60;
1803 PO_UDA_DEFAULTING_PKG.DEBUG('Before DEFAULT_AGS_FROM_USAGE_OBJECT ' || x_return_status, d_progress);
1804 PO_UDA_DEFAULTING_PKG.DEFAULT_AGS_FROM_USAGE_OBJECT
1805 (
1806 p_pk1_value => p_pk1_value
1807 ,p_pk2_value => p_pk2_value
1808 ,p_pk3_value => p_pk3_value
1809 ,p_pk4_value => p_pk4_value
1810 ,p_pk5_value => p_pk5_value
1811 ,p_template_id => p_template_id
1812 ,p_address_lookup_type => p_address_lookup_type
1813 ,x_external_attr_value_pairs => x_external_attr_value_pairs
1814 ,x_po_uda_usage_object_array => l_po_uda_usage_object_array
1815 ,x_return_status => x_return_status
1816 ,x_errorcode => x_errorcode
1817 ,x_msg_count => x_msg_count
1818 ,x_msg_data => x_msg_data
1819 );
1820 d_progress := 70;
1821 PO_UDA_DEFAULTING_PKG.DEBUG('After DEFAULT_AGS_FROM_USAGE_OBJECT ' || x_return_status, d_progress);
1822 END IF;
1823 d_progress := 80;
1824
1825 EXCEPTION
1826 WHEN OTHERS THEN
1827 l_err_txt := 'Exception in DEFAULTING_ATTRIBUTE_GROUPS with ERROR : ' || SQLERRM;
1828 PO_MESSAGE_S.add_exc_msg
1829 (
1830 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
1831 p_procedure_name => 'DEFAULTING_ATTRIBUTE_GROUPS' || '.' || d_progress,
1832 p_error_text => l_err_txt
1833 );
1834 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, d_progress);
1835 x_return_status := 'U';
1836 END DEFAULTING_ATTRIBUTE_GROUPS;
1837
1838 --------------------------------------------------------------------------------------------------------------------
1839 --Start of Comments
1840 --Name: DEFAULT_AGS_FROM_USAGE_OBJECT
1841 --Procedure:
1842 -- This procedure would execute for each object in the x_po_uda_usage_object_array array
1843 -- It executes the PO_UDA_IMPORT_PKG.POPULATE_EMPTY_AGS, PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION(XD),
1844 -- EGO_USER_ATTRS_DATA_PVT.Process_User_Attrs_Data(EGO Validations),
1845 -- PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION(XV),EGO_USER_ATTRS_DATA_PVT.Process_User_Attrs_Data(Populates the data),
1846 -- PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION(XPD).
1847 --Parameters:
1848 --IN:
1849 -- 1. p_pk1_value, p_pk2_value, p_pk3_value, p_pk4_value, p_pk5_value
1850 -- The Primary Key values for the UDA Attributes
1851 -- 2. p_template_id
1852 -- This variable would contain the template id for which the actions are to be executed
1853 --IN/OUT:
1854 -- 1. x_external_attr_value_pairs
1855 -- This variable would contain an array of attribute value pairs (EGO_COL_NAME_VALUE_PAIR_TABLE)
1856 -- 2. x_po_uda_usage_object_array
1857 -- This variable of type PO_UDA_USAGE_OBJECT_ARRAY contains data of the usages.
1858 -- 3. p_address_lookup_type
1859 -- This variable would contain the address lookup type to get the address type
1860 --OUT:
1861 -- 1. x_return_status - Generic Out parameter having return status
1862 -- 2. x_errorcode - Generic Out parameter having error code
1863 -- 3. x_msg_count - Generic Out parameter having return msg Count
1864 -- 4. x_msg_data - Generic Out parameter having return msg
1865 --
1866 --End of Comments
1867 --------------------------------------------------------------------------------------------------------------------
1868 PROCEDURE DEFAULT_AGS_FROM_USAGE_OBJECT
1869 (
1870 p_pk1_value IN NUMBER
1871 ,p_pk2_value IN NUMBER DEFAULT NULL
1872 ,p_pk3_value IN NUMBER DEFAULT NULL
1873 ,p_pk4_value IN NUMBER DEFAULT NULL
1874 ,p_pk5_value IN NUMBER DEFAULT NULL
1875 ,p_template_id IN NUMBER
1876 ,p_address_lookup_type IN VARCHAR2 DEFAULT NULL
1877 ,x_external_attr_value_pairs IN OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
1878 ,x_po_uda_usage_object_array IN OUT NOCOPY PO_UDA_USAGE_OBJECT_ARRAY
1879 ,x_return_status OUT NOCOPY VARCHAR2
1880 ,x_errorcode OUT NOCOPY NUMBER
1881 ,x_msg_count OUT NOCOPY NUMBER
1882 ,x_msg_data OUT NOCOPY VARCHAR2
1883 )IS
1884
1885 d_progress NUMBER := 0;
1886
1887 l_attr_name_value_pairs EGO_USER_ATTR_DATA_TABLE;
1888 l_attributes_row_table EGO_USER_ATTR_ROW_TABLE;
1889
1890 l_pk_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
1891
1892 l_pk1_column_name VARCHAR2(200);
1893 l_pk2_column_name VARCHAR2(200);
1894 l_pk3_column_name VARCHAR2(200);
1895 l_pk4_column_name VARCHAR2(200);
1896 l_pk5_column_name VARCHAR2(200);
1897
1898 l_base_object_name VARCHAR2(200);
1899
1900 l_class_code_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
1901
1902 l_failed_row_id_list VARCHAR2(2000);
1903 l_entity_code VARCHAR2(200);
1904 ext_name_val_obj EGO_COL_NAME_VALUE_PAIR_OBJ;
1905
1906 l_err_txt VARCHAR2(2000);
1907
1908 BEGIN
1909 d_progress := 10;
1910 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.DEFAULT_AGS_FROM_USAGE_OBJECT with parameters' , d_progress);
1911 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value : ' || p_pk1_value, d_progress);
1912 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value : ' || p_pk2_value, d_progress);
1913 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value : ' || p_pk3_value, d_progress);
1914 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value : ' || p_pk4_value, d_progress);
1915 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk_value : ' || p_pk5_value, d_progress);
1916 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id : ' || p_template_id, d_progress);
1917 PO_UDA_DEFAULTING_PKG.DEBUG('p_address_lookup_type : ' || p_address_lookup_type, d_progress);
1918 PO_UDA_DEFAULTING_PKG.DEBUG('x_external_attr_value_pairs is as follows :', d_progress);
1919 PO_UDA_DEFAULTING_PKG.DEBUG(x_external_attr_value_pairs, d_progress);
1920 PO_UDA_DEFAULTING_PKG.DEBUG('x_po_uda_usage_object_array is as follows :', d_progress);
1921 PO_UDA_DEFAULTING_PKG.DEBUG(x_po_uda_usage_object_array, d_progress);
1922
1923 x_return_status := FND_API.G_RET_STS_SUCCESS;
1924 BEGIN
1925 d_progress := 20;
1926 SELECT ENTITY_CODE
1927 INTO l_entity_code
1928 FROM PO_UDA_AG_TEMPLATES
1929 WHERE TEMPLATE_ID = p_template_id;
1930 d_progress := 30;
1931 PO_UDA_DEFAULTING_PKG.DEBUG('l_entity_code :' || l_entity_code, d_progress);
1932 EXCEPTION
1933 WHEN OTHERS THEN
1934 d_progress := 40;
1935 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the ENTITY CODE', d_progress);
1936 RAISE;
1937 END;
1938 d_progress := 50;
1939 PO_UDA_DEFAULTING_PKG.DEBUG('Before PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT' , d_progress);
1940 PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT(
1941 PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name
1942 ,p_pk1_value
1943 ,p_pk2_value
1944 ,p_pk3_value
1945 ,p_pk4_value
1946 ,p_pk5_value
1947 ,l_pk_column_name_value_pairs
1948 );
1949 d_progress := 60;
1950 PO_UDA_DEFAULTING_PKG.DEBUG('After PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT' , d_progress);
1951 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows :', d_progress);
1952 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
1953
1954 d_progress := 70;
1955 l_attributes_row_table := EGO_USER_ATTR_ROW_TABLE();
1956 l_attr_name_value_pairs := EGO_USER_ATTR_DATA_TABLE();
1957 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized objects l_attributes_row_table, l_attr_name_value_pairs', d_progress);
1958 d_progress := 80;
1959 l_class_code_name_value_pairs := EGO_COL_NAME_VALUE_PAIR_ARRAY
1960 (
1961 EGO_COL_NAME_VALUE_PAIR_OBJ
1962 (
1963 'UDA_TEMPLATE_ID'
1964 ,p_template_id || ''
1965 )
1966 );
1967 d_progress := 90;
1968 PO_UDA_DEFAULTING_PKG.DEBUG('l_class_code_name_value_pairs is constructed with template id :' || p_template_id , d_progress);
1969
1970 l_base_object_name := PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name;
1971 PO_UDA_DEFAULTING_PKG.DEBUG('l_base_object_name is : ' || l_base_object_name, d_progress);
1972 d_progress := 100;
1973
1974 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', FND_API.G_RET_STS_SUCCESS, x_external_attr_value_pairs);
1975 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_errorcode', '0', x_external_attr_value_pairs);
1976 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_msg_count', '0', x_external_attr_value_pairs);
1977 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_msg_data', 'SUCCESS', x_external_attr_value_pairs);
1978 d_progress := 110;
1979
1980 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1981 d_progress := 120;
1982 PO_UDA_DEFAULTING_PKG.DEBUG('Before POPULATE_EMPTY_AGS ' || x_return_status, d_progress);
1983 PO_UDA_IMPORT_PKG.POPULATE_EMPTY_AGS
1984 (
1985 p_template_id => l_class_code_name_value_pairs(l_class_code_name_value_pairs.FIRST).VALUE
1986 ,p_pk_column_name_value_pairs => l_pk_column_name_value_pairs
1987 ,p_external_attr_value_pairs => x_external_attr_value_pairs
1988 ,p_address_lookup_type => p_address_lookup_type
1989 ,x_po_uda_usage_object_array => x_po_uda_usage_object_array
1990 ,x_attr_name_value_pairs => l_attr_name_value_pairs
1991 ,x_attributes_row_table => l_attributes_row_table
1992 ,x_return_status => x_return_status
1993 ,x_errorcode => x_errorcode
1994 ,x_msg_count => x_msg_count
1995 ,x_msg_data => x_msg_data
1996 );
1997 d_progress := 130;
1998 PO_UDA_DEFAULTING_PKG.DEBUG('After POPULATE_EMPTY_AGS ' || x_return_status, d_progress);
1999 END IF;
2000 d_progress := 140;
2001 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2002 d_progress := 150;
2003 PO_UDA_DEFAULTING_PKG.DEBUG('Before EXECUTE_IMPORT_UDA_FUNCTION (XD) ' || x_return_status, d_progress);
2004 PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION
2005 (
2006 p_template_id => l_class_code_name_value_pairs(l_class_code_name_value_pairs.FIRST).VALUE
2007 ,p_event => 'XD'
2008 ,x_external_attr_value_pairs => x_external_attr_value_pairs
2009 ,x_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2010 ,x_attr_name_value_pairs => l_attr_name_value_pairs
2011 ,x_attributes_row_table => l_attributes_row_table
2012 ,x_return_status => x_return_status
2013 ,x_errorcode => x_errorcode
2014 ,x_msg_count => x_msg_count
2015 ,x_msg_data => x_msg_data
2016 );
2017 d_progress := 160;
2018 PO_UDA_DEFAULTING_PKG.DEBUG('After EXECUTE_IMPORT_UDA_FUNCTION (XD) ' || x_return_status, d_progress);
2019 END IF;
2020 d_progress := 170;
2021 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2022 d_progress := 180;
2023 PO_UDA_DEFAULTING_PKG.DEBUG('Before VALIDATE_ROW ' || x_return_status, d_progress);
2024 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table.COUNT ' || l_attributes_row_table.COUNT, d_progress);
2025 IF l_attributes_row_table.COUNT > 0 THEN
2026 d_progress := 190;
2027 PO_UDA_DEFAULTING_PKG.DEBUG('Before EGO_USER_ATTRS_DATA_PVT.Process_User_Attrs_Data with parameters ' || x_return_status, d_progress);
2028 PO_UDA_DEFAULTING_PKG.DEBUG('l_base_object_name : ' || l_base_object_name, d_progress);
2029 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows : ', d_progress);
2030 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
2031 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_data_table is as follows : ', d_progress);
2032 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
2033 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows : ', d_progress);
2034 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
2035 PO_UDA_DEFAULTING_PKG.DEBUG('l_class_code_name_value_pairs is as follows : ', d_progress);
2036 PO_UDA_DEFAULTING_PKG.DEBUG(l_class_code_name_value_pairs, d_progress);
2037 d_progress := 200;
2038 EGO_USER_ATTRS_DATA_PVT.Process_User_Attrs_Data
2039 (
2040 p_api_version => 1.0
2041 ,p_object_name => l_base_object_name
2042 ,p_attributes_row_table => l_attributes_row_table
2043 ,p_attributes_data_table => l_attr_name_value_pairs
2044 ,p_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2045 ,p_class_code_name_value_pairs => l_class_code_name_value_pairs
2046 ,p_validate_only => FND_API.G_TRUE
2047 ,x_failed_row_id_list => l_failed_row_id_list
2048 ,x_return_status => x_return_status
2049 ,x_errorcode => x_errorcode
2050 ,x_msg_count => x_msg_count
2051 ,x_msg_data => x_msg_data
2052 );
2053 d_progress := 210;
2054 PO_UDA_DEFAULTING_PKG.DEBUG('After EGO_USER_ATTRS_DATA_PVT.Process_User_Attrs_Data :' || x_return_status, d_progress);
2055 PO_UDA_DEFAULTING_PKG.DEBUG('l_failed_row_id_list is : ' || l_failed_row_id_list, d_progress);
2056 PO_UDA_DEFAULTING_PKG.DEBUG('x_errorcode :' || x_errorcode, d_progress);
2057 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_count :' || x_msg_count, d_progress);
2058 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_data :' || x_msg_data, d_progress);
2059 ELSE
2060 d_progress := 220;
2061 PO_UDA_DEFAULTING_PKG.DEBUG('Not calling VALIDATE_ROW as l_attributes_row_table.COUNT <=0', d_progress);
2062 END IF;
2063 d_progress := 230;
2064 PO_UDA_DEFAULTING_PKG.DEBUG('After VALIDATE_ROW ' || x_return_status, d_progress);
2065 END IF;
2066
2067 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2068 d_progress := 240;
2069 PO_UDA_DEFAULTING_PKG.DEBUG('Before EXECUTE_IMPORT_UDA_FUNCTION (XV) ' || x_return_status, d_progress);
2070 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table.COUNT ' || l_attributes_row_table.COUNT, d_progress);
2071 IF l_attributes_row_table.COUNT > 0 THEN
2072 d_progress := 250;
2073 PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION
2074 (
2075 p_template_id => l_class_code_name_value_pairs(l_class_code_name_value_pairs.FIRST).VALUE
2076 ,p_event => 'XV'
2077 ,x_external_attr_value_pairs => x_external_attr_value_pairs
2078 ,x_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2079 ,x_attr_name_value_pairs => l_attr_name_value_pairs
2080 ,x_attributes_row_table => l_attributes_row_table
2081 ,x_return_status => x_return_status
2082 ,x_errorcode => x_errorcode
2083 ,x_msg_count => x_msg_count
2084 ,x_msg_data => x_msg_data
2085 );
2086 d_progress := 260;
2087 ELSE
2088 d_progress := 270;
2089 PO_UDA_DEFAULTING_PKG.DEBUG('Not calling PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION as l_attributes_row_table.COUNT <=0', d_progress);
2090 END IF;
2091 PO_UDA_DEFAULTING_PKG.DEBUG('After EXECUTE_IMPORT_UDA_FUNCTION (XV) ' || x_return_status, d_progress);
2092 d_progress := 280;
2093 END IF;
2094 d_progress := 290;
2095
2096 PO_UDA_DEFAULTING_PKG.GET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', x_external_attr_value_pairs, ext_name_val_obj);
2097 IF x_return_status = FND_API.G_RET_STS_SUCCESS AND ext_name_val_obj.VALUE = FND_API.G_RET_STS_SUCCESS THEN
2098 d_progress := 300;
2099 PO_UDA_DEFAULTING_PKG.DEBUG('Before Process_User_Attrs_Data ' || x_return_status, d_progress);
2100 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table.COUNT ' || l_attributes_row_table.COUNT, d_progress);
2101 IF l_attributes_row_table.COUNT > 0 THEN
2102 d_progress := 310;
2103 PO_UDA_DEFAULTING_PKG.DEBUG('Before EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data with parameters ' || x_return_status, d_progress);
2104 PO_UDA_DEFAULTING_PKG.DEBUG('l_base_object_name : ' || l_base_object_name, d_progress);
2105 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows : ', d_progress);
2106 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
2107 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_data_table is as follows : ', d_progress);
2108 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
2109 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows : ', d_progress);
2110 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
2111 PO_UDA_DEFAULTING_PKG.DEBUG('l_class_code_name_value_pairs is as follows : ', d_progress);
2112 PO_UDA_DEFAULTING_PKG.DEBUG(l_class_code_name_value_pairs, d_progress);
2113 d_progress := 320;
2114 EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data
2115 (
2116 p_api_version => 1.0
2117 ,p_object_name => l_base_object_name
2118 ,p_attributes_row_table => l_attributes_row_table
2119 ,p_attributes_data_table => l_attr_name_value_pairs
2120 ,p_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2121 ,p_class_code_name_value_pairs => l_class_code_name_value_pairs
2122 ,x_failed_row_id_list => l_failed_row_id_list
2123 ,x_return_status => x_return_status
2124 ,x_errorcode => x_errorcode
2125 ,x_msg_count => x_msg_count
2126 ,x_msg_data => x_msg_data
2127 );
2128 d_progress := 330;
2129 PO_UDA_DEFAULTING_PKG.DEBUG('After EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data :' || x_return_status, d_progress);
2130 PO_UDA_DEFAULTING_PKG.DEBUG('l_failed_row_id_list is : ' || l_failed_row_id_list, d_progress);
2131 PO_UDA_DEFAULTING_PKG.DEBUG('x_errorcode :' || x_errorcode, d_progress);
2132 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_count :' || x_msg_count, d_progress);
2133 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_data :' || x_msg_data, d_progress);
2134 ELSE
2135 d_progress := 340;
2136 PO_UDA_DEFAULTING_PKG.DEBUG('Not calling EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data as l_attributes_row_table.COUNT <=0', d_progress);
2137 END IF;
2138 END IF;
2139 d_progress := 350;
2140 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2141 d_progress := 360;
2142 PO_UDA_DEFAULTING_PKG.DEBUG('Before EXECUTE_IMPORT_UDA_FUNCTION (XPD) ' || x_return_status, d_progress);
2143 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table.COUNT ' || l_attributes_row_table.COUNT, d_progress);
2144 IF l_attributes_row_table.COUNT > 0 THEN
2145 d_progress := 370;
2146 PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION
2147 (
2148 p_template_id => l_class_code_name_value_pairs(l_class_code_name_value_pairs.FIRST).VALUE
2149 ,p_event => 'XPD'
2150 ,x_external_attr_value_pairs => x_external_attr_value_pairs
2151 ,x_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2152 ,x_attr_name_value_pairs => l_attr_name_value_pairs
2153 ,x_attributes_row_table => l_attributes_row_table
2154 ,x_return_status => x_return_status
2155 ,x_errorcode => x_errorcode
2156 ,x_msg_count => x_msg_count
2157 ,x_msg_data => x_msg_data
2158 );
2159 d_progress := 380;
2160 ELSE
2161 d_progress := 390;
2162 PO_UDA_DEFAULTING_PKG.DEBUG('Not calling PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION as l_attributes_row_table.COUNT <=0', d_progress);
2163 END IF;
2164 PO_UDA_DEFAULTING_PKG.DEBUG('After EXECUTE_IMPORT_UDA_FUNCTION (XPD) ' || x_return_status, d_progress);
2165 END IF;
2166 d_progress := 400;
2167 EXCEPTION
2168 WHEN OTHERS THEN
2169 l_err_txt := 'Exception in DEFAULT_AGS_FROM_USAGE_OBJECT with ERROR : ' || SQLERRM;
2170 PO_MESSAGE_S.add_exc_msg
2171 (
2172 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
2173 p_procedure_name => 'DEFAULT_AGS_FROM_USAGE_OBJECT' || '.' || d_progress,
2174 p_error_text => l_err_txt
2175 );
2176 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, d_progress);
2177 x_return_status := 'U';
2178 END DEFAULT_AGS_FROM_USAGE_OBJECT;
2179
2180
2181 PROCEDURE UDA_EXECUTE_ACTIONS(
2182 p_pk1_value IN NUMBER
2183 ,p_pk2_value IN NUMBER DEFAULT NULL
2184 ,p_pk3_value IN NUMBER DEFAULT NULL
2185 ,p_pk4_value IN NUMBER DEFAULT NULL
2186 ,p_pk5_value IN NUMBER DEFAULT NULL
2187 ,p_template_id IN NUMBER
2188 ,p_event_type IN VARCHAR2
2189 ,p_write_to IN VARCHAR2
2190 ,x_return_status OUT NOCOPY VARCHAR2
2191 ,x_errorcode OUT NOCOPY NUMBER
2192 ,x_msg_count OUT NOCOPY NUMBER
2193 ,x_msg_data OUT NOCOPY VARCHAR2
2194 )
2195 IS
2196 d_progress NUMBER := 0;
2197
2198 CURSOR c_po_header_ext(p_header_id NUMBER) IS
2199 SELECT DISTINCT ATTR_GROUP_ID
2200 FROM PO_HEADERS_ALL_EXT_B
2201 WHERE PO_HEADER_ID = p_header_id;
2202
2203 CURSOR c_po_line_ext(p_line_id NUMBER) IS
2204 SELECT DISTINCT ATTR_GROUP_ID
2205 FROM PO_LINES_ALL_EXT_B
2206 WHERE PO_LINE_ID = p_line_id;
2207
2208 CURSOR c_po_location_ext(p_location_id NUMBER) IS
2209 SELECT DISTINCT ATTR_GROUP_ID
2210 FROM PO_LINE_LOCATIONS_ALL_EXT_B
2211 WHERE LINE_LOCATION_ID = p_location_id;
2212
2213 CURSOR c_po_attr_list(p_ag_type VARCHAR2, p_ag_name VARCHAR2) IS
2214 SELECT END_USER_COLUMN_NAME
2215 FROM FND_DESCR_FLEX_COLUMN_USAGES
2216 WHERE DESCRIPTIVE_FLEXFIELD_NAME = p_ag_type
2217 AND DESCRIPTIVE_FLEX_CONTEXT_CODE = p_ag_name;
2218
2219 is_valid_entity_ag BOOLEAN := FALSE;
2220
2221 l_pk_column_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
2222 l_entity_code VARCHAR2(200);
2223 l_ag_type VARCHAR2(200);
2224 l_ag_name VARCHAR2(200);
2225 l_attr_list VARCHAR2(2000);
2226 l_data_level VARCHAR2(200);
2227 l_pk1_column_name VARCHAR2(200);
2228 l_pk2_column_name VARCHAR2(200);
2229 l_pk3_column_name VARCHAR2(200);
2230 l_pk4_column_name VARCHAR2(200);
2231 l_pk5_column_name VARCHAR2(200);
2232
2233 l_attr_group_request_table EGO_ATTR_GROUP_REQUEST_TABLE;
2234
2235 l_attributes_row_table EGO_USER_ATTR_ROW_TABLE;
2236 l_attr_name_value_pairs EGO_USER_ATTR_DATA_TABLE;
2237 l_class_code_name_value_pairs EGO_COL_NAME_VALUE_PAIR_ARRAY;
2238
2239 l_pk_col_name_value_pairs_ind NUMBER;
2240 l_attr_name_value_pairs_ind NUMBER;
2241 l_attributes_row_table_ind NUMBER;
2242 l_attr_group_request_table_ind NUMBER;
2243
2244 l_pk_column_name_value EGO_COL_NAME_VALUE_PAIR_OBJ;
2245 l_attr_name_value EGO_USER_ATTR_DATA_OBJ;
2246 l_attributes_row ego_user_attr_row_obj;
2247 l_attr_group_request ego_attr_group_request_obj;
2248 l_external_attr_value_pairs EGO_COL_NAME_VALUE_PAIR_TABLE;
2249 ext_name_val_obj EGO_COL_NAME_VALUE_PAIR_OBJ;
2250
2251 l_base_object_name VARCHAR2(200);
2252 l_failed_row_id_list VARCHAR2(2000);
2253
2254 BEGIN
2255
2256 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS with parameters' , d_progress);
2257 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk1_value :' || p_pk1_value, d_progress);
2258 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk2_value :' || p_pk2_value, d_progress);
2259 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk3_value :' || p_pk3_value, d_progress);
2260 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk4_value :' || p_pk4_value, d_progress);
2261 PO_UDA_DEFAULTING_PKG.DEBUG('p_pk5_value :' || p_pk5_value, d_progress);
2262 PO_UDA_DEFAULTING_PKG.DEBUG('p_template_id :' || p_template_id, d_progress);
2263 PO_UDA_DEFAULTING_PKG.DEBUG('p_event_type :' || p_event_type, d_progress);
2264
2265 d_progress := 10;
2266
2267 x_return_status := FND_API.G_RET_STS_SUCCESS;
2268 l_pk_column_name_value_pairs := EGO_COL_NAME_VALUE_PAIR_ARRAY();
2269 l_attr_group_request_table := EGO_ATTR_GROUP_REQUEST_TABLE();
2270
2271 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_pk_column_name_value_pairs, l_attr_group_request_table', d_progress);
2272
2273 d_progress := 20;
2274
2275 BEGIN
2276 SELECT ENTITY_CODE
2277 INTO l_entity_code
2278 FROM PO_UDA_AG_TEMPLATES
2279 WHERE TEMPLATE_ID = p_template_id;
2280
2281 PO_UDA_DEFAULTING_PKG.DEBUG('l_entity_code :' || l_entity_code, d_progress);
2282 EXCEPTION
2283 WHEN OTHERS THEN
2284 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the ENTITY CODE', d_progress);
2285 RAISE;
2286 END;
2287
2288 d_progress := 30;
2289
2290 IF l_entity_code = 'PO_HEADER_EXT_ATTRS' THEN
2291 FOR c_po_header_ext_rec IN c_po_header_ext(p_pk1_value) LOOP
2292
2293 d_progress := 40;
2294
2295 BEGIN
2296 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID :' || c_po_header_ext_rec.ATTR_GROUP_ID, d_progress);
2297
2298 SELECT DESCRIPTIVE_FLEXFIELD_NAME, DESCRIPTIVE_FLEX_CONTEXT_CODE
2299 INTO l_ag_type, l_ag_name
2300 FROM EGO_FND_DSC_FLX_CTX_EXT
2301 WHERE ATTR_GROUP_ID = c_po_header_ext_rec.ATTR_GROUP_ID;
2302
2303 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_type :' || l_ag_type, d_progress);
2304 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_name :' || l_ag_name, d_progress);
2305 EXCEPTION
2306 WHEN OTHERS THEN
2307 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the AG TYPE and AG NAME', d_progress);
2308 RAISE;
2309 END;
2310
2311 d_progress := 50;
2312
2313 l_attr_list := '';
2314 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_list', d_progress);
2315
2316 FOR c_po_attr_list_rec IN c_po_attr_list(l_ag_type, l_ag_name) LOOP
2317 IF l_attr_list IS NULL OR l_attr_list = '' THEN
2318 l_attr_list := c_po_attr_list_rec.END_USER_COLUMN_NAME;
2319 ELSE
2320 l_attr_list := l_attr_list || ',' || c_po_attr_list_rec.END_USER_COLUMN_NAME;
2321 END IF;
2322 d_progress := 60;
2323 END LOOP;
2324 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_list :' || l_attr_list, d_progress);
2325
2326 l_data_level := 'PO_HEADER';
2327
2328 d_progress := 70;
2329
2330 IF l_attr_list IS NOT NULL THEN
2331 is_valid_entity_ag := TRUE;
2332 l_attr_group_request_table.EXTEND(1);
2333 l_attr_group_request_table(l_attr_group_request_table.COUNT) := ego_attr_group_request_obj
2334 (
2335 c_po_header_ext_rec.ATTR_GROUP_ID
2336 ,201
2337 ,l_ag_type
2338 ,l_ag_name
2339 ,l_data_level
2340 ,NULL
2341 ,NULL
2342 ,NULL
2343 ,NULL
2344 ,NULL
2345 ,l_attr_list
2346 );
2347 d_progress := 80;
2348 END IF;
2349
2350 END LOOP;
2351 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows', d_progress);
2352 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
2353 END IF;
2354
2355 d_progress := 90;
2356
2357 IF l_entity_code = 'PO_LINE_EXT_ATTRS' THEN
2358 FOR c_po_line_ext_rec IN c_po_line_ext(p_pk1_value) LOOP
2359
2360 d_progress := 40;
2361
2362 BEGIN
2363 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID :' || c_po_line_ext_rec.ATTR_GROUP_ID, d_progress);
2364
2365 SELECT DESCRIPTIVE_FLEXFIELD_NAME, DESCRIPTIVE_FLEX_CONTEXT_CODE
2366 INTO l_ag_type, l_ag_name
2367 FROM EGO_FND_DSC_FLX_CTX_EXT
2368 WHERE ATTR_GROUP_ID = c_po_line_ext_rec.ATTR_GROUP_ID;
2369
2370 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_type :' || l_ag_type, d_progress);
2371 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_name :' || l_ag_name, d_progress);
2372 EXCEPTION
2373 WHEN OTHERS THEN
2374 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the AG TYPE and AG NAME', d_progress);
2375 RAISE;
2376 END;
2377
2378 d_progress := 50;
2379
2380 l_attr_list := '';
2381 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_list', d_progress);
2382
2383 FOR c_po_attr_list_rec IN c_po_attr_list(l_ag_type, l_ag_name) LOOP
2384 IF l_attr_list IS NULL OR l_attr_list = '' THEN
2385 l_attr_list := c_po_attr_list_rec.END_USER_COLUMN_NAME;
2386 ELSE
2387 l_attr_list := l_attr_list || ',' || c_po_attr_list_rec.END_USER_COLUMN_NAME;
2388 END IF;
2389 d_progress := 60;
2390 END LOOP;
2391 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_list :' || l_attr_list, d_progress);
2392
2393
2394 l_data_level := 'PO_LINE';
2395
2396 d_progress := 70;
2397
2398 IF l_attr_list IS NOT NULL THEN
2399 is_valid_entity_ag := TRUE;
2400 l_attr_group_request_table.EXTEND(1);
2401 l_attr_group_request_table(l_attr_group_request_table.COUNT) := ego_attr_group_request_obj
2402 (
2403 c_po_line_ext_rec.ATTR_GROUP_ID
2404 ,201
2405 ,l_ag_type
2406 ,l_ag_name
2407 ,l_data_level
2408 ,NULL
2409 ,NULL
2410 ,NULL
2411 ,NULL
2412 ,NULL
2413 ,l_attr_list
2414 );
2415 d_progress := 80;
2416 END IF;
2417 END LOOP;
2418 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows', d_progress);
2419 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
2420 END IF;
2421
2422 IF l_entity_code = 'PO_SHIPMENTS_EXT_ATTRS' THEN
2423 FOR c_po_location_ext_rec IN c_po_location_ext(p_pk1_value) LOOP
2424
2425 d_progress := 40;
2426
2427 BEGIN
2428 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID :' || c_po_location_ext_rec.ATTR_GROUP_ID, d_progress);
2429
2430 SELECT DESCRIPTIVE_FLEXFIELD_NAME, DESCRIPTIVE_FLEX_CONTEXT_CODE
2431 INTO l_ag_type, l_ag_name
2432 FROM EGO_FND_DSC_FLX_CTX_EXT
2433 WHERE ATTR_GROUP_ID = c_po_location_ext_rec.ATTR_GROUP_ID;
2434
2435 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_type :' || l_ag_type, d_progress);
2436 PO_UDA_DEFAULTING_PKG.DEBUG('l_ag_name :' || l_ag_name, d_progress);
2437 EXCEPTION
2438 WHEN OTHERS THEN
2439 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the AG TYPE and AG NAME', d_progress);
2440 RAISE;
2441 END;
2442
2443 d_progress := 50;
2444
2445 l_attr_list := '';
2446 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized l_attr_list', d_progress);
2447
2448 FOR c_po_attr_list_rec IN c_po_attr_list(l_ag_type, l_ag_name) LOOP
2449 IF l_attr_list IS NULL OR l_attr_list = '' THEN
2450 l_attr_list := c_po_attr_list_rec.END_USER_COLUMN_NAME;
2451 ELSE
2452 l_attr_list := l_attr_list || ',' || c_po_attr_list_rec.END_USER_COLUMN_NAME;
2453 END IF;
2454 d_progress := 60;
2455 END LOOP;
2456 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_list :' || l_attr_list, d_progress);
2457
2458 l_data_level := 'PO_SHIPMENT';
2459
2460 d_progress := 70;
2461
2462 IF l_attr_list IS NOT NULL THEN
2463 is_valid_entity_ag := TRUE;
2464 l_attr_group_request_table.EXTEND(1);
2465 l_attr_group_request_table(l_attr_group_request_table.COUNT) := ego_attr_group_request_obj
2466 (
2467 c_po_location_ext_rec.ATTR_GROUP_ID
2468 ,201
2469 ,l_ag_type
2470 ,l_ag_name
2471 ,l_data_level
2472 ,NULL
2473 ,NULL
2474 ,NULL
2475 ,NULL
2476 ,NULL
2477 ,l_attr_list
2478 );
2479 d_progress := 80;
2480 END IF;
2481 END LOOP;
2482 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows', d_progress);
2483 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
2484 END IF;
2485
2486 d_progress := 90;
2487 IF is_valid_entity_ag THEN
2488 PO_UDA_DEFAULTING_PKG.DEBUG('is_valid_entity_ag : TRUE', d_progress);
2489
2490 PO_UDA_DEFAULTING_PKG.DEBUG('Before PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT' , d_progress);
2491 PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT(
2492 PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name
2493 ,p_pk1_value
2494 ,p_pk2_value
2495 ,p_pk3_value
2496 ,p_pk4_value
2497 ,p_pk5_value
2498 ,l_pk_column_name_value_pairs
2499 );
2500 PO_UDA_DEFAULTING_PKG.DEBUG('Before PO_UDA_DEFAULTING_PKG.CONSTRUCT_PK_OBJECT' , d_progress);
2501 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows :', d_progress);
2502 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
2503
2504 l_attributes_row_table := EGO_USER_ATTR_ROW_TABLE();
2505 l_attr_name_value_pairs := EGO_USER_ATTR_DATA_TABLE();
2506 PO_UDA_DEFAULTING_PKG.DEBUG('Initialized objects l_attributes_row_table, l_attr_name_value_pairs' , d_progress);
2507
2508 l_class_code_name_value_pairs := EGO_COL_NAME_VALUE_PAIR_ARRAY
2509 (
2510 EGO_COL_NAME_VALUE_PAIR_OBJ
2511 (
2512 'UDA_TEMPLATE_ID'
2513 ,p_template_id || ''
2514 )
2515 );
2516
2517 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', FND_API.G_RET_STS_SUCCESS, l_external_attr_value_pairs);
2518 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_errorcode', '0', l_external_attr_value_pairs);
2519 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_msg_count', '0', l_external_attr_value_pairs);
2520 PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR('x_msg_data', 'SUCCESS', l_external_attr_value_pairs);
2521
2522 d_progress := 110;
2523 PO_UDA_DEFAULTING_PKG.DEBUG('l_class_code_name_value_pairs is as follows ' , d_progress);
2524 PO_UDA_DEFAULTING_PKG.DEBUG(l_class_code_name_value_pairs, d_progress);
2525
2526 PO_UDA_DEFAULTING_PKG.DEBUG('x_return_status : ' || x_return_status , d_progress);
2527
2528 l_base_object_name := PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name;
2529 PO_UDA_DEFAULTING_PKG.DEBUG('l_base_object_name is : ' || l_base_object_name, d_progress);
2530
2531 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2532
2533 PO_UDA_DEFAULTING_PKG.DEBUG('Before ego_user_attrs_data_pub.Get_User_Attrs_Data', d_progress);
2534 PO_UDA_DEFAULTING_PKG.DEBUG('p_object_name : ' || PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name, d_progress);
2535 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows ', d_progress);
2536 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
2537 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_group_request_table is as follows ', d_progress);
2538 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_group_request_table, d_progress);
2539 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows ', d_progress);
2540 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
2541 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_name_value_pairs is as follows ', d_progress);
2542 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
2543
2544 ego_user_attrs_data_pub.Get_User_Attrs_Data
2545 (
2546 p_api_version => 1.0
2547 ,p_object_name => PO_UDA_DATA_UTIL.g_object_dff_tl(l_entity_code).l_object_name
2548 ,p_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2549 ,p_attr_group_request_table => l_attr_group_request_table
2550 ,x_attributes_row_table => l_attributes_row_table
2551 ,x_attributes_data_table => l_attr_name_value_pairs
2552 ,x_return_status => x_return_status
2553 ,x_errorcode => x_errorcode
2554 ,x_msg_count => x_msg_count
2555 ,x_msg_data => x_msg_data
2556 );
2557 PO_UDA_DEFAULTING_PKG.DEBUG('After ego_user_attrs_data_pub.Get_User_Attrs_Data', d_progress);
2558 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows ', d_progress);
2559 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
2560 PO_UDA_DEFAULTING_PKG.DEBUG('l_attr_name_value_pairs is as follows ', d_progress);
2561 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
2562 PO_UDA_DEFAULTING_PKG.DEBUG('x_return_status :' || x_return_status, d_progress);
2563 PO_UDA_DEFAULTING_PKG.DEBUG('x_errorcode :' || x_errorcode, d_progress);
2564 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_count :' || x_msg_count, d_progress);
2565 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_data :' || x_msg_data, d_progress);
2566
2567 END IF;
2568
2569 d_progress := 120;
2570
2571 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
2572 PO_UDA_DEFAULTING_PKG.DEBUG('Before EXECUTE_IMPORT_UDA_FUNCTION '||p_event_type||' ' || x_return_status, d_progress);
2573 PO_UDA_IMPORT_PKG.EXECUTE_IMPORT_UDA_FUNCTION
2574 (
2575 p_template_id => l_class_code_name_value_pairs(l_class_code_name_value_pairs.FIRST).VALUE
2576 ,p_event => p_event_type
2577 ,x_external_attr_value_pairs => l_external_attr_value_pairs
2578 ,x_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2579 ,x_attr_name_value_pairs => l_attr_name_value_pairs
2580 ,x_attributes_row_table => l_attributes_row_table
2581 ,x_return_status => x_return_status
2582 ,x_errorcode => x_errorcode
2583 ,x_msg_count => x_msg_count
2584 ,x_msg_data => x_msg_data
2585 );
2586 PO_UDA_DEFAULTING_PKG.DEBUG('After EXECUTE_IMPORT_UDA_FUNCTION '||p_event_type||' ' || x_return_status, d_progress);
2587 d_progress := 140;
2588 END IF;
2589
2590 PO_UDA_DEFAULTING_PKG.GET_EXT_ATTR_NAME_VALUE_PAIR('x_return_status', l_external_attr_value_pairs, ext_name_val_obj);
2591 IF x_return_status = FND_API.G_RET_STS_SUCCESS AND ext_name_val_obj.VALUE = FND_API.G_RET_STS_SUCCESS AND p_write_to = 'TRUE' THEN
2592 d_progress := 300;
2593 PO_UDA_DEFAULTING_PKG.DEBUG('Before Process_User_Attrs_Data ' || x_return_status, d_progress);
2594 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table.COUNT ' || l_attributes_row_table.COUNT, d_progress);
2595 IF l_attributes_row_table.COUNT > 0 THEN
2596 d_progress := 310;
2597 PO_UDA_DEFAULTING_PKG.DEBUG('Before EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data with parameters ' || x_return_status, d_progress);
2598 PO_UDA_DEFAULTING_PKG.DEBUG('l_base_object_name : ' || l_base_object_name, d_progress);
2599 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_row_table is as follows : ', d_progress);
2600 PO_UDA_DEFAULTING_PKG.DEBUG(l_attributes_row_table, d_progress);
2601 PO_UDA_DEFAULTING_PKG.DEBUG('l_attributes_data_table is as follows : ', d_progress);
2602 PO_UDA_DEFAULTING_PKG.DEBUG(l_attr_name_value_pairs, d_progress);
2603 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk_column_name_value_pairs is as follows : ', d_progress);
2604 PO_UDA_DEFAULTING_PKG.DEBUG(l_pk_column_name_value_pairs, d_progress);
2605 PO_UDA_DEFAULTING_PKG.DEBUG('l_class_code_name_value_pairs is as follows : ', d_progress);
2606 PO_UDA_DEFAULTING_PKG.DEBUG(l_class_code_name_value_pairs, d_progress);
2607 d_progress := 320;
2608 EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data
2609 (
2610 p_api_version => 1.0
2611 ,p_object_name => l_base_object_name
2612 ,p_attributes_row_table => l_attributes_row_table
2613 ,p_attributes_data_table => l_attr_name_value_pairs
2614 ,p_pk_column_name_value_pairs => l_pk_column_name_value_pairs
2615 ,p_class_code_name_value_pairs => l_class_code_name_value_pairs
2616 ,x_failed_row_id_list => l_failed_row_id_list
2617 ,x_return_status => x_return_status
2618 ,x_errorcode => x_errorcode
2619 ,x_msg_count => x_msg_count
2620 ,x_msg_data => x_msg_data
2621 );
2622 d_progress := 330;
2623 PO_UDA_DEFAULTING_PKG.DEBUG('After EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data :' || x_return_status, d_progress);
2624 PO_UDA_DEFAULTING_PKG.DEBUG('l_failed_row_id_list is : ' || l_failed_row_id_list, d_progress);
2625 PO_UDA_DEFAULTING_PKG.DEBUG('x_errorcode :' || x_errorcode, d_progress);
2626 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_count :' || x_msg_count, d_progress);
2627 PO_UDA_DEFAULTING_PKG.DEBUG('x_msg_data :' || x_msg_data, d_progress);
2628 ELSE
2629 d_progress := 340;
2630 PO_UDA_DEFAULTING_PKG.DEBUG('Not calling EGO_USER_ATTRS_DATA_PUB.Process_User_Attrs_Data as l_attributes_row_table.COUNT <=0', d_progress);
2631 END IF;
2632 END IF;
2633 END IF;
2634
2635 EXCEPTION
2636 WHEN OTHERS THEN
2637 PO_MESSAGE_S.add_exc_msg
2638 (
2639 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
2640 p_procedure_name => 'UDA_EXECUTE_ACTIONS' || '.' || d_progress
2641 );
2642 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, d_progress);
2643 PO_UDA_DEFAULTING_PKG.DEBUG('Exception in UDA_EXECUTE_ACTIONS after progress number : ' , d_progress);
2644 x_return_status := 'U';
2645 END UDA_EXECUTE_ACTIONS;
2646
2647 PROCEDURE PO_UDA_EXECUTE_ACTIONS
2648 (
2649 p_po_header_id IN NUMBER
2650 ,p_event_type IN VARCHAR2
2651 ,p_write_to IN VARCHAR2
2652 ,x_return_status OUT NOCOPY VARCHAR2
2653 ,x_msg_count OUT NOCOPY NUMBER
2654 )
2655 IS
2656 d_progress NUMBER := 0;
2657
2658 l_template_id NUMBER;
2659 l_line_template_id NUMBER;
2660 l_shipment_template_id NUMBER;
2661
2662 l_address_lookup_type VARCHAR2(200);
2663
2664 l_msg_count NUMBER;
2665 l_errorcode NUMBER;
2666 l_msg_data VARCHAR2(100);
2667
2668 CURSOR c_get_lines(p_po_header_id NUMBER) IS
2669 SELECT PO_LINE_ID
2670 FROM po_lines_all pll
2671 WHERE PO_HEADER_ID = p_po_header_id
2672 AND EXISTS ( SELECT 1 FROM EGO_ACTION_DISPLAYS_B actdisp , ego_actions_b act , po_uda_ag_template_usages pousage
2673 WHERE act.action_id = actdisp.action_id
2674 AND pousage.template_id = pll.uda_template_id
2675 AND pousage.attribute_group_id = act.attr_group_id
2676 AND To_Char(pousage.template_id) = act.classification_code
2677 AND actdisp.execution_method = p_event_type);
2678
2679 CURSOR c_get_shipments
2680 (
2681 p_po_header_id NUMBER
2682 ,p_line_id NUMBER
2683 )IS
2684 SELECT LINE_LOCATION_ID
2685 FROM PO_LINE_LOCATIONS_all pll
2686 WHERE PO_HEADER_ID = p_po_header_id
2687 AND PO_LINE_ID = p_line_id
2688 AND EXISTS ( SELECT 1 FROM EGO_ACTION_DISPLAYS_B actdisp , ego_actions_b act , po_uda_ag_template_usages pousage
2689 WHERE act.action_id = actdisp.action_id
2690 AND pousage.template_id = pll.uda_template_id
2691 AND pousage.attribute_group_id = act.attr_group_id
2692 AND To_Char(pousage.template_id) = act.classification_code
2693 AND actdisp.execution_method = p_event_type);
2694
2695 BEGIN
2696
2697 PO_UDA_DEFAULTING_PKG.DEBUG('Starting PO_UDA_DEFAULTING_PKG.PO_UDA_EXECUTE_ACTIONS with parameters' , d_progress);
2698 PO_UDA_DEFAULTING_PKG.DEBUG(' p_po_header_id :' || p_po_header_id, d_progress);
2699
2700 x_return_status := FND_API.G_RET_STS_SUCCESS;
2701 BEGIN
2702 SELECT UDA_TEMPLATE_ID
2703 INTO l_template_id
2704 FROM po_headers_all
2705 WHERE PO_HEADER_ID = p_po_header_id;
2706
2707 PO_UDA_DEFAULTING_PKG.DEBUG('l_template_id :' || l_template_id , d_progress);
2708 EXCEPTION
2709 WHEN OTHERS THEN
2710 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Template ID', d_progress);
2711 RAISE;
2712 END;
2713 d_progress := 30;
2714
2715 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_EXECUTE_ACTIONS for header : ' || x_return_status, d_progress);
2716 PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS
2717 (
2718 p_pk1_value => p_po_header_id
2719 ,p_pk2_value => -1
2720 ,p_template_id => l_template_id
2721 ,p_event_type => p_event_type
2722 ,p_write_to => p_write_to
2723 ,x_return_status => x_return_status
2724 ,x_errorcode => l_errorcode
2725 ,x_msg_count => l_msg_count
2726 ,x_msg_data => l_msg_data
2727 );
2728 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_EXECUTE_ACTIONS for header : ' || x_return_status, d_progress);
2729
2730 d_progress := 50;
2731
2732 PO_UDA_DEFAULTING_PKG.DEBUG('Looping for executing actions for lines', d_progress);
2733 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN -- LOOP FOR ALL THE LINES DEFUALTING
2734 FOR c_get_lines_rec IN c_get_lines(p_po_header_id) LOOP
2735
2736 BEGIN
2737 SELECT UDA_TEMPLATE_ID
2738 INTO l_line_template_id
2739 FROM po_lines_all
2740 WHERE PO_LINE_ID = c_get_lines_rec.PO_LINE_ID;
2741
2742 PO_UDA_DEFAULTING_PKG.DEBUG('Line ID is'|| c_get_lines_rec.PO_LINE_ID, d_progress);
2743 PO_UDA_DEFAULTING_PKG.DEBUG('l_line_template_id :' || l_line_template_id , d_progress);
2744 EXCEPTION
2745 WHEN OTHERS THEN
2746 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Line Template ID', d_progress);
2747 RAISE;
2748 END;
2749 d_progress := 60;
2750
2751 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_EXECUTE_ACTIONS for line : ' || x_return_status, d_progress);
2752 PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS
2753 (
2754 p_pk1_value => c_get_lines_rec.PO_LINE_ID
2755 ,p_pk2_value => -1
2756 ,p_template_id => l_line_template_id
2757 ,p_event_type => p_event_type
2758 ,p_write_to => p_write_to
2759 ,x_return_status => x_return_status
2760 ,x_errorcode => l_errorcode
2761 ,x_msg_count => l_msg_count
2762 ,x_msg_data => l_msg_data
2763 );
2764 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_EXECUTE_ACTIONS for line : ' || x_return_status, d_progress);
2765 d_progress := 70;
2766
2767 PO_UDA_DEFAULTING_PKG.DEBUG('Looping for executing actions for Shipments', d_progress);
2768 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN -- LOOP FOR ALL THE SHIPMENTS DEFUALTING
2769
2770 FOR c_get_shipments_rec IN c_get_shipments(p_po_header_id, c_get_lines_rec.PO_LINE_ID) LOOP
2771
2772 BEGIN
2773 SELECT UDA_TEMPLATE_ID
2774 INTO l_shipment_template_id
2775 FROM PO_LINE_LOCATIONS_all
2776 WHERE LINE_LOCATION_ID = c_get_shipments_rec.LINE_LOCATION_ID;
2777
2778 PO_UDA_DEFAULTING_PKG.DEBUG('Shipment ID is'|| c_get_shipments_rec.LINE_LOCATION_ID, d_progress);
2779 PO_UDA_DEFAULTING_PKG.DEBUG('Template Id for Shipment '|| l_shipment_template_id, d_progress);
2780 EXCEPTION
2781 WHEN OTHERS THEN
2782 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the Shipment Template ID', d_progress);
2783 RAISE;
2784 END;
2785 d_progress := 80;
2786 PO_UDA_DEFAULTING_PKG.DEBUG('Before UDA_EXECUTE_ACTIONS for shipment : ' || x_return_status, d_progress);
2787 PO_UDA_DEFAULTING_PKG.UDA_EXECUTE_ACTIONS
2788 (
2789 p_pk1_value => c_get_shipments_rec.LINE_LOCATION_ID
2790 ,p_pk2_value => -1
2791 ,p_template_id => l_shipment_template_id
2792 ,p_event_type => p_event_type
2793 ,p_write_to => p_write_to
2794 ,x_return_status => x_return_status
2795 ,x_errorcode => l_errorcode
2796 ,x_msg_count => l_msg_count
2797 ,x_msg_data => l_msg_data
2798 );
2799 PO_UDA_DEFAULTING_PKG.DEBUG('After UDA_EXECUTE_ACTIONS for shipment : ' || x_return_status, d_progress);
2800 d_progress := 90;
2801
2802 END LOOP;
2803 END IF;
2804 END LOOP;
2805 END IF;
2806 d_progress := 100;
2807 PO_UDA_DEFAULTING_PKG.DEBUG('After PO_UDA_EXECUTE_ACTIONS fully done : ' || x_return_status, d_progress);
2808 EXCEPTION
2809 WHEN OTHERS THEN
2810 PO_MESSAGE_S.add_exc_msg
2811 (
2812 p_pkg_name => 'PO_UDA_DEFAULTING_PKG',
2813 p_procedure_name => 'PO_UDA_EXECUTE_ACTIONS' || '.' || d_progress
2814 );
2815 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, d_progress);
2816 PO_UDA_DEFAULTING_PKG.DEBUG('Exception in PO_UDA_EXECUTE_ACTIONS after progress number : ' , d_progress);
2817 x_return_status := 'U';
2818 END PO_UDA_EXECUTE_ACTIONS;
2819
2820 PROCEDURE CONSTRUCT_PK_OBJECT
2821 (
2822 p_obj_name IN VARCHAR2
2823 ,p_pk1_value IN NUMBER
2824 ,p_pk2_value IN NUMBER DEFAULT NULL
2825 ,p_pk3_value IN NUMBER DEFAULT NULL
2826 ,p_pk4_value IN NUMBER DEFAULT NULL
2827 ,p_pk5_value IN NUMBER DEFAULT NULL
2828 ,x_pk_column_name_value_pairs IN OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_ARRAY
2829 )
2830 IS
2831 l_pk1_column_name VARCHAR2(200);
2832 l_pk2_column_name VARCHAR2(200);
2833 l_pk3_column_name VARCHAR2(200);
2834 l_pk4_column_name VARCHAR2(200);
2835 l_pk5_column_name VARCHAR2(200);
2836 BEGIN
2837
2838 x_pk_column_name_value_pairs := EGO_COL_NAME_VALUE_PAIR_ARRAY();
2839 BEGIN
2840 select o.pk1_column_name,
2841 o.pk2_column_name,
2842 o.pk3_column_name,
2843 o.pk4_column_name,
2844 o.pk5_column_name
2845 into l_pk1_column_name,
2846 l_pk2_column_name,
2847 l_pk3_column_name,
2848 l_pk4_column_name,
2849 l_pk5_column_name
2850 from fnd_objects_vl o
2851 where o.obj_name = p_obj_name;
2852
2853 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk1_column_name :' || l_pk1_column_name, 0);
2854 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk2_column_name :' || l_pk2_column_name, 0);
2855 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk3_column_name :' || l_pk3_column_name, 0);
2856 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk4_column_name :' || l_pk4_column_name, 0);
2857 PO_UDA_DEFAULTING_PKG.DEBUG('l_pk5_column_name :' || l_pk5_column_name, 0);
2858 EXCEPTION
2859 WHEN OTHERS THEN
2860 PO_UDA_DEFAULTING_PKG.DEBUG('Exception while trying to get the PK values', 0);
2861 RAISE;
2862 END;
2863
2864 IF p_pk1_value IS NOT NULL THEN
2865 x_pk_column_name_value_pairs.EXTEND(1);
2866 x_pk_column_name_value_pairs(x_pk_column_name_value_pairs.COUNT) := EGO_COL_NAME_VALUE_PAIR_OBJ
2867 (
2868 l_pk1_column_name, p_pk1_value
2869 );
2870 END IF;
2871 IF p_pk2_value IS NOT NULL THEN
2872 x_pk_column_name_value_pairs.EXTEND(1);
2873 x_pk_column_name_value_pairs(x_pk_column_name_value_pairs.COUNT) := EGO_COL_NAME_VALUE_PAIR_OBJ
2874 (
2875 l_pk2_column_name, p_pk2_value
2876 );
2877 END IF;
2878 IF p_pk3_value IS NOT NULL THEN
2879 x_pk_column_name_value_pairs.EXTEND(1);
2880 x_pk_column_name_value_pairs(x_pk_column_name_value_pairs.COUNT) := EGO_COL_NAME_VALUE_PAIR_OBJ
2881 (
2882 l_pk3_column_name, p_pk3_value
2883 );
2884 END IF;
2885 IF p_pk4_value IS NOT NULL THEN
2886 x_pk_column_name_value_pairs.EXTEND(1);
2887 x_pk_column_name_value_pairs(x_pk_column_name_value_pairs.COUNT) := EGO_COL_NAME_VALUE_PAIR_OBJ
2888 (
2889 l_pk4_column_name, p_pk4_value
2890 );
2891 END IF;
2892 IF p_pk5_value IS NOT NULL THEN
2893 x_pk_column_name_value_pairs.EXTEND(1);
2894 x_pk_column_name_value_pairs(x_pk_column_name_value_pairs.COUNT) := EGO_COL_NAME_VALUE_PAIR_OBJ
2895 (
2896 l_pk5_column_name, p_pk5_value
2897 );
2898 END IF;
2899
2900 EXCEPTION
2901 WHEN OTHERS THEN
2902 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, 0);
2903 RAISE;
2904 END;
2905
2906 PROCEDURE SET_EXT_ATTR_NAME_VALUE_PAIR
2907 (
2908 p_ext_attr_name IN VARCHAR2
2909 ,p_ext_attr_value IN VARCHAR2
2910 ,x_external_attr_value_pairs IN OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
2911 )
2912 IS
2913 MSG_DATA_IND NUMBER := 1;
2914 MSG_COUNT_IND NUMBER := 2;
2915 ERRORCODE_IND NUMBER := 3;
2916 RETURN_STATUS_IND NUMBER := 4;
2917 VENDOR_CONTACT_ID_IND NUMBER := 5;
2918 VENDOR_SITE_ID_IND NUMBER := 6;
2919 VENDOR_ID_IND NUMBER := 7;
2920 ITEM_ID_IND NUMBER := 8;
2921 LINE_TYPE_ID_IND NUMBER := 9;
2922 SHIP_TO_LOC_ID_IND NUMBER := 10;
2923 ORG_ID_IND NUMBER := 11;
2924 AGENT_ID_IND NUMBER := 12;
2925 CONTRACT_TYPE_IND NUMBER := 13;
2926 CATEGORY_ID_IND NUMBER := 14;
2927 PREPARER_ID_IND NUMBER := 15;
2928 BASE_AUCTION_HEADER_ID_IND NUMBER := 16;
2929 DELIMITER_IND NUMBER := 17;
2930 SOURCE_DOC_NUMBER_IND NUMBER := 18;
2931
2932 l_index NUMBER;
2933
2934 BEGIN
2935 PO_UDA_DEFAULTING_PKG.DEBUG(' Starting SET_EXT_ATTR_NAME_VALUE_PAIR with values ', 0);
2936 PO_UDA_DEFAULTING_PKG.DEBUG(' p_ext_attr_name ' || p_ext_attr_name, 0);
2937 PO_UDA_DEFAULTING_PKG.DEBUG(' p_ext_attr_value ' || p_ext_attr_value, 0);
2938
2939 IF x_external_attr_value_pairs IS NULL THEN
2940 x_external_attr_value_pairs := EGO_COL_NAME_VALUE_PAIR_TABLE(
2941 EGO_COL_NAME_VALUE_PAIR_OBJ
2942 (
2943 'x_msg_data'
2944 ,NULL
2945 ),
2946 EGO_COL_NAME_VALUE_PAIR_OBJ
2947 (
2948 'x_msg_count'
2949 ,NULL
2950 ),
2951 EGO_COL_NAME_VALUE_PAIR_OBJ
2952 (
2953 'x_errorcode'
2954 ,NULL
2955 ),
2956 EGO_COL_NAME_VALUE_PAIR_OBJ
2957 (
2958 'x_return_status'
2959 ,NULL
2960 ),
2961 EGO_COL_NAME_VALUE_PAIR_OBJ
2962 (
2963 'VENDOR_CONTACT_ID'
2964 ,NULL
2965 ),
2966 EGO_COL_NAME_VALUE_PAIR_OBJ
2967 (
2968 'VENDOR_SITE_ID'
2969 ,NULL
2970 ),
2971 EGO_COL_NAME_VALUE_PAIR_OBJ
2972 (
2973 'VENDOR_ID'
2974 ,NULL
2975 ),
2976 EGO_COL_NAME_VALUE_PAIR_OBJ
2977 (
2978 'ITEM_ID'
2979 ,NULL
2980 ),
2981 EGO_COL_NAME_VALUE_PAIR_OBJ
2982 (
2983 'LINE_TYPE_ID'
2984 ,NULL
2985 ),
2986 EGO_COL_NAME_VALUE_PAIR_OBJ
2987 (
2988 'SHIP_TO_LOC_ID'
2989 ,NULL
2990 ),
2991 EGO_COL_NAME_VALUE_PAIR_OBJ
2992 (
2993 'ORG_ID'
2994 ,NULL
2995 ),
2996 EGO_COL_NAME_VALUE_PAIR_OBJ
2997 (
2998 'AGENT_ID'
2999 ,NULL
3000 ),
3001 EGO_COL_NAME_VALUE_PAIR_OBJ
3002 (
3003 'CONTRACT_TYPE'
3004 ,NULL
3005 ),
3006 EGO_COL_NAME_VALUE_PAIR_OBJ
3007 (
3008 'CATEGORY_ID'
3009 ,NULL
3010 ),
3011 EGO_COL_NAME_VALUE_PAIR_OBJ
3012 (
3013 'PREPARER_ID'
3014 ,NULL
3015 ),
3016 EGO_COL_NAME_VALUE_PAIR_OBJ
3017 (
3018 'BASE_AUCTION_HEADER_ID'
3019 ,NULL
3020 ),
3021 EGO_COL_NAME_VALUE_PAIR_OBJ
3022 (
3023 'DELIMITER'
3024 ,NULL
3025 ),
3026 EGO_COL_NAME_VALUE_PAIR_OBJ
3027 (
3028 'p_source_doc_number'
3029 ,NULL
3030 )
3031 );
3032 END IF;
3033
3034 IF p_ext_attr_name = 'x_msg_data' THEN
3035 l_index := MSG_DATA_IND;
3036 ELSIF p_ext_attr_name = 'x_msg_count' THEN
3037 l_index := MSG_COUNT_IND;
3038 ELSIF p_ext_attr_name = 'x_errorcode' THEN
3039 l_index := ERRORCODE_IND;
3040 ELSIF p_ext_attr_name = 'x_return_status' THEN
3041 l_index := RETURN_STATUS_IND;
3042 ELSIF p_ext_attr_name = 'VENDOR_CONTACT_ID' THEN
3043 l_index := VENDOR_CONTACT_ID_IND;
3044 ELSIF p_ext_attr_name = 'VENDOR_SITE_ID' THEN
3045 l_index := VENDOR_SITE_ID_IND;
3046 ELSIF p_ext_attr_name = 'VENDOR_ID' THEN
3047 l_index := VENDOR_ID_IND;
3048 ELSIF p_ext_attr_name = 'ITEM_ID' THEN
3049 l_index := ITEM_ID_IND;
3050 ELSIF p_ext_attr_name = 'LINE_TYPE_ID' THEN
3051 l_index := LINE_TYPE_ID_IND;
3052 ELSIF p_ext_attr_name = 'SHIP_TO_LOC_ID' THEN
3053 l_index := SHIP_TO_LOC_ID_IND;
3054 ELSIF p_ext_attr_name = 'ORG_ID' THEN
3055 l_index := ORG_ID_IND;
3056 ELSIF p_ext_attr_name = 'AGENT_ID' THEN
3057 l_index := AGENT_ID_IND;
3058 ELSIF p_ext_attr_name = 'CONTRACT_TYPE' THEN
3059 l_index := CONTRACT_TYPE_IND;
3060 ELSIF p_ext_attr_name = 'CATEGORY_ID' THEN
3061 l_index := CATEGORY_ID_IND;
3062 ELSIF p_ext_attr_name = 'PREPARER_ID' THEN
3063 l_index := PREPARER_ID_IND;
3064 ELSIF p_ext_attr_name = 'BASE_AUCTION_HEADER_ID' THEN
3065 l_index := BASE_AUCTION_HEADER_ID_IND;
3066 ELSIF p_ext_attr_name = 'DELIMITER' THEN
3067 l_index := DELIMITER_IND;
3068 ELSIF p_ext_attr_name = 'p_source_doc_number' THEN
3069 l_index := SOURCE_DOC_NUMBER_IND;
3070 ELSE
3071 PO_UDA_DEFAULTING_PKG.DEBUG('The Name Value Pair does not have an index defined (Check PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR)', 0);
3072 RETURN;
3073 END IF;
3074
3075 x_external_attr_value_pairs(l_index) := EGO_COL_NAME_VALUE_PAIR_OBJ(p_ext_attr_name, p_ext_attr_value);
3076 EXCEPTION
3077 WHEN OTHERS THEN
3078 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, 0);
3079 RAISE;
3080 END;
3081
3082 PROCEDURE GET_EXT_ATTR_NAME_VALUE_PAIR
3083 (
3084 p_ext_attr_name IN VARCHAR2
3085 ,x_external_attr_value_pairs IN OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_TABLE
3086 ,x_ext_name_val_obj OUT NOCOPY EGO_COL_NAME_VALUE_PAIR_OBJ
3087 )
3088 IS
3089 MSG_DATA_IND NUMBER := 1;
3090 MSG_COUNT_IND NUMBER := 2;
3091 ERRORCODE_IND NUMBER := 3;
3092 RETURN_STATUS_IND NUMBER := 4;
3093 VENDOR_CONTACT_ID_IND NUMBER := 5;
3094 VENDOR_SITE_ID_IND NUMBER := 6;
3095 VENDOR_ID_IND NUMBER := 7;
3096 ITEM_ID_IND NUMBER := 8;
3097 LINE_TYPE_ID_IND NUMBER := 9;
3098 SHIP_TO_LOC_ID_IND NUMBER := 10;
3099 ORG_ID_IND NUMBER := 11;
3100 AGENT_ID_IND NUMBER := 12;
3101 CONTRACT_TYPE_IND NUMBER := 13;
3102 CATEGORY_ID_IND NUMBER := 14;
3103 PREPARER_ID_IND NUMBER := 15;
3104 BASE_AUCTION_HEADER_ID_IND NUMBER := 16;
3105 DELIMITER_IND NUMBER := 17;
3106 SOURCE_DOC_NUMBER_IND NUMBER := 18;
3107
3108 l_index NUMBER;
3109
3110 BEGIN
3111
3112 IF p_ext_attr_name = 'x_msg_data' THEN
3113 x_ext_name_val_obj := x_external_attr_value_pairs(MSG_DATA_IND);
3114 ELSIF p_ext_attr_name = 'x_msg_count' THEN
3115 x_ext_name_val_obj := x_external_attr_value_pairs(MSG_COUNT_IND);
3116 ELSIF p_ext_attr_name = 'x_errorcode' THEN
3117 x_ext_name_val_obj := x_external_attr_value_pairs(ERRORCODE_IND);
3118 ELSIF p_ext_attr_name = 'x_return_status' THEN
3119 x_ext_name_val_obj := x_external_attr_value_pairs(RETURN_STATUS_IND);
3120 ELSIF p_ext_attr_name = 'VENDOR_CONTACT_ID' THEN
3121 x_ext_name_val_obj := x_external_attr_value_pairs(VENDOR_CONTACT_ID_IND);
3122 ELSIF p_ext_attr_name = 'VENDOR_SITE_ID' THEN
3123 x_ext_name_val_obj := x_external_attr_value_pairs(VENDOR_SITE_ID_IND);
3124 ELSIF p_ext_attr_name = 'VENDOR_ID' THEN
3125 x_ext_name_val_obj := x_external_attr_value_pairs(VENDOR_ID_IND);
3126 ELSIF p_ext_attr_name = 'ITEM_ID' THEN
3127 x_ext_name_val_obj := x_external_attr_value_pairs(ITEM_ID_IND);
3128 ELSIF p_ext_attr_name = 'LINE_TYPE_ID' THEN
3129 x_ext_name_val_obj := x_external_attr_value_pairs(LINE_TYPE_ID_IND);
3130 ELSIF p_ext_attr_name = 'SHIP_TO_LOC_ID' THEN
3131 x_ext_name_val_obj := x_external_attr_value_pairs(SHIP_TO_LOC_ID_IND);
3132 ELSIF p_ext_attr_name = 'ORG_ID' THEN
3133 x_ext_name_val_obj := x_external_attr_value_pairs(ORG_ID_IND);
3134 ELSIF p_ext_attr_name = 'AGENT_ID' THEN
3135 x_ext_name_val_obj := x_external_attr_value_pairs(AGENT_ID_IND);
3136 ELSIF p_ext_attr_name = 'CONTRACT_TYPE' THEN
3137 x_ext_name_val_obj := x_external_attr_value_pairs(CONTRACT_TYPE_IND);
3138 ELSIF p_ext_attr_name = 'CATEGORY_ID' THEN
3139 x_ext_name_val_obj := x_external_attr_value_pairs(CATEGORY_ID_IND);
3140 ELSIF p_ext_attr_name = 'PREPARER_ID' THEN
3141 x_ext_name_val_obj := x_external_attr_value_pairs(PREPARER_ID_IND);
3142 ELSIF p_ext_attr_name = 'BASE_AUCTION_HEADER_ID' THEN
3143 x_ext_name_val_obj := x_external_attr_value_pairs(BASE_AUCTION_HEADER_ID_IND);
3144 ELSIF p_ext_attr_name = 'DELIMITER' THEN
3145 x_ext_name_val_obj := x_external_attr_value_pairs(DELIMITER_IND);
3146 ELSIF p_ext_attr_name = 'p_source_doc_number' THEN
3147 x_ext_name_val_obj := x_external_attr_value_pairs(SOURCE_DOC_NUMBER_IND);
3148 ELSE
3149 x_ext_name_val_obj := NULL;
3150 PO_UDA_DEFAULTING_PKG.DEBUG('The Name Value Pair does not have an index defined (Check PO_UDA_DEFAULTING_PKG.SET_EXT_ATTR_NAME_VALUE_PAIR)', 0);
3151 END IF;
3152
3153 EXCEPTION
3154 WHEN OTHERS THEN
3155 PO_UDA_DEFAULTING_PKG.DEBUG(SQLERRM, 0);
3156 RAISE;
3157 END;
3158
3159 --bug 12611018 The performance was very poor
3160 -- the debug procedures didnt have the check to see if logging
3161 -- was enabled, hence added that check.
3162 PROCEDURE DEBUG
3163 (
3164 p_structure_array IN EGO_COL_NAME_VALUE_PAIR_ARRAY
3165 ,p_progress IN NUMBER
3166 )
3167 IS
3168 l_structure_ind NUMBER;
3169 l_structure EGO_COL_NAME_VALUE_PAIR_OBJ;
3170 BEGIN
3171 IF PO_LOG.d_stmt then --bug 12611018
3172 IF p_structure_array IS NOT NULL THEN
3173 l_structure_ind := p_structure_array.FIRST;
3174 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3175 LOOP
3176 l_structure := p_structure_array(l_structure_ind);
3177 IF l_structure IS NOT NULL THEN
3178 PO_UDA_DEFAULTING_PKG.DEBUG('NAME at index : ' || l_structure_ind || ' is : ' || l_structure.NAME, 0);
3179 PO_UDA_DEFAULTING_PKG.DEBUG('VALUE at index : ' || l_structure_ind || ' is : ' || l_structure.VALUE, 0);
3180 ELSE
3181 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3182 END IF;
3183 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3184 END LOOP;
3185 ELSE
3186 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3187 END IF; --bug 12611018
3188 END IF;
3189 END DEBUG;
3190
3191 PROCEDURE DEBUG
3192 (
3193 p_structure_array IN EGO_COL_NAME_VALUE_PAIR_TABLE
3194 ,p_progress IN NUMBER
3195 )
3196 IS
3197 l_structure_ind NUMBER;
3198 l_structure EGO_COL_NAME_VALUE_PAIR_OBJ;
3199 BEGIN
3200 IF PO_LOG.d_stmt THEN --bug 12611018
3201
3202 IF p_structure_array IS NOT NULL THEN
3203 l_structure_ind := p_structure_array.FIRST;
3204 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3205 LOOP
3206 l_structure := p_structure_array(l_structure_ind);
3207 IF l_structure IS NOT NULL THEN
3208 PO_UDA_DEFAULTING_PKG.DEBUG('NAME at index : ' || l_structure_ind || ' is : ' || l_structure.NAME, 0);
3209 PO_UDA_DEFAULTING_PKG.DEBUG('VALUE at index : ' || l_structure_ind || ' is : ' || l_structure.VALUE, 0);
3210 ELSE
3211 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3212 END IF;
3213 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3214 END LOOP;
3215 ELSE
3216 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3217 END IF;
3218
3219 END IF; --bug 12611018
3220 END DEBUG;
3221
3222 PROCEDURE DEBUG
3223 (
3224 p_structure_array IN EGO_USER_ATTR_DATA_TABLE
3225 ,p_progress IN NUMBER
3226 )
3227 IS
3228 l_structure_ind NUMBER;
3229 l_structure EGO_USER_ATTR_DATA_OBJ;
3230 BEGIN
3231 IF PO_LOG.d_stmt THEN --bug 12611018
3232
3233 IF p_structure_array IS NOT NULL THEN
3234 l_structure_ind := p_structure_array.FIRST;
3235 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3236 LOOP
3237 l_structure := p_structure_array(l_structure_ind);
3238 IF l_structure IS NOT NULL THEN
3239 PO_UDA_DEFAULTING_PKG.DEBUG('ROW_IDENTIFIER at index : ' || l_structure_ind || ' is : ' || l_structure.ROW_IDENTIFIER, 0);
3240 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_NAME at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_NAME, 0);
3241 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_VALUE_STR at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_VALUE_STR, 0);
3242 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_VALUE_NUM at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_VALUE_NUM, 0);
3243 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_VALUE_DATE at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_VALUE_DATE, 0);
3244 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_DISP_VALUE at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_DISP_VALUE, 0);
3245 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_UNIT_OF_MEASURE at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_UNIT_OF_MEASURE, 0);
3246 PO_UDA_DEFAULTING_PKG.DEBUG('USER_ROW_IDENTIFIER at index : ' || l_structure_ind || ' is : ' || l_structure.USER_ROW_IDENTIFIER, 0);
3247 ELSE
3248 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3249 END IF;
3250 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3251 END LOOP;
3252 ELSE
3253 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3254 END IF;
3255 END IF; --bug 12611018
3256
3257 END DEBUG;
3258
3259 PROCEDURE DEBUG
3260 (
3261 p_structure_array IN EGO_USER_ATTR_ROW_TABLE
3262 ,p_progress IN NUMBER
3263 )
3264 IS
3265 l_structure_ind NUMBER;
3266 l_structure EGO_USER_ATTR_ROW_OBJ;
3267 BEGIN
3268 IF PO_LOG.d_stmt THEN --bug 12611018
3269
3270 IF p_structure_array IS NOT NULL THEN
3271 l_structure_ind := p_structure_array.FIRST;
3272 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3273 LOOP
3274 l_structure := p_structure_array(l_structure_ind);
3275 IF l_structure IS NOT NULL THEN
3276 PO_UDA_DEFAULTING_PKG.DEBUG('ROW_IDENTIFIER at index : ' || l_structure_ind || ' is : ' || l_structure.ROW_IDENTIFIER, 0);
3277 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_ID, 0);
3278 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_APP_ID at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_APP_ID, 0);
3279 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_TYPE at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_TYPE, 0);
3280 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_NAME at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_NAME, 0);
3281 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL, 0);
3282 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL1 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_1, 0);
3283 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL2 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_2, 0);
3284 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL3 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_3, 0);
3285 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL4 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_4, 0);
3286 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL5 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_5, 0);
3287 PO_UDA_DEFAULTING_PKG.DEBUG('TRANSACTION_TYPE at index : ' || l_structure_ind || ' is : ' || l_structure.TRANSACTION_TYPE, 0);
3288 ELSE
3289 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3290 END IF;
3291 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3292 END LOOP;
3293 ELSE
3294 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3295 END IF;
3296
3297 END IF; --bug 12611018
3298 END DEBUG;
3299
3300 PROCEDURE DEBUG
3301 (
3302 p_structure_array IN PO_UDA_USAGE_OBJECT_ARRAY
3303 ,p_progress IN NUMBER
3304 )
3305 IS
3306 l_structure_ind NUMBER;
3307 l_structure PO_UDA_USAGE_OBJECT;
3308 BEGIN
3309 IF PO_LOG.d_stmt THEN --bug 12611018
3310
3311 IF p_structure_array IS NOT NULL THEN
3312 l_structure_ind := p_structure_array.FIRST;
3313 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3314 LOOP
3315 l_structure := p_structure_array(l_structure_ind);
3316 IF l_structure IS NOT NULL THEN
3317 PO_UDA_DEFAULTING_PKG.DEBUG('TEMPLATE_ID at index : ' || l_structure_ind || ' is : ' || l_structure.TEMPLATE_ID, 0);
3318 PO_UDA_DEFAULTING_PKG.DEBUG('USAGE_TYPE at index : ' || l_structure_ind || ' is : ' || l_structure.USAGE_TYPE, 0);
3319 PO_UDA_DEFAULTING_PKG.DEBUG('Context Object in Usage Object is as follows', 0);
3320 PO_UDA_DEFAULTING_PKG.DEBUG(l_structure.Context, 0);
3321 PO_UDA_DEFAULTING_PKG.DEBUG('End of Context Object in the Usage Object', 0);
3322 PO_UDA_DEFAULTING_PKG.DEBUG('Attr Group IDs in Usage Object is as follows', 0);
3323 PO_UDA_DEFAULTING_PKG.DEBUG(l_structure.Attr_group_Id, 0);
3324 PO_UDA_DEFAULTING_PKG.DEBUG('End of Attr Group IDs in the Usage Object', 0);
3325 ELSE
3326 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3327 END IF;
3328 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3329 END LOOP;
3330 ELSE
3331 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3332 END IF;
3333
3334 END IF;--bug 12611018
3335 END DEBUG;
3336
3337 PROCEDURE DEBUG
3338 (
3339 p_structure_array IN PO_TBL_NUMBER
3340 ,p_progress IN NUMBER
3341 )
3342 IS
3343 l_structure_ind NUMBER;
3344 l_structure NUMBER;
3345 BEGIN
3346 IF PO_LOG.d_stmt then--bug 12611018
3347 IF p_structure_array IS NOT NULL THEN
3348 l_structure_ind := p_structure_array.FIRST;
3349 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3350 LOOP
3351 l_structure := p_structure_array(l_structure_ind);
3352 IF l_structure IS NOT NULL THEN
3353 PO_UDA_DEFAULTING_PKG.DEBUG('PO_TBL_NUMBER Table at index : ' || l_structure_ind || ' is : ' || l_structure, 0);
3354 ELSE
3355 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3356 END IF;
3357 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3358 END LOOP;
3359 ELSE
3360 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3361 END IF;
3362 END IF;--bug 12611018
3363 END DEBUG;
3364
3365 PROCEDURE DEBUG
3366 (
3367 p_structure_array IN EGO_ATTR_GROUP_REQUEST_TABLE
3368 ,p_progress IN NUMBER
3369 )
3370 IS
3371 l_structure_ind NUMBER;
3372 l_structure EGO_ATTR_GROUP_REQUEST_OBJ;
3373 BEGIN
3374 IF PO_LOG.d_stmt THEN --bug 12611018
3375
3376 IF p_structure_array IS NOT NULL THEN
3377 l_structure_ind := p_structure_array.FIRST;
3378 WHILE (l_structure_ind IS NOT NULL AND l_structure_ind <= p_structure_array.LAST)
3379 LOOP
3380 l_structure := p_structure_array(l_structure_ind);
3381
3382 IF l_structure IS NOT NULL THEN
3383 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_ID at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_ID, 0);
3384 PO_UDA_DEFAULTING_PKG.DEBUG('APPLICATION_ID at index : ' || l_structure_ind || ' is : ' || l_structure.APPLICATION_ID, 0);
3385 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_TYPE at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_TYPE, 0);
3386 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_GROUP_NAME at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_GROUP_NAME, 0);
3387 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL, 0);
3388 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL1 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_1, 0);
3389 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL2 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_2, 0);
3390 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL3 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_3, 0);
3391 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL4 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_4, 0);
3392 PO_UDA_DEFAULTING_PKG.DEBUG('DATA_LEVEL5 at index : ' || l_structure_ind || ' is : ' || l_structure.DATA_LEVEL_5, 0);
3393 PO_UDA_DEFAULTING_PKG.DEBUG('ATTR_NAME_LIST at index : ' || l_structure_ind || ' is : ' || l_structure.ATTR_NAME_LIST, 0);
3394 ELSE
3395 PO_UDA_DEFAULTING_PKG.DEBUG('NO VALUE AT THIS INDEX', 0);
3396 END IF;
3397 l_structure_ind := p_structure_array.NEXT(l_structure_ind);
3398 END LOOP;
3399 ELSE
3400 PO_UDA_DEFAULTING_PKG.DEBUG('Structure is NULL', 0);
3401 END IF;
3402
3403 END IF; --bug 12611018
3404 END DEBUG;
3405
3406 PROCEDURE DEBUG
3407 (
3408 p_msg IN VARCHAR2
3409 ,p_progress IN NUMBER
3410 )
3411 IS
3412 BEGIN
3413 IF PO_LOG.d_stmt THEN
3414 PO_LOG.stmt('PO_UDA_DEFAULTING_PKG', p_progress, 'Message: ', p_msg);
3415 END IF;
3416 END DEBUG;
3417
3418 END PO_UDA_DEFAULTING_PKG;