86: l_msg_count number;
87:
88: BEGIN
89:
90: x_return_status := FND_API.G_RET_STS_SUCCESS;
91:
92: -- Start with some initialization.
93: -- We need to know if a debrief header record has been made
94: -- form this task_assignment_id. In that case we have to
128: l_deb_rec.debrief_number := null ;
129:
130: csf_debrief_pub.create_debrief
131: ( p_api_version_number => 1.0
132: , p_init_msg_list => FND_API.G_TRUE
133: , p_commit => FND_API.G_FALSE
134: , p_debrief_rec => l_deb_rec
135: , p_debrief_line_tbl => l_line_tbl
136: , x_debrief_header_id => l_debrief_header_id
129:
130: csf_debrief_pub.create_debrief
131: ( p_api_version_number => 1.0
132: , p_init_msg_list => FND_API.G_TRUE
133: , p_commit => FND_API.G_FALSE
134: , p_debrief_rec => l_deb_rec
135: , p_debrief_line_tbl => l_line_tbl
136: , x_debrief_header_id => l_debrief_header_id
137: , x_return_status => x_return_status
139: , x_msg_data => l_msg_data
140: );
141:
142: -- This could have failed, so we need to check.
143: if x_return_status <> FND_API.G_RET_STS_SUCCESS
144: THEN
145: csm_util_pkg.log('ABCD Test 03');
146: /*** exception occurred in API -> return errmsg ***/
147: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
150: );
151: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
152: || ' ROOT ERROR: csf_debrief_pub.create_debrief'
153: || ' for PK ' || p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR );
154: x_return_status := FND_API.G_RET_STS_ERROR;
155: return;
156: end if;
157: end if;
158:
209: close c_task_obj_code;
210:
211: csf_debrief_pub.create_debrief_lines
212: ( p_api_version_number => 1.0
213: , p_init_msg_list => FND_API.G_TRUE
214: , p_commit => FND_API.G_FALSE
215: , x_return_status => x_return_status
216: , x_msg_count => l_msg_count
217: , x_msg_data => l_msg_data
210:
211: csf_debrief_pub.create_debrief_lines
212: ( p_api_version_number => 1.0
213: , p_init_msg_list => FND_API.G_TRUE
214: , p_commit => FND_API.G_FALSE
215: , x_return_status => x_return_status
216: , x_msg_count => l_msg_count
217: , x_msg_data => l_msg_data
218: , p_debrief_header_id => l_debrief_header_id
218: , p_debrief_header_id => l_debrief_header_id
219: , p_debrief_line_tbl => l_line_tbl
220: , p_source_object_type_code => r_task_obj_code.source_object_type_code
221: );
222: if x_return_status <> FND_API.G_RET_STS_SUCCESS
223: then
224: /*** exception occurred in API -> return errmsg ***/
225: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
226: (
228: );
229: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
230: || ' ROOT ERROR: csf_debrief_pub.create_debrief_lines'
231: || ' for PK ' || p_record.DEBRIEF_LINE_ID ,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
232: x_return_status := FND_API.G_RET_STS_ERROR;
233: return;
234: end if;
235:
236: -- For a given debrief header check the task Assignment status.
259: p_api_error => TRUE
260: );
261: CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_INSERT:'
262: || ' for PK ' || p_record.DEBRIEF_LINE_ID ,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_INSERT',FND_LOG.LEVEL_EXCEPTION);
263: x_return_status := FND_API.G_RET_STS_ERROR;
264: END APPLY_INSERT;
265:
266: /***
267: This procedure is called by APPLY_CLIENT_CHANGES when an inserted record is to be processed.
296:
297:
298: BEGIN
299:
300: x_return_status := FND_API.G_RET_STS_SUCCESS;
301:
302: -- Lookup the debrief_header id. It must be there as this is an update
303: -- of a line.
304: OPEN c_cdl
355: -- SERVER_WINS profile value
356: if(fnd_profile.value(csm_profile_pkg.g_JTM_APPL_CONFLICT_RULE)
357: = csm_profile_pkg.g_SERVER_WINS) then
358: if(r_cdl.last_update_date <> p_record.server_last_update_date) then
359: x_return_status := FND_API.G_RET_STS_ERROR;
360: p_error_msg := 'UPWARD SYNC CONFLICT: CLIENT LOST: CSM_DEBRIEF_EXPENSES_PKG.APPLY_UPDATE: P_KEY = '
361: || p_record.debrief_line_id;
362: csm_util_pkg.log(p_error_msg,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR);
363: return;
368:
369: -- Update the debrief line
370: csf_debrief_pub.update_debrief_line
371: ( p_api_version_number => 1.0
372: , p_init_msg_list => FND_API.G_TRUE
373: , p_commit => FND_API.G_FALSE
374: , x_return_status => x_return_status
375: , x_msg_count => l_msg_count
376: , x_msg_data => l_msg_data
369: -- Update the debrief line
370: csf_debrief_pub.update_debrief_line
371: ( p_api_version_number => 1.0
372: , p_init_msg_list => FND_API.G_TRUE
373: , p_commit => FND_API.G_FALSE
374: , x_return_status => x_return_status
375: , x_msg_count => l_msg_count
376: , x_msg_data => l_msg_data
377: , p_debrief_line_rec => l_line_rec
375: , x_msg_count => l_msg_count
376: , x_msg_data => l_msg_data
377: , p_debrief_line_rec => l_line_rec
378: );
379: if x_return_status <> FND_API.G_RET_STS_SUCCESS
380: then
381: /*** exception occurred in API -> return errmsg ***/
382: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
383: (
387: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_UPDATE:'
388: || ' ROOT ERROR: csf_debrief_pub.update_debrief_lines'
389: || ' for PK ' || p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR );
390:
391: x_return_status := FND_API.G_RET_STS_ERROR;
392: return;
393: end if;
394:
395: exception
401: );
402:
403: CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_UPDATE:'
404: || ' for PK ' || p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_EXCEPTION );
405: x_return_status := FND_API.G_RET_STS_ERROR;
406: END APPLY_UPDATE;
407:
408:
409:
417: x_return_status IN OUT NOCOPY VARCHAR2
418: ) IS
419: BEGIN
420: /*** initialize return status and message list ***/
421: x_return_status := FND_API.G_RET_STS_SUCCESS;
422: FND_MSG_PUB.INITIALIZE;
423:
424: IF p_record.dmltype$$='I' THEN
425: -- Process insert
449: , p_token_name1 => 'DML'
450: , p_token_value1 => p_record.dmltype$$
451: );
452:
453: x_return_status := FND_API.G_RET_STS_ERROR;
454: END IF;
455:
456: EXCEPTION WHEN OTHERS THEN
457: /*** defer record when any process exception occurs ***/
464: (
465: p_api_error => TRUE
466: );
467:
468: x_return_status := FND_API.G_RET_STS_ERROR;
469: END APPLY_RECORD;
470:
471: /***
472: This procedure is called by CSM_UTIL_PKG when publication item
485: l_process_status VARCHAR2(1);
486: l_error_msg VARCHAR2(4000);
487: BEGIN
488: g_debug_level := p_debug_level;
489: x_return_status := FND_API.G_RET_STS_SUCCESS;
490:
491:
492:
493: /*** loop through debrief expenses records in inqueue ***/
503: , l_process_status
504: );
505:
506: /*** was record processed successfully? ***/
507: IF l_process_status = FND_API.G_RET_STS_SUCCESS THEN
508: /*** Yes -> delete record from inqueue ***/
509:
510: CSM_UTIL_PKG.DELETE_RECORD
511: (
519: l_process_status
520: );
521:
522: /*** was delete successful? ***/
523: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
524: /*** no -> rollback ***/
525: CSM_UTIL_PKG.LOG
526: ( 'Deleting from inqueue failed, rolling back to savepoint'
527: || ' for PK ' || r_debrief_expenses.debrief_line_id ,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
525: CSM_UTIL_PKG.LOG
526: ( 'Deleting from inqueue failed, rolling back to savepoint'
527: || ' for PK ' || r_debrief_expenses.debrief_line_id ,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
528: ROLLBACK TO save_rec;
529: x_return_status := FND_API.G_RET_STS_ERROR;
530: END IF;
531: END IF;
532:
533: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
529: x_return_status := FND_API.G_RET_STS_ERROR;
530: END IF;
531: END IF;
532:
533: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
534: /*** Record was not processed successfully or delete failed -> defer and reject record ***/
535: CSM_UTIL_PKG.LOG
536: ( 'Record not processed successfully, deferring and rejecting record'
537: || ' for PK ' || r_debrief_expenses.debrief_line_id,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
549: , r_debrief_expenses.dmltype$$
550: );
551:
552: /*** Was defer successful? ***/
553: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
554: /*** no -> rollback ***/
555: CSM_UTIL_PKG.LOG
556: ( 'Defer record failed, rolling back to savepoint'
557: || ' for PK ' || r_debrief_expenses.debrief_line_id,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
555: CSM_UTIL_PKG.LOG
556: ( 'Defer record failed, rolling back to savepoint'
557: || ' for PK ' || r_debrief_expenses.debrief_line_id,'CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
558: ROLLBACK TO save_rec;
559: x_return_status := FND_API.G_RET_STS_ERROR;
560: END IF;
561: END IF;
562:
563: END LOOP;
566: /*** catch and log exceptions ***/
567: CSM_UTIL_PKG.LOG
568: ( 'Exception occurred in APPLY_CLIENT_CHANGES:' || ' ' || SQLERRM,
569: 'CSM_DEBRIEF_EXPENSES_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_EXCEPTION );
570: x_return_status := FND_API.G_RET_STS_ERROR;
571: END APPLY_CLIENT_CHANGES;
572:
573: END CSM_DEBRIEF_EXPENSES_PKG;