88:
89:
90: l_date DATE;
91: BEGIN
92: IF (g_debug <= gme_debug.g_log_procedure) THEN
93: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
94: || 'Entering');
95: END IF;
96:
89:
90: l_date DATE;
91: BEGIN
92: IF (g_debug <= gme_debug.g_log_procedure) THEN
93: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
94: || 'Entering');
95: END IF;
96:
97: /* Set the success staus to success inititally*/
100: x_batch_header_rec := p_batch_header_rec;
101: -- Now Examine the ingredient material rows :
102: l_material_details.batch_id := x_batch_header_rec.batch_id;
103:
104: IF (g_debug <= gme_debug.g_log_procedure) THEN
105: gme_debug.put_line ( g_pkg_name
106: || '.'
107: || l_api_name
108: || ':'
101: -- Now Examine the ingredient material rows :
102: l_material_details.batch_id := x_batch_header_rec.batch_id;
103:
104: IF (g_debug <= gme_debug.g_log_procedure) THEN
105: gme_debug.put_line ( g_pkg_name
106: || '.'
107: || l_api_name
108: || ':'
109: || 'Call fetch_tab');
126: RAISE error_load_trans;
127: END IF;
128: END IF; /* IF x_batch_header_rec.update_inventory_ind = 'Y' */
129:
130: IF (g_debug <= gme_debug.g_log_procedure) THEN
131: gme_debug.put_line ( g_pkg_name
132: || '.'
133: || l_api_name
134: || ':'
127: END IF;
128: END IF; /* IF x_batch_header_rec.update_inventory_ind = 'Y' */
129:
130: IF (g_debug <= gme_debug.g_log_procedure) THEN
131: gme_debug.put_line ( g_pkg_name
132: || '.'
133: || l_api_name
134: || ':'
135: || 'After fetch_tab tab.count='
138:
139: FOR i IN 1 .. l_material_details_tab.COUNT LOOP
140: -- IF PHANTOM_ID is not null,
141: -- THEN either terminate or cancel the phantom batch based on the batch status
142: IF (g_debug <= gme_debug.g_log_procedure) THEN
143: gme_debug.put_line ( g_pkg_name
144: || '.'
145: || l_api_name
146: || ':'
139: FOR i IN 1 .. l_material_details_tab.COUNT LOOP
140: -- IF PHANTOM_ID is not null,
141: -- THEN either terminate or cancel the phantom batch based on the batch status
142: IF (g_debug <= gme_debug.g_log_procedure) THEN
143: gme_debug.put_line ( g_pkg_name
144: || '.'
145: || l_api_name
146: || ':'
147: || 'phantom_id='
198: END IF;
199: END IF;
200:
201: -- Now Examine the batch step data
202: IF (g_debug <= gme_debug.g_log_procedure) THEN
203: gme_debug.put_line ( g_pkg_name
204: || '.'
205: || l_api_name
206: || ':'
199: END IF;
200:
201: -- Now Examine the batch step data
202: IF (g_debug <= gme_debug.g_log_procedure) THEN
203: gme_debug.put_line ( g_pkg_name
204: || '.'
205: || l_api_name
206: || ':'
207: || 'Check routing_id/poc_ind='
212:
213: IF x_batch_header_rec.poc_ind = 'Y' THEN
214: /* Now update the batch step status to Terminate (5) */
215: -- Get batch_step_ids bulk collected for batch
216: IF (g_debug <= gme_debug.g_log_procedure) THEN
217: gme_debug.put_line ( g_pkg_name
218: || '.'
219: || l_api_name
220: || ':'
213: IF x_batch_header_rec.poc_ind = 'Y' THEN
214: /* Now update the batch step status to Terminate (5) */
215: -- Get batch_step_ids bulk collected for batch
216: IF (g_debug <= gme_debug.g_log_procedure) THEN
217: gme_debug.put_line ( g_pkg_name
218: || '.'
219: || l_api_name
220: || ':'
221: || 'After fetch_batch_steps return_status='
253:
254: IF x_return_status <> fnd_api.g_ret_sts_success THEN
255: RAISE gmo_lock_error;
256: END IF;
257: IF (g_debug <= gme_debug.g_log_procedure) THEN
258: gme_debug.put_line ( g_pkg_name
259: || '.'
260: || l_api_name
261: || ':'
254: IF x_return_status <> fnd_api.g_ret_sts_success THEN
255: RAISE gmo_lock_error;
256: END IF;
257: IF (g_debug <= gme_debug.g_log_procedure) THEN
258: gme_debug.put_line ( g_pkg_name
259: || '.'
260: || l_api_name
261: || ':'
262: || 'from gmo the lock_status='
308: x_batch_header_rec.actual_cmplt_date :=
309: p_batch_header_rec.actual_cmplt_date;
310:
311: /* Update the batch step to the database */
312: IF (g_debug <= gme_debug.g_log_procedure) THEN
313: gme_debug.put_line ( g_pkg_name
314: || '.'
315: || l_api_name
316: || ':'
309: p_batch_header_rec.actual_cmplt_date;
310:
311: /* Update the batch step to the database */
312: IF (g_debug <= gme_debug.g_log_procedure) THEN
313: gme_debug.put_line ( g_pkg_name
314: || '.'
315: || l_api_name
316: || ':'
317: || 'Call BATCH UPDATE_ROW');
329: END IF;
330:
331: -- 4944024 BEGIN
332: -- Delete any outstanding reservations against this batch as a supply source
333: IF nvl(g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
334: gme_debug.put_line(g_pkg_name||'.'||l_api_name||' Invoking delete_prod_supply_resv for batch header' );
335: END IF;
336:
337: l_batch_header_rec := x_batch_header_rec;
330:
331: -- 4944024 BEGIN
332: -- Delete any outstanding reservations against this batch as a supply source
333: IF nvl(g_debug, gme_debug.g_log_procedure + 1) <= gme_debug.g_log_procedure THEN
334: gme_debug.put_line(g_pkg_name||'.'||l_api_name||' Invoking delete_prod_supply_resv for batch header' );
335: END IF;
336:
337: l_batch_header_rec := x_batch_header_rec;
338: gme_supply_res_pvt.delete_batch_prod_supply_resv (
358: RAISE batch_hist_insert_err;
359: END IF;
360: END IF;
361:
362: IF (g_debug <= gme_debug.g_log_procedure) THEN
363: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
364: || 'Exiting');
365: END IF;
366: EXCEPTION
359: END IF;
360: END IF;
361:
362: IF (g_debug <= gme_debug.g_log_procedure) THEN
363: gme_debug.put_line (g_pkg_name || '.' || l_api_name || ':'
364: || 'Exiting');
365: END IF;
366: EXCEPTION
367: WHEN purge_exception_err THEN
364: || 'Exiting');
365: END IF;
366: EXCEPTION
367: WHEN purge_exception_err THEN
368: IF (g_debug <= gme_debug.g_log_procedure) THEN
369: gme_debug.put_line ( g_pkg_name
370: || '.'
371: || l_api_name
372: || ':'
365: END IF;
366: EXCEPTION
367: WHEN purge_exception_err THEN
368: IF (g_debug <= gme_debug.g_log_procedure) THEN
369: gme_debug.put_line ( g_pkg_name
370: || '.'
371: || l_api_name
372: || ':'
373: || ' purge_exception_err.');
375:
376: x_return_status := fnd_api.g_ret_sts_error;
377: -- 4944024 BEGIN
378: WHEN prod_supply_resv_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: x_return_status := fnd_api.g_ret_sts_error;
377: -- 4944024 BEGIN
378: WHEN prod_supply_resv_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: || ' delete_batch_prod_supply_resv ERROR');
384: || ' delete_batch_prod_supply_resv ERROR');
385: END IF;
386: -- 4944024 END
387: WHEN dep_material_details_fetch_err THEN
388: IF (g_debug <= gme_debug.g_log_procedure) THEN
389: gme_debug.put_line ( g_pkg_name
390: || '.'
391: || l_api_name
392: || ':'
385: END IF;
386: -- 4944024 END
387: WHEN dep_material_details_fetch_err THEN
388: IF (g_debug <= gme_debug.g_log_procedure) THEN
389: gme_debug.put_line ( g_pkg_name
390: || '.'
391: || l_api_name
392: || ':'
393: || ' MATL_DETAILS_FETCH_ERROR.');
394: END IF;
395:
396: x_return_status := fnd_api.g_ret_sts_error;
397: WHEN invalid_batch_status THEN
398: IF (g_debug <= gme_debug.g_log_procedure) THEN
399: gme_debug.put_line ( g_pkg_name
400: || '.'
401: || l_api_name
402: || ':'
395:
396: x_return_status := fnd_api.g_ret_sts_error;
397: WHEN invalid_batch_status THEN
398: IF (g_debug <= gme_debug.g_log_procedure) THEN
399: gme_debug.put_line ( g_pkg_name
400: || '.'
401: || l_api_name
402: || ':'
403: || 'INVALID_BATCH_STATUS.');
405:
406: x_return_status := fnd_api.g_ret_sts_error;
407: gme_common_pvt.log_message ('GME_INVALID_BSTAT_TERM');
408: WHEN batch_header_upd_err 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: x_return_status := fnd_api.g_ret_sts_error;
407: gme_common_pvt.log_message ('GME_INVALID_BSTAT_TERM');
408: WHEN batch_header_upd_err 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: || 'BATCH_HEADER_UPD_ERR.');
416:
417: x_return_status := fnd_api.g_ret_sts_error;
418: gme_common_pvt.log_message ('GME_API_BATCH_HEADER_UPD_ERROR');
419: WHEN phantom_batch_terminate_error 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_API_BATCH_HEADER_UPD_ERROR');
419: WHEN phantom_batch_terminate_error 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: || 'PHANTOM_BATCH_TERMINATE_ERROR.');
424: || ':'
425: || 'PHANTOM_BATCH_TERMINATE_ERROR.');
426: END IF;
427: WHEN phantom_batch_cancel_error THEN
428: IF (g_debug <= gme_debug.g_log_procedure) THEN
429: gme_debug.put_line ( g_pkg_name
430: || '.'
431: || l_api_name
432: || ':'
425: || 'PHANTOM_BATCH_TERMINATE_ERROR.');
426: END IF;
427: WHEN phantom_batch_cancel_error THEN
428: IF (g_debug <= gme_debug.g_log_procedure) THEN
429: gme_debug.put_line ( g_pkg_name
430: || '.'
431: || l_api_name
432: || ':'
433: || 'PHANTOM_BATCH_CANCEL_ERROR.');
432: || ':'
433: || 'PHANTOM_BATCH_CANCEL_ERROR.');
434: END IF;
435: WHEN gmo_lock_error THEN
436: IF (g_debug <= gme_debug.g_log_procedure) THEN
437: gme_debug.put_line ( g_pkg_name
438: || '.'
439: || l_api_name
440: || ':'
433: || 'PHANTOM_BATCH_CANCEL_ERROR.');
434: END IF;
435: WHEN gmo_lock_error THEN
436: IF (g_debug <= gme_debug.g_log_procedure) THEN
437: gme_debug.put_line ( g_pkg_name
438: || '.'
439: || l_api_name
440: || ':'
441: || 'GMO_LOCK_ERROR.');
441: || 'GMO_LOCK_ERROR.');
442: END IF;
443: x_return_status := fnd_api.g_ret_sts_error;
444: WHEN batch_hist_insert_err THEN
445: IF (g_debug <= gme_debug.g_log_procedure) THEN
446: gme_debug.put_line ('BATCH_HIST_INSERT_ERR.');
447: END IF;
448:
449: x_return_status := fnd_api.g_ret_sts_error;
442: END IF;
443: x_return_status := fnd_api.g_ret_sts_error;
444: WHEN batch_hist_insert_err THEN
445: IF (g_debug <= gme_debug.g_log_procedure) THEN
446: gme_debug.put_line ('BATCH_HIST_INSERT_ERR.');
447: END IF;
448:
449: x_return_status := fnd_api.g_ret_sts_error;
450: WHEN delete_inv_txns_err THEN
447: END IF;
448:
449: x_return_status := fnd_api.g_ret_sts_error;
450: WHEN delete_inv_txns_err THEN
451: IF (g_debug <= gme_debug.g_log_procedure) THEN
452: gme_debug.put_line ( g_pkg_name
453: || '.'
454: || l_api_name
455: || ':'
448:
449: x_return_status := fnd_api.g_ret_sts_error;
450: WHEN delete_inv_txns_err THEN
451: IF (g_debug <= gme_debug.g_log_procedure) THEN
452: gme_debug.put_line ( g_pkg_name
453: || '.'
454: || l_api_name
455: || ':'
456: || 'DELETE_INV_TXNS_ERR.');
455: || ':'
456: || 'DELETE_INV_TXNS_ERR.');
457: END IF;
458: WHEN batch_step_terminate_error THEN
459: IF (g_debug <= gme_debug.g_log_procedure) THEN
460: gme_debug.put_line ( g_pkg_name
461: || '.'
462: || l_api_name
463: || ':'
456: || 'DELETE_INV_TXNS_ERR.');
457: END IF;
458: WHEN batch_step_terminate_error THEN
459: IF (g_debug <= gme_debug.g_log_procedure) THEN
460: gme_debug.put_line ( g_pkg_name
461: || '.'
462: || l_api_name
463: || ':'
464: || 'BATCH_STEP_TERMINATE_ERROR.');
463: || ':'
464: || 'BATCH_STEP_TERMINATE_ERROR.');
465: END IF;
466: WHEN batch_step_cancel_error THEN
467: IF (g_debug <= gme_debug.g_log_procedure) THEN
468: gme_debug.put_line ( g_pkg_name
469: || '.'
470: || l_api_name
471: || ':'
464: || 'BATCH_STEP_TERMINATE_ERROR.');
465: END IF;
466: WHEN batch_step_cancel_error THEN
467: IF (g_debug <= gme_debug.g_log_procedure) THEN
468: gme_debug.put_line ( g_pkg_name
469: || '.'
470: || l_api_name
471: || ':'
472: || ' BATCH_STEP_CANCEL_ERROR.');
471: || ':'
472: || ' BATCH_STEP_CANCEL_ERROR.');
473: END IF;
474: WHEN OTHERS THEN
475: IF g_debug <= gme_debug.g_log_unexpected THEN
476: gme_debug.put_line ( 'When others exception in '
477: || g_pkg_name
478: || '.'
479: || l_api_name
472: || ' BATCH_STEP_CANCEL_ERROR.');
473: END IF;
474: WHEN OTHERS THEN
475: IF g_debug <= gme_debug.g_log_unexpected THEN
476: gme_debug.put_line ( 'When others exception in '
477: || g_pkg_name
478: || '.'
479: || l_api_name
480: || ' Error is '
501: ==================================================================================*/
502: PROCEDURE abort_wf (p_type IN VARCHAR2, p_item_id IN NUMBER)
503: IS
504: BEGIN
505: IF (g_debug <= gme_debug.g_log_procedure) THEN
506: gme_debug.put_line
507: ( 'before call to wf_engine.abortprocess with batch_id='
508: || TO_CHAR (p_item_id)
509: || ' type='
502: PROCEDURE abort_wf (p_type IN VARCHAR2, p_item_id IN NUMBER)
503: IS
504: BEGIN
505: IF (g_debug <= gme_debug.g_log_procedure) THEN
506: gme_debug.put_line
507: ( 'before call to wf_engine.abortprocess with batch_id='
508: || TO_CHAR (p_item_id)
509: || ' type='
510: || p_type
507: ( 'before call to wf_engine.abortprocess with batch_id='
508: || TO_CHAR (p_item_id)
509: || ' type='
510: || p_type
511: ,gme_debug.g_log_procedure
512: ,'terminate_batch');
513: END IF;
514:
515: /* Cancel workflow process */
515: /* Cancel workflow process */
516: wf_engine.abortprocess (itemtype => p_type, itemkey => p_item_id);
517: EXCEPTION
518: WHEN OTHERS THEN
519: IF (g_debug <= gme_debug.g_log_procedure) THEN
520: gme_debug.put_line
521: ( ' terminate_batch, error in abort_wf batch_id='
522: || TO_CHAR (p_item_id)
523: || ' type='
516: wf_engine.abortprocess (itemtype => p_type, itemkey => p_item_id);
517: EXCEPTION
518: WHEN OTHERS THEN
519: IF (g_debug <= gme_debug.g_log_procedure) THEN
520: gme_debug.put_line
521: ( ' terminate_batch, error in abort_wf batch_id='
522: || TO_CHAR (p_item_id)
523: || ' type='
524: || p_type
521: ( ' terminate_batch, error in abort_wf batch_id='
522: || TO_CHAR (p_item_id)
523: || ' type='
524: || p_type
525: ,gme_debug.g_log_error
526: ,'terminate_batch');
527: END IF;
528: END abort_wf;
529: END gme_terminate_batch_pvt;