23: -- Local variables
24: l_gme_batch_steps gme_create_step_pvt.gme_batch_steps_tab
25: := gme_create_step_pvt.gme_batch_steps_tab
26: ();
27: l_gme_batch_step_activities gme_create_step_pvt.gme_batch_step_activities_tab
28: := gme_create_step_pvt.gme_batch_step_activities_tab
29: ();
30: l_gme_batch_step_resources gme_create_step_pvt.gme_batch_step_resources_tab
31: := gme_create_step_pvt.gme_batch_step_resources_tab
24: l_gme_batch_steps gme_create_step_pvt.gme_batch_steps_tab
25: := gme_create_step_pvt.gme_batch_steps_tab
26: ();
27: l_gme_batch_step_activities gme_create_step_pvt.gme_batch_step_activities_tab
28: := gme_create_step_pvt.gme_batch_step_activities_tab
29: ();
30: l_gme_batch_step_resources gme_create_step_pvt.gme_batch_step_resources_tab
31: := gme_create_step_pvt.gme_batch_step_resources_tab
32: ();
55: l_volume_qty gme_batch_steps.plan_volume_qty%TYPE;
56: l_plan_charges gme_batch_steps.plan_charges%TYPE;
57: l_charge gme_batch_steps.plan_charges%TYPE;
58: l_uom_class mtl_units_of_measure.uom_class%TYPE;
59: l_batchstep_activity_id gme_batch_step_activities.batchstep_activity_id%TYPE;
60: l_activity_factor gme_batch_step_activities.plan_activity_factor%TYPE;
61: l_resources gme_batch_step_resources.resources%TYPE;
62: l_batchstep_ids_tab l_batchstep_ids;
63: l_total_scale_by_charge PLS_INTEGER;
56: l_plan_charges gme_batch_steps.plan_charges%TYPE;
57: l_charge gme_batch_steps.plan_charges%TYPE;
58: l_uom_class mtl_units_of_measure.uom_class%TYPE;
59: l_batchstep_activity_id gme_batch_step_activities.batchstep_activity_id%TYPE;
60: l_activity_factor gme_batch_step_activities.plan_activity_factor%TYPE;
61: l_resources gme_batch_step_resources.resources%TYPE;
62: l_batchstep_ids_tab l_batchstep_ids;
63: l_total_scale_by_charge PLS_INTEGER;
64: l_count_scale_by_charge PLS_INTEGER;
115:
116: CURSOR cur_get_activities (v_batch_id NUMBER)
117: IS
118: SELECT batchstep_activity_id, plan_activity_factor
119: FROM gme_batch_step_activities
120: WHERE batch_id = v_batch_id;
121:
122: CURSOR cur_get_step_activities (
123: x_step_id gme_batch_step_activities.batchstep_id%TYPE
119: FROM gme_batch_step_activities
120: WHERE batch_id = v_batch_id;
121:
122: CURSOR cur_get_step_activities (
123: x_step_id gme_batch_step_activities.batchstep_id%TYPE
124: ,x_batch_id NUMBER)
125: IS
126: SELECT batchstep_activity_id, plan_activity_factor
127: FROM gme_batch_step_activities
123: x_step_id gme_batch_step_activities.batchstep_id%TYPE
124: ,x_batch_id NUMBER)
125: IS
126: SELECT batchstep_activity_id, plan_activity_factor
127: FROM gme_batch_step_activities
128: WHERE batchstep_id = x_step_id AND batch_id = x_batch_id;
129:
130: CURSOR cur_get_resources (v_batchstep_activity_id NUMBER)
131: IS
359: END LOOP; /* WHILE i IS NOT NULL; BATCH STEPS */
360:
361: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
362: gme_debug.put_line ('Completed batch steps');
363: gme_debug.put_line ('GME_BATCH_STEP_ACTIVITIES');
364: END IF;
365:
366: i := p_recipe_rout_act_tbl.FIRST;
367: j := 0;
366: i := p_recipe_rout_act_tbl.FIRST;
367: j := 0;
368:
369: WHILE i IS NOT NULL LOOP
370: l_gme_batch_step_activities.EXTEND;
371:
372: IF (j = 0) THEN
373: j := l_gme_batch_step_activities.FIRST;
374: ELSE
369: WHILE i IS NOT NULL LOOP
370: l_gme_batch_step_activities.EXTEND;
371:
372: IF (j = 0) THEN
373: j := l_gme_batch_step_activities.FIRST;
374: ELSE
375: j := l_gme_batch_step_activities.NEXT (j);
376: END IF;
377:
371:
372: IF (j = 0) THEN
373: j := l_gme_batch_step_activities.FIRST;
374: ELSE
375: j := l_gme_batch_step_activities.NEXT (j);
376: END IF;
377:
378: l_gme_batch_step_activities (j).batch_id := l_batch_id;
379: l_gme_batch_step_activities (j).activity :=
374: ELSE
375: j := l_gme_batch_step_activities.NEXT (j);
376: END IF;
377:
378: l_gme_batch_step_activities (j).batch_id := l_batch_id;
379: l_gme_batch_step_activities (j).activity :=
380: p_recipe_rout_act_tbl (i).activity;
381: l_gme_batch_step_activities (j).oprn_line_id :=
382: p_recipe_rout_act_tbl (i).oprn_line_id;
375: j := l_gme_batch_step_activities.NEXT (j);
376: END IF;
377:
378: l_gme_batch_step_activities (j).batch_id := l_batch_id;
379: l_gme_batch_step_activities (j).activity :=
380: p_recipe_rout_act_tbl (i).activity;
381: l_gme_batch_step_activities (j).oprn_line_id :=
382: p_recipe_rout_act_tbl (i).oprn_line_id;
383: l_gme_batch_step_activities (j).offset_interval :=
377:
378: l_gme_batch_step_activities (j).batch_id := l_batch_id;
379: l_gme_batch_step_activities (j).activity :=
380: p_recipe_rout_act_tbl (i).activity;
381: l_gme_batch_step_activities (j).oprn_line_id :=
382: p_recipe_rout_act_tbl (i).oprn_line_id;
383: l_gme_batch_step_activities (j).offset_interval :=
384: p_recipe_rout_act_tbl (i).offset_interval;
385: l_gme_batch_step_activities (j).plan_activity_factor :=
379: l_gme_batch_step_activities (j).activity :=
380: p_recipe_rout_act_tbl (i).activity;
381: l_gme_batch_step_activities (j).oprn_line_id :=
382: p_recipe_rout_act_tbl (i).oprn_line_id;
383: l_gme_batch_step_activities (j).offset_interval :=
384: p_recipe_rout_act_tbl (i).offset_interval;
385: l_gme_batch_step_activities (j).plan_activity_factor :=
386: p_recipe_rout_act_tbl (i).activity_factor;
387: l_gme_batch_step_activities (j).sequence_dependent_ind :=
381: l_gme_batch_step_activities (j).oprn_line_id :=
382: p_recipe_rout_act_tbl (i).oprn_line_id;
383: l_gme_batch_step_activities (j).offset_interval :=
384: p_recipe_rout_act_tbl (i).offset_interval;
385: l_gme_batch_step_activities (j).plan_activity_factor :=
386: p_recipe_rout_act_tbl (i).activity_factor;
387: l_gme_batch_step_activities (j).sequence_dependent_ind :=
388: p_recipe_rout_act_tbl (i).sequence_dependent_ind;
389: l_gme_batch_step_activities (j).material_ind :=
383: l_gme_batch_step_activities (j).offset_interval :=
384: p_recipe_rout_act_tbl (i).offset_interval;
385: l_gme_batch_step_activities (j).plan_activity_factor :=
386: p_recipe_rout_act_tbl (i).activity_factor;
387: l_gme_batch_step_activities (j).sequence_dependent_ind :=
388: p_recipe_rout_act_tbl (i).sequence_dependent_ind;
389: l_gme_batch_step_activities (j).material_ind :=
390: p_recipe_rout_act_tbl (i).material_ind;
391: l_gme_batch_step_activities (j).delete_mark := 0;
385: l_gme_batch_step_activities (j).plan_activity_factor :=
386: p_recipe_rout_act_tbl (i).activity_factor;
387: l_gme_batch_step_activities (j).sequence_dependent_ind :=
388: p_recipe_rout_act_tbl (i).sequence_dependent_ind;
389: l_gme_batch_step_activities (j).material_ind :=
390: p_recipe_rout_act_tbl (i).material_ind;
391: l_gme_batch_step_activities (j).delete_mark := 0;
392: l_gme_batch_step_activities (j).break_ind :=
393: p_recipe_rout_act_tbl (i).break_ind;
387: l_gme_batch_step_activities (j).sequence_dependent_ind :=
388: p_recipe_rout_act_tbl (i).sequence_dependent_ind;
389: l_gme_batch_step_activities (j).material_ind :=
390: p_recipe_rout_act_tbl (i).material_ind;
391: l_gme_batch_step_activities (j).delete_mark := 0;
392: l_gme_batch_step_activities (j).break_ind :=
393: p_recipe_rout_act_tbl (i).break_ind;
394: l_gme_batch_step_activities (j).max_break :=
395: p_recipe_rout_act_tbl (i).max_break;
388: p_recipe_rout_act_tbl (i).sequence_dependent_ind;
389: l_gme_batch_step_activities (j).material_ind :=
390: p_recipe_rout_act_tbl (i).material_ind;
391: l_gme_batch_step_activities (j).delete_mark := 0;
392: l_gme_batch_step_activities (j).break_ind :=
393: p_recipe_rout_act_tbl (i).break_ind;
394: l_gme_batch_step_activities (j).max_break :=
395: p_recipe_rout_act_tbl (i).max_break;
396:
390: p_recipe_rout_act_tbl (i).material_ind;
391: l_gme_batch_step_activities (j).delete_mark := 0;
392: l_gme_batch_step_activities (j).break_ind :=
393: p_recipe_rout_act_tbl (i).break_ind;
394: l_gme_batch_step_activities (j).max_break :=
395: p_recipe_rout_act_tbl (i).max_break;
396:
397: -- Link this activity to the batch step it belongs to...
398: IF (p_recipe_rout_act_tbl (i).routingstep_id IS NOT NULL) THEN
398: IF (p_recipe_rout_act_tbl (i).routingstep_id IS NOT NULL) THEN
399: SELECT batchstep_id
400: ,plan_start_date
401: ,plan_cmplt_date
402: INTO l_gme_batch_step_activities (j).batchstep_id
403: ,l_gme_batch_step_activities (j).plan_start_date
404: ,l_gme_batch_step_activities (j).plan_cmplt_date
405: FROM gme_batch_steps
406: WHERE batch_id = l_batch_id
399: SELECT batchstep_id
400: ,plan_start_date
401: ,plan_cmplt_date
402: INTO l_gme_batch_step_activities (j).batchstep_id
403: ,l_gme_batch_step_activities (j).plan_start_date
404: ,l_gme_batch_step_activities (j).plan_cmplt_date
405: FROM gme_batch_steps
406: WHERE batch_id = l_batch_id
407: AND routingstep_id = p_recipe_rout_act_tbl (i).routingstep_id;
400: ,plan_start_date
401: ,plan_cmplt_date
402: INTO l_gme_batch_step_activities (j).batchstep_id
403: ,l_gme_batch_step_activities (j).plan_start_date
404: ,l_gme_batch_step_activities (j).plan_cmplt_date
405: FROM gme_batch_steps
406: WHERE batch_id = l_batch_id
407: AND routingstep_id = p_recipe_rout_act_tbl (i).routingstep_id;
408: ELSE
408: ELSE
409: SELECT batchstep_id
410: ,plan_start_date
411: ,plan_cmplt_date
412: INTO l_gme_batch_step_activities (j).batchstep_id
413: ,l_gme_batch_step_activities (j).plan_start_date
414: ,l_gme_batch_step_activities (j).plan_cmplt_date
415: FROM gme_batch_steps
416: WHERE batch_id = l_batch_id
409: SELECT batchstep_id
410: ,plan_start_date
411: ,plan_cmplt_date
412: INTO l_gme_batch_step_activities (j).batchstep_id
413: ,l_gme_batch_step_activities (j).plan_start_date
414: ,l_gme_batch_step_activities (j).plan_cmplt_date
415: FROM gme_batch_steps
416: WHERE batch_id = l_batch_id
417: AND batchstep_id = l_last_batchstep_id;
410: ,plan_start_date
411: ,plan_cmplt_date
412: INTO l_gme_batch_step_activities (j).batchstep_id
413: ,l_gme_batch_step_activities (j).plan_start_date
414: ,l_gme_batch_step_activities (j).plan_cmplt_date
415: FROM gme_batch_steps
416: WHERE batch_id = l_batch_id
417: AND batchstep_id = l_last_batchstep_id;
418: END IF;
423: IF (p_recipe_rout_act_tbl (i).text_code IS NOT NULL)
424: AND (gme_common_pvt.g_copy_routing_text_ind = 1) THEN
425: l_gmd_text_code := p_recipe_rout_act_tbl (i).text_code;
426: l_text_string :=
427: 'gme_batch_step_activities' || '|' || TO_CHAR (l_batch_id)
428: || '|';
429: l_text_string :=
430: l_text_string
431: || l_gme_batch_step_activities (j).batchstep_id
427: 'gme_batch_step_activities' || '|' || TO_CHAR (l_batch_id)
428: || '|';
429: l_text_string :=
430: l_text_string
431: || l_gme_batch_step_activities (j).batchstep_id
432: || '|';
433: l_text_string :=
434: l_text_string || p_recipe_rout_act_tbl (i).activity;
435:
447:
448: IF (l_return_status <> x_return_status) THEN
449: RAISE error_create_text;
450: ELSE
451: l_gme_batch_step_activities (j).text_code := l_gme_text_code;
452: END IF;
453: END IF;
454:
455: --FPBug#4395561 Start
452: END IF;
453: END IF;
454:
455: --FPBug#4395561 Start
456: /* call create flex procedure to insert the default values of the GME_BATCH_STEP_ACTIVITIES_FLEX
457: DFF's segments if they are enabled */
458: l_return_status:=NULL;
459: gme_validate_flex_fld_pvt.create_flex_step_activities (
460: l_gme_batch_step_activities (j),
456: /* call create flex procedure to insert the default values of the GME_BATCH_STEP_ACTIVITIES_FLEX
457: DFF's segments if they are enabled */
458: l_return_status:=NULL;
459: gme_validate_flex_fld_pvt.create_flex_step_activities (
460: l_gme_batch_step_activities (j),
461: l_gme_batch_step_activities (j),
462: l_return_status);
463: IF l_return_status <> FND_API.g_ret_sts_success THEN
464: RAISE create_flex_failure;
457: DFF's segments if they are enabled */
458: l_return_status:=NULL;
459: gme_validate_flex_fld_pvt.create_flex_step_activities (
460: l_gme_batch_step_activities (j),
461: l_gme_batch_step_activities (j),
462: l_return_status);
463: IF l_return_status <> FND_API.g_ret_sts_success THEN
464: RAISE create_flex_failure;
465: END IF;
464: RAISE create_flex_failure;
465: END IF;
466: --FPBug#4395561 End
467:
468: IF (gme_batch_step_activities_dbl.insert_row
469: (p_batch_step_activities => l_gme_batch_step_activities
470: (j)
471: ,x_batch_step_activities => l_gme_batch_step_activities
472: (j) ) ) THEN
465: END IF;
466: --FPBug#4395561 End
467:
468: IF (gme_batch_step_activities_dbl.insert_row
469: (p_batch_step_activities => l_gme_batch_step_activities
470: (j)
471: ,x_batch_step_activities => l_gme_batch_step_activities
472: (j) ) ) THEN
473: NULL;
467:
468: IF (gme_batch_step_activities_dbl.insert_row
469: (p_batch_step_activities => l_gme_batch_step_activities
470: (j)
471: ,x_batch_step_activities => l_gme_batch_step_activities
472: (j) ) ) THEN
473: NULL;
474: ELSE
475: RAISE error_insert_b_step_act;
478: i := p_recipe_rout_act_tbl.NEXT (i);
479: END LOOP; /* WHILE i IS NOT NULL; STEP ACTIVITIES */
480:
481: IF (NVL (g_debug, -1) = gme_debug.g_log_statement) THEN
482: gme_debug.put_line ('Completed GME_BATCH_STEP_ACTIVITIES');
483: -- Create data for GME_BATCH_STEP_RESOURCES and GME_RESOURCE_TXNS...
484: gme_debug.put_line ('GME_BATCH_STEP_RESOURCES');
485: END IF;
486:
595:
596: -- Link this resource to the activity it belongs to...
597: -- Note: To go from resources upto activity, you key on batch_id, batchstep_id and
598: -- oprn_line_id -> because oprn can be repeated many times in different steps so, if you have
599: -- batchstep_id and then oprn_line_id, you will get a unique row from gme_batch_step_activities...
600: SELECT batchstep_activity_id
601: INTO l_gme_batch_step_resources (j).batchstep_activity_id
602: FROM gme_batch_step_activities
603: WHERE batch_id = l_batch_id
598: -- oprn_line_id -> because oprn can be repeated many times in different steps so, if you have
599: -- batchstep_id and then oprn_line_id, you will get a unique row from gme_batch_step_activities...
600: SELECT batchstep_activity_id
601: INTO l_gme_batch_step_resources (j).batchstep_activity_id
602: FROM gme_batch_step_activities
603: WHERE batch_id = l_batch_id
604: AND batchstep_id = l_gme_batch_step_resources (j).batchstep_id
605: AND oprn_line_id = p_recipe_rout_resc_tbl (i).oprn_line_id;
606:
707:
708: -- Link this process parameters to the activity it belongs to...
709: SELECT batchstep_activity_id
710: INTO l_gme_rsrc_parameters (m).batchstep_activity_id
711: FROM gme_batch_step_activities
712: WHERE batch_id = l_batch_id
713: AND batchstep_id = l_gme_rsrc_parameters (m).batchstep_id
714: AND oprn_line_id = p_resc_parameters_tbl (m).oprn_line_id;
715:
2068: x_cur_row PLS_INTEGER;
2069: x_step_tbl step_tab;
2070: l_step_duration_tab step_duration_tab;
2071: x_act_tab activities_tab;
2072: x_act_row gme_batch_step_activities%ROWTYPE;
2073: x_rsrc_tab resources_tab;
2074: x_rsrc_row gme_batch_step_resources%ROWTYPE;
2075: x_rsrc_txns_tab rsrc_txns_tab;
2076: x_step_row gme_batch_steps%ROWTYPE;
2097:
2098: CURSOR cur_get_step_activities (v_step_id NUMBER, v_batch_id NUMBER)
2099: IS
2100: SELECT *
2101: FROM gme_batch_step_activities
2102: WHERE batch_id = v_batch_id AND batchstep_id = v_step_id;
2103:
2104: CURSOR cur_get_act_rsrcs (v_batchstep_activity_id NUMBER)
2105: IS
2121:
2122: CURSOR cur_get_activity (v_batchstep_activity_id NUMBER)
2123: IS
2124: SELECT activity
2125: FROM gme_batch_step_activities
2126: WHERE batchstep_activity_id = v_batchstep_activity_id;
2127:
2128: CURSOR cur_recipe_validity_rule (
2129: p_recipe_validity_rule_id gme_batch_header.recipe_validity_rule_id%TYPE)
2729: ,'DD-MON-YYYY HH24:MI:SS') );
2730: END IF;
2731:
2732: FOR k IN x_act_tab.FIRST .. x_act_tab.LAST LOOP
2733: UPDATE gme_batch_step_activities
2734: SET plan_start_date = x_act_tab (k).plan_start_date
2735: ,plan_cmplt_date = x_act_tab (k).plan_cmplt_date
2736: WHERE batchstep_activity_id = x_act_tab (k).batchstep_activity_id;
2737: END LOOP;
3688: CURSOR cur_get_activity (v_step_id NUMBER, v_batch_id NUMBER)
3689: IS
3690: SELECT batchstep_activity_id, offset_interval, batchstep_id
3691: ,batch_id
3692: FROM gme_batch_step_activities
3693: WHERE batchstep_id = v_step_id AND batch_id = v_batch_id;
3694:
3695: CURSOR cur_get_resource (
3696: v_step_id NUMBER