DBA Data[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;