[Home] [Help]
381: WHERE instance_id = c_instance_id
382: AND TRUNC(sysdate) < TRUNC(NVL(active_end_date, sysdate+1));
383:
384: -- Validate Counter ID.
385: CURSOR cs_counters_csr (c_counter_id NUMBER) IS
386: SELECT cgrp.source_object_id
387: FROM cs_counters ctr, cs_counter_groups cgrp
388: WHERE cgrp.counter_group_id = ctr.counter_group_id
389: AND cgrp.source_object_code = 'CP'
383:
384: -- Validate Counter ID.
385: CURSOR cs_counters_csr (c_counter_id NUMBER) IS
386: SELECT cgrp.source_object_id
387: FROM cs_counters ctr, cs_counter_groups cgrp
388: WHERE cgrp.counter_group_id = ctr.counter_group_id
389: AND cgrp.source_object_code = 'CP'
390: AND ctr.counter_id = c_counter_id
391: AND trunc(sysdate) >= trunc(nvl(ctr.start_date_active,sysdate))
410:
411: -- Validate counter name.
412: CURSOR cs_counter_name_csr(c_counter_name VARCHAR2) IS
413: SELECT 'X'
414: FROM cs_counters ctr
415: WHERE ctr.name = c_counter_name
416: AND trunc(sysdate) >= trunc(nvl(ctr.start_date_active,sysdate))
417: AND trunc(sysdate) < trunc(nvl(ctr.end_date_active,sysdate+1));
418:
459:
460: -- Check if counter_id is valid.
461: IF (p_utilization_rec.counter_id IS NOT NULL) AND
462: (p_utilization_rec.counter_id <> FND_API.G_MISS_NUM) THEN
463: OPEN cs_counters_csr(p_utilization_rec.counter_id);
464: FETCH cs_counters_csr INTO l_csi_item_instance_id;
465: IF (cs_counters_csr%NOTFOUND) THEN
466: FND_MESSAGE.set_name('AHL','AHL_UC_CSCTR_INVALID');
467: FND_MESSAGE.set_token('CTRID',p_utilization_rec.counter_id);
460: -- Check if counter_id is valid.
461: IF (p_utilization_rec.counter_id IS NOT NULL) AND
462: (p_utilization_rec.counter_id <> FND_API.G_MISS_NUM) THEN
463: OPEN cs_counters_csr(p_utilization_rec.counter_id);
464: FETCH cs_counters_csr INTO l_csi_item_instance_id;
465: IF (cs_counters_csr%NOTFOUND) THEN
466: FND_MESSAGE.set_name('AHL','AHL_UC_CSCTR_INVALID');
467: FND_MESSAGE.set_token('CTRID',p_utilization_rec.counter_id);
468: FND_MSG_PUB.add;
461: IF (p_utilization_rec.counter_id IS NOT NULL) AND
462: (p_utilization_rec.counter_id <> FND_API.G_MISS_NUM) THEN
463: OPEN cs_counters_csr(p_utilization_rec.counter_id);
464: FETCH cs_counters_csr INTO l_csi_item_instance_id;
465: IF (cs_counters_csr%NOTFOUND) THEN
466: FND_MESSAGE.set_name('AHL','AHL_UC_CSCTR_INVALID');
467: FND_MESSAGE.set_token('CTRID',p_utilization_rec.counter_id);
468: FND_MSG_PUB.add;
469: --dbms_output.put_line('Counter ID not found');
483: l_tmp_instance_id := l_csi_item_instance_id;
484: END IF; -- csi not found.
485: CLOSE csi_item_instances_csr;
486: END IF;
487: CLOSE cs_counters_csr;
488: END IF;
489: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
490: FND_LOG.STRING(G_LEVEL_STATEMENT,
491: L_DEBUG_KEY,
995: l_utilization_rec utilization_rec_type;
996: l_ratio NUMBER;
997: l_reading_value NUMBER;
998: l_start_current_value NUMBER;
999: l_uom_code cs_counters.uom_code%TYPE;
1000:
1001: l_ctr_grp_log_rec CS_CTR_CAPTURE_READING_PUB.ctr_grp_log_rec_type;
1002: l_ctr_rdg_tbl CS_CTR_CAPTURE_READING_PUB.ctr_rdg_tbl_type;
1003: l_prop_rdg_tbl CS_CTR_CAPTURE_READING_PUB.prop_rdg_tbl_type;
1203:
1204: PROCEDURE update_reading_cn(p_utilization_rec IN utilization_rec_type) IS
1205: TYPE instance_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
1206: /** Begin changes by jaramana on October 29, 2007 for bug 6513576
1207: Cannot use cs_counters and cs_counter_groups anymore **/
1208: -- Cursor changed by jaramana on 03-DEC-2008 for bug 7426643 (FP of 7263702)
1209: -- Removed the use of csi_cp_counters_v
1210: CURSOR get_components_counter(c_instance_id NUMBER, c_counter_name VARCHAR2) IS
1211: SELECT CI.subject_id
1211: SELECT CI.subject_id
1212: FROM csi_ii_relationships CI
1213: WHERE EXISTS (SELECT 'X'
1214: /*
1215: FROM cs_counters CC,
1216: cs_counter_groups CG
1217: WHERE CC.counter_group_id = CG.counter_group_id
1218: AND CG.source_object_id = CI.subject_id
1219: AND CG.source_object_code = 'CP'
1261: AND trunc(nvl(active_end_date,sysdate+1)) > trunc(sysdate)
1262: AND relationship_type_code = 'COMPONENT-OF';
1263:
1264: -- Get counters that match on a given counter name.
1265: CURSOR cs_counters_name_csr(c_csi_item_instance_id NUMBER, c_name VARCHAR2) IS
1266: /*
1267: SELECT ctr.name counter_name, ctr.counter_id, ctr.uom_code, cgrp.counter_group_id
1268: FROM cs_counter_groups cgrp, cs_counters ctr
1269: WHERE cgrp.counter_group_id = ctr.counter_group_id
1264: -- Get counters that match on a given counter name.
1265: CURSOR cs_counters_name_csr(c_csi_item_instance_id NUMBER, c_name VARCHAR2) IS
1266: /*
1267: SELECT ctr.name counter_name, ctr.counter_id, ctr.uom_code, cgrp.counter_group_id
1268: FROM cs_counter_groups cgrp, cs_counters ctr
1269: WHERE cgrp.counter_group_id = ctr.counter_group_id
1270: AND cgrp.source_object_code = 'CP'
1271: AND cgrp.source_object_id = c_csi_item_instance_id
1272: AND ctr.name = c_name
1279: AND CCCV.COUNTER_TEMPLATE_NAME = c_name
1280: AND trunc(nvl(CCCV.start_date_active, sysdate)) <= trunc(sysdate)
1281: AND trunc(nvl(CCCV.end_date_active, sysdate+1)) > trunc(sysdate);
1282: /** End changes by jaramana on October 29, 2007 for bug 6513576 **/
1283: l_cs_counters_name_csr cs_counters_name_csr%ROWTYPE;
1284:
1285: -- Get current counter reading values based on the counter_id
1286: -- Cursor get_current_value_id commented out by jaramana on on June 13, 2007
1287: -- while fixing bug 6123549 since this cursor is not used in this procedure at all.
1314: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1315: FND_LOG.STRING(G_LEVEL_PROCEDURE, L_DEBUG_KEY || '.begin', 'Entering Procedure');
1316: END IF;
1317: l_utilization_rec := p_utilization_rec;
1318: OPEN cs_counters_name_csr(l_utilization_rec.csi_item_instance_id,
1319: l_utilization_rec.counter_name);
1320: FETCH cs_counters_name_csr INTO l_cs_counters_name_csr;
1321: IF cs_counters_name_csr%FOUND THEN
1322: --p_utilization_rec.uom_code := l_cs_counters_name_csr.uom_code;
1316: END IF;
1317: l_utilization_rec := p_utilization_rec;
1318: OPEN cs_counters_name_csr(l_utilization_rec.csi_item_instance_id,
1319: l_utilization_rec.counter_name);
1320: FETCH cs_counters_name_csr INTO l_cs_counters_name_csr;
1321: IF cs_counters_name_csr%FOUND THEN
1322: --p_utilization_rec.uom_code := l_cs_counters_name_csr.uom_code;
1323: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1324: FND_LOG.STRING(G_LEVEL_STATEMENT,
1317: l_utilization_rec := p_utilization_rec;
1318: OPEN cs_counters_name_csr(l_utilization_rec.csi_item_instance_id,
1319: l_utilization_rec.counter_name);
1320: FETCH cs_counters_name_csr INTO l_cs_counters_name_csr;
1321: IF cs_counters_name_csr%FOUND THEN
1322: --p_utilization_rec.uom_code := l_cs_counters_name_csr.uom_code;
1323: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1324: FND_LOG.STRING(G_LEVEL_STATEMENT,
1325: L_DEBUG_KEY,
1318: OPEN cs_counters_name_csr(l_utilization_rec.csi_item_instance_id,
1319: l_utilization_rec.counter_name);
1320: FETCH cs_counters_name_csr INTO l_cs_counters_name_csr;
1321: IF cs_counters_name_csr%FOUND THEN
1322: --p_utilization_rec.uom_code := l_cs_counters_name_csr.uom_code;
1323: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1324: FND_LOG.STRING(G_LEVEL_STATEMENT,
1325: L_DEBUG_KEY,
1326: 'cs_counters_name_csr%FOUND. Calling update_reading_ins');
1322: --p_utilization_rec.uom_code := l_cs_counters_name_csr.uom_code;
1323: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1324: FND_LOG.STRING(G_LEVEL_STATEMENT,
1325: L_DEBUG_KEY,
1326: 'cs_counters_name_csr%FOUND. Calling update_reading_ins');
1327: END IF;
1328: update_reading_ins(l_utilization_rec);
1329: CLOSE cs_counters_name_csr;
1330: ELSE
1325: L_DEBUG_KEY,
1326: 'cs_counters_name_csr%FOUND. Calling update_reading_ins');
1327: END IF;
1328: update_reading_ins(l_utilization_rec);
1329: CLOSE cs_counters_name_csr;
1330: ELSE
1331: CLOSE cs_counters_name_csr;
1332: IF (NVL(l_utilization_rec.delta_flag, 'N') = 'N') THEN
1333: --The start instance doesn't have the given counter associated, reading value is
1327: END IF;
1328: update_reading_ins(l_utilization_rec);
1329: CLOSE cs_counters_name_csr;
1330: ELSE
1331: CLOSE cs_counters_name_csr;
1332: IF (NVL(l_utilization_rec.delta_flag, 'N') = 'N') THEN
1333: --The start instance doesn't have the given counter associated, reading value is
1334: --net reading but the counter doesn't exists for the start instance
1335: --So raise error and return, no need to go further down.
1343: --have the given counter associated but their ancestors don't.
1344: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1345: FND_LOG.STRING(G_LEVEL_STATEMENT,
1346: L_DEBUG_KEY,
1347: 'cs_counters_name_csr%FOUND is false. l_utilization_rec.delta_flag is Y and l_utilization_rec.cascade_flag is Y');
1348: END IF;
1349: l_inst_idx :=1;
1350: -- Begin changes made by jaramana on 03-DEC-2008 for bug 7426643 (FP of 7263702)
1351: OPEN get_components_counter(l_utilization_rec.csi_item_instance_id, l_utilization_rec.counter_name);
1434: i NUMBER;
1435: L_DEBUG_KEY CONSTANT VARCHAR2(150) := G_LOG_PREFIX || '.Update_Reading_All';
1436:
1437: /** Begin changes by jaramana on October 29, 2007 for bug 6513576
1438: Cannot use cs_counters and cs_counter_groups anymore **/
1439: --Given start instance_id and uom_code, this cursor is used to get all of the distinct
1440: --counters this start instance has
1441: CURSOR get_inst_counters(c_instance_id NUMBER, c_uom_code VARCHAR2) IS
1442: /*
1440: --counters this start instance has
1441: CURSOR get_inst_counters(c_instance_id NUMBER, c_uom_code VARCHAR2) IS
1442: /*
1443: SELECT DISTINCT CC.NAME counter_name
1444: FROM cs_counters CC,
1445: cs_counter_groups CG
1446: WHERE CC.counter_group_id = CG.counter_group_id
1447: AND CG.source_object_code = 'CP'
1448: AND CG.source_object_id = c_instance_id