92:
93:
94: l_date DATE;
95: BEGIN
96: IF (g_debug <= gme_debug.g_log_procedure) THEN
97: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
98: || 'Entering');
99: END IF;
100:
93:
94: l_date DATE;
95: BEGIN
96: IF (g_debug <= gme_debug.g_log_procedure) THEN
97: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
98: || 'Entering');
99: END IF;
100:
101: /* Set the success staus to success inititally*/
104: x_batch_header_rec := p_batch_header_rec;
105: -- Now Examine the ingredient material rows :
106: l_material_details.batch_id := x_batch_header_rec.batch_id;
107:
108: IF (g_debug <= gme_debug.g_log_procedure) THEN
109: gme_debug.put_line ( g_pkg_name
110: || '.'
111: || l_api_name
112: || ':'
105: -- Now Examine the ingredient material rows :
106: l_material_details.batch_id := x_batch_header_rec.batch_id;
107:
108: IF (g_debug <= gme_debug.g_log_procedure) THEN
109: gme_debug.put_line ( g_pkg_name
110: || '.'
111: || l_api_name
112: || ':'
113: || 'Call fetch_tab');
130: RAISE error_load_trans;
131: END IF;
132: END IF; /* IF x_batch_header_rec.update_inventory_ind = 'Y' */
133:
134: IF (g_debug <= gme_debug.g_log_procedure) THEN
135: gme_debug.put_line ( g_pkg_name
136: || '.'
137: || l_api_name
138: || ':'
131: END IF;
132: END IF; /* IF x_batch_header_rec.update_inventory_ind = 'Y' */
133:
134: IF (g_debug <= gme_debug.g_log_procedure) THEN
135: gme_debug.put_line ( g_pkg_name
136: || '.'
137: || l_api_name
138: || ':'
139: || 'After fetch_tab tab.count='
142:
143: FOR i IN 1 .. l_material_details_tab.COUNT LOOP
144: -- IF PHANTOM_ID is not null,
145: -- THEN either terminate or cancel the phantom batch based on the batch status
146: IF (g_debug <= gme_debug.g_log_procedure) THEN
147: gme_debug.put_line ( g_pkg_name
148: || '.'
149: || l_api_name
150: || ':'
143: FOR i IN 1 .. l_material_details_tab.COUNT LOOP
144: -- IF PHANTOM_ID is not null,
145: -- THEN either terminate or cancel the phantom batch based on the batch status
146: IF (g_debug <= gme_debug.g_log_procedure) THEN
147: gme_debug.put_line ( g_pkg_name
148: || '.'
149: || l_api_name
150: || ':'
151: || 'phantom_id='
202: END IF;
203: END IF;
204:
205: -- Now Examine the batch step data
206: IF (g_debug <= gme_debug.g_log_procedure) THEN
207: gme_debug.put_line ( g_pkg_name
208: || '.'
209: || l_api_name
210: || ':'
203: END IF;
204:
205: -- Now Examine the batch step data
206: IF (g_debug <= gme_debug.g_log_procedure) THEN
207: gme_debug.put_line ( g_pkg_name
208: || '.'
209: || l_api_name
210: || ':'
211: || 'Check routing_id/poc_ind='
216:
217: IF x_batch_header_rec.poc_ind = 'Y' THEN
218: /* Now update the batch step status to Terminate (5) */
219: -- Get batch_step_ids bulk collected for batch
220: IF (g_debug <= gme_debug.g_log_procedure) THEN
221: gme_debug.put_line ( g_pkg_name
222: || '.'
223: || l_api_name
224: || ':'
217: IF x_batch_header_rec.poc_ind = 'Y' THEN
218: /* Now update the batch step status to Terminate (5) */
219: -- Get batch_step_ids bulk collected for batch
220: IF (g_debug <= gme_debug.g_log_procedure) THEN
221: gme_debug.put_line ( g_pkg_name
222: || '.'
223: || l_api_name
224: || ':'
225: || 'After fetch_batch_steps return_status='
262: IF x_return_status <> fnd_api.g_ret_sts_success THEN
263: RAISE gmo_lock_error;
264: END IF;
265:
266: IF (g_debug <= gme_debug.g_log_procedure) THEN
267: gme_debug.put_line ( g_pkg_name
268: || '.'
269: || l_api_name
270: || ':'
263: RAISE gmo_lock_error;
264: END IF;
265:
266: IF (g_debug <= gme_debug.g_log_procedure) THEN
267: gme_debug.put_line ( g_pkg_name
268: || '.'
269: || l_api_name
270: || ':'
271: || 'from gmo the lock_status='
319: x_batch_header_rec.actual_cmplt_date :=
320: p_batch_header_rec.actual_cmplt_date;
321:
322: /* Update the batch step to the database */
323: IF (g_debug <= gme_debug.g_log_procedure) THEN
324: gme_debug.put_line ( g_pkg_name
325: || '.'
326: || l_api_name
327: || ':'
320: p_batch_header_rec.actual_cmplt_date;
321:
322: /* Update the batch step to the database */
323: IF (g_debug <= gme_debug.g_log_procedure) THEN
324: gme_debug.put_line ( g_pkg_name
325: || '.'
326: || l_api_name
327: || ':'
328: || 'Call BATCH UPDATE_ROW');
340: END IF;
341:
342: -- 4944024 BEGIN
343: -- Delete any outstanding reservations against this batch as a supply source
344: IF nvl(g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
345: gme_debug.put_line(g_pkg_name||'.'||l_api_name||' Invoking delete_prod_supply_resv for batch header' );
346: END IF;
347:
348: l_batch_header_rec := x_batch_header_rec;
341:
342: -- 4944024 BEGIN
343: -- Delete any outstanding reservations against this batch as a supply source
344: IF nvl(g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
345: gme_debug.put_line(g_pkg_name||'.'||l_api_name||' Invoking delete_prod_supply_resv for batch header' );
346: END IF;
347:
348: l_batch_header_rec := x_batch_header_rec;
349: gme_supply_res_pvt.delete_batch_prod_supply_resv (
369: RAISE batch_hist_insert_err;
370: END IF;
371: END IF;
372:
373: IF (g_debug <= gme_debug.g_log_procedure) THEN
374: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
375: || 'Exiting');
376: END IF;
377: EXCEPTION
370: END IF;
371: END IF;
372:
373: IF (g_debug <= gme_debug.g_log_procedure) THEN
374: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
375: || 'Exiting');
376: END IF;
377: EXCEPTION
378: WHEN purge_exception_err THEN
375: || 'Exiting');
376: END IF;
377: EXCEPTION
378: WHEN purge_exception_err THEN
379: IF (g_debug <= gme_debug.g_log_procedure) THEN
380: gme_debug.put_line ( g_pkg_name
381: || '.'
382: || l_api_name
383: || ':'
376: END IF;
377: EXCEPTION
378: WHEN purge_exception_err THEN
379: IF (g_debug <= gme_debug.g_log_procedure) THEN
380: gme_debug.put_line ( g_pkg_name
381: || '.'
382: || l_api_name
383: || ':'
384: || ' purge_exception_err.');
386:
387: x_return_status := fnd_api.g_ret_sts_error;
388: -- 4944024 BEGIN
389: WHEN prod_supply_resv_err THEN
390: IF (g_debug <= gme_debug.g_log_procedure) THEN
391: gme_debug.put_line ( g_pkg_name
392: || '.'
393: || l_api_name
394: || ':'
387: x_return_status := fnd_api.g_ret_sts_error;
388: -- 4944024 BEGIN
389: WHEN prod_supply_resv_err THEN
390: IF (g_debug <= gme_debug.g_log_procedure) THEN
391: gme_debug.put_line ( g_pkg_name
392: || '.'
393: || l_api_name
394: || ':'
395: || ' delete_batch_prod_supply_resv ERROR');
395: || ' delete_batch_prod_supply_resv ERROR');
396: END IF;
397: -- 4944024 END
398: WHEN dep_material_details_fetch_err THEN
399: IF (g_debug <= gme_debug.g_log_procedure) THEN
400: gme_debug.put_line ( g_pkg_name
401: || '.'
402: || l_api_name
403: || ':'
396: END IF;
397: -- 4944024 END
398: WHEN dep_material_details_fetch_err THEN
399: IF (g_debug <= gme_debug.g_log_procedure) THEN
400: gme_debug.put_line ( g_pkg_name
401: || '.'
402: || l_api_name
403: || ':'
404: || ' MATL_DETAILS_FETCH_ERROR.');
405: END IF;
406:
407: x_return_status := fnd_api.g_ret_sts_error;
408: WHEN invalid_batch_status THEN
409: IF (g_debug <= gme_debug.g_log_procedure) THEN
410: gme_debug.put_line ( g_pkg_name
411: || '.'
412: || l_api_name
413: || ':'
406:
407: x_return_status := fnd_api.g_ret_sts_error;
408: WHEN invalid_batch_status THEN
409: IF (g_debug <= gme_debug.g_log_procedure) THEN
410: gme_debug.put_line ( g_pkg_name
411: || '.'
412: || l_api_name
413: || ':'
414: || 'INVALID_BATCH_STATUS.');
416:
417: x_return_status := fnd_api.g_ret_sts_error;
418: gme_common_pvt.log_message ('GME_INVALID_BSTAT_TERM');
419: WHEN batch_header_upd_err THEN
420: IF (g_debug <= gme_debug.g_log_procedure) THEN
421: gme_debug.put_line ( g_pkg_name
422: || '.'
423: || l_api_name
424: || ':'
417: x_return_status := fnd_api.g_ret_sts_error;
418: gme_common_pvt.log_message ('GME_INVALID_BSTAT_TERM');
419: WHEN batch_header_upd_err THEN
420: IF (g_debug <= gme_debug.g_log_procedure) THEN
421: gme_debug.put_line ( g_pkg_name
422: || '.'
423: || l_api_name
424: || ':'
425: || 'BATCH_HEADER_UPD_ERR.');
427:
428: x_return_status := fnd_api.g_ret_sts_error;
429: gme_common_pvt.log_message ('GME_API_BATCH_HEADER_UPD_ERROR');
430: WHEN phantom_batch_terminate_error THEN
431: IF (g_debug <= gme_debug.g_log_procedure) THEN
432: gme_debug.put_line ( g_pkg_name
433: || '.'
434: || l_api_name
435: || ':'
428: x_return_status := fnd_api.g_ret_sts_error;
429: gme_common_pvt.log_message ('GME_API_BATCH_HEADER_UPD_ERROR');
430: WHEN phantom_batch_terminate_error THEN
431: IF (g_debug <= gme_debug.g_log_procedure) THEN
432: gme_debug.put_line ( g_pkg_name
433: || '.'
434: || l_api_name
435: || ':'
436: || 'PHANTOM_BATCH_TERMINATE_ERROR.');
435: || ':'
436: || 'PHANTOM_BATCH_TERMINATE_ERROR.');
437: END IF;
438: WHEN phantom_batch_cancel_error THEN
439: IF (g_debug <= gme_debug.g_log_procedure) THEN
440: gme_debug.put_line ( g_pkg_name
441: || '.'
442: || l_api_name
443: || ':'
436: || 'PHANTOM_BATCH_TERMINATE_ERROR.');
437: END IF;
438: WHEN phantom_batch_cancel_error THEN
439: IF (g_debug <= gme_debug.g_log_procedure) THEN
440: gme_debug.put_line ( g_pkg_name
441: || '.'
442: || l_api_name
443: || ':'
444: || 'PHANTOM_BATCH_CANCEL_ERROR.');
443: || ':'
444: || 'PHANTOM_BATCH_CANCEL_ERROR.');
445: END IF;
446: WHEN gmo_lock_error THEN
447: IF (g_debug <= gme_debug.g_log_procedure) THEN
448: gme_debug.put_line ( g_pkg_name
449: || '.'
450: || l_api_name
451: || ':'
444: || 'PHANTOM_BATCH_CANCEL_ERROR.');
445: END IF;
446: WHEN gmo_lock_error THEN
447: IF (g_debug <= gme_debug.g_log_procedure) THEN
448: gme_debug.put_line ( g_pkg_name
449: || '.'
450: || l_api_name
451: || ':'
452: || 'GMO_LOCK_ERROR.');
452: || 'GMO_LOCK_ERROR.');
453: END IF;
454: x_return_status := fnd_api.g_ret_sts_error;
455: WHEN batch_hist_insert_err THEN
456: IF (g_debug <= gme_debug.g_log_procedure) THEN
457: gme_debug.put_line ('BATCH_HIST_INSERT_ERR.');
458: END IF;
459:
460: x_return_status := fnd_api.g_ret_sts_error;
453: END IF;
454: x_return_status := fnd_api.g_ret_sts_error;
455: WHEN batch_hist_insert_err THEN
456: IF (g_debug <= gme_debug.g_log_procedure) THEN
457: gme_debug.put_line ('BATCH_HIST_INSERT_ERR.');
458: END IF;
459:
460: x_return_status := fnd_api.g_ret_sts_error;
461: WHEN delete_inv_txns_err THEN
458: END IF;
459:
460: x_return_status := fnd_api.g_ret_sts_error;
461: WHEN delete_inv_txns_err THEN
462: IF (g_debug <= gme_debug.g_log_procedure) THEN
463: gme_debug.put_line ( g_pkg_name
464: || '.'
465: || l_api_name
466: || ':'
459:
460: x_return_status := fnd_api.g_ret_sts_error;
461: WHEN delete_inv_txns_err THEN
462: IF (g_debug <= gme_debug.g_log_procedure) THEN
463: gme_debug.put_line ( g_pkg_name
464: || '.'
465: || l_api_name
466: || ':'
467: || 'DELETE_INV_TXNS_ERR.');
466: || ':'
467: || 'DELETE_INV_TXNS_ERR.');
468: END IF;
469: WHEN batch_step_terminate_error THEN
470: IF (g_debug <= gme_debug.g_log_procedure) THEN
471: gme_debug.put_line ( g_pkg_name
472: || '.'
473: || l_api_name
474: || ':'
467: || 'DELETE_INV_TXNS_ERR.');
468: END IF;
469: WHEN batch_step_terminate_error THEN
470: IF (g_debug <= gme_debug.g_log_procedure) THEN
471: gme_debug.put_line ( g_pkg_name
472: || '.'
473: || l_api_name
474: || ':'
475: || 'BATCH_STEP_TERMINATE_ERROR.');
474: || ':'
475: || 'BATCH_STEP_TERMINATE_ERROR.');
476: END IF;
477: WHEN batch_step_cancel_error THEN
478: IF (g_debug <= gme_debug.g_log_procedure) THEN
479: gme_debug.put_line ( g_pkg_name
480: || '.'
481: || l_api_name
482: || ':'
475: || 'BATCH_STEP_TERMINATE_ERROR.');
476: END IF;
477: WHEN batch_step_cancel_error THEN
478: IF (g_debug <= gme_debug.g_log_procedure) THEN
479: gme_debug.put_line ( g_pkg_name
480: || '.'
481: || l_api_name
482: || ':'
483: || ' BATCH_STEP_CANCEL_ERROR.');
482: || ':'
483: || ' BATCH_STEP_CANCEL_ERROR.');
484: END IF;
485: WHEN OTHERS THEN
486: IF g_debug <= gme_debug.g_log_unexpected THEN
487: gme_debug.put_line ( 'When others exception in '
488: || g_pkg_name
489: || '.'
490: || l_api_name
483: || ' BATCH_STEP_CANCEL_ERROR.');
484: END IF;
485: WHEN OTHERS THEN
486: IF g_debug <= gme_debug.g_log_unexpected THEN
487: gme_debug.put_line ( 'When others exception in '
488: || g_pkg_name
489: || '.'
490: || l_api_name
491: || ' Error is '
512: ==================================================================================*/
513: PROCEDURE abort_wf (p_type IN VARCHAR2, p_item_id IN NUMBER)
514: IS
515: BEGIN
516: IF (g_debug <= gme_debug.g_log_procedure) THEN
517: gme_debug.put_line
518: ( 'before call to wf_engine.abortprocess with batch_id='
519: || TO_CHAR (p_item_id)
520: || ' type='
513: PROCEDURE abort_wf (p_type IN VARCHAR2, p_item_id IN NUMBER)
514: IS
515: BEGIN
516: IF (g_debug <= gme_debug.g_log_procedure) THEN
517: gme_debug.put_line
518: ( 'before call to wf_engine.abortprocess with batch_id='
519: || TO_CHAR (p_item_id)
520: || ' type='
521: || p_type
518: ( 'before call to wf_engine.abortprocess with batch_id='
519: || TO_CHAR (p_item_id)
520: || ' type='
521: || p_type
522: ,gme_debug.g_log_procedure
523: ,'terminate_batch');
524: END IF;
525:
526: /* Cancel workflow process */
526: /* Cancel workflow process */
527: wf_engine.abortprocess (itemtype => p_type, itemkey => p_item_id);
528: EXCEPTION
529: WHEN OTHERS THEN
530: IF (g_debug <= gme_debug.g_log_procedure) THEN
531: gme_debug.put_line
532: ( ' terminate_batch, error in abort_wf batch_id='
533: || TO_CHAR (p_item_id)
534: || ' type='
527: wf_engine.abortprocess (itemtype => p_type, itemkey => p_item_id);
528: EXCEPTION
529: WHEN OTHERS THEN
530: IF (g_debug <= gme_debug.g_log_procedure) THEN
531: gme_debug.put_line
532: ( ' terminate_batch, error in abort_wf batch_id='
533: || TO_CHAR (p_item_id)
534: || ' type='
535: || p_type
532: ( ' terminate_batch, error in abort_wf batch_id='
533: || TO_CHAR (p_item_id)
534: || ' type='
535: || p_type
536: ,gme_debug.g_log_error
537: ,'terminate_batch');
538: END IF;
539: END abort_wf;
540: END gme_terminate_batch_pvt;