[Home] [Help]
PACKAGE BODY: APPS.ICX_ITEM_DIAG_GRP
Source
1 PACKAGE body ICX_ITEM_DIAG_GRP AS
2 /* $Header: ICX_ITEM_DIAG_GRP.plb 120.4.12020000.2 2013/02/11 13:26:44 vegajula noship $*/
3
4 FUNCTION get_html_body
5 RETURN VARCHAR;
6 FUNCTION print_setup_values
7 RETURN VARCHAR2 ;
8 FUNCTION print_file_versions
9 RETURN VARCHAR2;
10 FUNCTION print_id_values
11 RETURN VARCHAR2;
12 FUNCTION validate_values
13 RETURN VARCHAR2;
14 FUNCTION need_patch
15 RETURN boolean ;
16
17 procedure Split
18 (
19 in_str IN OUT NOCOPY VARCHAR2, -- input string
20 token_num IN NUMBER, -- token number
21 delim IN VARCHAR2 DEFAULT ' ', -- separator character
22 out_str out NOCOPY VARCHAR2
23 ) IS
24 l_str VARCHAR2(32767) ;
25 l_int NUMBER ;
26 l_int2 NUMBER ;
27 l_api_name CONSTANT VARCHAR2(30) := 'Split';
28 BEGIN
29 l_str:= delim || in_str ;
30 l_int := INSTR( l_str, delim, 1, token_num ) ;
31 IF l_int > 0 THEN
32 l_int2 := INSTR( l_str, delim, 1, token_num + 1) ;
33 IF l_int2 = 0 THEN l_int2 := LENGTH( l_str ) + 1 ; END IF ;
34 out_str:= SUBSTR( l_str, l_int+1, l_int2 - l_int- 1) ;
35 in_str:= trim(SUBSTR( l_str, l_int2+1) );
36 END IF ;
37 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'split out_str='||out_str||' remaining_str='||in_str);
38
39 exception when others then
40 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'split EXCEPTION::'||sqlerrm||' code='||sqlcode);
41 END Split;
42
43 PROCEDURE ol
44 (
45 p_str IN clob)
46 IS
47 PRAGMA AUTONOMOUS_TRANSACTION;
48 BEGIN
49 fnd_file.put_line(fnd_file.output,p_str);
50 exception when others then
51 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, 'ol EXCEPTION::',sqlerrm||' code='||sqlcode);
52 END ol;
53
54 function parse( p_str IN VARCHAR2)
55 RETURN VARCHAR2 IS
56 str VARCHAR2(4000):= '';
57 substr VARCHAR2(4000):= '';
58 l_ctr number := 1;
59 l_api_name CONSTANT VARCHAR2(30) := 'parse';
60 BEGIN
61 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'parse p_str='||p_str);
62 str:=trim(p_str);
63 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'str '||str);
64 while ( str is not null )loop
65 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'next string ||' ||str);
66 split(in_str=>str,
67 token_num=>1,
68 delim=> ',',
69 out_str=>substr);
70 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'at ctr= '||l_ctr|| ' string='|| str||' token='||substr );
71 begin
72 ICX_ITEM_DIAG_PVT.g_source_ids(l_ctr) := to_number(substr);
73 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,' g_source_ids('||l_ctr||') :='|| ICX_ITEM_DIAG_PVT.g_source_ids(l_ctr) );
74
75 if ICX_ITEM_DIAG_PVT.g_source_ids(l_ctr) is null then
76 goto END_LOOP;
77 end if;
78 exception when others then
79 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'at ctr= exception');
80 end;
81
82 l_ctr:=l_ctr+1;
83 <<END_LOOP>> null;
84 end loop;
85
86 return 'Y';
87 exception when others then
88 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'parse EXCEPTION::'||sqlerrm||' code='||sqlcode);
89 return 'N';
90 END parse;
91
92 FUNCTION row1
93 (
94 str1 IN VARCHAR2 )
95 RETURN VARCHAR2
96 IS
97 str VARCHAR2(4000):= '<TD class=''OraTableCellText'' style=''border:1px solid #cccc99''>';
98 l_api_name CONSTANT VARCHAR2(30) := 'row1';
99 BEGIN
100 RETURN str|| str1 ||'</TD>';
101 exception when others then
102 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'row1 '||sqlerrm||' code='||sqlcode);
103 return 'N';
104
105 END row1;
106
107 FUNCTION col
108 (
109 str1 IN VARCHAR2 )
110 RETURN VARCHAR2
111 IS
112 l_api_name CONSTANT VARCHAR2(30) := 'col';
113 str VARCHAR2(4000):= '<TH scope=''col'' class=''OraTableColumnHeader'' style=''border-left:1px solid #f7f7e7''>';
114 BEGIN
115 RETURN str|| str1 ||'</TH>';
116
117 exception when others then
118 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'col EXCEPTION::'||sqlerrm||' code='||sqlcode);
119 return 'N';
120 END col;
121
122 FUNCTION table_hdr
123 (
124 str1 IN VARCHAR2)
125 RETURN VARCHAR2
126 IS
127 l_api_name CONSTANT VARCHAR2(30) := 'table_hdr';
128 BEGIN
129 RETURN '<span class="section">'||str1 ||'</span><TABLE class=''OraTable'' style=''border-collapse:collapse'' width=''100%'' cellpadding=1 cellspacing=0 border=0 summary=''' || str1||'''>';
130 exception when others then
131 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'table_hdr EXCEPTION::'||sqlerrm||' code='||sqlcode);
132 return 'N';
133
134 END table_hdr;
135
136 FUNCTION print_table(table_name IN VARCHAR2
137 , col_num IN NUMBER
138 , col_val IN DBMS_SQL.VARCHAR2_TABLE
139 , row_num IN NUMBER
140 , row_val IN VARCHAR_TABLE )
141 RETURN clob
142 IS
143 l_api_name CONSTANT VARCHAR2(30) := 'print_table';
144 l_html clob;
145 i number;
146 j number;
147 BEGIN
148 l_html:=table_hdr(table_name);
149 l_html:=l_html|| '<TR>';
150 ol(l_html);
151 FOR i IN 1 .. col_num LOOP
152 ol( col( col_val(i) ));
153 END LOOP;
154
155 ol( '</TR><TR>');
156
157 l_html:='';
158 FOR i IN 1 .. row_num LOOP
159 FOR j IN 1 .. col_num LOOP
160 ol( row1(row_val(i)(j)) );
161 END LOOP;
162 ol( '</TR><TR>' );
163 END LOOP;
164 ol('</TR></TABLE>');
165 return 'Y';
166 exception when others then
167 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'print_table exception'|| sqlerrm||' '||sqlcode);
168 return 'N';
169 END print_table;
170
171 function init (org_id in varchar2,
172 action_code in varchar2,
173 auto_map_category VARCHAR2 default null)return varchar2 is
174 l_api_name CONSTANT VARCHAR2(30) := 'init';
175 begin
176 /* Init values*/
177
178 ICX_ITEM_DIAG_PVT.g_org_id := to_number(org_id);
179 if action_code ='SYNC_MASTER' then
180 ICX_ITEM_DIAG_PVT.g_source_type :='MASTER_ITEM';
181 elsif action_code ='SYNC_BPA' then
182 ICX_ITEM_DIAG_PVT.g_source_type :='BLANKET';
183 end if;
184 ICX_ITEM_DIAG_PVT.g_source_type_values(1):='ALL';ICX_ITEM_DIAG_PVT.g_source_type_values(2):='BPA';ICX_ITEM_DIAG_PVT.g_source_type_values(3):='MASTER ITEM';
185 ICX_ITEM_DIAG_PVT.g_auto_map_category:=nvl(auto_map_category,'N');
186
187 ICX_ITEM_DIAG_PVT.g_table_names(1):='MTL_SYSTEM_ITEMS_B';ICX_ITEM_DIAG_PVT.g_table_names(2):='MTL_SYSTEM_ITEMS_TL';ICX_ITEM_DIAG_PVT.g_table_names(3):='MTL_ITEM_CATEGORIES';
188 ICX_ITEM_DIAG_PVT.g_table_names(4):='MTL_UNITS_OF_MEASURE';ICX_ITEM_DIAG_PVT.g_table_names(5):='ICX_CAT_CATEGORIES_TL';ICX_ITEM_DIAG_PVT.g_table_names(6):='ICX_CAT_ITEMS_CTX_HDRS_TLP';
189 ICX_ITEM_DIAG_PVT.g_table_names(7):='ICX_CAT_ITEMS_CTX_DTLS_TLP';ICX_ITEM_DIAG_PVT.g_table_names(8):='DR$SQE';ICX_ITEM_DIAG_PVT.g_table_names(9):='PO_ATTRIBUTE_VALUES';
190 ICX_ITEM_DIAG_PVT.g_table_names(10):='PO_ATTRIBUTE_VALUES_TLP';ICX_ITEM_DIAG_PVT.g_table_names(11):='ICX_CAT_ATTRIBUTE_VALUES';ICX_ITEM_DIAG_PVT.g_table_names(12):='ICX_CAT_ATTRIBUTE_VALUES_TLP';
191 ICX_ITEM_DIAG_PVT.g_table_names(13):='PO_SESSION_GT';
192
193 ICX_ITEM_DIAG_PVT.g_error_code(1):='TOO_MANY_PO_CATEGORY_ASSIGNED';ICX_ITEM_DIAG_PVT.g_error_code(2):='IP_CATEGORY_MISSING';ICX_ITEM_DIAG_PVT.g_error_code(3):='CATEGORY_MAPPING_MISSING';
194 ICX_ITEM_DIAG_PVT.g_error_code(4):='PO_ATTRIBUTE_RECORDS_MISSING';ICX_ITEM_DIAG_PVT.g_error_code(5):='MASTER ITEM NOT ASSIGNED';ICX_ITEM_DIAG_PVT.g_error_code(6):='ICX_CTX_HDRS_MISSING';
195 ICX_ITEM_DIAG_PVT.g_error_code(7):='NOT_VALID_FOR_SEARCH';
196
197 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'deleting po_session_gt');
198 DELETE FROM po_session_gt WHERE index_char1 in ( ICX_ITEM_DIAG_PVT.g_file_key , ICX_ITEM_DIAG_PVT.g_error_key,ICX_ITEM_DIAG_PVT.g_id_values_key) ;
199
200 return 'Y';
201 exception when others then
202 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'init EXCEPTION::'||sqlerrm||' code='||sqlcode);
203 return 'N';
204
205 end init;
206
207 PROCEDURE START_THIS
208 (
209 errbuff OUT NOCOPY VARCHAR2,
210 retcode OUT NOCOPY NUMBER,
211 org_id VARCHAR2,
212 action_code VARCHAR2,
213 -- source_type VARCHAR2,
214 source_ids VARCHAR2 default null,
215 auto_map_category VARCHAR2 default null)
216 IS
217 l_api_name CONSTANT VARCHAR2(30) := 'START_THIS';
218 l_ret VARCHAR2(20);
219 l_start_date DATE;
220 l_html_out VARCHAR2(4000) :='<html><head><title>Procurement Product Report</title>';
221 l_log_string VARCHAR2(1000);
222 BEGIN
223 l_start_date := sysdate;
224 l_log_string := 'Started at:' || TO_CHAR(l_start_date, 'DD-MON-YYYY HH24:MI:SS');
225 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,l_log_string);
226
227 l_html_out :=l_html_out || '<style type="text/css">body {background-color:ffffff;background-repeat:no-repeat;background-position:top left;background-attachment:fixed;}' ;
228 l_html_out :=l_html_out || 'h1{font-family:Verdana;color:000000;}' ;
229 l_html_out :=l_html_out || 'p {font-family:Helvetica;font-size:14px;font-style:normal;font-weight:normal;color:000000;}' ;
230 l_html_out :=l_html_out || '.error {color: #cc0000; font-size: 10pt; font-weight: normal}.errorbold {font-weight: bold; color: #cc0000; font-size: 10pt}' ;
231 l_html_out :=l_html_out || '.warning {font-weight: normal; color: #336699; font-size: 10pt}' ;
232 l_html_out :=l_html_out || '.warningbold {font-weight: bold; color: #336699; font-size: 10pt}' ;
233 l_html_out :=l_html_out || '.notice {font-weight: normal; color: #663366; font-size: 10pt}' ;
234 l_html_out :=l_html_out || '.noticebold {font-weight: bold; color: #663366; font-size: 10pt}' ;
235 l_html_out :=l_html_out || '.section {font-weight: bold; font-size: 12pt}' ;
236 l_html_out :=l_html_out || '.subsection {font-weight: bold; font-size: 10pt}' ;
237 l_html_out :=l_html_out || '.toplink {font-weight: normal; font-size: 8pt}' ;
238 l_html_out :=l_html_out || '.tableFooter {font-weight: normal; font-size: 8pt}' ;
239 l_html_out :=l_html_out || 'ul.report {list-style: disc;}' ;
240 l_html_out :=l_html_out || 'ul.nobull {list-style: none}' ;
241 l_html_out :=l_html_out || 'table.report {background-color: #000000 color:#000000; font-size: 10pt; font-weight: bold; line-height:1.5; padding:2px; text-align:left}' ;
242 l_html_out :=l_html_out || 'td.report {background-color: #f7f7e7; color: #000000; font-weight: normal; font-size: 9pt; border-style: solid; border-width: 1; border-color: #CCCC99; white-space: nowrap}' ;
243 l_html_out :=l_html_out || 'tr.report {background-color: #f7f7e7; color: #000000; font-weight: normal; font-size: 9pt; white-space: nowrap}' ;
244 l_html_out :=l_html_out || 'th.report {background-color: #CCCC99; color: #336699; height: 20; border-style: solid; border-width: 1; border-left-color:';
245 l_html_out :=l_html_out || ' #f7f7e7; border-right-color: #f7f7e7; border-top-width: 0; border-bottom-width: 0; white-space: nowrap}' ;
246 l_html_out :=l_html_out || '.OraTableColumnHeader {font-family:Arial,Helvetica,Geneva,sans-serif;font-size:10pt;font-weight:bold;text-align:left;background-color:#cccc99;color:#336699;vertical-align:bottom}' ;
247 l_html_out :=l_html_out || '.OraTableColumnHeaderNumber {font-family:Arial,Helvetica,Geneva,sans-serif;font-size:10pt;font-weight:bold;background-color:#cccc99;color:#336699;vertical-align:bottom;text-align:right}' ;
248 l_html_out :=l_html_out || '.OraTableCellText {font-family:Arial,Helvetica,Geneva,sans-serif;font-size:10pt;background-color:#f7f7e7;color:#000000;vertical-align:baseline}' ;
249 l_html_out :=l_html_out || '.OraTableTitle {font-family:Arial,Helvetica,Geneva,sans-serif;font-size:13pt;background-color:#ffffff;color:#336699}' ;
250 l_html_out :=l_html_out || '.OraTable {background-color:#999966}' ;
251 l_html_out :=l_html_out || '</style>' ;
252 l_html_out :=l_html_out || '</head>' ;
253 ol(l_html_out);
254
255 l_log_string := 'Input Parameters: org_id=' || org_id || ' action_code='||action_code || ' ,auto_map_category='||auto_map_category;
256 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,l_log_string);
257
258 l_ret:=init(org_id,action_code,auto_map_category);
259 if action_code = 'SYNC_ITEM' then
260 l_ret:= parse(source_ids);
261 end if;
262
263 ol(table_hdr('ITEM_DIAG_GRP table header org_id ='||org_id||' action type='|| action_code || ' sourceids = '||source_ids || ' auto_map_category='||auto_map_category));
264
265 /*if auto_map_category then
266 ol(table_hdr('auto_map_category is true'));
267 else
268 ol(table_hdr('auto_map_category is false'));
269 end if;*/
270
271 ol('<TR>') ;
272 l_html_out:=get_html_body();
273
274 if action_code <> 'SYNC_ITEM' and NOT need_patch then
275 ICX_ITEM_DIAG_PVT.sync_sources(p_org_id =>ICX_ITEM_DIAG_PVT.g_org_id,
276 p_source_type =>ICX_ITEM_DIAG_PVT.g_source_type,
277 x_return_status => l_ret );
278 end if;
279
280 ol('</html>');
281 commit;
282
283
284 l_log_string :=' done in:' || ICX_CAT_UTIL_PVT.getTimeStats(l_start_date, sysdate);
285 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,l_log_string);
286
287 exception when others then
288 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'start_this '||sqlerrm||' code='||sqlcode);
289 END START_THIS;
290
291 FUNCTION get_html_body
292 RETURN VARCHAR
293 IS
294 l_api_name CONSTANT VARCHAR2(30) := 'get_html_body';
295 l_start VARCHAR2(2000) := '<body>' ;
296 l_hrd1 VARCHAR2(2000) := '<h1>Item Extractor Diagnostics</h1>' ;
297 -- l_hrd2 VARCHAR2(2000) := '<span class="section">Related File versions</span>' ;
298 --<ul class="report"><li>Server = myMachine<br></li>
299 l_ret VARCHAR2(20);
300 BEGIN
301 --Heading 1 : Checking file versions...
302 -- ol(l_hrd2);
303 l_ret:= print_file_versions;
304 if l_ret='Y' then
305 l_ret:= print_setup_values;
306 l_ret:= print_id_values;
307 l_ret:= validate_values;
308 end if;
309 RETURN 'Y';
310 exception when others then
311 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'get_html_body EXCEPTION::'||sqlerrm||' code='||sqlcode);
312 return 'N';
313
314 END get_html_body;
315
316 FUNCTION print_file_versions
317 RETURN VARCHAR2 IS
318 /* l_hrd0 VARCHAR2(2000):= '<ul class="report">';
319 l_hrd1 VARCHAR2(2000):= '<li>';
320 l_hrd2 VARCHAR2(20) := '<br></li>';*/
321 l_hrd3 VARCHAR(4000);
322 l_api_name CONSTANT VARCHAR2(30) := 'print_file_versions';
323 CURSOR c
324 IS
325 SELECT char1, char2 , char3, char4
326 FROM po_session_gt
327 WHERE index_char1 =ICX_ITEM_DIAG_PVT.g_file_key;
328
329 l_col_val DBMS_SQL.VARCHAR2_TABLE;
330 l_row_val VARCHAR_TABLE;
331 l_ret VARCHAR2(20);
332 BEGIN
333 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'start print_file_versions');
334
335 ICX_ITEM_DIAG_PVT.file_versions('Y');
336
337 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'completed ICX_ITEM_DIAG_PVT.file_versions');
338 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'Files from po session gt ');
339 --ol(l_hrd0);
340 OPEN c;
341 FOR i IN 1 .. ICX_ITEM_DIAG_PVT.g_file_count
342 LOOP
343 /* ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'Files from po session gt i='|| i);
344 FETCH c INTO l_hrd3;
345
346 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,l_hrd3);
347 l_hrd3 := l_hrd1 || l_hrd3 || l_hrd2;
348 ol(l_hrd3);*/
349
350 FETCH c INTO l_row_val(i)(1),l_row_val(i)(2),l_row_val(i)(3),l_row_val(i)(4);
351
352 END LOOP;
353 CLOSE c;
354 l_col_val(1):= 'File name'; l_col_val(2):= 'Should have version'; l_col_val(3):= 'Instance has Version'; l_col_val(4):= 'Need to Apply Patch?';
355 l_ret:= print_table(table_name => 'RELATED FILE VERSIONS'
356 , col_num => 4
357 , col_val =>l_col_val
358 , row_num => ICX_ITEM_DIAG_PVT.g_file_count
359 , row_val => l_row_val );
360
361 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'end print_file_versions');
362
363 if need_patch then
364 ol( table_hdr('APPLY RECOMMENDED PATCH'));
365 RETURN 'ABORT';
366 end if;
367 RETURN 'Y';
368 exception when others then
369 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'print_file_versions '||sqlerrm||' code='||sqlcode);
370 return 'N';
371
372 END print_file_versions;
373
374 FUNCTION need_patch
375 RETURN boolean IS
376 l_api_name CONSTANT VARCHAR2(30) := 'need_patch';
377 l_c_row varchar2(10);
378 l_ret boolean := false;
379 cursor c is
380 SELECT 'TRUE' from dual where exists (select 'Y'
381 FROM po_session_gt
382 WHERE index_char1 =ICX_ITEM_DIAG_PVT.g_file_key
383 and char4 = 'TRUE' );
384 begin
385
386 open c;
387 fetch c into l_c_row;
388 if l_c_row = 'TRUE' then
389 l_ret := true;
390 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'need_patch returning true');
391 else
392 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'need_patch returning false');
393 end if;
394 return l_ret;
395 exception when others then
396 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'need_patch EXCEPTION::'||sqlerrm||' code='||sqlcode);
397 return false;
398 end need_patch;
399
400 FUNCTION print_setup_values
401 RETURN VARCHAR2 IS
402 l_col_val DBMS_SQL.VARCHAR2_TABLE;
403 l_row_val VARCHAR_TABLE;
404 l_ret VARCHAR2(20);
405 l_api_name CONSTANT VARCHAR2(30) := 'print_setup_values';
406
407 begin
408
409 ICX_ITEM_DIAG_PVT.get_setup_values (p_table_name => 'Setup Values', p_col_val=>l_col_val,p_row_val=>l_row_val);
410
411 l_ret:= print_table(table_name => 'Setup Values'
412 , col_num => 11
413 , col_val =>l_col_val
414 , row_num => 1
415 , row_val => l_row_val );
416
417 return l_ret;
418 exception when others then
419 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'print_setup_values '||sqlerrm||' code='||sqlcode);
420 return 'N';
421
422 END print_setup_values;
423
424 FUNCTION print_id_values
425 RETURN VARCHAR2 IS
426 l_col_val DBMS_SQL.VARCHAR2_TABLE;
427 l_row_val VARCHAR_TABLE;
428 l_col_num number;
429 l_row_num number;
430 l_ret VARCHAR2(20);
431 i number;
432 l_api_name CONSTANT VARCHAR2(30) := 'print_id_values';
433
434 begin
435
436 for i in 1..ICX_ITEM_DIAG_PVT.g_table_names.COUNT loop
437 ICX_ITEM_DIAG_PVT.get_IDs_values(p_table_name => ICX_ITEM_DIAG_PVT.g_table_names(i)
438 , p_col_num => l_col_num
439 , p_row_num => l_row_num
440 , p_col_val =>l_col_val
441 , p_row_val => l_row_val );
442
443 l_ret:= print_table(table_name => ICX_ITEM_DIAG_PVT.g_table_names(i)
444 , col_num => l_col_num
445 , col_val =>l_col_val
446 , row_num => l_row_num
447 , row_val => l_row_val );
448 end loop;
449
450 return l_ret;
451 exception when others then
452 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'print_id_values EXCEPTION::'||sqlerrm||' code='||sqlcode);
453 return 'N';
454
455 end print_id_values;
456
457 FUNCTION validate_values
458 RETURN VARCHAR2 IS
459 l_col_val DBMS_SQL.VARCHAR2_TABLE;
460 l_row_val VARCHAR_TABLE;
461 l_col_num number;
462 l_row_num number;
463 l_ret varchar2(10);
464 l_api_name CONSTANT VARCHAR2(30) := 'validate_values';
465
466 begin
467 ICX_ITEM_DIAG_PVT.validate_values(p_table_name => 'VALIDATE'
468 , p_col_num => l_col_num
469 , p_row_num => l_row_num
470 , p_col_val =>l_col_val
471 , p_row_val => l_row_val );
472
473
474 l_ret:= print_table(table_name => 'VALIDATE'
475 , col_num => l_col_num
476 , col_val =>l_col_val
477 , row_num => l_row_num
478 , row_val => l_row_val );
479 return l_ret;
480 exception when others then
481 ICX_ITEM_DIAG_PVT.logStatement(g_pkg_name, l_api_name,'print_id_values EXCEPTION::'||sqlerrm||' code='||sqlcode);
482 return 'N';
483 end validate_values;
484
485 END ICX_ITEM_DIAG_GRP;