150: IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
151: IEX_DEBUG_PUB.logMessage('result: ' || l_str_result);
152: END IF;
153:
154: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
155: BEGIN
156: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
157: -- DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000); -- bug 5695898 by ehuh 3/2/07
158: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 1000); -- bug 5695898 by ehuh 3/2/07
152: END IF;
153:
154: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
155: BEGIN
156: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
157: -- DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000); -- bug 5695898 by ehuh 3/2/07
158: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 1000); -- bug 5695898 by ehuh 3/2/07
159: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
160:
153:
154: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
155: BEGIN
156: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
157: -- DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000); -- bug 5695898 by ehuh 3/2/07
158: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 1000); -- bug 5695898 by ehuh 3/2/07
159: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
160:
161: IF p_party_id > 0 THEN
154: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
155: BEGIN
156: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
157: -- DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000); -- bug 5695898 by ehuh 3/2/07
158: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 1000); -- bug 5695898 by ehuh 3/2/07
159: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
160:
161: IF p_party_id > 0 THEN
162:
155: BEGIN
156: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
157: -- DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000); -- bug 5695898 by ehuh 3/2/07
158: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 1000); -- bug 5695898 by ehuh 3/2/07
159: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
160:
161: IF p_party_id > 0 THEN
162:
163: FOR i IN 1..l_party_count LOOP
160:
161: IF p_party_id > 0 THEN
162:
163: FOR i IN 1..l_party_count LOOP
164: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_party_id);
165: END LOOP;
166: END IF;
167:
168: IF p_cust_account_id > 0 THEN
167:
168: IF p_cust_account_id > 0 THEN
169:
170: FOR i IN 1..l_acc_count LOOP
171: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_cust_account_id);
172: END LOOP;
173: END IF;
174:
175: IF p_customer_site_use_id > 0 THEN
174:
175: IF p_customer_site_use_id > 0 THEN
176:
177: FOR i IN 1..l_billto_count LOOP
178: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_customer_site_use_id);
179: END LOOP;
180: END IF;
181:
182: IF p_delinquency_id > 0 THEN
181:
182: IF p_delinquency_id > 0 THEN
183:
184: FOR i IN 1..p_del_count LOOP
185: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_delinquency_id);
186: END LOOP;
187: END IF;
188:
189:
189:
190:
191:
192:
193: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
194:
195: DBMS_SQL.VARIABLE_VALUE_CHAR(l_sqlcursor, 'l_result', l_value);
196: x_metric_value_tbl(l_current_row) := RTRIM(l_value, ' ');
197:
191:
192:
193: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
194:
195: DBMS_SQL.VARIABLE_VALUE_CHAR(l_sqlcursor, 'l_result', l_value);
196: x_metric_value_tbl(l_current_row) := RTRIM(l_value, ' ');
197:
198: IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
199: IEX_DEBUG_PUB.logMessage('Metrics value: ' || x_metric_value_tbl(l_current_row));
204: l_current_status := 'E';
205: x_metric_value_tbl(l_current_row) := 'NA';
206:
207: END;
208: DBMS_SQL.CLOSE_CURSOR(l_sqlcursor);
209: ELSE
210: LOOP
211: l_start := NVL(INSTRB(l_str,':',1,1),0);
212: IF l_start > 0 THEN
237:
238: EXIT WHEN l_start < 1;
239: END LOOP;
240:
241: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
242:
243: BEGIN
244: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
245: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
240:
241: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
242:
243: BEGIN
244: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
245: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
246:
247: IF p_party_id > 0 THEN
248: FOR i IN 1..l_party_count LOOP
241: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
242:
243: BEGIN
244: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
245: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
246:
247: IF p_party_id > 0 THEN
248: FOR i IN 1..l_party_count LOOP
249: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_party_id);
245: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
246:
247: IF p_party_id > 0 THEN
248: FOR i IN 1..l_party_count LOOP
249: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_party_id);
250: END LOOP;
251: END IF;
252:
253: IF p_cust_account_id > 0 THEN
251: END IF;
252:
253: IF p_cust_account_id > 0 THEN
254: FOR i IN 1..l_acc_count LOOP
255: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_cust_account_id);
256: END LOOP;
257: END IF;
258:
259: IF p_customer_site_use_id > 0 THEN
257: END IF;
258:
259: IF p_customer_site_use_id > 0 THEN
260: FOR i IN 1..l_billto_count LOOP
261: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_customer_site_use_id);
262: END LOOP;
263: END IF;
264:
265: IF p_delinquency_id > 0 THEN
263: END IF;
264:
265: IF p_delinquency_id > 0 THEN
266: FOR i IN 1..p_del_count LOOP
267: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_delinquency_id);
268: END LOOP;
269: END IF;
270:
271: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
267: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_delinquency_id);
268: END LOOP;
269: END IF;
270:
271: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
272:
273: IF DBMS_SQL.FETCH_ROWS(l_sqlcursor) > 0 THEN
274: DBMS_SQL.COLUMN_VALUE(l_sqlcursor,1,l_value);
275: END IF;
269: END IF;
270:
271: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
272:
273: IF DBMS_SQL.FETCH_ROWS(l_sqlcursor) > 0 THEN
274: DBMS_SQL.COLUMN_VALUE(l_sqlcursor,1,l_value);
275: END IF;
276:
277: x_metric_value_tbl(l_current_row) := l_value;
270:
271: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
272:
273: IF DBMS_SQL.FETCH_ROWS(l_sqlcursor) > 0 THEN
274: DBMS_SQL.COLUMN_VALUE(l_sqlcursor,1,l_value);
275: END IF;
276:
277: x_metric_value_tbl(l_current_row) := l_value;
278:
285: l_current_status := 'E';
286: x_metric_value_tbl(l_current_row) := 'NA';
287:
288: END;
289: DBMS_SQL.CLOSE_CURSOR(l_sqlcursor);
290: END IF;
291:
292: IF (l_current_status = 'S') AND (x_metric_value_tbl(l_current_row) <> 'NA') THEN
293: --BEGIN-FIX BUG#4375831-05/18/2005-JYPARK-fix error ORA-06521 because x_metric_value_tbl has charater value so convert to numeric value
434: EXIT WHEN l_start < 1;
435: END LOOP;
436: l_str_result := 'BEGIN :l_result := ' || l_str_result;
437:
438: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
439: BEGIN
440: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
441: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000);
442: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
436: l_str_result := 'BEGIN :l_result := ' || l_str_result;
437:
438: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
439: BEGIN
440: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
441: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000);
442: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
443:
444: FOR i IN 1..l_party_count LOOP
437:
438: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
439: BEGIN
440: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
441: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000);
442: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
443:
444: FOR i IN 1..l_party_count LOOP
445: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
438: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
439: BEGIN
440: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
441: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000);
442: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
443:
444: FOR i IN 1..l_party_count LOOP
445: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
446: END LOOP;
441: DBMS_SQL.BIND_VARIABLE_CHAR(l_sqlcursor,'l_result', '0', 2000);
442: --DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_count);
443:
444: FOR i IN 1..l_party_count LOOP
445: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
446: END LOOP;
447:
448: FOR i IN 1..l_acc_count LOOP
449: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_filter_id);
445: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
446: END LOOP;
447:
448: FOR i IN 1..l_acc_count LOOP
449: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_filter_id);
450: END LOOP;
451:
452: FOR i IN 1..l_billto_count LOOP
453: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_filter_id);
449: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_filter_id);
450: END LOOP;
451:
452: FOR i IN 1..l_billto_count LOOP
453: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_filter_id);
454: END LOOP;
455:
456: FOR i IN 1..p_del_count LOOP
457: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_filter_id);
453: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_filter_id);
454: END LOOP;
455:
456: FOR i IN 1..p_del_count LOOP
457: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_filter_id);
458: END LOOP;
459:
460: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
461:
456: FOR i IN 1..p_del_count LOOP
457: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_filter_id);
458: END LOOP;
459:
460: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
461:
462: DBMS_SQL.VARIABLE_VALUE_CHAR(l_sqlcursor, 'l_result', l_value);
463: x_metric_value := RTRIM(l_value, ' ');
464:
458: END LOOP;
459:
460: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
461:
462: DBMS_SQL.VARIABLE_VALUE_CHAR(l_sqlcursor, 'l_result', l_value);
463: x_metric_value := RTRIM(l_value, ' ');
464:
465:
466: EXCEPTION
470: fnd_message.set_name ('IEX', 'JTF_CHK_UNKNOWN_ERROR');
471: fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
472: fnd_msg_pub.add;
473: END;
474: DBMS_SQL.CLOSE_CURSOR(l_sqlcursor);
475: ELSE
476: LOOP
477: l_start := NVL(INSTRB(l_str,':',1,1),0);
478: IF l_start > 0 THEN
499: EXIT WHEN l_start < 1;
500: END LOOP;
501:
502:
503: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
504:
505: BEGIN
506: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
507: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
502:
503: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
504:
505: BEGIN
506: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
507: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
508:
509: FOR i IN 1..l_party_count LOOP
510: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
503: l_sqlcursor := DBMS_SQL.OPEN_CURSOR;
504:
505: BEGIN
506: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
507: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
508:
509: FOR i IN 1..l_party_count LOOP
510: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
511: END LOOP;
506: DBMS_SQL.PARSE(l_sqlcursor, l_str_result, 1);
507: DBMS_SQL.DEFINE_COLUMN(l_sqlcursor, 1, l_value, 200);
508:
509: FOR i IN 1..l_party_count LOOP
510: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
511: END LOOP;
512:
513: FOR i IN 1..l_acc_count LOOP
514: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_filter_id);
510: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_PARTY_ID_'||i, p_filter_id);
511: END LOOP;
512:
513: FOR i IN 1..l_acc_count LOOP
514: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_filter_id);
515: END LOOP;
516:
517: FOR i IN 1..l_billto_count LOOP
518: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_filter_id);
514: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUST_ACCOUNT_ID_'||i, p_filter_id);
515: END LOOP;
516:
517: FOR i IN 1..l_billto_count LOOP
518: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_filter_id);
519: END LOOP;
520:
521: FOR i IN 1..p_del_count LOOP
522: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_filter_id);
518: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_CUSTOMER_SITE_USE_ID_'||i, p_filter_id);
519: END LOOP;
520:
521: FOR i IN 1..p_del_count LOOP
522: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_filter_id);
523: END LOOP;
524:
525: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
526:
521: FOR i IN 1..p_del_count LOOP
522: DBMS_SQL.BIND_VARIABLE(l_sqlcursor,'B_DELINQUENCY_ID_'||i, p_filter_id);
523: END LOOP;
524:
525: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
526:
527: IF DBMS_SQL.FETCH_ROWS(l_sqlcursor) > 0 THEN
528: DBMS_SQL.COLUMN_VALUE(l_sqlcursor,1,l_value);
529: END IF;
523: END LOOP;
524:
525: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
526:
527: IF DBMS_SQL.FETCH_ROWS(l_sqlcursor) > 0 THEN
528: DBMS_SQL.COLUMN_VALUE(l_sqlcursor,1,l_value);
529: END IF;
530:
531: x_metric_value := l_value;
524:
525: l_dummy := DBMS_SQL.EXECUTE(l_sqlcursor);
526:
527: IF DBMS_SQL.FETCH_ROWS(l_sqlcursor) > 0 THEN
528: DBMS_SQL.COLUMN_VALUE(l_sqlcursor,1,l_value);
529: END IF;
530:
531: x_metric_value := l_value;
532:
537: fnd_message.set_name ('IEX', 'IEX_METRIC_SQL_ERROR');
538: fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
539: fnd_msg_pub.add;
540: END;
541: DBMS_SQL.CLOSE_CURSOR(l_sqlcursor);
542: END IF;
543: END IF;
544: CLOSE c_metric;
545: