DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEX_METRIC_CONCUR_PVT

Source


1 PACKAGE BODY IEX_METRIC_CONCUR_PVT AS
2 /* $Header: iexvmtcb.pls 120.6.12020000.3 2013/04/03 10:46:35 gnramasa ship $ */
3 
4 PG_DEBUG NUMBER;
5 
6 G_PKG_NAME    CONSTANT VARCHAR2(30):= 'IEX_METRIC_CONCUR_PVT';
7 G_FILE_NAME   CONSTANT VARCHAR2(12) := 'iexvmtcb.pls';
8 G_METRIC_BATCH VARCHAR2(30):='BATCH';
9 G_LOGIN_ID NUMBER;
10 G_PROGRAM_ID NUMBER;
11 G_USER_ID NUMBER;
12 
13 /* this will be called by the concurrent program to metric caculation in batch
14  */
15 Procedure Refresh_All(ERRBUF       OUT NOCOPY VARCHAR2,
16                       RETCODE      OUT NOCOPY VARCHAR2,
17 		      P_ORG_ID     IN  NUMBER)
18 
19 IS
20   l_return_status VARCHAR2(10);
21   l_msg_data      VARCHAR2(32767);
22   l_msg_count     NUMBER;
23   l_obj_count     NUMBER; --Added for Bug 7477844 24-Dec-2008 barathsr
24 
25   CURSOR c_party IS
26     SELECT distinct p.party_id
27     FROM hz_parties p, hz_cust_accounts ca
28     WHERE p.status = 'A'
29     AND ca.status = 'A'
30     AND ca.party_id = p.party_id
31     --Begin Bug 7477844 24-Dec-2008 barathsr
32     AND EXISTS ( select 1 from IEX_DELINQUENCIES_ALL del
33 		where del.party_cust_id= p.party_id
34 		and del.status in ('DELINQUENT', 'PREDELINQUENT'));
35     --End Bug 7477844 24-Dec-2008 barathsr
36 
37   CURSOR c_account IS
38     SELECT ca.cust_account_id, p.party_id
39     FROM hz_parties p, hz_cust_accounts ca
40     WHERE p.status = 'A'
41     AND ca.status = 'A'
42     AND ca.party_id = p.party_id
43     --Begin Bug 7477844 24-Dec-2008 barathsr
44     AND EXISTS ( select 1 from IEX_DELINQUENCIES_ALL del
45 		where del.cust_account_id= ca.cust_account_id
46 		and del.status in ('DELINQUENT', 'PREDELINQUENT'));
47      --End Bug 7477844 24-Dec-2008 barathsr
48 
49   CURSOR c_billto IS
50     SELECT site_uses.site_use_id site_use_id, ca.cust_account_id cust_account_id, p.party_id,
51     acct_site.org_id
52     FROM hz_cust_accounts ca, hz_parties p,
53          hz_cust_acct_sites acct_site,hz_cust_site_uses site_uses
54     WHERE acct_site.cust_acct_site_id = site_uses.cust_acct_site_id
55     AND acct_site.cust_account_id = ca.cust_account_id
56     AND ca.party_id = p.party_id
57     AND p.status = 'A'
58     AND ca.status = 'A'
59     AND acct_site.status = 'A'
60     AND site_uses.status = 'A'
61     --Begin Bug 7477844 24-Dec-2008 barathsr
62     AND EXISTS ( select 1 from IEX_DELINQUENCIES_ALL del
63 		where del.customer_site_use_id= site_uses.site_use_id
64 		and del.status in ('DELINQUENT', 'PREDELINQUENT'));
65     --End Bug 7477844 24-Dec-2008 barathsr
66 
67   CURSOR c_del IS
68     SELECT delinquency_id, customer_site_use_id, cust_account_id, party_cust_id,org_id
69     FROM iex_delinquencies
70     WHERE status IN ('DELINQUENT', 'PREDELINQUENT');
71 
72   --Moac Changes. Define Cursor for org_id. Start.
73 
74   CURSOR c_org IS
75     SELECT organization_id from hr_operating_units where
76       mo_global.check_access(organization_id) = 'Y'
77       AND organization_id = nvl(P_ORG_ID,organization_id);
78 
79    --Moac Changes. Define Cursor for org_id. End.
80 
81    --Begin Bug 7477844 24-Dec-2008 barathsr
82    CURSOR c_comp_count(l_jtf_object_code varchar2) IS
83     select count(1)
84     from iex_score_comp_types_vl
85     where metric_flag='Y'
86     and jtf_object_code=l_jtf_object_code
87     and active_flag='Y';
88    --End Bug 7477844 24-Dec-2008 barathsr
89 
90   l_metric_id_tbl iex_metric_pvt.metric_id_tbl_type;
91   l_metric_name_tbl iex_metric_pvt.metric_name_tbl_type;
92   l_metric_value_tbl iex_metric_pvt.metric_value_tbl_type;
93   l_metric_rating_tbl iex_metric_pvt.metric_rating_tbl_type;
94 
95   CURSOR c_total_cnt IS
96     SELECT count(1)
97     FROM iex_metric_summaries;
98 
99   --Start adding for bug 16575665 gnramasa 3rd Apr 2013
100   CURSOR c_cust_acct_cnt IS
101     SELECT count(1)
102     FROM iex_metric_summaries_all
103     WHERE object_type in ('PARTY','ACCOUNT');
104 
105   l_total_cnt        NUMBER;
106   l_cust_acct_cnt    NUMBER;
107   i                  NUMBER;
108   l_del_sql          VARCHAR2(4000) := 'DELETE FROM iex_metric_summaries';
109 
110   l_del_cust_acct    VARCHAR2(4000) := 'DELETE FROM iex_metric_summaries_all';
111   --End adding for bug 16575665 gnramasa 3rd Apr 2013
112 
113   TYPE Object_ID_Tbl_Type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
114   l_party_id_tbl Object_ID_Tbl_Type;
115   l_cust_account_id_tbl Object_ID_Tbl_Type;
116   l_site_use_id_tbl Object_ID_Tbl_Type;
117   l_delinquency_id_tbl Object_ID_Tbl_Type;
118   l_org_id_tbl Object_ID_Tbl_Type;
119   l_batch_size NUMBER;
120 --start adding for bug  16516837
121   l_out_status varchar2(100);
122   l_out_industry varchar2(100);
123   l_out_oracle_schema varchar2(100);
124   x boolean;
125 --END adding for bug  16516837
126 
127 BEGIN
128 
129   RETCODE := 0;
130 
131   IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
132     IEX_DEBUG_PUB.logMessage('Metric_Concur: ' || 'IEX_METRIC: metricConcur: Refresh started');
133     IEX_DEBUG_PUB.logMessage('Metric_Concur: ' || 'IEX_METRIC: metricConcur: Start time:'|| TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
134   END IF;
135 
136   FND_FILE.PUT_LINE(FND_FILE.LOG, 'Metric Calculation Method=' || G_METRIC_BATCH);
137   l_batch_size := to_number(nvl(fnd_profile.value('IEX_BATCH_SIZE'), '1000'));
138   FND_FILE.PUT_LINE(FND_FILE.LOG, 'Batch size=' || l_batch_size);
139 
140   --Moac Changes. Commented the profile value. Start.
141   --l_org_id := TO_NUMBER(NVL(FND_PROFILE.VALUE('ORG_ID'), -1));
142   --FND_FILE.PUT_LINE(FND_FILE.LOG, 'MO: Operating Unit=' || l_org_id);
143   --Moac Changes. Commented the profile value. End.
144 
145   --Moac Changes. Initilize set the Policy. Start
146 
147    MO_GLOBAL.INIT('IEX');
148    IF P_ORG_ID IS NOT NULL THEN
149     MO_GLOBAL.SET_POLICY_CONTEXT('S',P_ORG_ID);  -- Single Org.
150     FND_FILE.PUT_LINE(FND_FILE.LOG, 'MO: Operating Unit=' || p_org_id);
151    ELSE
152     MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);      -- Multi Org.
153     FND_FILE.PUT_LINE(FND_FILE.LOG, 'MO: Operating Unit=' || 'All');
154    END IF;
155 
156   --Moac Changes. Initilize,set the Policy. End.
157 
158 
159   IF G_METRIC_BATCH = 'BATCH' THEN
160    -- Begin fix bug #4941239-jypark-delete records only of current operating unit
161 
162    -- Moac Changes . Delete from synonym iex_metric_summaries. Start.
163    -- DELETE FROM iex_metric_summaries_all;
164    -- DELETE FROM iex_metric_summaries;
165    -- Moac Changes . Delete from synonym iex_metric_summaries. End.
166 
167  IF P_ORG_ID IS NOT NULL THEN -- adding for bug  16516837
168    l_del_sql := l_del_sql || ' WHERE rownum >= 0 and rownum < ' || l_batch_size;
169 
170     OPEN c_total_cnt;
171     FETCH c_total_cnt INTO l_total_cnt;
172     CLOSE c_total_cnt;
173 
174     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Purging old metric records(' || l_total_cnt || ')');
175     i := 0;
176 
177     LOOP
178        EXECUTE IMMEDIATE l_del_sql;
179        COMMIT;
180 
181        i := i + l_batch_size;
182     EXIT WHEN i > l_total_cnt;
183     END LOOP;
184 
185     EXECUTE IMMEDIATE l_del_sql;
186     COMMIT;
187 
188     --Start adding for bug 16575665 gnramasa 3rd Apr 2013
189     l_del_cust_acct := l_del_cust_acct || ' WHERE object_type in (''PARTY'',''ACCOUNT'') and rownum >= 0 and rownum < ' || l_batch_size;
190 
191     OPEN c_cust_acct_cnt;
192     FETCH c_cust_acct_cnt INTO l_cust_acct_cnt;
193     CLOSE c_cust_acct_cnt;
194 
195     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Purging old metric records for party and accounts(' || l_cust_acct_cnt || ')');
196     i := 0;
197 
198     LOOP
199        EXECUTE IMMEDIATE l_del_cust_acct;
200        COMMIT;
201 
202        i := i + l_batch_size;
203     EXIT WHEN i > l_cust_acct_cnt;
204     END LOOP;
205 
206     EXECUTE IMMEDIATE l_del_cust_acct;
207     COMMIT;
208     --End adding for bug 16575665 gnramasa 3rd Apr 2013
209 
210  Else  --start adding for bug  16516837
211    x := fnd_installation.get_app_info ('FND',l_out_status,l_out_industry,l_out_oracle_schema);
212    IEX_DEBUG_PUB.logMessage('IEX Schema:'||l_out_oracle_schema);
213 	 IEX_DEBUG_PUB.LogMessage('Truncating IEX_METRIC_SUMMARIES_ALL');
214 
215 	  ad_ddl.do_ddl(l_out_oracle_schema,
216                   'IEX',
217                    AD_DDL.TRUNCATE_TABLE,
218                   'TRUNCATE TABLE IEX_METRIC_SUMMARIES_ALL',
219                   'IEX_METRIC_SUMMARIES_ALL');
220 
221     	IEX_DEBUG_PUB.LogMessage('Truncated IEX_METRIC_SUMMARIES_ALL');
222       IEX_DEBUG_PUB.logMessage('Done');
223 
224  END IF;
225  --end adding for bug  16516837
226 
227     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Purge complete>>>>>');
228     -- End fix bug #5009901-JYPARK-delete records by batch size for performance
229 
230 
231 --Begin Bug 7477844 24-Dec-2008 barathsr
232     OPEN c_comp_count('PARTY');
233     fetch c_comp_count into l_obj_count;
234     close c_comp_count;
235     if  l_obj_count > 0 then
236 --End Bug 7477844 24-Dec-2008 barathsr
237 
238 --start adding  comment for bug  16516837 SNUTHALA  22/mar/2013
239    --FOR I_ORG IN C_ORG LOOP   -- Moac Changes. Loop through for Party.
240    --MO_GLOBAL.SET_POLICY_CONTEXT('S',I_ORG.organization_id); -- Moac Changes. Set Org.
241    --FND_FILE.PUT_LINE(FND_FILE.LOG, 'Inside Party Loop, Operating Unit Set =' ||I_ORG.organization_id);
242 --end adding  comment for bug  16516837 SNUTHALA  22/mar/2013
243     i := 0;
244     FOR r_party IN c_party LOOP
245       i := i + 1;
246       l_party_id_tbl(i) := r_party.party_id;
247     END LOOP;
248 
249     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Total Party Count=' || i);
250 
251     FOR idx1 IN l_party_id_tbl.FIRST..l_party_id_tbl.LAST LOOP
252 
253       iex_metric_pvt.get_metric_info(p_api_version         => 1.0,
254                                     p_init_msg_list        => FND_API.G_TRUE,
255                                     p_commit               => FND_API.G_TRUE,
256                                     p_validation_level     => 100,
257                                     x_return_status        => l_return_status,
258                                     x_msg_count            => l_msg_count,
259                                     x_msg_data             => l_msg_data,
260                                     p_party_id             => l_party_id_tbl(idx1),
261                                     p_cust_account_id      => TO_NUMBER(''),
262                                     p_customer_site_use_id => TO_NUMBER(''),
263                                     p_delinquency_id       => TO_NUMBER(''),
264                                     x_metric_id_tbl        => l_metric_id_tbl,
265                                     p_filter_by_object     => 'PARTY',
266                                     x_metric_name_tbl      => l_metric_name_tbl,
267                                     x_metric_value_tbl     => l_metric_value_tbl,
268                                     x_metric_rating_tbl    => l_metric_rating_tbl);
269 
270       IF l_metric_id_tbl.count > 0 THEN
271 
272         FORALL idx2 IN l_metric_name_tbl.FIRST..l_metric_name_tbl.LAST
273           INSERT INTO iex_metric_summaries_all
274 	  (object_id, object_type, org_id, score_comp_type_id, metric_value,
275 	  creation_date, created_by, last_update_date, last_updated_by,
276 	  last_update_login, metric_rating)
277           VALUES(l_party_id_tbl(idx1), 'PARTY',
278 	  --l_org_id, Moac Changes. Insert the Org_id from current set.
279 	  --I_ORG.organization_id, -- comment added for bug  16516837 SNUTHALA  22/mar/2013
280     --P_ORG_ID,
281           NULL, --Don't store org_id value at customer and account level for bug 16575665 gnramasa 3rd Apr 2013
282 	  l_metric_id_tbl(idx2), l_metric_value_tbl(idx2), SYSDATE, G_USER_ID,
283 	  SYSDATE, G_USER_ID, G_LOGIN_ID, l_metric_rating_tbl(idx2));
284 
285         COMMIT;
286       END IF;
287 
288      END LOOP;
289   -- END LOOP; -- Moac Changes. Org Loop.
290       end if; --Added for Bug 7477844 24-Dec-2008 barathsr
291 
292 
293 
294      --Moac Changes. Re-Initialize after the Party Loop is complete. Start.
295     IF P_ORG_ID IS NOT NULL THEN
296       MO_GLOBAL.SET_POLICY_CONTEXT('S',P_ORG_ID);  -- Single Org.
297       FND_FILE.PUT_LINE(FND_FILE.LOG, 'Reset after party loop, Operating Unit=' || p_org_id);
298     ELSE
299       MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);      -- Multi Org.
300       FND_FILE.PUT_LINE(FND_FILE.LOG, 'Reset after party loop, Operating Unit=' || 'All');
301     END IF;
302     --Moac Changes. Re-Initialize after the Party Loop is complete. Start.
303 
304    --Begin Bug 7477844 24-Dec-2008 barathsr
305    OPEN c_comp_count('IEX_ACCOUNT');
306      fetch c_comp_count into l_obj_count;
307     close c_comp_count;
308     if  l_obj_count > 0 then
309     --End Bug 7477844 24-Dec-2008 barathsr
310     --start adding  comment for bug  16516837 SNUTHALA  22/mar/2013
311      -- FOR I_ORG IN C_ORG LOOP   -- Moac Changes. Loop through for Party.
312      -- MO_GLOBAL.SET_POLICY_CONTEXT('S',I_ORG.organization_id); -- Moac Changes. Set Org.
313     -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Inside Account Loop, Operating Unit Set =' ||I_ORG.organization_id);
314     --end adding  comment for bug  16516837 SNUTHALA  22/mar/2013 SNUTHALA  22/mar/2013
315 
316      i := 0;
317      l_party_id_tbl.DELETE;
318 
319      FOR r_account IN c_account LOOP
320        i := i + 1;
321        l_cust_account_id_tbl(i) := r_account.cust_account_id;
322        l_party_id_tbl(i) := r_account.party_id;
323      END LOOP;
324      FND_FILE.PUT_LINE(FND_FILE.LOG, 'Total Account Count=' || i);
325 
326     FOR idx1 IN l_cust_account_id_tbl.FIRST..l_cust_account_id_tbl.LAST LOOP
327 
328       iex_metric_pvt.get_metric_info(p_api_version          => 1.0,
329                                     p_init_msg_list         => FND_API.G_TRUE,
330                                     p_commit                => FND_API.G_TRUE,
331                                     p_validation_level      => 100,
332                                     x_return_status         => l_return_status,
333                                     x_msg_count             => l_msg_count,
334                                     x_msg_data              => l_msg_data,
335                                     p_party_id              => l_party_id_tbl(idx1),
336                                     p_cust_account_id       => l_cust_account_id_tbl(idx1),
337                                     p_customer_site_use_id  => '',
338                                     p_delinquency_id        => '',
339                                     p_filter_by_object      => 'IEX_ACCOUNT',
340                                     x_metric_id_tbl         => l_metric_id_tbl,
341                                     x_metric_name_tbl       => l_metric_name_tbl,
342                                     x_metric_value_tbl      => l_metric_value_tbl,
343                                     x_metric_rating_tbl     => l_metric_rating_tbl);
344 
345       IF l_metric_id_tbl.count > 0 THEN
346         FORALL idx2 IN l_metric_name_tbl.FIRST..l_metric_name_tbl.LAST
347           INSERT INTO iex_metric_summaries_all(object_id, object_type,
348 	  org_id, score_comp_type_id, metric_value, creation_date,
349 	  created_by, last_update_date, last_updated_by,
350 	  last_update_login, metric_rating)
351           VALUES(l_cust_account_id_tbl(idx1), 'ACCOUNT',
352 	  --l_org_id, Moac Changes. Insert Org_id from current set.
353 	  --I_ORG.organization_id,  -- comment added for bug  16516837 SNUTHALA  22/mar/2013
354     --P_ORG_ID,
355           NULL, --Don't store org_id value at customer and account level for bug 16575665 gnramasa 3rd Apr 2013
356 	  l_metric_id_tbl(idx2),
357 	  l_metric_value_tbl(idx2), SYSDATE, G_USER_ID, SYSDATE, G_USER_ID, G_LOGIN_ID,
358 	  l_metric_rating_tbl(idx2));
359 
360         COMMIT;
361       END IF;
362 
363      END LOOP;
364 
365     --END LOOP; --Moac Change. Org Loop.
366     end if; --Added for Bug 7477844 24-Dec-2008 barathsr
367 
368   --Moac Changes. Re-Initilize,set the Policy. Start
369   IF P_ORG_ID IS NOT NULL THEN
370     MO_GLOBAL.SET_POLICY_CONTEXT('S',P_ORG_ID);  -- Single Org.
371     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Reset after Account loop, Operating Unit=' || p_org_id);
372   ELSE
373     MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);      -- Multi Org.
374   END IF;
375   --Moac Changes. Initilize, set the Policy. End.
376    --Begin Bug 7477844 24-Dec-2008 barathsr
377     OPEN c_comp_count('IEX_BILLTO');
378     fetch c_comp_count into l_obj_count;
379     close c_comp_count;
380   if  l_obj_count > 0 then
381   --End Bug 7477844 24-Dec-2008 barathsr
382     i := 0 ;
383     l_cust_account_id_tbl.DELETE;
384     l_party_id_tbl.DELETE;
385 
386     FOR r_billto IN c_billto LOOP
387       i := i + 1;
388       l_site_use_id_tbl(i) := r_billto.site_use_id;
389       l_org_id_tbl(i) := r_billto.org_id;
390 
391       -- Begin bug#7304169 snuthala 04-Aug-2008
392       l_cust_account_id_tbl(i) := r_billto.cust_account_id;
393       l_party_id_tbl(i) := r_billto.party_id;
394       -- End bug#7304169 snuthala 04-Aug-2008
395     END LOOP;
396     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Total BillTo Count=' || i);
397 
398     FOR idx1 IN l_site_use_id_tbl.FIRST..l_site_use_id_tbl.LAST LOOP
399 
400       iex_metric_pvt.get_metric_info(p_api_version           => 1.0,
401                                     p_init_msg_list          => FND_API.G_TRUE,
402                                     p_commit                 => FND_API.G_TRUE,
403                                     p_validation_level       => 100,
404                                     x_return_status          => l_return_status,
405                                     x_msg_count              => l_msg_count,
406                                     x_msg_data               => l_msg_data,
407                                     p_party_id      => l_party_id_tbl(idx1),
408                                     p_cust_account_id => l_cust_account_id_tbl(idx1),
409                                     p_customer_site_use_id => l_site_use_id_tbl(idx1),
410                                     p_delinquency_id         => '',
411                                     p_filter_by_object       => 'IEX_BILLTO',
412                                     x_metric_id_tbl          => l_metric_id_tbl,
413                                     x_metric_name_tbl        => l_metric_name_tbl,
414                                     x_metric_value_tbl       => l_metric_value_tbl,
415                                     x_metric_rating_tbl      => l_metric_rating_tbl);
416 
417       IF l_metric_id_tbl.count > 0 THEN
418         FORALL idx2 IN l_metric_name_tbl.FIRST..l_metric_name_tbl.LAST
419           INSERT INTO iex_metric_summaries_all(object_id, object_type, org_id,
420 	  score_comp_type_id, metric_value, creation_date, created_by, last_update_date,
421 	  last_updated_by,last_update_login, metric_rating)
422           VALUES(l_site_use_id_tbl(idx1), 'BILL_TO',
423 	  --l_org_id,  Moac Changes. Insert Org_id from cursor.
424 	  l_org_id_tbl(idx1),
425 	  l_metric_id_tbl(idx2), l_metric_value_tbl(idx2), SYSDATE,
426 	  G_USER_ID, SYSDATE, G_USER_ID, G_LOGIN_ID, l_metric_rating_tbl(idx2));
427 
428         COMMIT;
429      END IF;
430 
431     END LOOP;
432     end if; --Added for Bug 7477844 24-Dec-2008 barathsr
433 
434     --Begin Bug 7477844 24-Dec-2008 barathsr
435     OPEN c_comp_count('IEX_DELINQUENCY');
436     fetch c_comp_count into l_obj_count;
437     close c_comp_count;
438     if  l_obj_count > 0 then
439      --End Bug 7477844 24-Dec-2008 barathsr
440     i := 0;
441     l_site_use_id_tbl.DELETE;
442     l_cust_account_id_tbl.DELETE;
443     l_party_id_tbl.DELETE;
444 
445     FOR r_del IN c_del LOOP
446       i := i + 1;
447       l_delinquency_id_tbl(i) := r_del.delinquency_id;
448       l_site_use_id_tbl(i) := r_del.customer_site_use_id;
449       l_cust_account_id_tbl(i) := r_del.cust_account_id;
450       l_party_id_tbl(i) := r_del.party_cust_id;
451       l_org_id_tbl(i) := r_del.org_id;
452 
453     END LOOP;
454     FND_FILE.PUT_LINE(FND_FILE.LOG, 'Total Delinquency Count=' || i);
455 
456     FOR idx1 IN l_delinquency_id_tbl.FIRST..l_delinquency_id_tbl.LAST LOOP
457 
458       iex_metric_pvt.get_metric_info(p_api_version          => 1.0,
459                                     p_init_msg_list         => FND_API.G_TRUE,
460                                     p_commit                => FND_API.G_TRUE,
461                                     p_validation_level      => 100,
462                                     x_return_status         => l_return_status,
463                                     x_msg_count             => l_msg_count,
464                                     x_msg_data              => l_msg_data,
465                                     p_party_id      => l_party_id_tbl(idx1),
466                                     p_cust_account_id => l_cust_account_id_tbl(idx1),
467                                     p_customer_site_use_id => l_site_use_id_tbl(idx1),
468                                     p_delinquency_id => l_delinquency_id_tbl(idx1),
469                                     p_filter_by_object      => 'IEX_DELINQUENCY',
470                                     x_metric_id_tbl         => l_metric_id_tbl,
471                                     x_metric_name_tbl       => l_metric_name_tbl,
472                                     x_metric_value_tbl      => l_metric_value_tbl,
473                                     x_metric_rating_tbl     => l_metric_rating_tbl);
474 
475 
476 
477       IF l_metric_id_tbl.count > 0 THEN
478         FORALL idx2 IN l_metric_name_tbl.FIRST..l_metric_name_tbl.LAST
479           INSERT INTO iex_metric_summaries_all(object_id, object_type, org_id,
480 	  score_comp_type_id, metric_value, creation_date, created_by,
481 	  last_update_date, last_updated_by, last_update_login, metric_rating)
482           VALUES(l_delinquency_id_tbl(idx1), 'DELINQUENCY',
483 	  --l_org_id, Moac Changes. Insert Org_id from cursor.
484 	  l_org_id_tbl(idx1),
485 	  l_metric_id_tbl(idx2), l_metric_value_tbl(idx2), SYSDATE,
486 	  G_USER_ID, SYSDATE, G_USER_ID, G_LOGIN_ID, l_metric_rating_tbl(idx2));
487 
488         COMMIT;
489       END IF;
490 
491     END LOOP;
492     end if;  --Added for Bug 7477844 24-Dec-2008 barathsr
493 
494 
495   END IF;
496 
497   IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
498     IEX_DEBUG_PUB.logMessage('Metric_Concur: ' || 'IEX_METRIC: metricConcur: End time:'|| TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
499   END IF;
500 /*
501 Exception
502   WHEN FND_API.G_EXC_ERROR THEN
503     RETCODE := -1;
504     ERRBUF := l_msg_data;
505     IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
506       IEX_DEBUG_PUB.logMessage('IEX_METRIC: metricConcur: Expected Error ' || sqlerrm);
507     END IF;
508     FND_FILE.PUT_LINE(FND_FILE.LOG, 'ERROR IN CONCUR: '  || sqlerrm);
509 
510   WHEN OTHERS THEN
511     RETCODE := -1;
512     ERRBUF := l_msg_data;
513     IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
514       IEX_DEBUG_PUB.logMessage('IEX_METRIC: metricConcur: Unexpected Error ' || sqlerrm);
515     END IF;
516     FND_FILE.PUT_LINE(FND_FILE.LOG, 'ERROR IN CONCUR: ' || sqlerrm);
517 */
518 Exception
519   WHEN OTHERS THEN
520  FND_FILE.PUT_LINE(FND_FILE.LOG, 'ERROR : '  || sqlerrm);
521 END Refresh_All;
522 BEGIN
523   G_LOGIN_ID  := FND_GLOBAL.Conc_Login_Id;
524   G_USER_ID  := FND_GLOBAL.User_Id;
525   PG_DEBUG := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
526   G_METRIC_BATCH := NVL(fnd_profile.value('IEX_METRIC_ALLOW_BATCH'), 'REALTIME');
527 END IEX_METRIC_CONCUR_PVT;