63: x_return_status
64: );
65:
66: /*** was delete successful? ***/
67: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
68: /*** no -> rollback ***/
69:
70: CSM_UTIL_PKG.LOG
71: ( 'Deleting from inqueue failed, rolling back to savepoinT'|| 'for PK '||r_get_ctr_prop_read_from_inq.counter_prop_value_id,
74:
75: ROLLBACK TO save_rec;
76: END IF;
77:
78: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
79: /*** Record was not processed successfully or delete failed -> defer and reject record ***/
80:
81: CSM_UTIL_PKG.LOG
82: ( 'Record not processed successfully, deferring and rejecting record'|| 'for PK '|| r_get_ctr_prop_read_from_inq.counter_prop_value_id,
97: , r_get_ctr_prop_read_from_inq.dmltype$$
98: );
99:
100: /*** Was defer successful? ***/
101: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
102: /*** no -> rollback ***/
103:
104: CSM_UTIL_PKG.LOG
105: ( 'Defer record failed, rolling back to savepoint'|| 'for PK '||r_get_ctr_prop_read_from_inq.counter_prop_value_id,
125: 'CSM_COUNTER_VALUES_PKG.DELETE_PROP_READ_FROM_INQ',
126: FND_LOG.LEVEL_EXCEPTION); -- put PK column here
127:
128: RAISE;
129: x_return_status := FND_API.G_RET_STS_ERROR;
130: END DELETE_PROP_READ_FROM_INQ;
131:
132:
133: /***
180: CSM_UTIL_PKG.LOG( l_err_msg, 'CSM_COUNTER_VALUES_PKG.APPLY_INSERT',FND_LOG.LEVEL_PROCEDURE);
181:
182: --anu
183: --initialize return status
184: x_return_status := FND_API.G_RET_STS_SUCCESS;
185: --end anu
186:
187:
188: -- Fill the counter_group_log record and the counter_reading record needed
219: END LOOP;
220: -- Call the public API
221: Cs_Ctr_Capture_Reading_Pub.Capture_Counter_Reading
222: ( p_api_version_number => 1.0
223: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
224: , p_init_msg_list => FND_API.G_TRUE
225: , p_commit => FND_API.G_FALSE
226: , p_ctr_rdg_tbl => l_ctr_rdg_tbl_pub
227: , p_ctr_grp_log_rec => l_ctr_grp_log_rec_pub
220: -- Call the public API
221: Cs_Ctr_Capture_Reading_Pub.Capture_Counter_Reading
222: ( p_api_version_number => 1.0
223: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
224: , p_init_msg_list => FND_API.G_TRUE
225: , p_commit => FND_API.G_FALSE
226: , p_ctr_rdg_tbl => l_ctr_rdg_tbl_pub
227: , p_ctr_grp_log_rec => l_ctr_grp_log_rec_pub
228: , p_PROP_RDG_Tbl => l_prp_rdg_tbl_pub
221: Cs_Ctr_Capture_Reading_Pub.Capture_Counter_Reading
222: ( p_api_version_number => 1.0
223: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
224: , p_init_msg_list => FND_API.G_TRUE
225: , p_commit => FND_API.G_FALSE
226: , p_ctr_rdg_tbl => l_ctr_rdg_tbl_pub
227: , p_ctr_grp_log_rec => l_ctr_grp_log_rec_pub
228: , p_PROP_RDG_Tbl => l_prp_rdg_tbl_pub
229: , x_return_status => x_return_status
231: , x_msg_data => l_msg_data
232: );
233:
234: --setting the return status to SUCCESS because of bug 2470553
235: x_return_status := FND_API.G_RET_STS_SUCCESS;
236:
237:
238: OPEN c_counter_value_id(p_record.counter_value_id);
239: FETCH c_counter_value_id INTO l_counter_value_id;
242: --calling counter value insert into access table after succeful insertion
243: CSM_COUNTER_READING_EVENT_PKG.COUNTER_VALUE_ACC_INS(l_counter_value_id, p_record.counter_id,
244: l_err_msg, x_return_status);
245:
246: x_return_status := FND_API.G_RET_STS_SUCCESS;
247:
248: --delete the record from the inq as it got processed already
249: DELETE_PROP_READ_FROM_INQ(
250: p_record.clid$$cs,
252: l_counter_value_id,
253: x_return_status
254: );
255: ELSE
256: x_return_status := FND_API.G_RET_STS_ERROR;
257: END IF;
258: CLOSE c_counter_value_id;
259:
260: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
256: x_return_status := FND_API.G_RET_STS_ERROR;
257: END IF;
258: CLOSE c_counter_value_id;
259:
260: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
261: /*** exception occurred in API -> return errmsg ***/
262: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
263: (
264: p_api_error => TRUE
284:
285: l_err_msg := 'Leaving ' || g_object_name || '.APPLY_INSERT' || ' for PK ' || to_char( p_record.COUNTER_VALUE_ID);
286: CSM_UTIL_PKG.LOG(l_err_msg,'CSM_COUNTER_VALUES_PKG.APPLY_INSERT',FND_LOG.LEVEL_EXCEPTION);
287:
288: x_return_status := FND_API.G_RET_STS_ERROR;
289: END APPLY_INSERT;
290:
291: /***
292: This procedure is called by APPLY_CLIENT_CHANGES when an updated record is to be processed.
367: -- Make sure we have the right object_version_number
368: l_ctr_rdg_rec.object_version_number := r_counter_value.object_version_number;
369: ELSE
370: -- Let the API complain with a good message.
371: l_ctr_grp_log_id := FND_API.G_MISS_NUM;
372: l_ctr_rdg_rec.object_version_number := FND_API.G_MISS_NUM;
373: END IF;
374: CLOSE c_counter_value;
375:
368: l_ctr_rdg_rec.object_version_number := r_counter_value.object_version_number;
369: ELSE
370: -- Let the API complain with a good message.
371: l_ctr_grp_log_id := FND_API.G_MISS_NUM;
372: l_ctr_rdg_rec.object_version_number := FND_API.G_MISS_NUM;
373: END IF;
374: CLOSE c_counter_value;
375:
376: l_ctr_rdg_tbl(1) := l_ctr_rdg_rec;
383: -- SERVER_WINS profile value
384: IF(fnd_profile.value(csm_profile_pkg.g_JTM_APPL_CONFLICT_RULE)
385: = csm_profile_pkg.g_SERVER_WINS) THEN
386: IF(r_counter_value.last_update_date <> p_record.server_last_update_date) THEN
387: x_return_status := FND_API.G_RET_STS_ERROR;
388: l_err_msg:= 'UPWARD SYNC CONFLICT: CLIENT LOST: CSM_COUNTER_VALUES_PKG.APPLY_UPDATE: P_KEY = '
389: || p_record.counter_value_id;
390: CSM_UTIL_PKG.LOG(l_err_msg,'CSM_COUNTER_VALUES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR);
391: p_error_msg := l_err_msg;
396: --CLIENT_WINS (or client is allowd to update the record)
397:
398: Cs_Ctr_Capture_Reading_pub.Update_Counter_Reading
399: ( p_api_version_number => 1.0
400: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
401: , p_init_msg_list => FND_API.G_TRUE
402: , p_commit => FND_API.G_FALSE
403: , p_ctr_rdg_tbl => l_ctr_rdg_tbl
404: , p_ctr_grp_log_id => l_ctr_grp_log_id
397:
398: Cs_Ctr_Capture_Reading_pub.Update_Counter_Reading
399: ( p_api_version_number => 1.0
400: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
401: , p_init_msg_list => FND_API.G_TRUE
402: , p_commit => FND_API.G_FALSE
403: , p_ctr_rdg_tbl => l_ctr_rdg_tbl
404: , p_ctr_grp_log_id => l_ctr_grp_log_id
405: , x_return_status => x_return_status
398: Cs_Ctr_Capture_Reading_pub.Update_Counter_Reading
399: ( p_api_version_number => 1.0
400: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
401: , p_init_msg_list => FND_API.G_TRUE
402: , p_commit => FND_API.G_FALSE
403: , p_ctr_rdg_tbl => l_ctr_rdg_tbl
404: , p_ctr_grp_log_id => l_ctr_grp_log_id
405: , x_return_status => x_return_status
406: , x_msg_count => l_msg_count
408: );
409:
410: --anu
411: --setting the return status to SUCCESS because of bug 2470553
412: x_return_status := FND_API.G_RET_STS_SUCCESS;
413: --end anu
414:
415: OPEN c_counter_value_check(p_record.counter_value_id);
416: FETCH c_counter_value_check INTO l_counter_reading;
415: OPEN c_counter_value_check(p_record.counter_value_id);
416: FETCH c_counter_value_check INTO l_counter_reading;
417: IF c_counter_value_check%FOUND THEN
418: IF l_counter_reading = p_record.counter_reading THEN
419: x_return_status := FND_API.G_RET_STS_SUCCESS;
420: --calling counter value update to mark dirty
421: CSM_COUNTER_READING_EVENT_PKG.COUNTER_VALUE_ACC_INS(p_record.counter_value_id, p_record.counter_id,
422: l_err_msg, x_return_status);
423:
421: CSM_COUNTER_READING_EVENT_PKG.COUNTER_VALUE_ACC_INS(p_record.counter_value_id, p_record.counter_id,
422: l_err_msg, x_return_status);
423:
424: ELSE
425: x_return_status := FND_API.G_RET_STS_ERROR;
426: END IF;
427: ELSE
428: x_return_status := FND_API.G_RET_STS_ERROR;
429: END IF;
424: ELSE
425: x_return_status := FND_API.G_RET_STS_ERROR;
426: END IF;
427: ELSE
428: x_return_status := FND_API.G_RET_STS_ERROR;
429: END IF;
430: CLOSE c_counter_value_check;
431:
432: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
428: x_return_status := FND_API.G_RET_STS_ERROR;
429: END IF;
430: CLOSE c_counter_value_check;
431:
432: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
433: /*** exception occurred in API -> return errmsg ***/
434: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
435: (
436: p_api_error => TRUE
453:
454: l_err_msg := 'Leaving ' || g_object_name || '.APPLY_UPDATE'|| ' for PK ' ||to_char(p_record.COUNTER_VALUE_ID);
455: CSM_UTIL_PKG.LOG(l_err_msg,'CSM_COUNTER_VALUES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_EXCEPTION );
456:
457: x_return_status := FND_API.G_RET_STS_ERROR;
458: END APPLY_UPDATE;
459:
460: /***
461: This procedure is called by APPLY_CLIENT_CHANGES for every record in in-queue that needs to be processed.
468: ) IS
469: l_err_msg VARCHAR2(4000);
470: BEGIN
471: /*** initialize return status and message list ***/
472: x_return_status := FND_API.G_RET_STS_SUCCESS;
473: FND_MSG_PUB.INITIALIZE;
474:
475:
476: l_err_msg:= 'Entering ' || g_object_name || '.APPLY_RECORD' || ' for PK ' || to_char(p_record.COUNTER_VALUE_ID);
508: , p_token_name1 => 'DML'
509: , p_token_value1 => p_record.dmltype$$
510: );
511:
512: x_return_status := FND_API.G_RET_STS_ERROR;
513: ELSE
514: -- invalid dml type
515: l_err_msg := 'Invalid DML type: ' || p_record.dmltype$$ || ' for this entity '|| g_object_name;
516: CSM_UTIL_PKG.LOG(l_err_msg,'CSM_COUNTER_VALUES_PKG.APPLY_RECORD',FND_LOG.LEVEL_ERROR);
521: , p_token_name1 => 'DML'
522: , p_token_value1 => p_record.dmltype$$
523: );
524:
525: x_return_status := FND_API.G_RET_STS_ERROR;
526: END IF;
527:
528: l_err_msg := 'Leaving ' || g_object_name || '.APPLY_RECORD' || ' for PK ' || to_Char(p_record.COUNTER_VALUE_ID);
529: CSM_UTIL_PKG.LOG(l_err_msg,'CSM_COUNTER_VALUES_PKG.APPLY_RECORD',FND_LOG.LEVEL_PROCEDURE);
541:
542: l_err_msg := 'Leaving ' || g_object_name || '.APPLY_RECORD'|| ' for PK ' ||to_char(p_record.COUNTER_VALUE_ID);
543: CSM_UTIL_PKG.LOG(l_err_msg,'CSM_COUNTER_VALUES_PKG.APPLY_RECORD',FND_LOG.LEVEL_EXCEPTION);
544:
545: x_return_status := FND_API.G_RET_STS_ERROR;
546: END APPLY_RECORD;
547:
548: /***
549: This procedure is called by CSM_SERVICEP_WRAPPER_PKG when publication item CS_COUNTER_VALUES
562: l_process_status VARCHAR2(1);
563: l_error_msg VARCHAR2(4000);
564: BEGIN
565: g_debug_level := p_debug_level;
566: x_return_status := FND_API.G_RET_STS_SUCCESS;
567:
568: l_error_msg := 'Entering ' || g_object_name || '.Apply_Client_Changes';
569: CSM_UTIL_PKG.LOG(l_error_msg,'CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_PROCEDURE);
570:
582: , l_process_status
583: );
584:
585: /*** was record processed successfully? ***/
586: IF l_process_status = FND_API.G_RET_STS_SUCCESS THEN
587: /*** Yes -> delete record from inqueue ***/
588: l_error_msg := 'Record successfully processed, deleting from inqueue ' || g_object_name
589: || ' for PK ' || r_CS_COUNTER_VALUES.COUNTER_VALUE_ID;
590: CSM_UTIL_PKG.LOG(l_error_msg,'CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR);
601: l_process_status
602: );
603:
604: /*** was delete successful? ***/
605: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
606: /*** no -> rollback ***/
607: l_error_msg := 'Deleting from inqueue failed, rolling back to savepoint for entity ' || g_object_name
608: || ' and PK ' || r_CS_COUNTER_VALUES.COUNTER_VALUE_ID ;
609: CSM_UTIL_PKG.LOG(l_error_msg,'CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR);
611: ROLLBACK TO save_rec;
612: END IF;
613: END IF;
614:
615: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
616: /*** Record was not processed successfully or delete failed -> defer and reject record ***/
617: l_error_msg :='Record not processed successfully, deferring and rejecting record for entity ' || g_object_name
618: || ' and PK ' || r_CS_COUNTER_VALUES.COUNTER_VALUE_ID ;
619: CSM_UTIL_PKG.LOG(l_error_msg,'CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR);
631: , r_CS_COUNTER_VALUES.dmltype$$
632: );
633:
634: /*** Was defer successful? ***/
635: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
636: /*** no -> rollback ***/
637: l_error_msg :='Defer record failed, rolling back to savepoint for entity ' || g_object_name
638: || ' and PK ' || r_CS_COUNTER_VALUES.COUNTER_VALUE_ID;
639: CSM_UTIL_PKG.LOG(l_error_msg,'CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR);
652: /*** catch and log exceptions ***/
653: l_error_msg := 'Exception occurred in ' || g_object_name || '.APPLY_CLIENT_CHANGES:' || ' ' || sqlerrm ;
654: CSM_UTIL_PKG.LOG(l_error_msg,'CSM_COUNTER_VALUES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_EXCEPTION);
655:
656: x_return_status := FND_API.G_RET_STS_ERROR;
657: END APPLY_CLIENT_CHANGES;
658:
659: END CSM_COUNTER_VALUES_PKG;