75: v_child_req_id g_request_tbl;
76: ind NUMBER DEFAULT 0;
77: i NUMBER DEFAULT 0;
78: j NUMBER DEFAULT 0;
79: g_BindVarTab RLM_CORE_SV.t_dynamic_tab;
80: --
81: BEGIN
82: --
83: IF (l_debug <> -1) THEN
80: --
81: BEGIN
82: --
83: IF (l_debug <> -1) THEN
84: rlm_core_sv.start_debug;
85: rlm_core_sv.dpush(C_SDEBUG,'DemandProcessor');
86: rlm_core_sv.dlog(C_DEBUG,'from date',p_from_date);
87: rlm_core_sv.dlog(C_DEBUG,'to date',p_to_date);
88: rlm_core_sv.dlog(C_DEBUG,'Org ID', p_org_id);
81: BEGIN
82: --
83: IF (l_debug <> -1) THEN
84: rlm_core_sv.start_debug;
85: rlm_core_sv.dpush(C_SDEBUG,'DemandProcessor');
86: rlm_core_sv.dlog(C_DEBUG,'from date',p_from_date);
87: rlm_core_sv.dlog(C_DEBUG,'to date',p_to_date);
88: rlm_core_sv.dlog(C_DEBUG,'Org ID', p_org_id);
89: END IF;
82: --
83: IF (l_debug <> -1) THEN
84: rlm_core_sv.start_debug;
85: rlm_core_sv.dpush(C_SDEBUG,'DemandProcessor');
86: rlm_core_sv.dlog(C_DEBUG,'from date',p_from_date);
87: rlm_core_sv.dlog(C_DEBUG,'to date',p_to_date);
88: rlm_core_sv.dlog(C_DEBUG,'Org ID', p_org_id);
89: END IF;
90: --
83: IF (l_debug <> -1) THEN
84: rlm_core_sv.start_debug;
85: rlm_core_sv.dpush(C_SDEBUG,'DemandProcessor');
86: rlm_core_sv.dlog(C_DEBUG,'from date',p_from_date);
87: rlm_core_sv.dlog(C_DEBUG,'to date',p_to_date);
88: rlm_core_sv.dlog(C_DEBUG,'Org ID', p_org_id);
89: END IF;
90: --
91: SELECT hsecs INTO l_start_time from v$timer;
84: rlm_core_sv.start_debug;
85: rlm_core_sv.dpush(C_SDEBUG,'DemandProcessor');
86: rlm_core_sv.dlog(C_DEBUG,'from date',p_from_date);
87: rlm_core_sv.dlog(C_DEBUG,'to date',p_to_date);
88: rlm_core_sv.dlog(C_DEBUG,'Org ID', p_org_id);
89: END IF;
90: --
91: SELECT hsecs INTO l_start_time from v$timer;
92: g_dsp_start_time := NULL; --Bugfix 10053830
92: g_dsp_start_time := NULL; --Bugfix 10053830
93: g_dsp_start_time := SYSDATE; --Bugfix 10053830
94: --
95: IF (l_debug <> -1) THEN
96: rlm_core_sv.dlog(C_DEBUG,'DSP Start time',g_dsp_start_time); --Bugfix 10053830
97: END IF;
98: --
99: rlm_message_sv.populate_req_id;
100: --
114: -- bug 3756599
115: v_where_clause := '
116: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) AND header_id = :p_header_id ';
117:
118: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
119: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
120: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
121: g_BindVarTab(g_BindVarTab.COUNT+1) := p_header_id;
122: --
115: v_where_clause := '
116: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) AND header_id = :p_header_id ';
117:
118: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
119: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
120: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
121: g_BindVarTab(g_BindVarTab.COUNT+1) := p_header_id;
122: --
123: ELSE
116: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) AND header_id = :p_header_id ';
117:
118: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
119: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
120: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
121: g_BindVarTab(g_BindVarTab.COUNT+1) := p_header_id;
122: --
123: ELSE
124: --
125: v_from_clause := '
126: FROM rlm_interface_headers hdr';
127: v_where_clause := '
128: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) ';
129: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
130: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
131: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
132: --
133: -- Addition of customer to the where clause
126: FROM rlm_interface_headers hdr';
127: v_where_clause := '
128: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) ';
129: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
130: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
131: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
132: --
133: -- Addition of customer to the where clause
134: --
127: v_where_clause := '
128: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) ';
129: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
130: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
131: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
132: --
133: -- Addition of customer to the where clause
134: --
135: IF (p_from_customer_ext IS NOT NULL) THEN
209: -- stype
210: g_order_by_schedule_type := p_order_by_schedule_type;
211: --
212: IF (l_debug <> -1) THEN
213: rlm_core_sv.dlog(C_DEBUG,'g_order_by_schedule_type',g_order_by_schedule_type);
214: END IF;
215: --
216: IF g_order_by_schedule_type = 'N' THEN
217: --
254: || v_where_clause
255: || v_order_clause;
256: --
257: IF (l_debug <> -1) THEN
258: rlm_core_sv.dlog(C_DEBUG,'The select Statement is:
259: ', v_Statement);
260: END IF;
261: --
262: IF (l_debug <> -1) THEN
259: ', v_Statement);
260: END IF;
261: --
262: IF (l_debug <> -1) THEN
263: rlm_core_sv.dlog(C_DEBUG,'g_BindVarTab.COUNT',g_BindVarTab.COUNT );
264: END IF;
265: --
266: RLM_CORE_SV.OpenDynamicCursor(c_demand, v_statement, g_BindVarTab);
267: --
262: IF (l_debug <> -1) THEN
263: rlm_core_sv.dlog(C_DEBUG,'g_BindVarTab.COUNT',g_BindVarTab.COUNT );
264: END IF;
265: --
266: RLM_CORE_SV.OpenDynamicCursor(c_demand, v_statement, g_BindVarTab);
267: --
268: LOOP
269: BEGIN
270: --
272: --
273: FETCH c_demand INTO v_header_id, v_header_ps, edi_test_indicator;
274: --
275: IF (l_debug <> -1) THEN
276: rlm_core_sv.dlog(C_DEBUG, '==============================');
277: rlm_core_sv.dlog(C_DEBUG,'Header Id:', v_header_id);
278: rlm_core_sv.dlog(C_DEBUG,'v_header_ps:', v_header_ps);
279: END IF;
280: --
273: FETCH c_demand INTO v_header_id, v_header_ps, edi_test_indicator;
274: --
275: IF (l_debug <> -1) THEN
276: rlm_core_sv.dlog(C_DEBUG, '==============================');
277: rlm_core_sv.dlog(C_DEBUG,'Header Id:', v_header_id);
278: rlm_core_sv.dlog(C_DEBUG,'v_header_ps:', v_header_ps);
279: END IF;
280: --
281: EXIT WHEN c_demand%NOTFOUND;
274: --
275: IF (l_debug <> -1) THEN
276: rlm_core_sv.dlog(C_DEBUG, '==============================');
277: rlm_core_sv.dlog(C_DEBUG,'Header Id:', v_header_id);
278: rlm_core_sv.dlog(C_DEBUG,'v_header_ps:', v_header_ps);
279: END IF;
280: --
281: EXIT WHEN c_demand%NOTFOUND;
282: --
286: --
287: RLM_FORECAST_SV.k_REPLACE_FLAG := TRUE;
288: RLM_FORECAST_SV.g_designator_tab.delete;
289:
290: IF v_header_ps IN (rlm_core_sv.k_PS_ERROR,
291: rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
292: --
293: update rlm_interface_headers_all
294: set process_status = rlm_core_sv.k_PS_AVAILABLE
287: RLM_FORECAST_SV.k_REPLACE_FLAG := TRUE;
288: RLM_FORECAST_SV.g_designator_tab.delete;
289:
290: IF v_header_ps IN (rlm_core_sv.k_PS_ERROR,
291: rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
292: --
293: update rlm_interface_headers_all
294: set process_status = rlm_core_sv.k_PS_AVAILABLE
295: where header_id = v_header_id;
290: IF v_header_ps IN (rlm_core_sv.k_PS_ERROR,
291: rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
292: --
293: update rlm_interface_headers_all
294: set process_status = rlm_core_sv.k_PS_AVAILABLE
295: where header_id = v_header_id;
296: --
297: IF (l_debug <> -1) THEN
298: rlm_core_sv.dlog(C_DEBUG,' No of headers updated:', SQL%ROWCOUNT);
294: set process_status = rlm_core_sv.k_PS_AVAILABLE
295: where header_id = v_header_id;
296: --
297: IF (l_debug <> -1) THEN
298: rlm_core_sv.dlog(C_DEBUG,' No of headers updated:', SQL%ROWCOUNT);
299: END IF;
300: --
301: update rlm_interface_lines
302: set process_status = rlm_core_sv.k_PS_AVAILABLE,
298: rlm_core_sv.dlog(C_DEBUG,' No of headers updated:', SQL%ROWCOUNT);
299: END IF;
300: --
301: update rlm_interface_lines
302: set process_status = rlm_core_sv.k_PS_AVAILABLE,
303: dsp_child_process_index = NULL
304: where header_id = v_header_id
305: and process_status = rlm_core_sv.k_PS_ERROR;
306: --
301: update rlm_interface_lines
302: set process_status = rlm_core_sv.k_PS_AVAILABLE,
303: dsp_child_process_index = NULL
304: where header_id = v_header_id
305: and process_status = rlm_core_sv.k_PS_ERROR;
306: --
307: IF (l_debug <> -1) THEN
308: rlm_core_sv.dlog(C_DEBUG,' No of lines updated:', SQL%ROWCOUNT);
309: END IF;
304: where header_id = v_header_id
305: and process_status = rlm_core_sv.k_PS_ERROR;
306: --
307: IF (l_debug <> -1) THEN
308: rlm_core_sv.dlog(C_DEBUG,' No of lines updated:', SQL%ROWCOUNT);
309: END IF;
310: --
311: --Bugfix 6453415 Start <
312: delete from rlm_demand_exceptions rde
318: or message_name = 'RLM_WARN_DROPPED_ITEMS'); --Bugfix 8844817
319: --Bugfix 6453415 End
320: --
321: IF (l_debug <> -1) THEN
322: rlm_core_sv.dlog(C_DEBUG,' No of demand exceptions lines deleted:', SQL%ROWCOUNT);
323: END IF;
324: --
325: --Bugfix 6453415 Start
326: update rlm_demand_exceptions
332: --
333: fnd_profile.get('RLM_WF_ENABLED', v_WF_Enabled);
334: --
335: IF (l_debug <> -1) THEN
336: rlm_core_sv.dlog(C_DEBUG,'Workflow Enabled set to: ', v_WF_Enabled);
337: END IF;
338: --
339: v_num_child := p_child_processes;
340: --
346: rlm_validatedemand_sv.GroupValidateDemand(v_header_id, v_status);
347: SELECT hsecs INTO l_val_end_time from v$timer;
348: l_val_total:=l_val_total+(l_val_end_time-l_val_start_time)/100;
349: --
350: IF (v_status = rlm_core_sv.k_PROC_ERROR) OR
351: (rlm_validatedemand_sv.g_schedule_PS = rlm_core_sv.k_PS_ERROR)
352: THEN
353: --
354: RAISE e_VDFailed;
347: SELECT hsecs INTO l_val_end_time from v$timer;
348: l_val_total:=l_val_total+(l_val_end_time-l_val_start_time)/100;
349: --
350: IF (v_status = rlm_core_sv.k_PROC_ERROR) OR
351: (rlm_validatedemand_sv.g_schedule_PS = rlm_core_sv.k_PS_ERROR)
352: THEN
353: --
354: RAISE e_VDFailed;
355: --
352: THEN
353: --
354: RAISE e_VDFailed;
355: --
356: ELSIF (rlm_validatedemand_sv.g_schedule_PS <> rlm_core_sv.k_PS_ERROR)
357: THEN
358: --
359: IF (l_debug <> -1) THEN
360: rlm_core_sv.dlog(C_DEBUG,'Before PostValidation');
356: ELSIF (rlm_validatedemand_sv.g_schedule_PS <> rlm_core_sv.k_PS_ERROR)
357: THEN
358: --
359: IF (l_debug <> -1) THEN
360: rlm_core_sv.dlog(C_DEBUG,'Before PostValidation');
361: END IF;
362: --
363: SELECT hsecs INTO l_post_start_time from v$timer;
364: RLM_TPA_SV.PostValidation;
372: --
373: IF edi_test_indicator = 'T' then
374: --
375: IF (l_debug <> -1) THEN
376: rlm_core_sv.dlog(C_DEBUG,'Test schedule found');
377: END IF;
378: --
379: raise e_testschedule;
380: --
386: --
387: v_progress := '015';
388: --
389: IF (l_debug <> -1) THEN
390: rlm_core_sv.dlog(C_DEBUG,'header not locked');
391: END IF;
392: --
393: raise e_headerLocked;
394: --
398: --
399: IF v_Sched_rec.schedule_purpose = k_CONFIRMATION THEN
400: --
401: IF (l_debug <> -1) THEN
402: rlm_core_sv.dlog(C_DEBUG,'RLM_CONF_SCH_RCD');
403: END IF;
404: --
405: raise e_ConfirmationSchedule;
406: --
436: --
437: IF NOT LockHeader(v_header_id, v_Sched_rec) THEN
438: --
439: IF (l_debug <> -1) THEN
440: rlm_core_sv.dlog(C_DEBUG, 'Header not locked after
441: CreateChildGroups');
442: END IF;
443: --
444: RAISE e_HeaderLocked;
499: --
500: IF NOT LockHeader(v_header_id, v_Sched_rec) THEN
501: --
502: IF (l_debug <> -1) THEN
503: rlm_core_sv.dlog(C_DEBUG, 'Header not locked');
504: END IF;
505: --
506: RAISE e_HeaderLocked;
507: --
520: --
521: WHEN e_ConfirmationSchedule THEN
522: --
523: IF (l_debug <> -1) THEN
524: rlm_core_sv.dlog(C_DEBUG,'RLM_CONF_SCH_RCD');
525: END IF;
526: --
527: rlm_message_sv.app_error(
528: x_ExceptionLevel => rlm_message_sv.k_warn_level,
538: --
539: UpdateGroupPS(v_Sched_rec.header_id,
540: v_Sched_rec.Schedule_header_id,
541: v_Group_rec,
542: rlm_core_sv.K_PS_PROCESSED,
543: 'ALL');
544: --
545: UpdateHeaderPS(v_Sched_rec.header_id,
546: v_Sched_rec.Schedule_header_id);
552: --
553: WHEN NO_DATA_FOUND THEN
554: --
555: IF (l_debug <> -1) THEN
556: rlm_core_sv.dlog(C_DEBUG,'No data found ');
557: END IF;
558: --
559: rlm_message_sv.dump_messages(v_header_id);
560: --
560: --
561: WHEN e_VDFailed THEN
562: --
563: IF (l_debug <> -1) THEN
564: rlm_core_sv.dlog(C_DEBUG,'Validate Demand Failed');
565: END IF;
566: --
567: ROLLBACK;
568: --
568: --
569: UpdateGroupPS(v_header_id,
570: v_schedule_header_id,
571: v_Group_rec,
572: rlm_core_sv.k_PS_ERROR,
573: 'ALL');
574: --
575: UpdateHeaderPS(v_header_id,
576: v_schedule_header_id);
585: --
586: UpdateGroupPS(v_Sched_rec.header_id,
587: v_Sched_rec.schedule_header_id,
588: v_Group_rec,
589: rlm_core_sv.k_PS_ERROR);
590:
591: --
592: UpdateHeaderPS(v_header_id, v_schedule_header_id);
593: rlm_message_sv.dump_messages(v_header_id);
598: --
599: WHEN e_testschedule THEN
600: --
601: IF (l_debug <> -1) THEN
602: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
603: END IF;
604: --
605: rlm_message_sv.app_error(
606: x_ExceptionLevel => rlm_message_sv.k_warn_level,
608: x_InterfaceHeaderId => v_header_id,
609: x_InterfaceLineId => NULL,
610: x_OrderLineId => NULL,
611: x_Token1 => 'SCHED_REF',
612: x_Value1 =>rlm_core_sv.get_schedule_reference_num(v_header_id));
613: --
614: rlm_message_sv.dump_messages(v_header_id);
615: PurgeInterfaceLines(v_header_id); /*2699981*/
616: --
622: --
623: UpdateGroupPS(v_header_id,
624: v_schedule_header_id,
625: v_Group_rec,
626: rlm_core_sv.k_PS_ERROR,
627: 'ALL');
628: --
629: /* UpdateHeaderPS(v_header_id,
630: v_schedule_header_id); */
635: x_InterfaceHeaderId => v_header_id,
636: x_InterfaceLineId => NULL,
637: x_OrderLineId => NULL,
638: x_Token1 => 'SCHED_REF',
639: x_Value1 => rlm_core_sv.get_schedule_reference_num(v_header_id));
640: --
641: IF (l_debug <> -1) THEN
642: rlm_core_sv.dlog(C_DEBUG,'Header could not be locked');
643: rlm_core_sv.dpop(C_SDEBUG, 'RLM_LOCK_NOT_OBTAINED');
638: x_Token1 => 'SCHED_REF',
639: x_Value1 => rlm_core_sv.get_schedule_reference_num(v_header_id));
640: --
641: IF (l_debug <> -1) THEN
642: rlm_core_sv.dlog(C_DEBUG,'Header could not be locked');
643: rlm_core_sv.dpop(C_SDEBUG, 'RLM_LOCK_NOT_OBTAINED');
644: END IF;
645: --
646: rlm_message_sv.dump_messages(v_header_id);
639: x_Value1 => rlm_core_sv.get_schedule_reference_num(v_header_id));
640: --
641: IF (l_debug <> -1) THEN
642: rlm_core_sv.dlog(C_DEBUG,'Header could not be locked');
643: rlm_core_sv.dpop(C_SDEBUG, 'RLM_LOCK_NOT_OBTAINED');
644: END IF;
645: --
646: rlm_message_sv.dump_messages(v_header_id);
647: --
653: --
654: retcode := 2;
655: --
656: IF (l_debug <> -1) THEN
657: rlm_core_sv.dlog(C_DEBUG,'when others');
658: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
659: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
660: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
661: END IF;
654: retcode := 2;
655: --
656: IF (l_debug <> -1) THEN
657: rlm_core_sv.dlog(C_DEBUG,'when others');
658: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
659: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
660: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
661: END IF;
662: --
655: --
656: IF (l_debug <> -1) THEN
657: rlm_core_sv.dlog(C_DEBUG,'when others');
658: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
659: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
660: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
661: END IF;
662: --
663: UpdateGroupPS(v_header_id,
656: IF (l_debug <> -1) THEN
657: rlm_core_sv.dlog(C_DEBUG,'when others');
658: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
659: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
660: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
661: END IF;
662: --
663: UpdateGroupPS(v_header_id,
664: v_schedule_header_id,
662: --
663: UpdateGroupPS(v_header_id,
664: v_schedule_header_id,
665: v_Group_rec,
666: rlm_core_sv.k_PS_ERROR,
667: 'ALL');
668: --
669: UpdateHeaderPS(v_header_id,
670: v_schedule_header_id);
679: --
680: END LOOP;
681: --
682: IF (l_debug <> -1) THEN
683: rlm_core_sv.dlog(C_DEBUG,'rowcount' , c_demand%ROWCOUNT);
684: END IF;
685: --
686: IF c_demand%ROWCOUNT = 0 THEN
687: --
704: x_Token3 => 'TO_CUSTOMER_EXT',
705: x_value3 => p_to_customer_ext);
706: --
707: IF (l_debug <> -1) THEN
708: rlm_core_sv.dlog(C_DEBUG,'RLM_NO_DATA_FOR_CRITERIA' );
709: END IF;
710: --
711: rlm_message_sv.dump_messages;
712: --
719:
720: SELECT hsecs INTO l_end_time from v$timer;
721: g_dsp_start_time := NULL; --Bugfix 10053830
722: IF (l_debug <> -1) THEN
723: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
724: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
720: SELECT hsecs INTO l_end_time from v$timer;
721: g_dsp_start_time := NULL; --Bugfix 10053830
722: IF (l_debug <> -1) THEN
723: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
724: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
728: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
721: g_dsp_start_time := NULL; --Bugfix 10053830
722: IF (l_debug <> -1) THEN
723: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
724: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
728: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
729: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
722: IF (l_debug <> -1) THEN
723: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
724: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
728: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
729: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
730: END IF;
723: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
724: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
728: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
729: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
730: END IF;
731:
724: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
728: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
729: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
730: END IF;
731:
732: v_msg_text:='Total Time spent in Validatedemand call - '||l_val_total;
725: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
726: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
727: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
728: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
729: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
730: END IF;
731:
732: v_msg_text:='Total Time spent in Validatedemand call - '||l_val_total;
733: fnd_file.put_line(fnd_file.log, v_msg_text);
754: v_msg_text := 'Return Code from DSP concurrent program - ' || retcode;
755: fnd_file.put_line(fnd_file.log, v_msg_text);
756: --
757: IF (l_debug <> -1) THEN
758: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
759: rlm_core_sv.dpop(C_SDEBUG);
760: rlm_core_sv.stop_debug;
761: END IF;
762: --
755: fnd_file.put_line(fnd_file.log, v_msg_text);
756: --
757: IF (l_debug <> -1) THEN
758: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
759: rlm_core_sv.dpop(C_SDEBUG);
760: rlm_core_sv.stop_debug;
761: END IF;
762: --
763: EXCEPTION
756: --
757: IF (l_debug <> -1) THEN
758: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
759: rlm_core_sv.dpop(C_SDEBUG);
760: rlm_core_sv.stop_debug;
761: END IF;
762: --
763: EXCEPTION
764: --
768: rlm_message_sv.sql_error('rlm_dp_sv.DemandProcessor', v_Progress);
769: rlm_message_sv.dump_messages(v_header_id);
770: --
771: IF (l_debug <> -1) THEN
772: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
773: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
774: rlm_core_sv.stop_debug;
775: END IF;
776: raise;
769: rlm_message_sv.dump_messages(v_header_id);
770: --
771: IF (l_debug <> -1) THEN
772: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
773: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
774: rlm_core_sv.stop_debug;
775: END IF;
776: raise;
777: --
770: --
771: IF (l_debug <> -1) THEN
772: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
773: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
774: rlm_core_sv.stop_debug;
775: END IF;
776: raise;
777: --
778: END DemandProcessor;
791: --
792: BEGIN
793: --
794: IF (l_debug <> -1) THEN
795: rlm_core_sv.dpush(C_SDEBUG, 'PurgeInterfaceLines');
796: rlm_core_sv.dlog(C_DEBUG, 'x_header_id',x_header_id);
797: END IF;
798: --
799: select process_status into v_process_status
792: BEGIN
793: --
794: IF (l_debug <> -1) THEN
795: rlm_core_sv.dpush(C_SDEBUG, 'PurgeInterfaceLines');
796: rlm_core_sv.dlog(C_DEBUG, 'x_header_id',x_header_id);
797: END IF;
798: --
799: select process_status into v_process_status
800: from rlm_interface_headers
801: where header_id = x_header_id;
802: --
803: DELETE FROM RLM_INTERFACE_HEADERS
804: WHERE header_id = x_header_id
805: and process_Status = rlm_core_sv.k_PS_PROCESSED;
806: --
807: IF(v_process_status <> rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
808: --
809: DELETE FROM RLM_INTERFACE_LINES
803: DELETE FROM RLM_INTERFACE_HEADERS
804: WHERE header_id = x_header_id
805: and process_Status = rlm_core_sv.k_PS_PROCESSED;
806: --
807: IF(v_process_status <> rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
808: --
809: DELETE FROM RLM_INTERFACE_LINES
810: WHERE header_id = x_header_id
811: and process_Status = rlm_core_sv.k_PS_PROCESSED;
807: IF(v_process_status <> rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
808: --
809: DELETE FROM RLM_INTERFACE_LINES
810: WHERE header_id = x_header_id
811: and process_Status = rlm_core_sv.k_PS_PROCESSED;
812: --
813: ELSE
814: --
815: DELETE FROM RLM_INTERFACE_LINES
813: ELSE
814: --
815: DELETE FROM RLM_INTERFACE_LINES
816: WHERE header_id = x_header_id
817: and process_Status = rlm_core_sv.k_PS_PROCESSED
818: and item_detail_type <> rlm_rd_sv.k_MRP_FORECAST;
819: --
820: END IF;
821: --
819: --
820: END IF;
821: --
822: IF (l_debug <> -1) THEN
823: rlm_core_sv.dlog(C_DEBUG, 'Lines deleted ', SQL%ROWCOUNT);
824: rlm_core_sv.dpop(C_SDEBUG);
825: END IF;
826: --
827: EXCEPTION
820: END IF;
821: --
822: IF (l_debug <> -1) THEN
823: rlm_core_sv.dlog(C_DEBUG, 'Lines deleted ', SQL%ROWCOUNT);
824: rlm_core_sv.dpop(C_SDEBUG);
825: END IF;
826: --
827: EXCEPTION
828: --
830: --
831: rlm_message_sv.sql_error('rlm_dp_sv.PurgeInterfaceLines', v_Progress);
832: --
833: IF (l_debug <> -1) THEN
834: rlm_core_sv.dlog(C_DEBUG, 'No records to delete' );
835: rlm_core_sv.dpop(C_SDEBUG);
836: END IF;
837: --
838: WHEN OTHERS THEN
831: rlm_message_sv.sql_error('rlm_dp_sv.PurgeInterfaceLines', v_Progress);
832: --
833: IF (l_debug <> -1) THEN
834: rlm_core_sv.dlog(C_DEBUG, 'No records to delete' );
835: rlm_core_sv.dpop(C_SDEBUG);
836: END IF;
837: --
838: WHEN OTHERS THEN
839: --
839: --
840: rlm_message_sv.sql_error('rlm_dp_sv.PurgeInterfaceLines', v_Progress);
841: --
842: IF (l_debug <> -1) THEN
843: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
844: END IF;
845: --
846: raise;
847: --
861: CURSOR c IS
862: SELECT *
863: FROM rlm_interface_headers
864: WHERE header_id = x_HeaderId
865: and process_status IN (rlm_core_sv.k_PS_AVAILABLE,
866: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
867: FOR UPDATE NOWAIT;
868:
869: BEGIN
862: SELECT *
863: FROM rlm_interface_headers
864: WHERE header_id = x_HeaderId
865: and process_status IN (rlm_core_sv.k_PS_AVAILABLE,
866: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
867: FOR UPDATE NOWAIT;
868:
869: BEGIN
870: --
868:
869: BEGIN
870: --
871: IF (l_debug <> -1) THEN
872: rlm_core_sv.dpush(C_SDEBUG,'LockHeader');
873: rlm_core_sv.dlog(C_DEBUG,'Locking RLM_INTERFACE_HEADERS');
874: END IF;
875: --
876: OPEN c;
869: BEGIN
870: --
871: IF (l_debug <> -1) THEN
872: rlm_core_sv.dpush(C_SDEBUG,'LockHeader');
873: rlm_core_sv.dlog(C_DEBUG,'Locking RLM_INTERFACE_HEADERS');
874: END IF;
875: --
876: OPEN c;
877: FETCH c INTO v_Sched_rec;
882: --
883: CLOSE c;
884: --
885: IF (l_debug <> -1) THEN
886: rlm_core_sv.dpop(C_SDEBUG);
887: END IF;
888: --
889: RETURN(TRUE);
890: --
892: --
893: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
894: --
895: IF (l_debug <> -1) THEN
896: rlm_core_sv.dlog(C_DEBUG,'APP_EXCEPTION.RECORD_LOCK_EXCEPTION error');
897: rlm_core_sv.dpop(C_SDEBUG);
898: END IF;
899: --
900: RETURN(FALSE);
893: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
894: --
895: IF (l_debug <> -1) THEN
896: rlm_core_sv.dlog(C_DEBUG,'APP_EXCEPTION.RECORD_LOCK_EXCEPTION error');
897: rlm_core_sv.dpop(C_SDEBUG);
898: END IF;
899: --
900: RETURN(FALSE);
901: --
901: --
902: WHEN NO_DATA_FOUND THEN
903: --
904: IF (l_debug <> -1) THEN
905: rlm_core_sv.dlog(C_DEBUG,'No header found with the headerID',
906: x_HeaderId);
907: rlm_core_sv.dpop(C_SDEBUG, 'NO_DATA_FOUND');
908: END IF;
909: --
903: --
904: IF (l_debug <> -1) THEN
905: rlm_core_sv.dlog(C_DEBUG,'No header found with the headerID',
906: x_HeaderId);
907: rlm_core_sv.dpop(C_SDEBUG, 'NO_DATA_FOUND');
908: END IF;
909: --
910: RETURN(FALSE);
911: --
912: WHEN OTHERS THEN
913: rlm_message_sv.sql_error('rlm_managedemand_sv.lockHeader', x_progress);
914: --
915: IF (l_debug <> -1) THEN
916: rlm_core_sv.dlog(C_DEBUG,'progress',x_Progress);
917: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
918: END IF;
919: --
920: RAISE;
913: rlm_message_sv.sql_error('rlm_managedemand_sv.lockHeader', x_progress);
914: --
915: IF (l_debug <> -1) THEN
916: rlm_core_sv.dlog(C_DEBUG,'progress',x_Progress);
917: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
918: END IF;
919: --
920: RAISE;
921:
944: --
945: BEGIN
946: --
947: IF (l_debug <> -1) THEN
948: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
949: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
950: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
951: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
952: x_Group_rec.ship_from_org_id);
945: BEGIN
946: --
947: IF (l_debug <> -1) THEN
948: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
949: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
950: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
951: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
952: x_Group_rec.ship_from_org_id);
953: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
946: --
947: IF (l_debug <> -1) THEN
948: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
949: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
950: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
951: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
952: x_Group_rec.ship_from_org_id);
953: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
954: x_Group_rec.order_header_id);
947: IF (l_debug <> -1) THEN
948: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
949: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
950: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
951: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
952: x_Group_rec.ship_from_org_id);
953: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
954: x_Group_rec.order_header_id);
955: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
949: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
950: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
951: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
952: x_Group_rec.ship_from_org_id);
953: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
954: x_Group_rec.order_header_id);
955: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
956: x_Group_rec.ship_to_org_id);
957: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
951: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
952: x_Group_rec.ship_from_org_id);
953: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
954: x_Group_rec.order_header_id);
955: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
956: x_Group_rec.ship_to_org_id);
957: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
958: x_Group_rec.customer_item_id);
959: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
953: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
954: x_Group_rec.order_header_id);
955: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
956: x_Group_rec.ship_to_org_id);
957: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
958: x_Group_rec.customer_item_id);
959: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
960: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
961: END IF;
955: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
956: x_Group_rec.ship_to_org_id);
957: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
958: x_Group_rec.customer_item_id);
959: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
960: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
961: END IF;
962: --
963: v_login_id := fnd_global.login_id ;
956: x_Group_rec.ship_to_org_id);
957: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
958: x_Group_rec.customer_item_id);
959: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
960: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
961: END IF;
962: --
963: v_login_id := fnd_global.login_id ;
964: v_request_id := RLM_MESSAGE_SV.g_conc_req_id ;
970: FROM rlm_interface_headers
971: WHERE header_id = x_header_id;
972: --
973: IF (l_debug <> -1) THEN
974: rlm_core_sv.dlog(C_DEBUG, 'v_SchedHeaderId', v_SchedHeaderId);
975: END IF;
976: --
977: IF x_UpdateLevel <> 'GROUP' THEN
978: --
983: PROGRAM_APPLICATION_ID = v_program_app_id,
984: PROGRAM_ID = v_program_id,
985: PROGRAM_UPDATE_DATE = v_program_update_date
986: WHERE header_id = x_header_id
987: AND process_status <> rlm_core_sv.k_PS_ERROR; -- bug 5134706
988:
989: --
990: IF (l_debug <> -1) THEN
991: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
987: AND process_status <> rlm_core_sv.k_PS_ERROR; -- bug 5134706
988:
989: --
990: IF (l_debug <> -1) THEN
991: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
992: END IF;
993:
994: UPDATE rlm_schedule_lines sl
995: SET process_status = x_Status,
998: PROGRAM_APPLICATION_ID = v_program_app_id,
999: PROGRAM_ID = v_program_id,
1000: PROGRAM_UPDATE_DATE = v_program_update_date
1001: WHERE sl.header_id = v_SchedHeaderId
1002: AND process_status <> rlm_core_sv.k_PS_ERROR -- bug 5134706
1003: AND interface_line_id in
1004: (SELECT line_id
1005: FROM rlm_interface_lines_all il
1006: WHERE il.header_id = x_header_id);
1005: FROM rlm_interface_lines_all il
1006: WHERE il.header_id = x_header_id);
1007: --
1008: IF (l_debug <> -1) THEN
1009: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1010: END IF;
1011:
1012: ELSE
1013: --
1011:
1012: ELSE
1013: --
1014: IF (l_debug <> -1) THEN
1015: rlm_core_sv.dlog(C_DEBUG,'Update Group');
1016: END IF;
1017: --
1018: -- JAUTOMO: Update rlm_schedule_lines first before rlm_interface_lines
1019: --
1032: AND industry_attribute15 = x_Group_rec.industry_attribute15
1033: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1034: AND customer_item_id = x_Group_rec.customer_item_id
1035: AND inventory_item_id = x_Group_rec.inventory_item_id
1036: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1037: rlm_core_sv.k_PS_PROCESSED,
1038: rlm_core_sv.k_PS_FROZEN_FIRM));
1039: --
1040: IF (l_debug <> -1) THEN
1033: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1034: AND customer_item_id = x_Group_rec.customer_item_id
1035: AND inventory_item_id = x_Group_rec.inventory_item_id
1036: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1037: rlm_core_sv.k_PS_PROCESSED,
1038: rlm_core_sv.k_PS_FROZEN_FIRM));
1039: --
1040: IF (l_debug <> -1) THEN
1041: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1034: AND customer_item_id = x_Group_rec.customer_item_id
1035: AND inventory_item_id = x_Group_rec.inventory_item_id
1036: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1037: rlm_core_sv.k_PS_PROCESSED,
1038: rlm_core_sv.k_PS_FROZEN_FIRM));
1039: --
1040: IF (l_debug <> -1) THEN
1041: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1042: END IF;
1037: rlm_core_sv.k_PS_PROCESSED,
1038: rlm_core_sv.k_PS_FROZEN_FIRM));
1039: --
1040: IF (l_debug <> -1) THEN
1041: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1042: END IF;
1043: --
1044: UPDATE rlm_interface_lines
1045: SET process_status = x_Status,
1052: AND industry_attribute15 = x_Group_rec.industry_attribute15
1053: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1054: AND customer_item_id = x_Group_rec.customer_item_id
1055: AND inventory_item_id = x_Group_rec.inventory_item_id
1056: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1057: rlm_core_sv.k_PS_PROCESSED,
1058: rlm_core_sv.k_PS_FROZEN_FIRM);
1059: --
1060: IF (l_debug <> -1) THEN
1053: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1054: AND customer_item_id = x_Group_rec.customer_item_id
1055: AND inventory_item_id = x_Group_rec.inventory_item_id
1056: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1057: rlm_core_sv.k_PS_PROCESSED,
1058: rlm_core_sv.k_PS_FROZEN_FIRM);
1059: --
1060: IF (l_debug <> -1) THEN
1061: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
1054: AND customer_item_id = x_Group_rec.customer_item_id
1055: AND inventory_item_id = x_Group_rec.inventory_item_id
1056: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1057: rlm_core_sv.k_PS_PROCESSED,
1058: rlm_core_sv.k_PS_FROZEN_FIRM);
1059: --
1060: IF (l_debug <> -1) THEN
1061: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
1062: END IF;
1057: rlm_core_sv.k_PS_PROCESSED,
1058: rlm_core_sv.k_PS_FROZEN_FIRM);
1059: --
1060: IF (l_debug <> -1) THEN
1061: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
1062: END IF;
1063: --
1064: END IF;
1065: --
1063: --
1064: END IF;
1065: --
1066: IF (l_debug <> -1) THEN
1067: rlm_core_sv.dpop(C_SDEBUG);
1068: END IF;
1069: --
1070: EXCEPTION
1071: --
1073: --
1074: rlm_message_sv.sql_error('rlm_dp_sv.UpdateGroupPS', v_Progress);
1075: --
1076: IF (l_debug <> -1) THEN
1077: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
1078: END IF;
1079: --
1080: raise;
1081: --
1103: --
1104: BEGIN
1105: --
1106: IF (l_debug <> -1) THEN
1107: rlm_core_sv.dpush(C_SDEBUG,'UpdateHeaderPS');
1108: rlm_core_sv.dlog(C_DEBUG,'x_HeaderId',x_HeaderId);
1109: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
1110: END IF;
1111: --
1104: BEGIN
1105: --
1106: IF (l_debug <> -1) THEN
1107: rlm_core_sv.dpush(C_SDEBUG,'UpdateHeaderPS');
1108: rlm_core_sv.dlog(C_DEBUG,'x_HeaderId',x_HeaderId);
1109: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
1110: END IF;
1111: --
1112: SELECT schedule_header_id
1105: --
1106: IF (l_debug <> -1) THEN
1107: rlm_core_sv.dpush(C_SDEBUG,'UpdateHeaderPS');
1108: rlm_core_sv.dlog(C_DEBUG,'x_HeaderId',x_HeaderId);
1109: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
1110: END IF;
1111: --
1112: SELECT schedule_header_id
1113: INTO v_SchedHeaderId
1114: FROM rlm_interface_headers
1115: WHERE header_id = x_HeaderId;
1116: --
1117: IF (l_debug <> -1) THEN
1118: rlm_core_sv.dlog(C_DEBUG, 'v_SchedHeaderId', v_SchedHeaderId);
1119: END IF;
1120: --
1121: -- Clearup the header status when no data found in the Group ref
1122: -- if the no of error recs = tot recs then all errors
1128: FROM rlm_interface_lines
1129: WHERE header_id = x_HeaderId;
1130: --
1131: IF (l_debug <> -1) THEN
1132: rlm_core_sv.dlog(C_DEBUG,'v_tot_recs', v_tot_recs);
1133: END IF;
1134: --
1135: SELECT count(*)
1136: INTO v_error_recs
1135: SELECT count(*)
1136: INTO v_error_recs
1137: FROM rlm_interface_lines
1138: WHERE header_id = x_HeaderId
1139: AND process_status = rlm_core_sv.k_PS_ERROR;
1140: --
1141: IF (l_debug <> -1) THEN
1142: rlm_core_sv.dlog(C_DEBUG,'v_error_recs', v_error_recs);
1143: END IF;
1138: WHERE header_id = x_HeaderId
1139: AND process_status = rlm_core_sv.k_PS_ERROR;
1140: --
1141: IF (l_debug <> -1) THEN
1142: rlm_core_sv.dlog(C_DEBUG,'v_error_recs', v_error_recs);
1143: END IF;
1144: --
1145: SELECT count(*)
1146: INTO v_proc_recs
1145: SELECT count(*)
1146: INTO v_proc_recs
1147: FROM rlm_interface_lines
1148: WHERE header_id = x_HeaderId
1149: AND process_status = rlm_core_sv.k_PS_PROCESSED;
1150: --
1151: IF (l_debug <> -1) THEN
1152: rlm_core_sv.dlog(C_DEBUG,'v_proc_recs', v_proc_recs);
1153: END IF;
1148: WHERE header_id = x_HeaderId
1149: AND process_status = rlm_core_sv.k_PS_PROCESSED;
1150: --
1151: IF (l_debug <> -1) THEN
1152: rlm_core_sv.dlog(C_DEBUG,'v_proc_recs', v_proc_recs);
1153: END IF;
1154: --
1155: SELECT COUNT(1)
1156: INTO v_proc_sch
1154: --
1155: SELECT COUNT(1)
1156: INTO v_proc_sch
1157: FROM rlm_schedule_lines
1158: WHERE process_status = rlm_core_sv.k_PS_PROCESSED
1159: AND header_id = v_SchedHeaderId;
1160: --
1161: IF (l_debug <> -1) THEN
1162: rlm_core_sv.dlog(C_DEBUG,'v_proc_sch', v_proc_sch);
1158: WHERE process_status = rlm_core_sv.k_PS_PROCESSED
1159: AND header_id = v_SchedHeaderId;
1160: --
1161: IF (l_debug <> -1) THEN
1162: rlm_core_sv.dlog(C_DEBUG,'v_proc_sch', v_proc_sch);
1163: END IF;
1164: --
1165: IF v_error_recs = v_tot_recs THEN
1166: --
1165: IF v_error_recs = v_tot_recs THEN
1166: --
1167: IF v_proc_sch = 0 THEN
1168: --
1169: x_HeaderStatus := rlm_core_sv.k_PS_ERROR;
1170: --
1171: ELSE
1172: --
1173: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1169: x_HeaderStatus := rlm_core_sv.k_PS_ERROR;
1170: --
1171: ELSE
1172: --
1173: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1174: --
1175: END IF;
1176: --
1177: ELSIF v_proc_recs = v_tot_recs THEN
1175: END IF;
1176: --
1177: ELSIF v_proc_recs = v_tot_recs THEN
1178: --
1179: x_HeaderStatus := rlm_core_sv.k_PS_PROCESSED;
1180: --
1181: ELSE
1182: --
1183: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1179: x_HeaderStatus := rlm_core_sv.k_PS_PROCESSED;
1180: --
1181: ELSE
1182: --
1183: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1184: --
1185: END IF;
1186: --
1187: IF (l_debug <> -1) THEN
1184: --
1185: END IF;
1186: --
1187: IF (l_debug <> -1) THEN
1188: rlm_core_sv.dlog(C_DEBUG,'x_HeaderStatus', x_HeaderStatus);
1189: END IF;
1190: --
1191: UPDATE rlm_interface_headers
1192: SET process_status = x_HeaderStatus,
1198: WHERE header_id = x_HeaderId;
1199: --
1200: --
1201: IF (l_debug <> -1) THEN
1202: rlm_core_sv.dlog(C_DEBUG,'Number of Interface header updated',SQL%ROWCOUNT);
1203: END IF;
1204: --
1205: UPDATE rlm_schedule_headers
1206: SET process_status = x_HeaderStatus,
1211: PROGRAM_UPDATE_DATE = sysdate
1212: WHERE header_id = v_SchedHeaderId ;
1213: --
1214: IF (l_debug <> -1) THEN
1215: rlm_core_sv.dlog(C_DEBUG,'Number of schedule header updated',SQL%ROWCOUNT);
1216: rlm_core_sv.dpop(C_SDEBUG);
1217: END IF;
1218: --
1219: EXCEPTION
1212: WHERE header_id = v_SchedHeaderId ;
1213: --
1214: IF (l_debug <> -1) THEN
1215: rlm_core_sv.dlog(C_DEBUG,'Number of schedule header updated',SQL%ROWCOUNT);
1216: rlm_core_sv.dpop(C_SDEBUG);
1217: END IF;
1218: --
1219: EXCEPTION
1220: --
1220: --
1221: WHEN NO_DATA_FOUND THEN
1222: --
1223: IF (l_debug <> -1) THEN
1224: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1225: rlm_core_sv.dpop(C_SDEBUG);
1226: END IF;
1227: --
1228: WHEN OTHERS THEN
1221: WHEN NO_DATA_FOUND THEN
1222: --
1223: IF (l_debug <> -1) THEN
1224: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1225: rlm_core_sv.dpop(C_SDEBUG);
1226: END IF;
1227: --
1228: WHEN OTHERS THEN
1229: --
1229: --
1230: rlm_message_sv.sql_error('rlm_dp_sv.UpdateHeaderStatus', x_progress);
1231: --
1232: IF (l_debug <> -1) THEN
1233: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
1234: END IF;
1235: --
1236: END UpdateHeaderPS;
1237:
1258: --
1259: BEGIN
1260: --
1261: IF (l_debug <> -1) THEN
1262: rlm_core_sv.dpush('RunExceptionReport');
1263: rlm_core_sv.dlog('Request Id', x_requestId);
1264: rlm_core_sv.dlog('Org ID', x_OrgId);
1265: END IF;
1266: --
1259: BEGIN
1260: --
1261: IF (l_debug <> -1) THEN
1262: rlm_core_sv.dpush('RunExceptionReport');
1263: rlm_core_sv.dlog('Request Id', x_requestId);
1264: rlm_core_sv.dlog('Org ID', x_OrgId);
1265: END IF;
1266: --
1267: /** If there are Errors/warnings then only submit Concurrent Request for
1260: --
1261: IF (l_debug <> -1) THEN
1262: rlm_core_sv.dpush('RunExceptionReport');
1263: rlm_core_sv.dlog('Request Id', x_requestId);
1264: rlm_core_sv.dlog('Org ID', x_OrgId);
1265: END IF;
1266: --
1267: /** If there are Errors/warnings then only submit Concurrent Request for
1268: Exception Report. ****/
1326: NULL,
1327: NULL);
1328: --
1329: IF (l_debug <> -1) THEN
1330: rlm_core_sv.dlog('Report Request Id ', x_request_id);
1331: END IF;
1332: --
1333: END IF;
1334: --
1332: --
1333: END IF;
1334: --
1335: IF (l_debug <> -1) THEN
1336: rlm_core_sv.dpop(C_SDEBUG);
1337: END IF;
1338: --
1339: EXCEPTION
1340: --
1340: --
1341: WHEN NO_DATA_FOUND THEN
1342: --
1343: IF (l_debug <> -1) THEN
1344: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1345: rlm_core_sv.dpop(C_SDEBUG);
1346: END IF;
1347: --
1348: WHEN OTHERS THEN
1341: WHEN NO_DATA_FOUND THEN
1342: --
1343: IF (l_debug <> -1) THEN
1344: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1345: rlm_core_sv.dpop(C_SDEBUG);
1346: END IF;
1347: --
1348: WHEN OTHERS THEN
1349: --
1349: --
1350: rlm_message_sv.sql_error('rlm_dp_sv.RunExceptionReport', x_progress);
1351: --
1352: IF (l_debug <> -1) THEN
1353: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
1354: END IF;
1355: --
1356: END RunExceptionReport;
1357:
1372: --
1373: BEGIN
1374: --
1375: IF (l_debug <> -1) THEN
1376: rlm_core_sv.dpush(C_SDEBUG, 'CheckForecast');
1377: END IF;
1378: --
1379: --
1380: SELECT count(*) into v_Count
1383: AND industry_attribute15 = x_Group_rec.industry_attribute15
1384: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1385: AND customer_item_id = x_Group_rec.customer_item_id
1386: AND item_detail_type = rlm_rd_sv.k_MRP_FORECAST
1387: AND process_status = rlm_core_sv.k_PS_AVAILABLE;
1388: --
1389: IF (l_debug <> -1) THEN
1390: rlm_core_sv.dlog('No of Forecast Lines for this group', v_Count);
1391: rlm_core_sv.dpop(C_SDEBUG);
1386: AND item_detail_type = rlm_rd_sv.k_MRP_FORECAST
1387: AND process_status = rlm_core_sv.k_PS_AVAILABLE;
1388: --
1389: IF (l_debug <> -1) THEN
1390: rlm_core_sv.dlog('No of Forecast Lines for this group', v_Count);
1391: rlm_core_sv.dpop(C_SDEBUG);
1392: END IF;
1393:
1394: IF(v_Count>0) THEN
1387: AND process_status = rlm_core_sv.k_PS_AVAILABLE;
1388: --
1389: IF (l_debug <> -1) THEN
1390: rlm_core_sv.dlog('No of Forecast Lines for this group', v_Count);
1391: rlm_core_sv.dpop(C_SDEBUG);
1392: END IF;
1393:
1394: IF(v_Count>0) THEN
1395: return (TRUE);
1404: --
1405: rlm_message_sv.sql_error('rlm_dp_sv.CheckForecast', v_Progress);
1406: --
1407: IF (l_debug <> -1) THEN
1408: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
1409: END IF;
1410: --
1411: raise;
1412: --
1433: FROM rlm_interface_headers rih,
1434: rlm_interface_lines_all ril
1435: WHERE ril.header_id = x_header_id
1436: AND ril.header_id = rih.header_id
1437: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1438: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1439: AND rih.org_id = ril.org_id
1440: GROUP BY ril.order_header_id,ril.blanket_number ;
1441: --
1434: rlm_interface_lines_all ril
1435: WHERE ril.header_id = x_header_id
1436: AND ril.header_id = rih.header_id
1437: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1438: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1439: AND rih.org_id = ril.org_id
1440: GROUP BY ril.order_header_id,ril.blanket_number ;
1441: --
1442: BEGIN
1444: -- Distribute groups among processes by marking lines
1445: -- with a child process index
1446: --
1447: IF (l_debug <> -1) THEN
1448: rlm_core_sv.dpush(C_SDEBUG, 'CreateChildGroups');
1449: rlm_core_sv.dlog(C_DEBUG, 'header Id', x_header_id);
1450: rlm_core_sv.dlog(C_DEBUG, 'Input num of child processes', x_num_child);
1451: END IF;
1452: --
1445: -- with a child process index
1446: --
1447: IF (l_debug <> -1) THEN
1448: rlm_core_sv.dpush(C_SDEBUG, 'CreateChildGroups');
1449: rlm_core_sv.dlog(C_DEBUG, 'header Id', x_header_id);
1450: rlm_core_sv.dlog(C_DEBUG, 'Input num of child processes', x_num_child);
1451: END IF;
1452: --
1453: v_index:=1;
1446: --
1447: IF (l_debug <> -1) THEN
1448: rlm_core_sv.dpush(C_SDEBUG, 'CreateChildGroups');
1449: rlm_core_sv.dlog(C_DEBUG, 'header Id', x_header_id);
1450: rlm_core_sv.dlog(C_DEBUG, 'Input num of child processes', x_num_child);
1451: END IF;
1452: --
1453: v_index:=1;
1454: v_group_count:=0;
1497: --
1498: END IF;
1499: --
1500: IF (l_debug <> -1) THEN
1501: rlm_core_sv.dlog(C_DEBUG, 'Actual num of child processes', x_num_child);
1502: rlm_core_sv.dpop(C_SDEBUG);
1503: END IF;
1504: --
1505: -- end of marking lines with child process index
1498: END IF;
1499: --
1500: IF (l_debug <> -1) THEN
1501: rlm_core_sv.dlog(C_DEBUG, 'Actual num of child processes', x_num_child);
1502: rlm_core_sv.dpop(C_SDEBUG);
1503: END IF;
1504: --
1505: -- end of marking lines with child process index
1506: --
1508: --
1509: When others then
1510: --
1511: IF (l_debug <> -1) THEN
1512: rlm_core_sv.dpop(C_SDEBUG, SUBSTRB(SQLERRM, 1, 200));
1513: END IF;
1514: --
1515: raise;
1516:
1535: --
1536: BEGIN
1537: --
1538: IF (l_debug <> -1) THEN
1539: rlm_core_sv.dpush(C_SDEBUG, 'SubmitChildRequests');
1540: rlm_core_sv.dlog(C_DEBUG, 'Current Org', MO_GLOBAL.get_current_org_id);
1541: END IF;
1542: --
1543: v_OrgId := MO_GLOBAL.get_current_org_id;
1536: BEGIN
1537: --
1538: IF (l_debug <> -1) THEN
1539: rlm_core_sv.dpush(C_SDEBUG, 'SubmitChildRequests');
1540: rlm_core_sv.dlog(C_DEBUG, 'Current Org', MO_GLOBAL.get_current_org_id);
1541: END IF;
1542: --
1543: v_OrgId := MO_GLOBAL.get_current_org_id;
1544: --
1560: v_msg_text:='Submitting DSP Child Request: '||x_child_req_id(i);
1561: fnd_file.put_line(fnd_file.log, v_msg_text);
1562: --
1563: IF (l_debug <> -1) THEN
1564: rlm_core_sv.dlog(C_DEBUG, 'DSP Child request', x_child_req_id(i));
1565: END IF;
1566: --
1567: END LOOP;
1568: --
1568: --
1569: COMMIT;
1570: --
1571: IF (l_debug <> -1) THEN
1572: rlm_core_sv.dpop(C_SDEBUG);
1573: END IF;
1574: --
1575: EXCEPTION
1576: --
1576: --
1577: When others then
1578: --
1579: IF (l_debug <> -1) THEN
1580: rlm_core_sv.dpop(C_SDEBUG);
1581: END IF;
1582: --
1583: raise;
1584: --
1606: --
1607: BEGIN
1608: --
1609: IF (l_debug <> -1) THEN
1610: rlm_core_sv.dpush(C_SDEBUG, 'ProcessChildRequests');
1611: rlm_core_sv.dlog(C_DEBUG, 'Total number of child requests',
1612: x_child_req_id.COUNT);
1613: END IF;
1614: --
1607: BEGIN
1608: --
1609: IF (l_debug <> -1) THEN
1610: rlm_core_sv.dpush(C_SDEBUG, 'ProcessChildRequests');
1611: rlm_core_sv.dlog(C_DEBUG, 'Total number of child requests',
1612: x_child_req_id.COUNT);
1613: END IF;
1614: --
1615: /* parent process has to wait until each child request
1635: --
1636: /* update group status for all lines with child req id*/
1637: --
1638: IF (l_debug <> -1) THEN
1639: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1640: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1641: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1642: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1643: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1636: /* update group status for all lines with child req id*/
1637: --
1638: IF (l_debug <> -1) THEN
1639: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1640: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1641: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1642: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1643: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1644: END IF;
1637: --
1638: IF (l_debug <> -1) THEN
1639: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1640: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1641: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1642: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1643: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1644: END IF;
1645: --
1638: IF (l_debug <> -1) THEN
1639: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1640: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1641: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1642: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1643: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1644: END IF;
1645: --
1646: IF(upper(v_reqstatus) <> 'NORMAL') THEN
1639: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1640: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1641: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1642: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1643: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1644: END IF;
1645: --
1646: IF(upper(v_reqstatus) <> 'NORMAL') THEN
1647: --
1645: --
1646: IF(upper(v_reqstatus) <> 'NORMAL') THEN
1647: --
1648: update rlm_interface_lines
1649: set process_status= rlm_core_sv.k_PS_ERROR
1650: where header_id = x_header_id
1651: and dsp_child_process_index = i
1652: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1653: --
1648: update rlm_interface_lines
1649: set process_status= rlm_core_sv.k_PS_ERROR
1650: where header_id = x_header_id
1651: and dsp_child_process_index = i
1652: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1653: --
1654: IF (l_debug <> -1) THEN
1655: rlm_core_sv.dlog(C_DEBUG,'x_header_id', x_header_id);
1656: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1651: and dsp_child_process_index = i
1652: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1653: --
1654: IF (l_debug <> -1) THEN
1655: rlm_core_sv.dlog(C_DEBUG,'x_header_id', x_header_id);
1656: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1657: END IF;
1658: --
1659: update rlm_schedule_lines sch
1652: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1653: --
1654: IF (l_debug <> -1) THEN
1655: rlm_core_sv.dlog(C_DEBUG,'x_header_id', x_header_id);
1656: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1657: END IF;
1658: --
1659: update rlm_schedule_lines sch
1660: set process_status = rlm_core_sv.k_PS_ERROR
1656: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1657: END IF;
1658: --
1659: update rlm_schedule_lines sch
1660: set process_status = rlm_core_sv.k_PS_ERROR
1661: where interface_line_id in
1662: (select line_id
1663: from rlm_interface_lines_all il
1664: where header_id = x_header_id
1662: (select line_id
1663: from rlm_interface_lines_all il
1664: where header_id = x_header_id
1665: and dsp_child_process_index = i
1666: and process_status <> rlm_core_sv.k_PS_PROCESSED);
1667: --
1668: IF (l_debug <> -1) THEN
1669: rlm_core_sv.dlog(C_DEBUG,'No of schedule Lines Updated ', SQL%ROWCOUNT);
1670: END IF;
1665: and dsp_child_process_index = i
1666: and process_status <> rlm_core_sv.k_PS_PROCESSED);
1667: --
1668: IF (l_debug <> -1) THEN
1669: rlm_core_sv.dlog(C_DEBUG,'No of schedule Lines Updated ', SQL%ROWCOUNT);
1670: END IF;
1671: --
1672: END IF;
1673: --
1675: --
1676: END LOOP;
1677: --
1678: IF (l_debug <> -1) THEN
1679: rlm_core_sv.dpop(C_SDEBUG);
1680: END IF;
1681: --
1682: EXCEPTION
1683: --
1683: --
1684: When others then
1685: --
1686: IF (l_debug <> -1) THEN
1687: rlm_core_sv.dpop(C_SDEBUG,'Error: '|| SUBSTR(SQLERRM,1,200));
1688: END IF;
1689: raise;
1690: --
1691: END ProcessChildRequests;
1718: --
1719: rlm_message_sv.populate_req_id;
1720: --
1721: IF (l_debug <> -1) THEN
1722: rlm_core_sv.start_debug;
1723: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1724: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1725: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1726: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1719: rlm_message_sv.populate_req_id;
1720: --
1721: IF (l_debug <> -1) THEN
1722: rlm_core_sv.start_debug;
1723: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1724: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1725: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1726: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1727: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1720: --
1721: IF (l_debug <> -1) THEN
1722: rlm_core_sv.start_debug;
1723: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1724: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1725: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1726: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1727: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1728: END IF;
1721: IF (l_debug <> -1) THEN
1722: rlm_core_sv.start_debug;
1723: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1724: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1725: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1726: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1727: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1728: END IF;
1729: --
1722: rlm_core_sv.start_debug;
1723: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1724: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1725: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1726: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1727: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1728: END IF;
1729: --
1730: -- Initialize retcode to 0 and set to 2 only in case of fatal error
1723: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1724: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1725: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1726: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1727: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1728: END IF;
1729: --
1730: -- Initialize retcode to 0 and set to 2 only in case of fatal error
1731: --
1745: SELECT *
1746: INTO v_sched_rec
1747: FROM rlm_interface_headers_all
1748: WHERE header_id = p_header_id
1749: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1750: rlm_core_sv.k_PS_PARTIAL_PROCESSED);
1751: --
1752: EXCEPTION
1753: --
1746: INTO v_sched_rec
1747: FROM rlm_interface_headers_all
1748: WHERE header_id = p_header_id
1749: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1750: rlm_core_sv.k_PS_PARTIAL_PROCESSED);
1751: --
1752: EXCEPTION
1753: --
1754: WHEN NO_DATA_FOUND THEN
1755: --
1756: UpdateGroupPS(p_header_id,
1757: null,
1758: v_Group_rec,
1759: rlm_core_sv.K_PS_ERROR,
1760: 'ALL');
1761: COMMIT;
1762: --
1763: IF (l_debug <> -1) THEN
1760: 'ALL');
1761: COMMIT;
1762: --
1763: IF (l_debug <> -1) THEN
1764: rlm_core_sv.dpop(C_SDEBUG, 'when others'|| SUBSTR(SQLERRM,1,200));
1765: rlm_core_sv.stop_debug;
1766: END IF;
1767: --
1768: RETURN;
1761: COMMIT;
1762: --
1763: IF (l_debug <> -1) THEN
1764: rlm_core_sv.dpop(C_SDEBUG, 'when others'|| SUBSTR(SQLERRM,1,200));
1765: rlm_core_sv.stop_debug;
1766: END IF;
1767: --
1768: RETURN;
1769: --}
1773: p_header_id,
1774: p_index, k_PARALLEL_DSP);
1775: --
1776: IF (l_debug <> -1) THEN
1777: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1778: rlm_core_sv.dpop(C_SDEBUG);
1779: rlm_core_sv.stop_debug;
1780: END IF;
1781: --
1774: p_index, k_PARALLEL_DSP);
1775: --
1776: IF (l_debug <> -1) THEN
1777: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1778: rlm_core_sv.dpop(C_SDEBUG);
1779: rlm_core_sv.stop_debug;
1780: END IF;
1781: --
1782: EXCEPTION
1775: --
1776: IF (l_debug <> -1) THEN
1777: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1778: rlm_core_sv.dpop(C_SDEBUG);
1779: rlm_core_sv.stop_debug;
1780: END IF;
1781: --
1782: EXCEPTION
1783: --
1785: --
1786: retcode := 2;
1787: --
1788: update rlm_interface_lines
1789: set process_status = rlm_core_sv.k_PS_ERROR
1790: where header_id = p_header_id
1791: and dsp_child_process_index = p_index;
1792: --
1793: update rlm_schedule_lines sch
1790: where header_id = p_header_id
1791: and dsp_child_process_index = p_index;
1792: --
1793: update rlm_schedule_lines sch
1794: set process_status = rlm_core_sv.k_PS_ERROR
1795: where interface_line_id in
1796: (select line_id
1797: from rlm_interface_lines_all il
1798: where header_id = p_header_id
1800: --
1801: COMMIT;
1802: --
1803: IF (l_debug <> -1) THEN
1804: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1805: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1806: rlm_core_sv.dpop(C_SDEBUG);
1807: rlm_core_sv.stop_debug;
1808: END IF;
1801: COMMIT;
1802: --
1803: IF (l_debug <> -1) THEN
1804: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1805: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1806: rlm_core_sv.dpop(C_SDEBUG);
1807: rlm_core_sv.stop_debug;
1808: END IF;
1809: --
1802: --
1803: IF (l_debug <> -1) THEN
1804: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1805: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1806: rlm_core_sv.dpop(C_SDEBUG);
1807: rlm_core_sv.stop_debug;
1808: END IF;
1809: --
1810: END ChildProcess;
1803: IF (l_debug <> -1) THEN
1804: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1805: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1806: rlm_core_sv.dpop(C_SDEBUG);
1807: rlm_core_sv.stop_debug;
1808: END IF;
1809: --
1810: END ChildProcess;
1811:
1865: rlm_interface_lines_all ril
1866: WHERE ril.header_id = p_header_id
1867: AND ril.header_id = rih.header_id
1868: AND nvl(ril.dsp_child_process_index,-99) =nvl(p_index, -99)
1869: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1870: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1871: AND rih.org_id = ril.org_id
1872: GROUP BY rih.customer_id,
1873: ril.ship_from_org_id,
1866: WHERE ril.header_id = p_header_id
1867: AND ril.header_id = rih.header_id
1868: AND nvl(ril.dsp_child_process_index,-99) =nvl(p_index, -99)
1869: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1870: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1871: AND rih.org_id = ril.org_id
1872: GROUP BY rih.customer_id,
1873: ril.ship_from_org_id,
1874: ril.ship_to_address_id,
1888: --
1889: BEGIN
1890: --
1891: IF (l_debug <> -1) THEN
1892: rlm_core_sv.dpush(C_SDEBUG, 'PROCESSGROUPS');
1893: rlm_core_sv.dlog(C_DEBUG, 'DSP Mode', p_dspMode);
1894: END IF;
1895: --
1896: v_sched_rec := p_sched_rec;
1889: BEGIN
1890: --
1891: IF (l_debug <> -1) THEN
1892: rlm_core_sv.dpush(C_SDEBUG, 'PROCESSGROUPS');
1893: rlm_core_sv.dlog(C_DEBUG, 'DSP Mode', p_dspMode);
1894: END IF;
1895: --
1896: v_sched_rec := p_sched_rec;
1897: --
1923: --
1924: SAVEPOINT GroupDemand;
1925: --
1926: IF (l_debug <> -1) THEN
1927: rlm_core_sv.dlog(C_DEBUG, '***** Processing new group ****');
1928: END IF;
1929: --
1930: SELECT hsecs INTO l_md_start_time from v$timer;
1931: --
1945: SELECT hsecs INTO l_md_end_time from v$timer;
1946: l_md_total:=l_md_total+(l_md_end_time-l_md_start_time)/100;
1947: --
1948: IF (l_debug <> -1) THEN
1949: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1950: END IF;
1951: --
1952: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1953: --
1948: IF (l_debug <> -1) THEN
1949: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1950: END IF;
1951: --
1952: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1953: --
1954: RAISE e_MDFailed;
1955: --
1956: END IF;
1965: SELECT hsecs INTO l_mf_end_time from v$timer;
1966: l_mf_total:=l_mf_total+(l_mf_end_time-l_mf_start_time)/100;
1967: --
1968: IF (l_debug <> -1) THEN
1969: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1970: END IF;
1971: --
1972: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1973: --
1968: IF (l_debug <> -1) THEN
1969: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1970: END IF;
1971: --
1972: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1973: --
1974: RAISE e_FDFailed;
1975: --
1976: END IF;
1984: --
1985: SELECT hsecs INTO l_rd_end_time from v$timer;
1986: l_rd_total:=l_rd_total+(l_rd_end_time-l_rd_start_time)/100;
1987: --
1988: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1989: --
1990: RAISE e_RDFailed;
1991: --
1992: END IF;
1993: --
1994: UpdateGroupPS(v_Sched_rec.header_id,
1995: v_Sched_rec.schedule_header_id,
1996: v_Group_rec,
1997: rlm_core_sv.k_PS_PROCESSED);
1998: --
1999: COMMIT;
2000: --
2001: IF (p_dspMode = k_SEQ_DSP) THEN
2002: --
2003: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2004: --
2005: IF (l_debug <> -1) THEN
2006: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header after call ProcessGroups');
2007: END IF;
2008: --
2009: RAISE e_headerLocked;
2010: --
2016: --
2017: WHEN e_MDFailed THEN
2018: --
2019: IF (l_debug <> -1) THEN
2020: rlm_core_sv.dlog(C_DEBUG,'Manage Demand failed group');
2021: END IF;
2022: --
2023: ROLLBACK TO GroupDemand;
2024: --
2024: --
2025: UpdateGroupPS(v_Sched_rec.header_id,
2026: v_Sched_rec.schedule_header_id,
2027: v_Group_rec,
2028: rlm_core_sv.k_PS_ERROR);
2029: -- Bug#: 2771756 - Start
2030: -- Bug 4198330 added group information
2031: rlm_core_sv.dlog(C_DEBUG,'Manage Demand remove messages');
2032: rlm_message_sv.removeMessages(
2027: v_Group_rec,
2028: rlm_core_sv.k_PS_ERROR);
2029: -- Bug#: 2771756 - Start
2030: -- Bug 4198330 added group information
2031: rlm_core_sv.dlog(C_DEBUG,'Manage Demand remove messages');
2032: rlm_message_sv.removeMessages(
2033: p_header_id => p_header_id,
2034: p_message => 'RLM_RSO_CREATION_INFO',
2035: p_message_type => 'I',
2046: --
2047: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2048: --
2049: IF (l_debug <> -1) THEN
2050: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_MDFailed');
2051: END IF;
2052: --
2053: RAISE e_HeaderLocked;
2054: --
2058: --
2059: WHEN e_FDFailed THEN
2060: --
2061: IF (l_debug <> -1) THEN
2062: rlm_core_sv.dlog(C_DEBUG,'Forecast Processor failed group');
2063: END IF;
2064: --
2065: ROLLBACK TO GroupDemand;
2066: --
2066: --
2067: UpdateGroupPS(v_Sched_rec.header_id,
2068: v_Sched_rec.schedule_header_id,
2069: v_Group_rec,
2070: rlm_core_sv.k_PS_ERROR);
2071: -- Bug#: 2771756 - Start
2072: -- Start bug 4198330 added grouping information
2073: rlm_message_sv.removeMessages(
2074: p_header_id => p_header_id,
2087: --
2088: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2089: --
2090: IF (l_debug <> -1) THEN
2091: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_FDFailed');
2092: END IF;
2093: --
2094: RAISE e_HeaderLocked;
2095: --
2099: --
2100: WHEN e_RDFailed THEN
2101: --
2102: IF (l_debug <> -1) THEN
2103: rlm_core_sv.dlog(C_DEBUG,'Reconcile Demand failed group');
2104: END IF;
2105: --
2106: ROLLBACK TO GroupDemand;
2107: --
2107: --
2108: UpdateGroupPS(v_Sched_rec.header_id,
2109: v_Sched_rec.schedule_header_id,
2110: v_Group_rec,
2111: rlm_core_sv.k_PS_ERROR);
2112: -- Bug#: 2771756 - Start
2113: -- Start bug 4198330 added grouping information
2114: rlm_core_sv.dlog(C_DEBUG,' before remove messages');
2115: rlm_message_sv.removeMessages(
2110: v_Group_rec,
2111: rlm_core_sv.k_PS_ERROR);
2112: -- Bug#: 2771756 - Start
2113: -- Start bug 4198330 added grouping information
2114: rlm_core_sv.dlog(C_DEBUG,' before remove messages');
2115: rlm_message_sv.removeMessages(
2116: p_header_id => p_header_id,
2117: p_message => 'RLM_RSO_CREATION_INFO',
2118: p_message_type => 'I',
2129: --
2130: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2131: --
2132: IF (l_debug <> -1) THEN
2133: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_RDFailed');
2134: END IF;
2135: --
2136: RAISE e_HeaderLocked;
2137: --
2141: --
2142: WHEN e_HeaderLocked THEN
2143: --
2144: IF (l_debug <> -1) THEN
2145: rlm_core_sv.dlog(C_DEBUG, 'e_HeaderLocked grp. level exception handler');
2146: END IF;
2147: --
2148: RAISE e_HeaderLocked;
2149: --
2149: --
2150: WHEN OTHERS THEN
2151: --
2152: IF (l_debug <> -1) THEN
2153: rlm_core_sv.dlog(C_DEBUG, 'ERROR::', SUBSTR(SQLERRM,1,200));
2154: END IF;
2155: --
2156: ROLLBACK TO GroupDemand;
2157: --
2157: --
2158: UpdateGroupPS(v_Sched_rec.header_id,
2159: v_Sched_rec.schedule_header_id,
2160: v_Group_rec,
2161: rlm_core_sv.k_PS_ERROR);
2162: -- Bug#: 2771756 - Start
2163: -- Start bug 4198330 added grouping information
2164: rlm_message_sv.removeMessages(
2165: p_header_id => p_header_id,
2178: --
2179: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2180: --
2181: IF (l_debug <> -1) THEN
2182: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_MDFailed');
2183: END IF;
2184: --
2185: RAISE e_HeaderLocked;
2186: --
2210: --
2211: END IF;
2212: --
2213: IF (l_debug <> -1) THEN
2214: rlm_core_sv.dpop(C_SDEBUG);
2215: END IF;
2216: --
2217: EXCEPTION
2218: --
2222: CLOSE c_group_cur; --bug 4570658
2223: END IF;
2224:
2225: IF (l_debug <> -1) THEN
2226: rlm_core_sv.dlog(C_DEBUG, 'e_HeaderLocked Exception in ProcessGroups');
2227: rlm_core_sv.dpop(C_SDEBUG);
2228: END IF;
2229: --
2230: RAISE e_HeaderLocked;
2223: END IF;
2224:
2225: IF (l_debug <> -1) THEN
2226: rlm_core_sv.dlog(C_DEBUG, 'e_HeaderLocked Exception in ProcessGroups');
2227: rlm_core_sv.dpop(C_SDEBUG);
2228: END IF;
2229: --
2230: RAISE e_HeaderLocked;
2231: --
2232: WHEN OTHERS THEN
2233: --
2234: IF (l_debug <> -1) THEN
2235: rlm_message_sv.dump_messages(p_header_id);
2236: rlm_core_sv.dpop(C_SDEBUG, 'Error: '||SUBSTR(SQLERRM,1,200));
2237: END IF;
2238: --
2239: raise;
2240: --