46: || ' for PK ' || p_record.jtf_note_id ,
47: 'CSM_NOTES_PKG.APPLY_INSERT',FND_LOG.LEVEL_EVENT);
48: jtf_notes_pub.Create_note
49: ( p_api_version => 1.0
50: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
51: , p_init_msg_list => FND_API.G_TRUE
52: , p_commit => FND_API.G_FALSE
53: , x_return_status => x_return_status
54: , x_msg_count => l_msg_count
47: 'CSM_NOTES_PKG.APPLY_INSERT',FND_LOG.LEVEL_EVENT);
48: jtf_notes_pub.Create_note
49: ( p_api_version => 1.0
50: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
51: , p_init_msg_list => FND_API.G_TRUE
52: , p_commit => FND_API.G_FALSE
53: , x_return_status => x_return_status
54: , x_msg_count => l_msg_count
55: , x_msg_data => l_msg_data
48: jtf_notes_pub.Create_note
49: ( p_api_version => 1.0
50: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
51: , p_init_msg_list => FND_API.G_TRUE
52: , p_commit => FND_API.G_FALSE
53: , x_return_status => x_return_status
54: , x_msg_count => l_msg_count
55: , x_msg_data => l_msg_data
56: , p_jtf_note_id => p_record.jtf_note_id
68: , p_last_update_login => FND_GLOBAL.LOGIN_ID
69: , x_jtf_note_id => l_jtf_note_id
70: );
71:
72: if x_return_status <> FND_API.G_RET_STS_SUCCESS
73: then
74: /*** exception occurred in API -> return errmsg ***/
75: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
76: (
79: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
80: || ' ROOT ERROR: jtf_notes_pub.create_note'
81: || ' for PK ' || p_record.JTF_NOTE_ID ,'CSM_NOTES_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR );
82:
83: x_return_status := FND_API.G_RET_STS_ERROR;
84: else
85: x_return_status := FND_API.G_RET_STS_SUCCESS;
86: end if;
87:
81: || ' for PK ' || p_record.JTF_NOTE_ID ,'CSM_NOTES_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR );
82:
83: x_return_status := FND_API.G_RET_STS_ERROR;
84: else
85: x_return_status := FND_API.G_RET_STS_SUCCESS;
86: end if;
87:
88: exception
89: when others then
93: p_api_error => TRUE
94: );
95: CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_INSERT:'
96: || ' for PK ' || p_record.jtf_note_id , 'CSM_NOTES_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
97: x_return_status := FND_API.G_RET_STS_ERROR;
98:
99: END APPLY_INSERT;
100:
101:
137: -- SERVER_WINS profile value
138: if(fnd_profile.value(csm_profile_pkg.g_JTM_APPL_CONFLICT_RULE)
139: = csm_profile_pkg.g_SERVER_WINS) then
140: if(l_server_last_update_date <> p_record.server_last_update_date) then
141: x_return_status := FND_API.G_RET_STS_ERROR;
142: p_error_msg := 'UPWARD SYNC CONFLICT: CLIENT LOST: CSM_NOTES_PKG.APPLY_UPDATE: P_KEY = '
143: || p_record.jtf_note_id;
144: csm_util_pkg.log(p_error_msg,'CSM_NOTES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_EVENT );
145: return;
150:
151: --update the note
152: jtf_notes_pub.Update_note
153: ( p_api_version => 1.0
154: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
155: , p_init_msg_list => FND_API.G_TRUE
156: , p_commit => FND_API.G_FALSE
157: , x_return_status => x_return_status
158: , x_msg_count => l_msg_count
151: --update the note
152: jtf_notes_pub.Update_note
153: ( p_api_version => 1.0
154: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
155: , p_init_msg_list => FND_API.G_TRUE
156: , p_commit => FND_API.G_FALSE
157: , x_return_status => x_return_status
158: , x_msg_count => l_msg_count
159: , x_msg_data => l_msg_data
152: jtf_notes_pub.Update_note
153: ( p_api_version => 1.0
154: , p_validation_level => FND_API.G_VALID_LEVEL_FULL
155: , p_init_msg_list => FND_API.G_TRUE
156: , p_commit => FND_API.G_FALSE
157: , x_return_status => x_return_status
158: , x_msg_count => l_msg_count
159: , x_msg_data => l_msg_data
160: , p_jtf_note_id => p_record.jtf_note_id
166: , p_last_update_date => SYSDATE
167: , p_last_update_login => FND_GLOBAL.LOGIN_ID
168: );
169:
170: if x_return_status <> FND_API.G_RET_STS_SUCCESS
171: then
172: /*** exception occurred in API -> return errmsg ***/
173: p_error_msg := CSM_UTIL_PKG.GET_ERROR_MESSAGE_TEXT
174: (
177: CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_UPDATE:'
178: || ' ROOT ERROR: jtf_notes_pub.update_note'
179: || ' for PK ' || p_record.JTF_NOTE_ID ,'CSM_NOTES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR );
180:
181: x_return_status := FND_API.G_RET_STS_ERROR;
182: else
183: x_return_status := FND_API.G_RET_STS_SUCCESS;
184: end if;
185:
179: || ' for PK ' || p_record.JTF_NOTE_ID ,'CSM_NOTES_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR );
180:
181: x_return_status := FND_API.G_RET_STS_ERROR;
182: else
183: x_return_status := FND_API.G_RET_STS_SUCCESS;
184: end if;
185:
186: CSM_UTIL_PKG.log( 'Exiting ' || g_object_name || '.APPLY_UPDATE:'
187: || ' for PK ' || p_record.jtf_note_id,
199: || ' for PK ' || p_record.jtf_note_id,
200: 'CSM_NOTES_PKG.APPLY_UPDATE',
201: FND_LOG.LEVEL_ERROR );
202:
203: x_return_status := FND_API.G_RET_STS_ERROR;
204: END APPLY_UPDATE;
205:
206: /***
207: This procedure is called by APPLY_CLIENT_CHANGES for every record in in-queue that needs to be processed.
213: x_return_status IN OUT NOCOPY VARCHAR2
214: ) IS
215: BEGIN
216: /*** initialize return status and message list ***/
217: x_return_status := FND_API.G_RET_STS_SUCCESS;
218: FND_MSG_PUB.INITIALIZE;
219:
220: IF p_record.dmltype$$='I' THEN
221: -- Process insert
247: , p_token_name1 => 'DML'
248: , p_token_value1 => p_record.dmltype$$
249: );
250:
251: x_return_status := FND_API.G_RET_STS_ERROR;
252: END IF;
253:
254: EXCEPTION WHEN OTHERS THEN
255: /*** defer record when any process exception occurs ***/
264: (
265: p_api_error => TRUE
266: );
267:
268: x_return_status := FND_API.G_RET_STS_ERROR;
269: END APPLY_RECORD;
270:
271: /***
272: This procedure is called by CSM_UTIL_PKG when publication item
285: l_process_status VARCHAR2(1);
286: l_error_msg VARCHAR2(4000);
287: BEGIN
288: g_debug_level := p_debug_level;
289: x_return_status := FND_API.G_RET_STS_SUCCESS;
290:
291:
292:
293: /*** loop through debrief labor records in inqueue ***/
303: , l_process_status
304: );
305:
306: /*** was record processed successfully? ***/
307: IF l_process_status = FND_API.G_RET_STS_SUCCESS THEN
308: /*** Yes -> delete record from inqueue ***/
309:
310: CSM_UTIL_PKG.DELETE_RECORD
311: (
319: l_process_status
320: );
321:
322: /*** was delete successful? ***/
323: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
324: /*** no -> rollback ***/
325: CSM_UTIL_PKG.LOG
326: ( 'Deleting from inqueue failed, rolling back to savepoint'
327: || ' for PK ' || r_notes.jtf_note_id,
327: || ' for PK ' || r_notes.jtf_note_id,
328: 'CSM_NOTES_PKG.APPLY_CLIENT_CHANGES',
329: FND_LOG.LEVEL_EVENT ); -- put PK column here
330: ROLLBACK TO save_rec;
331: x_return_status := FND_API.G_RET_STS_ERROR;
332: END IF;
333: END IF;
334:
335: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
331: x_return_status := FND_API.G_RET_STS_ERROR;
332: END IF;
333: END IF;
334:
335: IF l_process_Status <> FND_API.G_RET_STS_SUCCESS THEN
336: /*** Record was not processed successfully or delete failed -> defer and reject record ***/
337: CSM_UTIL_PKG.LOG
338: ( 'Record not processed successfully, deferring and rejecting record'
339: || ' for PK ' || r_notes.jtf_note_id,
353: , r_notes.dmltype$$
354: );
355:
356: /*** Was defer successful? ***/
357: IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
358: /*** no -> rollback ***/
359: CSM_UTIL_PKG.LOG
360: ( 'Defer record failed, rolling back to savepoint'
361: || ' for PK ' || r_notes.jtf_note_id,
361: || ' for PK ' || r_notes.jtf_note_id,
362: 'CSM_NOTES_PKG.APPLY_CLIENT_CHANGES',
363: FND_LOG.LEVEL_EVENT ); -- put PK column here
364: ROLLBACK TO save_rec;
365: x_return_status := FND_API.G_RET_STS_ERROR;
366: END IF;
367: END IF;
368:
369: END LOOP;
374: ( 'Exception occurred in APPLY_CLIENT_CHANGES:' || ' ' || sqlerrm ,
375: 'CSM_NOTES_PKG.APPLY_CLIENT_CHANGES',
376: FND_LOG.LEVEL_ERROR
377: );
378: x_return_status := FND_API.G_RET_STS_ERROR;
379: END APPLY_CLIENT_CHANGES;
380:
381: END CSM_NOTES_PKG;