90: BEGIN
91:
92: CSM_UTIL_PKG.log( 'Entered APPLY_INSERT for debrief_line_id'|| p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_LABOR_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
93:
94: x_return_status := FND_API.G_RET_STS_SUCCESS;
95:
96: -- Start with some initialization.
97: -- We need to know if a debrief header record has been made
98: -- form this task_assignment_id. In that case we have to
133: l_deb_rec.debrief_number := null ;
134:
135: csf_debrief_pub.create_debrief
136: ( p_api_version_number => 1.0
137: , p_init_msg_list => FND_API.G_TRUE
138: , p_commit => FND_API.G_FALSE
139: , p_debrief_rec => l_deb_rec
140: , p_debrief_line_tbl => l_line_tbl
141: , x_debrief_header_id => l_debrief_header_id
134:
135: csf_debrief_pub.create_debrief
136: ( p_api_version_number => 1.0
137: , p_init_msg_list => FND_API.G_TRUE
138: , p_commit => FND_API.G_FALSE
139: , p_debrief_rec => l_deb_rec
140: , p_debrief_line_tbl => l_line_tbl
141: , x_debrief_header_id => l_debrief_header_id
142: , x_return_status => x_return_status
143: , x_msg_count => l_msg_count
144: , x_msg_data => l_msg_data
145: );
146: -- This could have failed, so we need to check.
147: if x_return_status <> FND_API.G_RET_STS_SUCCESS
148: then
149: /*** exception occurred in API -> return errmsg ***/
150: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
151: (
153: );
154: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
155: || ' ROOT ERROR: csf_debrief_pub.create_debrief'
156: || ' for PK ' || p_record.DEBRIEF_LINE_ID, 'CSM_DEBRIEF_LABOR_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR );
157: x_return_status := FND_API.G_RET_STS_ERROR;
158: return;
159: end if;
160: end if;
161:
214: close c_task_obj_code;
215:
216: csf_debrief_pub.create_debrief_lines
217: ( p_api_version_number => 1.0
218: , p_init_msg_list => FND_API.G_TRUE
219: , p_commit => FND_API.G_FALSE
220: , x_return_status => x_return_status
221: , x_msg_count => l_msg_count
222: , x_msg_data => l_msg_data
215:
216: csf_debrief_pub.create_debrief_lines
217: ( p_api_version_number => 1.0
218: , p_init_msg_list => FND_API.G_TRUE
219: , p_commit => FND_API.G_FALSE
220: , x_return_status => x_return_status
221: , x_msg_count => l_msg_count
222: , x_msg_data => l_msg_data
223: , p_debrief_header_id => l_debrief_header_id
223: , p_debrief_header_id => l_debrief_header_id
224: , p_debrief_line_tbl => l_line_tbl
225: , p_source_object_type_code => r_task_obj_code.source_object_type_code
226: );
227: if x_return_status <> FND_API.G_RET_STS_SUCCESS
228: then
229: /*** exception occurred in API -> return errmsg ***/
230: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
231: (
233: );
234: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
235: || ' ROOT ERROR: csf_debrief_pub.create_debrief_lines'
236: || ' for PK ' || p_record.DEBRIEF_LINE_ID ,'CSM_DEBRIEF_LABOR_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR );
237: x_return_status := FND_API.G_RET_STS_ERROR;
238: return;
239: end if;
240:
241: -- For a given debrief header check the task Assignment status.
266: (
267: p_api_error => TRUE
268: );
269:
270: x_return_status := FND_API.G_RET_STS_ERROR;
271: END APPLY_INSERT;
272:
273: /***
274: This procedure is called by APPLY_CLIENT_CHANGES when an inserted record is to be processed.
298:
299: BEGIN
300: CSM_UTIL_PKG.log( 'Entered APPLY_UPDATE for debrief_line_id'|| p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_LABOR_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
301:
302: x_return_status := FND_API.G_RET_STS_SUCCESS;
303:
304: -- Lookup the debrief_header id. It must be there as this is an update
305: -- of a line.
306: OPEN c_cdl (b_debrief_line_id => p_record.debrief_line_id );
354: -- SERVER_WINS profile value
355: IF(fnd_profile.value(csm_profile_pkg.g_JTM_APPL_CONFLICT_RULE)
356: = csm_profile_pkg.g_SERVER_WINS) THEN
357: IF(r_cdl.last_update_date <> p_record.server_last_update_date) THEN
358: x_return_status := FND_API.G_RET_STS_ERROR;
359: p_error_msg :=
360: 'UPWARD SYNC CONFLICT: CLIENT LOST: CSM_DEBRIEF_LABOR_PKG.APPLY_UPDATE: P_KEY = '
361: || p_record.debrief_line_id;
362: csm_util_pkg.log(p_error_msg,'CSM_DEBRIEF_LABOR_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR);
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: (
385: );
386: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_UPDATE:'
387: || ' ROOT ERROR: csf_debrief_pub.update_debrief_lines'
388: || ' for PK ' || p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_LABOR_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR );
389: x_return_status := FND_API.G_RET_STS_ERROR;
390: return;
391: END IF;
392:
393: EXCEPTION
398:
399: CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_UPDATE:'
400: || ' for PK ' || p_record.DEBRIEF_LINE_ID,'CSM_DEBRIEF_LABOR_PKG.APPLY_UPDATE',FND_LOG.LEVEL_EXCEPTION );
401:
402: x_return_status := FND_API.G_RET_STS_ERROR;
403: END APPLY_UPDATE;
404:
405:
406: /***
413: x_return_status IN OUT NOCOPY VARCHAR2
414: ) IS
415: BEGIN
416: /*** initialize return status and message list ***/
417: x_return_status := FND_API.G_RET_STS_SUCCESS;
418: FND_MSG_PUB.INITIALIZE;
419:
420: IF p_record.dmltype$$='I' THEN
421: -- Process insert
445: , p_token_name1 => 'DML'
446: , p_token_value1 => p_record.dmltype$$
447: );
448:
449: x_return_status := FND_API.G_RET_STS_SUCCESS;
450: END IF;
451:
452: EXCEPTION WHEN OTHERS THEN
453: /*** defer record when any process exception occurs ***/
460: (
461: p_api_error => TRUE
462: );
463:
464: x_return_status := FND_API.G_RET_STS_ERROR;
465: END APPLY_RECORD;
466:
467: /***
468: This procedure is called by CSM_UTIL_PKG when publication item
487: BEGIN
488: csm_util_pkg.log('csm_debrief_labor_pkg.apply_client_changes entered','CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR);
489:
490: g_debug_level := p_debug_level;
491: x_return_status := FND_API.G_RET_STS_SUCCESS;
492:
493: /*** loop through debrief labor records in inqueue ***/
494: IF p_task_assignment_id IS NULL THEN
495: OPEN c_cur FOR 'SELECT * FROM csf_m_debrief_labor_inq inq WHERE tranid$$ = '||p_tranid||' AND clid$$cs = '''||p_user_name
514: , l_process_status
515: );
516:
517: /*** was record processed successfully? ***/
518: IF l_process_status = FND_API.G_RET_STS_SUCCESS THEN
519: /*** Yes -> delete record from inqueue ***/
520:
521: CSM_UTIL_PKG.DELETE_RECORD
522: (
530: l_process_status
531: );
532:
533: /*** was delete successful? ***/
534: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
535: /*** no -> rollback ***/
536: CSM_UTIL_PKG.LOG
537: ( 'Deleting from inqueue failed, rolling back to savepoint'
538: || ' for PK ' || r_debrief_labor.debrief_line_id ,'CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR); -- put PK column here
536: CSM_UTIL_PKG.LOG
537: ( 'Deleting from inqueue failed, rolling back to savepoint'
538: || ' for PK ' || r_debrief_labor.debrief_line_id ,'CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR); -- put PK column here
539: ROLLBACK TO save_rec;
540: x_return_status := FND_API.G_RET_STS_ERROR;
541: END IF;
542: END IF;
543:
544: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
540: x_return_status := FND_API.G_RET_STS_ERROR;
541: END IF;
542: END IF;
543:
544: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
545: /*** Record was not processed successfully or delete failed -> defer and reject record ***/
546: CSM_UTIL_PKG.LOG
547: ( 'Record not processed successfully, deferring and rejecting record'
548: || ' for PK ' || r_debrief_labor.debrief_line_id ,'CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR); -- put PK column here
560: , r_debrief_labor.dmltype$$
561: );
562:
563: /*** Was defer successful? ***/
564: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
565: /*** no -> rollback ***/
566: CSM_UTIL_PKG.LOG
567: ( 'Defer record failed, rolling back to savepoint'
568: || ' for PK ' || r_debrief_labor.debrief_line_id,'CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
566: CSM_UTIL_PKG.LOG
567: ( 'Defer record failed, rolling back to savepoint'
568: || ' for PK ' || r_debrief_labor.debrief_line_id,'CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
569: ROLLBACK TO save_rec;
570: x_return_status := FND_API.G_RET_STS_ERROR;
571: END IF;
572: END IF;
573:
574: END LOOP;
577: EXCEPTION WHEN OTHERS THEN
578: /*** catch and log exceptions ***/
579: CSM_UTIL_PKG.LOG
580: ( 'Exception occurred in APPLY_CLIENT_CHANGES:' || ' ' || SQLERRM,'CSM_DEBRIEF_LABOR_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_EXCEPTION);
581: x_return_status := FND_API.G_RET_STS_ERROR;
582: END APPLY_CLIENT_CHANGES;
583:
584: END CSM_DEBRIEF_LABOR_PKG;