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: --
108: -- bug 3756599
109: v_where_clause := '
110: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) AND header_id = :p_header_id ';
111:
112: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
113: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
114: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
115: g_BindVarTab(g_BindVarTab.COUNT+1) := p_header_id;
116: --
109: v_where_clause := '
110: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) AND header_id = :p_header_id ';
111:
112: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
113: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
114: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
115: g_BindVarTab(g_BindVarTab.COUNT+1) := p_header_id;
116: --
117: ELSE
110: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) AND header_id = :p_header_id ';
111:
112: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
113: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
114: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
115: g_BindVarTab(g_BindVarTab.COUNT+1) := p_header_id;
116: --
117: ELSE
118: --
119: v_from_clause := '
120: FROM rlm_interface_headers hdr';
121: v_where_clause := '
122: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) ';
123: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
124: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
125: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
126: --
127: -- Addition of customer to the where clause
120: FROM rlm_interface_headers hdr';
121: v_where_clause := '
122: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) ';
123: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
124: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
125: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
126: --
127: -- Addition of customer to the where clause
128: --
121: v_where_clause := '
122: WHERE hdr.process_status IN (:k_PS_AVAILABLE, :k_PS_PARTIAL_PROCESSED, :k_PS_ERROR) ';
123: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_AVAILABLE;
124: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
125: g_BindVarTab(g_BindVarTab.COUNT+1) := rlm_core_sv.k_PS_ERROR;
126: --
127: -- Addition of customer to the where clause
128: --
129: IF (p_from_customer_ext IS NOT NULL) THEN
203: -- stype
204: g_order_by_schedule_type := p_order_by_schedule_type;
205: --
206: IF (l_debug <> -1) THEN
207: rlm_core_sv.dlog(C_DEBUG,'g_order_by_schedule_type',g_order_by_schedule_type);
208: END IF;
209: --
210: IF g_order_by_schedule_type = 'N' THEN
211: --
248: || v_where_clause
249: || v_order_clause;
250: --
251: IF (l_debug <> -1) THEN
252: rlm_core_sv.dlog(C_DEBUG,'The select Statement is:
253: ', v_Statement);
254: END IF;
255: --
256: IF (l_debug <> -1) THEN
253: ', v_Statement);
254: END IF;
255: --
256: IF (l_debug <> -1) THEN
257: rlm_core_sv.dlog(C_DEBUG,'g_BindVarTab.COUNT',g_BindVarTab.COUNT );
258: END IF;
259: --
260: RLM_CORE_SV.OpenDynamicCursor(c_demand, v_statement, g_BindVarTab);
261: --
256: IF (l_debug <> -1) THEN
257: rlm_core_sv.dlog(C_DEBUG,'g_BindVarTab.COUNT',g_BindVarTab.COUNT );
258: END IF;
259: --
260: RLM_CORE_SV.OpenDynamicCursor(c_demand, v_statement, g_BindVarTab);
261: --
262: LOOP
263: BEGIN
264: --
266: --
267: FETCH c_demand INTO v_header_id, v_header_ps, edi_test_indicator;
268: --
269: IF (l_debug <> -1) THEN
270: rlm_core_sv.dlog(C_DEBUG, '==============================');
271: rlm_core_sv.dlog(C_DEBUG,'Header Id:', v_header_id);
272: rlm_core_sv.dlog(C_DEBUG,'v_header_ps:', v_header_ps);
273: END IF;
274: --
267: FETCH c_demand INTO v_header_id, v_header_ps, edi_test_indicator;
268: --
269: IF (l_debug <> -1) THEN
270: rlm_core_sv.dlog(C_DEBUG, '==============================');
271: rlm_core_sv.dlog(C_DEBUG,'Header Id:', v_header_id);
272: rlm_core_sv.dlog(C_DEBUG,'v_header_ps:', v_header_ps);
273: END IF;
274: --
275: EXIT WHEN c_demand%NOTFOUND;
268: --
269: IF (l_debug <> -1) THEN
270: rlm_core_sv.dlog(C_DEBUG, '==============================');
271: rlm_core_sv.dlog(C_DEBUG,'Header Id:', v_header_id);
272: rlm_core_sv.dlog(C_DEBUG,'v_header_ps:', v_header_ps);
273: END IF;
274: --
275: EXIT WHEN c_demand%NOTFOUND;
276: --
280: --
281: RLM_FORECAST_SV.k_REPLACE_FLAG := TRUE;
282: RLM_FORECAST_SV.g_designator_tab.delete;
283:
284: IF v_header_ps IN (rlm_core_sv.k_PS_ERROR,
285: rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
286: --
287: update rlm_interface_headers_all
288: set process_status = rlm_core_sv.k_PS_AVAILABLE
281: RLM_FORECAST_SV.k_REPLACE_FLAG := TRUE;
282: RLM_FORECAST_SV.g_designator_tab.delete;
283:
284: IF v_header_ps IN (rlm_core_sv.k_PS_ERROR,
285: rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
286: --
287: update rlm_interface_headers_all
288: set process_status = rlm_core_sv.k_PS_AVAILABLE
289: where header_id = v_header_id;
284: IF v_header_ps IN (rlm_core_sv.k_PS_ERROR,
285: rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
286: --
287: update rlm_interface_headers_all
288: set process_status = rlm_core_sv.k_PS_AVAILABLE
289: where header_id = v_header_id;
290: --
291: IF (l_debug <> -1) THEN
292: rlm_core_sv.dlog(C_DEBUG,' No of headers updated:', SQL%ROWCOUNT);
288: set process_status = rlm_core_sv.k_PS_AVAILABLE
289: where header_id = v_header_id;
290: --
291: IF (l_debug <> -1) THEN
292: rlm_core_sv.dlog(C_DEBUG,' No of headers updated:', SQL%ROWCOUNT);
293: END IF;
294: --
295: update rlm_interface_lines
296: set process_status = rlm_core_sv.k_PS_AVAILABLE,
292: rlm_core_sv.dlog(C_DEBUG,' No of headers updated:', SQL%ROWCOUNT);
293: END IF;
294: --
295: update rlm_interface_lines
296: set process_status = rlm_core_sv.k_PS_AVAILABLE,
297: dsp_child_process_index = NULL
298: where header_id = v_header_id
299: and process_status = rlm_core_sv.k_PS_ERROR;
300: --
295: update rlm_interface_lines
296: set process_status = rlm_core_sv.k_PS_AVAILABLE,
297: dsp_child_process_index = NULL
298: where header_id = v_header_id
299: and process_status = rlm_core_sv.k_PS_ERROR;
300: --
301: IF (l_debug <> -1) THEN
302: rlm_core_sv.dlog(C_DEBUG,' No of lines updated:', SQL%ROWCOUNT);
303: END IF;
298: where header_id = v_header_id
299: and process_status = rlm_core_sv.k_PS_ERROR;
300: --
301: IF (l_debug <> -1) THEN
302: rlm_core_sv.dlog(C_DEBUG,' No of lines updated:', SQL%ROWCOUNT);
303: END IF;
304: --
305: --Bugfix 6453415 Start <
306: delete from rlm_demand_exceptions rde
311: or exception_level = 'E');
312: --Bugfix 6453415 End
313: --
314: IF (l_debug <> -1) THEN
315: rlm_core_sv.dlog(C_DEBUG,' No of demand exceptions lines deleted:', SQL%ROWCOUNT);
316: END IF;
317: --
318: --Bugfix 6453415 Start
319: update rlm_demand_exceptions
325: --
326: fnd_profile.get('RLM_WF_ENABLED', v_WF_Enabled);
327: --
328: IF (l_debug <> -1) THEN
329: rlm_core_sv.dlog(C_DEBUG,'Workflow Enabled set to: ', v_WF_Enabled);
330: END IF;
331: --
332: v_num_child := p_child_processes;
333: --
339: rlm_validatedemand_sv.GroupValidateDemand(v_header_id, v_status);
340: SELECT hsecs INTO l_val_end_time from v$timer;
341: l_val_total:=l_val_total+(l_val_end_time-l_val_start_time)/100;
342: --
343: IF (v_status = rlm_core_sv.k_PROC_ERROR) OR
344: (rlm_validatedemand_sv.g_schedule_PS = rlm_core_sv.k_PS_ERROR)
345: THEN
346: --
347: RAISE e_VDFailed;
340: SELECT hsecs INTO l_val_end_time from v$timer;
341: l_val_total:=l_val_total+(l_val_end_time-l_val_start_time)/100;
342: --
343: IF (v_status = rlm_core_sv.k_PROC_ERROR) OR
344: (rlm_validatedemand_sv.g_schedule_PS = rlm_core_sv.k_PS_ERROR)
345: THEN
346: --
347: RAISE e_VDFailed;
348: --
345: THEN
346: --
347: RAISE e_VDFailed;
348: --
349: ELSIF (rlm_validatedemand_sv.g_schedule_PS <> rlm_core_sv.k_PS_ERROR)
350: THEN
351: --
352: IF (l_debug <> -1) THEN
353: rlm_core_sv.dlog(C_DEBUG,'Before PostValidation');
349: ELSIF (rlm_validatedemand_sv.g_schedule_PS <> rlm_core_sv.k_PS_ERROR)
350: THEN
351: --
352: IF (l_debug <> -1) THEN
353: rlm_core_sv.dlog(C_DEBUG,'Before PostValidation');
354: END IF;
355: --
356: SELECT hsecs INTO l_post_start_time from v$timer;
357: RLM_TPA_SV.PostValidation;
365: --
366: IF edi_test_indicator = 'T' then
367: --
368: IF (l_debug <> -1) THEN
369: rlm_core_sv.dlog(C_DEBUG,'Test schedule found');
370: END IF;
371: --
372: raise e_testschedule;
373: --
379: --
380: v_progress := '015';
381: --
382: IF (l_debug <> -1) THEN
383: rlm_core_sv.dlog(C_DEBUG,'header not locked');
384: END IF;
385: --
386: raise e_headerLocked;
387: --
391: --
392: IF v_Sched_rec.schedule_purpose = k_CONFIRMATION THEN
393: --
394: IF (l_debug <> -1) THEN
395: rlm_core_sv.dlog(C_DEBUG,'RLM_CONF_SCH_RCD');
396: END IF;
397: --
398: raise e_ConfirmationSchedule;
399: --
429: --
430: IF NOT LockHeader(v_header_id, v_Sched_rec) THEN
431: --
432: IF (l_debug <> -1) THEN
433: rlm_core_sv.dlog(C_DEBUG, 'Header not locked after
434: CreateChildGroups');
435: END IF;
436: --
437: RAISE e_HeaderLocked;
492: --
493: IF NOT LockHeader(v_header_id, v_Sched_rec) THEN
494: --
495: IF (l_debug <> -1) THEN
496: rlm_core_sv.dlog(C_DEBUG, 'Header not locked');
497: END IF;
498: --
499: RAISE e_HeaderLocked;
500: --
513: --
514: WHEN e_ConfirmationSchedule THEN
515: --
516: IF (l_debug <> -1) THEN
517: rlm_core_sv.dlog(C_DEBUG,'RLM_CONF_SCH_RCD');
518: END IF;
519: --
520: rlm_message_sv.app_error(
521: x_ExceptionLevel => rlm_message_sv.k_warn_level,
531: --
532: UpdateGroupPS(v_Sched_rec.header_id,
533: v_Sched_rec.Schedule_header_id,
534: v_Group_rec,
535: rlm_core_sv.K_PS_PROCESSED,
536: 'ALL');
537: --
538: UpdateHeaderPS(v_Sched_rec.header_id,
539: v_Sched_rec.Schedule_header_id);
545: --
546: WHEN NO_DATA_FOUND THEN
547: --
548: IF (l_debug <> -1) THEN
549: rlm_core_sv.dlog(C_DEBUG,'No data found ');
550: END IF;
551: --
552: rlm_message_sv.dump_messages(v_header_id);
553: --
553: --
554: WHEN e_VDFailed THEN
555: --
556: IF (l_debug <> -1) THEN
557: rlm_core_sv.dlog(C_DEBUG,'Validate Demand Failed');
558: END IF;
559: --
560: ROLLBACK;
561: --
561: --
562: UpdateGroupPS(v_header_id,
563: v_schedule_header_id,
564: v_Group_rec,
565: rlm_core_sv.k_PS_ERROR,
566: 'ALL');
567: --
568: UpdateHeaderPS(v_header_id,
569: v_schedule_header_id);
578: --
579: UpdateGroupPS(v_Sched_rec.header_id,
580: v_Sched_rec.schedule_header_id,
581: v_Group_rec,
582: rlm_core_sv.k_PS_ERROR);
583:
584: --
585: UpdateHeaderPS(v_header_id, v_schedule_header_id);
586: rlm_message_sv.dump_messages(v_header_id);
591: --
592: WHEN e_testschedule THEN
593: --
594: IF (l_debug <> -1) THEN
595: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
596: END IF;
597: --
598: rlm_message_sv.app_error(
599: x_ExceptionLevel => rlm_message_sv.k_warn_level,
601: x_InterfaceHeaderId => v_header_id,
602: x_InterfaceLineId => NULL,
603: x_OrderLineId => NULL,
604: x_Token1 => 'SCHED_REF',
605: x_Value1 =>rlm_core_sv.get_schedule_reference_num(v_header_id));
606: --
607: rlm_message_sv.dump_messages(v_header_id);
608: PurgeInterfaceLines(v_header_id); /*2699981*/
609: --
615: --
616: UpdateGroupPS(v_header_id,
617: v_schedule_header_id,
618: v_Group_rec,
619: rlm_core_sv.k_PS_ERROR,
620: 'ALL');
621: --
622: /* UpdateHeaderPS(v_header_id,
623: v_schedule_header_id); */
628: x_InterfaceHeaderId => v_header_id,
629: x_InterfaceLineId => NULL,
630: x_OrderLineId => NULL,
631: x_Token1 => 'SCHED_REF',
632: x_Value1 => rlm_core_sv.get_schedule_reference_num(v_header_id));
633: --
634: IF (l_debug <> -1) THEN
635: rlm_core_sv.dlog(C_DEBUG,'Header could not be locked');
636: rlm_core_sv.dpop(C_SDEBUG, 'RLM_LOCK_NOT_OBTAINED');
631: x_Token1 => 'SCHED_REF',
632: x_Value1 => rlm_core_sv.get_schedule_reference_num(v_header_id));
633: --
634: IF (l_debug <> -1) THEN
635: rlm_core_sv.dlog(C_DEBUG,'Header could not be locked');
636: rlm_core_sv.dpop(C_SDEBUG, 'RLM_LOCK_NOT_OBTAINED');
637: END IF;
638: --
639: rlm_message_sv.dump_messages(v_header_id);
632: x_Value1 => rlm_core_sv.get_schedule_reference_num(v_header_id));
633: --
634: IF (l_debug <> -1) THEN
635: rlm_core_sv.dlog(C_DEBUG,'Header could not be locked');
636: rlm_core_sv.dpop(C_SDEBUG, 'RLM_LOCK_NOT_OBTAINED');
637: END IF;
638: --
639: rlm_message_sv.dump_messages(v_header_id);
640: --
646: --
647: retcode := 2;
648: --
649: IF (l_debug <> -1) THEN
650: rlm_core_sv.dlog(C_DEBUG,'when others');
651: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
652: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
653: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
654: END IF;
647: retcode := 2;
648: --
649: IF (l_debug <> -1) THEN
650: rlm_core_sv.dlog(C_DEBUG,'when others');
651: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
652: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
653: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
654: END IF;
655: --
648: --
649: IF (l_debug <> -1) THEN
650: rlm_core_sv.dlog(C_DEBUG,'when others');
651: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
652: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
653: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
654: END IF;
655: --
656: UpdateGroupPS(v_header_id,
649: IF (l_debug <> -1) THEN
650: rlm_core_sv.dlog(C_DEBUG,'when others');
651: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
652: rlm_core_sv.dlog(C_DEBUG, 'ERROR:', SUBSTR(SQLERRM,1,200));
653: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
654: END IF;
655: --
656: UpdateGroupPS(v_header_id,
657: v_schedule_header_id,
655: --
656: UpdateGroupPS(v_header_id,
657: v_schedule_header_id,
658: v_Group_rec,
659: rlm_core_sv.k_PS_ERROR,
660: 'ALL');
661: --
662: UpdateHeaderPS(v_header_id,
663: v_schedule_header_id);
672: --
673: END LOOP;
674: --
675: IF (l_debug <> -1) THEN
676: rlm_core_sv.dlog(C_DEBUG,'rowcount' , c_demand%ROWCOUNT);
677: END IF;
678: --
679: IF c_demand%ROWCOUNT = 0 THEN
680: --
697: x_Token3 => 'TO_CUSTOMER_EXT',
698: x_value3 => p_to_customer_ext);
699: --
700: IF (l_debug <> -1) THEN
701: rlm_core_sv.dlog(C_DEBUG,'RLM_NO_DATA_FOR_CRITERIA' );
702: END IF;
703: --
704: rlm_message_sv.dump_messages;
705: --
712:
713: SELECT hsecs INTO l_end_time from v$timer;
714:
715: IF (l_debug <> -1) THEN
716: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
717: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
713: SELECT hsecs INTO l_end_time from v$timer;
714:
715: IF (l_debug <> -1) THEN
716: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
717: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
721: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
714:
715: IF (l_debug <> -1) THEN
716: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
717: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
721: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
722: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
715: IF (l_debug <> -1) THEN
716: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
717: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
721: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
722: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
723: END IF;
716: rlm_core_sv.dlog(C_DEBUG,'ValidateDemandTime', l_val_total);
717: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
721: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
722: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
723: END IF;
724:
717: rlm_core_sv.dlog(C_DEBUG,'PostValidateTime', l_post_total);
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
721: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
722: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
723: END IF;
724:
725: v_msg_text:='Total Time spent in Validatedemand call - '||l_val_total;
718: rlm_core_sv.dlog(C_DEBUG,'CompScheduleTime', l_comp_total);
719: rlm_core_sv.dlog(C_DEBUG,'ManageDemandTime', g_md_total);
720: rlm_core_sv.dlog(C_DEBUG,'ManageForecastTime', g_mf_total);
721: rlm_core_sv.dlog(C_DEBUG,'RecDemandTime', g_rd_total);
722: rlm_core_sv.dlog(C_DEBUG,'DSPTime', (l_end_time-l_start_time)/100);
723: END IF;
724:
725: v_msg_text:='Total Time spent in Validatedemand call - '||l_val_total;
726: fnd_file.put_line(fnd_file.log, v_msg_text);
747: v_msg_text := 'Return Code from DSP concurrent program - ' || retcode;
748: fnd_file.put_line(fnd_file.log, v_msg_text);
749: --
750: IF (l_debug <> -1) THEN
751: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
752: rlm_core_sv.dpop(C_SDEBUG);
753: rlm_core_sv.stop_debug;
754: END IF;
755: --
748: fnd_file.put_line(fnd_file.log, v_msg_text);
749: --
750: IF (l_debug <> -1) THEN
751: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
752: rlm_core_sv.dpop(C_SDEBUG);
753: rlm_core_sv.stop_debug;
754: END IF;
755: --
756: EXCEPTION
749: --
750: IF (l_debug <> -1) THEN
751: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
752: rlm_core_sv.dpop(C_SDEBUG);
753: rlm_core_sv.stop_debug;
754: END IF;
755: --
756: EXCEPTION
757: --
761: rlm_message_sv.sql_error('rlm_dp_sv.DemandProcessor', v_Progress);
762: rlm_message_sv.dump_messages(v_header_id);
763: --
764: IF (l_debug <> -1) THEN
765: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
766: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
767: rlm_core_sv.stop_debug;
768: END IF;
769: raise;
762: rlm_message_sv.dump_messages(v_header_id);
763: --
764: IF (l_debug <> -1) THEN
765: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
766: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
767: rlm_core_sv.stop_debug;
768: END IF;
769: raise;
770: --
763: --
764: IF (l_debug <> -1) THEN
765: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
766: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
767: rlm_core_sv.stop_debug;
768: END IF;
769: raise;
770: --
771: END DemandProcessor;
784: --
785: BEGIN
786: --
787: IF (l_debug <> -1) THEN
788: rlm_core_sv.dpush(C_SDEBUG, 'PurgeInterfaceLines');
789: rlm_core_sv.dlog(C_DEBUG, 'x_header_id',x_header_id);
790: END IF;
791: --
792: select process_status into v_process_status
785: BEGIN
786: --
787: IF (l_debug <> -1) THEN
788: rlm_core_sv.dpush(C_SDEBUG, 'PurgeInterfaceLines');
789: rlm_core_sv.dlog(C_DEBUG, 'x_header_id',x_header_id);
790: END IF;
791: --
792: select process_status into v_process_status
793: from rlm_interface_headers
794: where header_id = x_header_id;
795: --
796: DELETE FROM RLM_INTERFACE_HEADERS
797: WHERE header_id = x_header_id
798: and process_Status = rlm_core_sv.k_PS_PROCESSED;
799: --
800: IF(v_process_status <> rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
801: --
802: DELETE FROM RLM_INTERFACE_LINES
796: DELETE FROM RLM_INTERFACE_HEADERS
797: WHERE header_id = x_header_id
798: and process_Status = rlm_core_sv.k_PS_PROCESSED;
799: --
800: IF(v_process_status <> rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
801: --
802: DELETE FROM RLM_INTERFACE_LINES
803: WHERE header_id = x_header_id
804: and process_Status = rlm_core_sv.k_PS_PROCESSED;
800: IF(v_process_status <> rlm_core_sv.k_PS_PARTIAL_PROCESSED) THEN
801: --
802: DELETE FROM RLM_INTERFACE_LINES
803: WHERE header_id = x_header_id
804: and process_Status = rlm_core_sv.k_PS_PROCESSED;
805: --
806: ELSE
807: --
808: DELETE FROM RLM_INTERFACE_LINES
806: ELSE
807: --
808: DELETE FROM RLM_INTERFACE_LINES
809: WHERE header_id = x_header_id
810: and process_Status = rlm_core_sv.k_PS_PROCESSED
811: and item_detail_type <> rlm_rd_sv.k_MRP_FORECAST;
812: --
813: END IF;
814: --
812: --
813: END IF;
814: --
815: IF (l_debug <> -1) THEN
816: rlm_core_sv.dlog(C_DEBUG, 'Lines deleted ', SQL%ROWCOUNT);
817: rlm_core_sv.dpop(C_SDEBUG);
818: END IF;
819: --
820: EXCEPTION
813: END IF;
814: --
815: IF (l_debug <> -1) THEN
816: rlm_core_sv.dlog(C_DEBUG, 'Lines deleted ', SQL%ROWCOUNT);
817: rlm_core_sv.dpop(C_SDEBUG);
818: END IF;
819: --
820: EXCEPTION
821: --
823: --
824: rlm_message_sv.sql_error('rlm_dp_sv.PurgeInterfaceLines', v_Progress);
825: --
826: IF (l_debug <> -1) THEN
827: rlm_core_sv.dlog(C_DEBUG, 'No records to delete' );
828: rlm_core_sv.dpop(C_SDEBUG);
829: END IF;
830: --
831: WHEN OTHERS THEN
824: rlm_message_sv.sql_error('rlm_dp_sv.PurgeInterfaceLines', v_Progress);
825: --
826: IF (l_debug <> -1) THEN
827: rlm_core_sv.dlog(C_DEBUG, 'No records to delete' );
828: rlm_core_sv.dpop(C_SDEBUG);
829: END IF;
830: --
831: WHEN OTHERS THEN
832: --
832: --
833: rlm_message_sv.sql_error('rlm_dp_sv.PurgeInterfaceLines', v_Progress);
834: --
835: IF (l_debug <> -1) THEN
836: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
837: END IF;
838: --
839: raise;
840: --
854: CURSOR c IS
855: SELECT *
856: FROM rlm_interface_headers
857: WHERE header_id = x_HeaderId
858: and process_status IN (rlm_core_sv.k_PS_AVAILABLE,
859: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
860: FOR UPDATE NOWAIT;
861:
862: BEGIN
855: SELECT *
856: FROM rlm_interface_headers
857: WHERE header_id = x_HeaderId
858: and process_status IN (rlm_core_sv.k_PS_AVAILABLE,
859: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
860: FOR UPDATE NOWAIT;
861:
862: BEGIN
863: --
861:
862: BEGIN
863: --
864: IF (l_debug <> -1) THEN
865: rlm_core_sv.dpush(C_SDEBUG,'LockHeader');
866: rlm_core_sv.dlog(C_DEBUG,'Locking RLM_INTERFACE_HEADERS');
867: END IF;
868: --
869: OPEN c;
862: BEGIN
863: --
864: IF (l_debug <> -1) THEN
865: rlm_core_sv.dpush(C_SDEBUG,'LockHeader');
866: rlm_core_sv.dlog(C_DEBUG,'Locking RLM_INTERFACE_HEADERS');
867: END IF;
868: --
869: OPEN c;
870: FETCH c INTO v_Sched_rec;
875: --
876: CLOSE c;
877: --
878: IF (l_debug <> -1) THEN
879: rlm_core_sv.dpop(C_SDEBUG);
880: END IF;
881: --
882: RETURN(TRUE);
883: --
885: --
886: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
887: --
888: IF (l_debug <> -1) THEN
889: rlm_core_sv.dlog(C_DEBUG,'APP_EXCEPTION.RECORD_LOCK_EXCEPTION error');
890: rlm_core_sv.dpop(C_SDEBUG);
891: END IF;
892: --
893: RETURN(FALSE);
886: WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
887: --
888: IF (l_debug <> -1) THEN
889: rlm_core_sv.dlog(C_DEBUG,'APP_EXCEPTION.RECORD_LOCK_EXCEPTION error');
890: rlm_core_sv.dpop(C_SDEBUG);
891: END IF;
892: --
893: RETURN(FALSE);
894: --
894: --
895: WHEN NO_DATA_FOUND THEN
896: --
897: IF (l_debug <> -1) THEN
898: rlm_core_sv.dlog(C_DEBUG,'No header found with the headerID',
899: x_HeaderId);
900: rlm_core_sv.dpop(C_SDEBUG, 'NO_DATA_FOUND');
901: END IF;
902: --
896: --
897: IF (l_debug <> -1) THEN
898: rlm_core_sv.dlog(C_DEBUG,'No header found with the headerID',
899: x_HeaderId);
900: rlm_core_sv.dpop(C_SDEBUG, 'NO_DATA_FOUND');
901: END IF;
902: --
903: RETURN(FALSE);
904: --
905: WHEN OTHERS THEN
906: rlm_message_sv.sql_error('rlm_managedemand_sv.lockHeader', x_progress);
907: --
908: IF (l_debug <> -1) THEN
909: rlm_core_sv.dlog(C_DEBUG,'progress',x_Progress);
910: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
911: END IF;
912: --
913: RAISE;
906: rlm_message_sv.sql_error('rlm_managedemand_sv.lockHeader', x_progress);
907: --
908: IF (l_debug <> -1) THEN
909: rlm_core_sv.dlog(C_DEBUG,'progress',x_Progress);
910: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
911: END IF;
912: --
913: RAISE;
914:
937: --
938: BEGIN
939: --
940: IF (l_debug <> -1) THEN
941: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
942: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
943: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
944: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
945: x_Group_rec.ship_from_org_id);
938: BEGIN
939: --
940: IF (l_debug <> -1) THEN
941: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
942: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
943: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
944: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
945: x_Group_rec.ship_from_org_id);
946: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
939: --
940: IF (l_debug <> -1) THEN
941: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
942: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
943: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
944: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
945: x_Group_rec.ship_from_org_id);
946: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
947: x_Group_rec.order_header_id);
940: IF (l_debug <> -1) THEN
941: rlm_core_sv.dpush(C_SDEBUG, 'UpdateGroupPS');
942: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
943: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
944: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
945: x_Group_rec.ship_from_org_id);
946: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
947: x_Group_rec.order_header_id);
948: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
942: rlm_core_sv.dlog(C_DEBUG,'UpdateGroupStatus to ', x_status);
943: rlm_core_sv.dlog(C_DEBUG,'x_header_id ', x_header_id);
944: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
945: x_Group_rec.ship_from_org_id);
946: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
947: x_Group_rec.order_header_id);
948: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
949: x_Group_rec.ship_to_org_id);
950: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
944: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_from_org_id ',
945: x_Group_rec.ship_from_org_id);
946: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
947: x_Group_rec.order_header_id);
948: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
949: x_Group_rec.ship_to_org_id);
950: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
951: x_Group_rec.customer_item_id);
952: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
946: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.order_header_id ',
947: x_Group_rec.order_header_id);
948: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
949: x_Group_rec.ship_to_org_id);
950: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
951: x_Group_rec.customer_item_id);
952: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
953: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
954: END IF;
948: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.ship_to_org_id ',
949: x_Group_rec.ship_to_org_id);
950: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
951: x_Group_rec.customer_item_id);
952: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
953: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
954: END IF;
955: --
956: v_login_id := fnd_global.login_id ;
949: x_Group_rec.ship_to_org_id);
950: rlm_core_sv.dlog(C_DEBUG,'x_Group_rec.customer_item_id ',
951: x_Group_rec.customer_item_id);
952: rlm_core_sv.dlog(C_DEBUG,'x_UpdateLevel to ', x_UpdateLevel);
953: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
954: END IF;
955: --
956: v_login_id := fnd_global.login_id ;
957: v_request_id := RLM_MESSAGE_SV.g_conc_req_id ;
963: FROM rlm_interface_headers
964: WHERE header_id = x_header_id;
965: --
966: IF (l_debug <> -1) THEN
967: rlm_core_sv.dlog(C_DEBUG, 'v_SchedHeaderId', v_SchedHeaderId);
968: END IF;
969: --
970: IF x_UpdateLevel <> 'GROUP' THEN
971: --
976: PROGRAM_APPLICATION_ID = v_program_app_id,
977: PROGRAM_ID = v_program_id,
978: PROGRAM_UPDATE_DATE = v_program_update_date
979: WHERE header_id = x_header_id
980: AND process_status <> rlm_core_sv.k_PS_ERROR; -- bug 5134706
981:
982: --
983: IF (l_debug <> -1) THEN
984: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
980: AND process_status <> rlm_core_sv.k_PS_ERROR; -- bug 5134706
981:
982: --
983: IF (l_debug <> -1) THEN
984: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
985: END IF;
986:
987: UPDATE rlm_schedule_lines sl
988: SET process_status = x_Status,
991: PROGRAM_APPLICATION_ID = v_program_app_id,
992: PROGRAM_ID = v_program_id,
993: PROGRAM_UPDATE_DATE = v_program_update_date
994: WHERE sl.header_id = v_SchedHeaderId
995: AND process_status <> rlm_core_sv.k_PS_ERROR -- bug 5134706
996: AND interface_line_id in
997: (SELECT line_id
998: FROM rlm_interface_lines_all il
999: WHERE il.header_id = x_header_id);
998: FROM rlm_interface_lines_all il
999: WHERE il.header_id = x_header_id);
1000: --
1001: IF (l_debug <> -1) THEN
1002: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1003: END IF;
1004:
1005: ELSE
1006: --
1004:
1005: ELSE
1006: --
1007: IF (l_debug <> -1) THEN
1008: rlm_core_sv.dlog(C_DEBUG,'Update Group');
1009: END IF;
1010: --
1011: -- JAUTOMO: Update rlm_schedule_lines first before rlm_interface_lines
1012: --
1025: AND industry_attribute15 = x_Group_rec.industry_attribute15
1026: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1027: AND customer_item_id = x_Group_rec.customer_item_id
1028: AND inventory_item_id = x_Group_rec.inventory_item_id
1029: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1030: rlm_core_sv.k_PS_PROCESSED,
1031: rlm_core_sv.k_PS_FROZEN_FIRM));
1032: --
1033: IF (l_debug <> -1) THEN
1026: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1027: AND customer_item_id = x_Group_rec.customer_item_id
1028: AND inventory_item_id = x_Group_rec.inventory_item_id
1029: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1030: rlm_core_sv.k_PS_PROCESSED,
1031: rlm_core_sv.k_PS_FROZEN_FIRM));
1032: --
1033: IF (l_debug <> -1) THEN
1034: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1027: AND customer_item_id = x_Group_rec.customer_item_id
1028: AND inventory_item_id = x_Group_rec.inventory_item_id
1029: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1030: rlm_core_sv.k_PS_PROCESSED,
1031: rlm_core_sv.k_PS_FROZEN_FIRM));
1032: --
1033: IF (l_debug <> -1) THEN
1034: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1035: END IF;
1030: rlm_core_sv.k_PS_PROCESSED,
1031: rlm_core_sv.k_PS_FROZEN_FIRM));
1032: --
1033: IF (l_debug <> -1) THEN
1034: rlm_core_sv.dlog(C_DEBUG,'No of Schedule Lines Updated ', SQL%ROWCOUNT);
1035: END IF;
1036: --
1037: UPDATE rlm_interface_lines
1038: SET process_status = x_Status,
1045: AND industry_attribute15 = x_Group_rec.industry_attribute15
1046: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1047: AND customer_item_id = x_Group_rec.customer_item_id
1048: AND inventory_item_id = x_Group_rec.inventory_item_id
1049: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1050: rlm_core_sv.k_PS_PROCESSED,
1051: rlm_core_sv.k_PS_FROZEN_FIRM);
1052: --
1053: IF (l_debug <> -1) THEN
1046: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1047: AND customer_item_id = x_Group_rec.customer_item_id
1048: AND inventory_item_id = x_Group_rec.inventory_item_id
1049: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1050: rlm_core_sv.k_PS_PROCESSED,
1051: rlm_core_sv.k_PS_FROZEN_FIRM);
1052: --
1053: IF (l_debug <> -1) THEN
1054: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
1047: AND customer_item_id = x_Group_rec.customer_item_id
1048: AND inventory_item_id = x_Group_rec.inventory_item_id
1049: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1050: rlm_core_sv.k_PS_PROCESSED,
1051: rlm_core_sv.k_PS_FROZEN_FIRM);
1052: --
1053: IF (l_debug <> -1) THEN
1054: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
1055: END IF;
1050: rlm_core_sv.k_PS_PROCESSED,
1051: rlm_core_sv.k_PS_FROZEN_FIRM);
1052: --
1053: IF (l_debug <> -1) THEN
1054: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated ', SQL%ROWCOUNT);
1055: END IF;
1056: --
1057: END IF;
1058: --
1056: --
1057: END IF;
1058: --
1059: IF (l_debug <> -1) THEN
1060: rlm_core_sv.dpop(C_SDEBUG);
1061: END IF;
1062: --
1063: EXCEPTION
1064: --
1066: --
1067: rlm_message_sv.sql_error('rlm_dp_sv.UpdateGroupPS', v_Progress);
1068: --
1069: IF (l_debug <> -1) THEN
1070: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
1071: END IF;
1072: --
1073: raise;
1074: --
1096: --
1097: BEGIN
1098: --
1099: IF (l_debug <> -1) THEN
1100: rlm_core_sv.dpush(C_SDEBUG,'UpdateHeaderPS');
1101: rlm_core_sv.dlog(C_DEBUG,'x_HeaderId',x_HeaderId);
1102: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
1103: END IF;
1104: --
1097: BEGIN
1098: --
1099: IF (l_debug <> -1) THEN
1100: rlm_core_sv.dpush(C_SDEBUG,'UpdateHeaderPS');
1101: rlm_core_sv.dlog(C_DEBUG,'x_HeaderId',x_HeaderId);
1102: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
1103: END IF;
1104: --
1105: SELECT schedule_header_id
1098: --
1099: IF (l_debug <> -1) THEN
1100: rlm_core_sv.dpush(C_SDEBUG,'UpdateHeaderPS');
1101: rlm_core_sv.dlog(C_DEBUG,'x_HeaderId',x_HeaderId);
1102: rlm_core_sv.dlog(C_DEBUG, 'request ID', RLM_MESSAGE_SV.g_conc_req_id);
1103: END IF;
1104: --
1105: SELECT schedule_header_id
1106: INTO v_SchedHeaderId
1107: FROM rlm_interface_headers
1108: WHERE header_id = x_HeaderId;
1109: --
1110: IF (l_debug <> -1) THEN
1111: rlm_core_sv.dlog(C_DEBUG, 'v_SchedHeaderId', v_SchedHeaderId);
1112: END IF;
1113: --
1114: -- Clearup the header status when no data found in the Group ref
1115: -- if the no of error recs = tot recs then all errors
1121: FROM rlm_interface_lines
1122: WHERE header_id = x_HeaderId;
1123: --
1124: IF (l_debug <> -1) THEN
1125: rlm_core_sv.dlog(C_DEBUG,'v_tot_recs', v_tot_recs);
1126: END IF;
1127: --
1128: SELECT count(*)
1129: INTO v_error_recs
1128: SELECT count(*)
1129: INTO v_error_recs
1130: FROM rlm_interface_lines
1131: WHERE header_id = x_HeaderId
1132: AND process_status = rlm_core_sv.k_PS_ERROR;
1133: --
1134: IF (l_debug <> -1) THEN
1135: rlm_core_sv.dlog(C_DEBUG,'v_error_recs', v_error_recs);
1136: END IF;
1131: WHERE header_id = x_HeaderId
1132: AND process_status = rlm_core_sv.k_PS_ERROR;
1133: --
1134: IF (l_debug <> -1) THEN
1135: rlm_core_sv.dlog(C_DEBUG,'v_error_recs', v_error_recs);
1136: END IF;
1137: --
1138: SELECT count(*)
1139: INTO v_proc_recs
1138: SELECT count(*)
1139: INTO v_proc_recs
1140: FROM rlm_interface_lines
1141: WHERE header_id = x_HeaderId
1142: AND process_status = rlm_core_sv.k_PS_PROCESSED;
1143: --
1144: IF (l_debug <> -1) THEN
1145: rlm_core_sv.dlog(C_DEBUG,'v_proc_recs', v_proc_recs);
1146: END IF;
1141: WHERE header_id = x_HeaderId
1142: AND process_status = rlm_core_sv.k_PS_PROCESSED;
1143: --
1144: IF (l_debug <> -1) THEN
1145: rlm_core_sv.dlog(C_DEBUG,'v_proc_recs', v_proc_recs);
1146: END IF;
1147: --
1148: SELECT COUNT(1)
1149: INTO v_proc_sch
1147: --
1148: SELECT COUNT(1)
1149: INTO v_proc_sch
1150: FROM rlm_schedule_lines
1151: WHERE process_status = rlm_core_sv.k_PS_PROCESSED
1152: AND header_id = v_SchedHeaderId;
1153: --
1154: IF (l_debug <> -1) THEN
1155: rlm_core_sv.dlog(C_DEBUG,'v_proc_sch', v_proc_sch);
1151: WHERE process_status = rlm_core_sv.k_PS_PROCESSED
1152: AND header_id = v_SchedHeaderId;
1153: --
1154: IF (l_debug <> -1) THEN
1155: rlm_core_sv.dlog(C_DEBUG,'v_proc_sch', v_proc_sch);
1156: END IF;
1157: --
1158: IF v_error_recs = v_tot_recs THEN
1159: --
1158: IF v_error_recs = v_tot_recs THEN
1159: --
1160: IF v_proc_sch = 0 THEN
1161: --
1162: x_HeaderStatus := rlm_core_sv.k_PS_ERROR;
1163: --
1164: ELSE
1165: --
1166: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1162: x_HeaderStatus := rlm_core_sv.k_PS_ERROR;
1163: --
1164: ELSE
1165: --
1166: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1167: --
1168: END IF;
1169: --
1170: ELSIF v_proc_recs = v_tot_recs THEN
1168: END IF;
1169: --
1170: ELSIF v_proc_recs = v_tot_recs THEN
1171: --
1172: x_HeaderStatus := rlm_core_sv.k_PS_PROCESSED;
1173: --
1174: ELSE
1175: --
1176: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1172: x_HeaderStatus := rlm_core_sv.k_PS_PROCESSED;
1173: --
1174: ELSE
1175: --
1176: x_HeaderStatus := rlm_core_sv.k_PS_PARTIAL_PROCESSED;
1177: --
1178: END IF;
1179: --
1180: IF (l_debug <> -1) THEN
1177: --
1178: END IF;
1179: --
1180: IF (l_debug <> -1) THEN
1181: rlm_core_sv.dlog(C_DEBUG,'x_HeaderStatus', x_HeaderStatus);
1182: END IF;
1183: --
1184: UPDATE rlm_interface_headers
1185: SET process_status = x_HeaderStatus,
1191: WHERE header_id = x_HeaderId;
1192: --
1193: --
1194: IF (l_debug <> -1) THEN
1195: rlm_core_sv.dlog(C_DEBUG,'Number of Interface header updated',SQL%ROWCOUNT);
1196: END IF;
1197: --
1198: UPDATE rlm_schedule_headers
1199: SET process_status = x_HeaderStatus,
1204: PROGRAM_UPDATE_DATE = sysdate
1205: WHERE header_id = v_SchedHeaderId ;
1206: --
1207: IF (l_debug <> -1) THEN
1208: rlm_core_sv.dlog(C_DEBUG,'Number of schedule header updated',SQL%ROWCOUNT);
1209: rlm_core_sv.dpop(C_SDEBUG);
1210: END IF;
1211: --
1212: EXCEPTION
1205: WHERE header_id = v_SchedHeaderId ;
1206: --
1207: IF (l_debug <> -1) THEN
1208: rlm_core_sv.dlog(C_DEBUG,'Number of schedule header updated',SQL%ROWCOUNT);
1209: rlm_core_sv.dpop(C_SDEBUG);
1210: END IF;
1211: --
1212: EXCEPTION
1213: --
1213: --
1214: WHEN NO_DATA_FOUND THEN
1215: --
1216: IF (l_debug <> -1) THEN
1217: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1218: rlm_core_sv.dpop(C_SDEBUG);
1219: END IF;
1220: --
1221: WHEN OTHERS THEN
1214: WHEN NO_DATA_FOUND THEN
1215: --
1216: IF (l_debug <> -1) THEN
1217: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1218: rlm_core_sv.dpop(C_SDEBUG);
1219: END IF;
1220: --
1221: WHEN OTHERS THEN
1222: --
1222: --
1223: rlm_message_sv.sql_error('rlm_dp_sv.UpdateHeaderStatus', x_progress);
1224: --
1225: IF (l_debug <> -1) THEN
1226: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
1227: END IF;
1228: --
1229: END UpdateHeaderPS;
1230:
1251: --
1252: BEGIN
1253: --
1254: IF (l_debug <> -1) THEN
1255: rlm_core_sv.dpush('RunExceptionReport');
1256: rlm_core_sv.dlog('Request Id', x_requestId);
1257: rlm_core_sv.dlog('Org ID', x_OrgId);
1258: END IF;
1259: --
1252: BEGIN
1253: --
1254: IF (l_debug <> -1) THEN
1255: rlm_core_sv.dpush('RunExceptionReport');
1256: rlm_core_sv.dlog('Request Id', x_requestId);
1257: rlm_core_sv.dlog('Org ID', x_OrgId);
1258: END IF;
1259: --
1260: /** If there are Errors/warnings then only submit Concurrent Request for
1253: --
1254: IF (l_debug <> -1) THEN
1255: rlm_core_sv.dpush('RunExceptionReport');
1256: rlm_core_sv.dlog('Request Id', x_requestId);
1257: rlm_core_sv.dlog('Org ID', x_OrgId);
1258: END IF;
1259: --
1260: /** If there are Errors/warnings then only submit Concurrent Request for
1261: Exception Report. ****/
1319: NULL,
1320: NULL);
1321: --
1322: IF (l_debug <> -1) THEN
1323: rlm_core_sv.dlog('Report Request Id ', x_request_id);
1324: END IF;
1325: --
1326: END IF;
1327: --
1325: --
1326: END IF;
1327: --
1328: IF (l_debug <> -1) THEN
1329: rlm_core_sv.dpop(C_SDEBUG);
1330: END IF;
1331: --
1332: EXCEPTION
1333: --
1333: --
1334: WHEN NO_DATA_FOUND THEN
1335: --
1336: IF (l_debug <> -1) THEN
1337: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1338: rlm_core_sv.dpop(C_SDEBUG);
1339: END IF;
1340: --
1341: WHEN OTHERS THEN
1334: WHEN NO_DATA_FOUND THEN
1335: --
1336: IF (l_debug <> -1) THEN
1337: rlm_core_sv.dlog(C_DEBUG,'NO DATA FOUND ERROR',x_Progress);
1338: rlm_core_sv.dpop(C_SDEBUG);
1339: END IF;
1340: --
1341: WHEN OTHERS THEN
1342: --
1342: --
1343: rlm_message_sv.sql_error('rlm_dp_sv.RunExceptionReport', x_progress);
1344: --
1345: IF (l_debug <> -1) THEN
1346: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: OTHER - sql error');
1347: END IF;
1348: --
1349: END RunExceptionReport;
1350:
1365: --
1366: BEGIN
1367: --
1368: IF (l_debug <> -1) THEN
1369: rlm_core_sv.dpush(C_SDEBUG, 'CheckForecast');
1370: END IF;
1371: --
1372: --
1373: SELECT count(*) into v_Count
1376: AND industry_attribute15 = x_Group_rec.industry_attribute15
1377: AND ship_to_org_id = x_Group_rec.ship_to_org_id
1378: AND customer_item_id = x_Group_rec.customer_item_id
1379: AND item_detail_type = rlm_rd_sv.k_MRP_FORECAST
1380: AND process_status = rlm_core_sv.k_PS_AVAILABLE;
1381: --
1382: IF (l_debug <> -1) THEN
1383: rlm_core_sv.dlog('No of Forecast Lines for this group', v_Count);
1384: rlm_core_sv.dpop(C_SDEBUG);
1379: AND item_detail_type = rlm_rd_sv.k_MRP_FORECAST
1380: AND process_status = rlm_core_sv.k_PS_AVAILABLE;
1381: --
1382: IF (l_debug <> -1) THEN
1383: rlm_core_sv.dlog('No of Forecast Lines for this group', v_Count);
1384: rlm_core_sv.dpop(C_SDEBUG);
1385: END IF;
1386:
1387: IF(v_Count>0) THEN
1380: AND process_status = rlm_core_sv.k_PS_AVAILABLE;
1381: --
1382: IF (l_debug <> -1) THEN
1383: rlm_core_sv.dlog('No of Forecast Lines for this group', v_Count);
1384: rlm_core_sv.dpop(C_SDEBUG);
1385: END IF;
1386:
1387: IF(v_Count>0) THEN
1388: return (TRUE);
1397: --
1398: rlm_message_sv.sql_error('rlm_dp_sv.CheckForecast', v_Progress);
1399: --
1400: IF (l_debug <> -1) THEN
1401: rlm_core_sv.dpop(C_SDEBUG,'EXCEPTION: '|| SUBSTR(SQLERRM,1,200));
1402: END IF;
1403: --
1404: raise;
1405: --
1426: FROM rlm_interface_headers rih,
1427: rlm_interface_lines_all ril
1428: WHERE ril.header_id = x_header_id
1429: AND ril.header_id = rih.header_id
1430: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1431: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1432: AND rih.org_id = ril.org_id
1433: GROUP BY ril.order_header_id,ril.blanket_number ;
1434: --
1427: rlm_interface_lines_all ril
1428: WHERE ril.header_id = x_header_id
1429: AND ril.header_id = rih.header_id
1430: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1431: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1432: AND rih.org_id = ril.org_id
1433: GROUP BY ril.order_header_id,ril.blanket_number ;
1434: --
1435: BEGIN
1437: -- Distribute groups among processes by marking lines
1438: -- with a child process index
1439: --
1440: IF (l_debug <> -1) THEN
1441: rlm_core_sv.dpush(C_SDEBUG, 'CreateChildGroups');
1442: rlm_core_sv.dlog(C_DEBUG, 'header Id', x_header_id);
1443: rlm_core_sv.dlog(C_DEBUG, 'Input num of child processes', x_num_child);
1444: END IF;
1445: --
1438: -- with a child process index
1439: --
1440: IF (l_debug <> -1) THEN
1441: rlm_core_sv.dpush(C_SDEBUG, 'CreateChildGroups');
1442: rlm_core_sv.dlog(C_DEBUG, 'header Id', x_header_id);
1443: rlm_core_sv.dlog(C_DEBUG, 'Input num of child processes', x_num_child);
1444: END IF;
1445: --
1446: v_index:=1;
1439: --
1440: IF (l_debug <> -1) THEN
1441: rlm_core_sv.dpush(C_SDEBUG, 'CreateChildGroups');
1442: rlm_core_sv.dlog(C_DEBUG, 'header Id', x_header_id);
1443: rlm_core_sv.dlog(C_DEBUG, 'Input num of child processes', x_num_child);
1444: END IF;
1445: --
1446: v_index:=1;
1447: v_group_count:=0;
1490: --
1491: END IF;
1492: --
1493: IF (l_debug <> -1) THEN
1494: rlm_core_sv.dlog(C_DEBUG, 'Actual num of child processes', x_num_child);
1495: rlm_core_sv.dpop(C_SDEBUG);
1496: END IF;
1497: --
1498: -- end of marking lines with child process index
1491: END IF;
1492: --
1493: IF (l_debug <> -1) THEN
1494: rlm_core_sv.dlog(C_DEBUG, 'Actual num of child processes', x_num_child);
1495: rlm_core_sv.dpop(C_SDEBUG);
1496: END IF;
1497: --
1498: -- end of marking lines with child process index
1499: --
1501: --
1502: When others then
1503: --
1504: IF (l_debug <> -1) THEN
1505: rlm_core_sv.dpop(C_SDEBUG, SUBSTRB(SQLERRM, 1, 200));
1506: END IF;
1507: --
1508: raise;
1509:
1528: --
1529: BEGIN
1530: --
1531: IF (l_debug <> -1) THEN
1532: rlm_core_sv.dpush(C_SDEBUG, 'SubmitChildRequests');
1533: rlm_core_sv.dlog(C_DEBUG, 'Current Org', MO_GLOBAL.get_current_org_id);
1534: END IF;
1535: --
1536: v_OrgId := MO_GLOBAL.get_current_org_id;
1529: BEGIN
1530: --
1531: IF (l_debug <> -1) THEN
1532: rlm_core_sv.dpush(C_SDEBUG, 'SubmitChildRequests');
1533: rlm_core_sv.dlog(C_DEBUG, 'Current Org', MO_GLOBAL.get_current_org_id);
1534: END IF;
1535: --
1536: v_OrgId := MO_GLOBAL.get_current_org_id;
1537: --
1553: v_msg_text:='Submitting DSP Child Request: '||x_child_req_id(i);
1554: fnd_file.put_line(fnd_file.log, v_msg_text);
1555: --
1556: IF (l_debug <> -1) THEN
1557: rlm_core_sv.dlog(C_DEBUG, 'DSP Child request', x_child_req_id(i));
1558: END IF;
1559: --
1560: END LOOP;
1561: --
1561: --
1562: COMMIT;
1563: --
1564: IF (l_debug <> -1) THEN
1565: rlm_core_sv.dpop(C_SDEBUG);
1566: END IF;
1567: --
1568: EXCEPTION
1569: --
1569: --
1570: When others then
1571: --
1572: IF (l_debug <> -1) THEN
1573: rlm_core_sv.dpop(C_SDEBUG);
1574: END IF;
1575: --
1576: raise;
1577: --
1599: --
1600: BEGIN
1601: --
1602: IF (l_debug <> -1) THEN
1603: rlm_core_sv.dpush(C_SDEBUG, 'ProcessChildRequests');
1604: rlm_core_sv.dlog(C_DEBUG, 'Total number of child requests',
1605: x_child_req_id.COUNT);
1606: END IF;
1607: --
1600: BEGIN
1601: --
1602: IF (l_debug <> -1) THEN
1603: rlm_core_sv.dpush(C_SDEBUG, 'ProcessChildRequests');
1604: rlm_core_sv.dlog(C_DEBUG, 'Total number of child requests',
1605: x_child_req_id.COUNT);
1606: END IF;
1607: --
1608: /* parent process has to wait until each child request
1628: --
1629: /* update group status for all lines with child req id*/
1630: --
1631: IF (l_debug <> -1) THEN
1632: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1633: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1634: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1635: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1636: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1629: /* update group status for all lines with child req id*/
1630: --
1631: IF (l_debug <> -1) THEN
1632: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1633: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1634: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1635: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1636: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1637: END IF;
1630: --
1631: IF (l_debug <> -1) THEN
1632: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1633: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1634: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1635: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1636: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1637: END IF;
1638: --
1631: IF (l_debug <> -1) THEN
1632: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1633: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1634: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1635: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1636: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1637: END IF;
1638: --
1639: IF(upper(v_reqstatus) <> 'NORMAL') THEN
1632: rlm_core_sv.dlog(C_DEBUG,'child process index ', i);
1633: rlm_core_sv.dlog(C_DEBUG, 'v_phase', v_phase);
1634: rlm_core_sv.dlog(C_DEBUG, 'v_reqstatus', v_reqstatus);
1635: rlm_core_sv.dlog(C_DEBUG, 'v_devphase', v_devphase);
1636: rlm_core_sv.dlog(C_DEBUG, 'v_devstatus', v_devstatus);
1637: END IF;
1638: --
1639: IF(upper(v_reqstatus) <> 'NORMAL') THEN
1640: --
1638: --
1639: IF(upper(v_reqstatus) <> 'NORMAL') THEN
1640: --
1641: update rlm_interface_lines
1642: set process_status= rlm_core_sv.k_PS_ERROR
1643: where header_id = x_header_id
1644: and dsp_child_process_index = i
1645: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1646: --
1641: update rlm_interface_lines
1642: set process_status= rlm_core_sv.k_PS_ERROR
1643: where header_id = x_header_id
1644: and dsp_child_process_index = i
1645: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1646: --
1647: IF (l_debug <> -1) THEN
1648: rlm_core_sv.dlog(C_DEBUG,'x_header_id', x_header_id);
1649: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1644: and dsp_child_process_index = i
1645: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1646: --
1647: IF (l_debug <> -1) THEN
1648: rlm_core_sv.dlog(C_DEBUG,'x_header_id', x_header_id);
1649: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1650: END IF;
1651: --
1652: update rlm_schedule_lines sch
1645: and process_status <> rlm_core_sv.k_PS_PROCESSED;
1646: --
1647: IF (l_debug <> -1) THEN
1648: rlm_core_sv.dlog(C_DEBUG,'x_header_id', x_header_id);
1649: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1650: END IF;
1651: --
1652: update rlm_schedule_lines sch
1653: set process_status = rlm_core_sv.k_PS_ERROR
1649: rlm_core_sv.dlog(C_DEBUG,'No of interface Lines Updated', SQL%ROWCOUNT);
1650: END IF;
1651: --
1652: update rlm_schedule_lines sch
1653: set process_status = rlm_core_sv.k_PS_ERROR
1654: where interface_line_id in
1655: (select line_id
1656: from rlm_interface_lines_all il
1657: where header_id = x_header_id
1655: (select line_id
1656: from rlm_interface_lines_all il
1657: where header_id = x_header_id
1658: and dsp_child_process_index = i
1659: and process_status <> rlm_core_sv.k_PS_PROCESSED);
1660: --
1661: IF (l_debug <> -1) THEN
1662: rlm_core_sv.dlog(C_DEBUG,'No of schedule Lines Updated ', SQL%ROWCOUNT);
1663: END IF;
1658: and dsp_child_process_index = i
1659: and process_status <> rlm_core_sv.k_PS_PROCESSED);
1660: --
1661: IF (l_debug <> -1) THEN
1662: rlm_core_sv.dlog(C_DEBUG,'No of schedule Lines Updated ', SQL%ROWCOUNT);
1663: END IF;
1664: --
1665: END IF;
1666: --
1668: --
1669: END LOOP;
1670: --
1671: IF (l_debug <> -1) THEN
1672: rlm_core_sv.dpop(C_SDEBUG);
1673: END IF;
1674: --
1675: EXCEPTION
1676: --
1676: --
1677: When others then
1678: --
1679: IF (l_debug <> -1) THEN
1680: rlm_core_sv.dpop(C_SDEBUG,'Error: '|| SUBSTR(SQLERRM,1,200));
1681: END IF;
1682: raise;
1683: --
1684: END ProcessChildRequests;
1711: --
1712: rlm_message_sv.populate_req_id;
1713: --
1714: IF (l_debug <> -1) THEN
1715: rlm_core_sv.start_debug;
1716: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1717: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1718: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1719: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1712: rlm_message_sv.populate_req_id;
1713: --
1714: IF (l_debug <> -1) THEN
1715: rlm_core_sv.start_debug;
1716: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1717: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1718: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1719: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1720: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1713: --
1714: IF (l_debug <> -1) THEN
1715: rlm_core_sv.start_debug;
1716: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1717: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1718: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1719: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1720: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1721: END IF;
1714: IF (l_debug <> -1) THEN
1715: rlm_core_sv.start_debug;
1716: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1717: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1718: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1719: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1720: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1721: END IF;
1722: --
1715: rlm_core_sv.start_debug;
1716: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1717: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1718: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1719: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1720: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1721: END IF;
1722: --
1723: -- Initialize retcode to 0 and set to 2 only in case of fatal error
1716: rlm_core_sv.dpush(C_SDEBUG, 'ChildProcess');
1717: rlm_core_sv.dlog(C_DEBUG, 'p_request_id', p_request_id);
1718: rlm_core_sv.dlog(C_DEBUG, 'p_header_id', p_header_id);
1719: rlm_core_sv.dlog(C_DEBUG, 'p_index', p_index);
1720: rlm_core_sv.dlog(C_DEBUG, 'p_org_id', p_org_id);
1721: END IF;
1722: --
1723: -- Initialize retcode to 0 and set to 2 only in case of fatal error
1724: --
1738: SELECT *
1739: INTO v_sched_rec
1740: FROM rlm_interface_headers_all
1741: WHERE header_id = p_header_id
1742: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1743: rlm_core_sv.k_PS_PARTIAL_PROCESSED);
1744: --
1745: EXCEPTION
1746: --
1739: INTO v_sched_rec
1740: FROM rlm_interface_headers_all
1741: WHERE header_id = p_header_id
1742: AND process_status IN (rlm_core_sv.k_PS_AVAILABLE,
1743: rlm_core_sv.k_PS_PARTIAL_PROCESSED);
1744: --
1745: EXCEPTION
1746: --
1747: WHEN NO_DATA_FOUND THEN
1748: --
1749: UpdateGroupPS(p_header_id,
1750: null,
1751: v_Group_rec,
1752: rlm_core_sv.K_PS_ERROR,
1753: 'ALL');
1754: COMMIT;
1755: --
1756: IF (l_debug <> -1) THEN
1753: 'ALL');
1754: COMMIT;
1755: --
1756: IF (l_debug <> -1) THEN
1757: rlm_core_sv.dpop(C_SDEBUG, 'when others'|| SUBSTR(SQLERRM,1,200));
1758: rlm_core_sv.stop_debug;
1759: END IF;
1760: --
1761: RETURN;
1754: COMMIT;
1755: --
1756: IF (l_debug <> -1) THEN
1757: rlm_core_sv.dpop(C_SDEBUG, 'when others'|| SUBSTR(SQLERRM,1,200));
1758: rlm_core_sv.stop_debug;
1759: END IF;
1760: --
1761: RETURN;
1762: --}
1766: p_header_id,
1767: p_index, k_PARALLEL_DSP);
1768: --
1769: IF (l_debug <> -1) THEN
1770: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1771: rlm_core_sv.dpop(C_SDEBUG);
1772: rlm_core_sv.stop_debug;
1773: END IF;
1774: --
1767: p_index, k_PARALLEL_DSP);
1768: --
1769: IF (l_debug <> -1) THEN
1770: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1771: rlm_core_sv.dpop(C_SDEBUG);
1772: rlm_core_sv.stop_debug;
1773: END IF;
1774: --
1775: EXCEPTION
1768: --
1769: IF (l_debug <> -1) THEN
1770: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1771: rlm_core_sv.dpop(C_SDEBUG);
1772: rlm_core_sv.stop_debug;
1773: END IF;
1774: --
1775: EXCEPTION
1776: --
1778: --
1779: retcode := 2;
1780: --
1781: update rlm_interface_lines
1782: set process_status = rlm_core_sv.k_PS_ERROR
1783: where header_id = p_header_id
1784: and dsp_child_process_index = p_index;
1785: --
1786: update rlm_schedule_lines sch
1783: where header_id = p_header_id
1784: and dsp_child_process_index = p_index;
1785: --
1786: update rlm_schedule_lines sch
1787: set process_status = rlm_core_sv.k_PS_ERROR
1788: where interface_line_id in
1789: (select line_id
1790: from rlm_interface_lines_all il
1791: where header_id = p_header_id
1793: --
1794: COMMIT;
1795: --
1796: IF (l_debug <> -1) THEN
1797: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1798: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1799: rlm_core_sv.dpop(C_SDEBUG);
1800: rlm_core_sv.stop_debug;
1801: END IF;
1794: COMMIT;
1795: --
1796: IF (l_debug <> -1) THEN
1797: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1798: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1799: rlm_core_sv.dpop(C_SDEBUG);
1800: rlm_core_sv.stop_debug;
1801: END IF;
1802: --
1795: --
1796: IF (l_debug <> -1) THEN
1797: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1798: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1799: rlm_core_sv.dpop(C_SDEBUG);
1800: rlm_core_sv.stop_debug;
1801: END IF;
1802: --
1803: END ChildProcess;
1796: IF (l_debug <> -1) THEN
1797: rlm_core_sv.dlog(C_DEBUG, 'Return Code', retcode);
1798: rlm_core_sv.dlog(C_DEBUG,'When others:'||SUBSTR(SQLERRM,1,200));
1799: rlm_core_sv.dpop(C_SDEBUG);
1800: rlm_core_sv.stop_debug;
1801: END IF;
1802: --
1803: END ChildProcess;
1804:
1858: rlm_interface_lines_all ril
1859: WHERE ril.header_id = p_header_id
1860: AND ril.header_id = rih.header_id
1861: AND nvl(ril.dsp_child_process_index,-99) =nvl(p_index, -99)
1862: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1863: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1864: AND rih.org_id = ril.org_id
1865: GROUP BY rih.customer_id,
1866: ril.ship_from_org_id,
1859: WHERE ril.header_id = p_header_id
1860: AND ril.header_id = rih.header_id
1861: AND nvl(ril.dsp_child_process_index,-99) =nvl(p_index, -99)
1862: AND ril.process_status in ( rlm_core_sv.k_PS_AVAILABLE,
1863: rlm_core_sv.k_PS_PARTIAL_PROCESSED)
1864: AND rih.org_id = ril.org_id
1865: GROUP BY rih.customer_id,
1866: ril.ship_from_org_id,
1867: ril.ship_to_address_id,
1881: --
1882: BEGIN
1883: --
1884: IF (l_debug <> -1) THEN
1885: rlm_core_sv.dpush(C_SDEBUG, 'PROCESSGROUPS');
1886: rlm_core_sv.dlog(C_DEBUG, 'DSP Mode', p_dspMode);
1887: END IF;
1888: --
1889: v_sched_rec := p_sched_rec;
1882: BEGIN
1883: --
1884: IF (l_debug <> -1) THEN
1885: rlm_core_sv.dpush(C_SDEBUG, 'PROCESSGROUPS');
1886: rlm_core_sv.dlog(C_DEBUG, 'DSP Mode', p_dspMode);
1887: END IF;
1888: --
1889: v_sched_rec := p_sched_rec;
1890: --
1916: --
1917: SAVEPOINT GroupDemand;
1918: --
1919: IF (l_debug <> -1) THEN
1920: rlm_core_sv.dlog(C_DEBUG, '***** Processing new group ****');
1921: END IF;
1922: --
1923: SELECT hsecs INTO l_md_start_time from v$timer;
1924: --
1938: SELECT hsecs INTO l_md_end_time from v$timer;
1939: l_md_total:=l_md_total+(l_md_end_time-l_md_start_time)/100;
1940: --
1941: IF (l_debug <> -1) THEN
1942: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1943: END IF;
1944: --
1945: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1946: --
1941: IF (l_debug <> -1) THEN
1942: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1943: END IF;
1944: --
1945: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1946: --
1947: RAISE e_MDFailed;
1948: --
1949: END IF;
1958: SELECT hsecs INTO l_mf_end_time from v$timer;
1959: l_mf_total:=l_mf_total+(l_mf_end_time-l_mf_start_time)/100;
1960: --
1961: IF (l_debug <> -1) THEN
1962: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1963: END IF;
1964: --
1965: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1966: --
1961: IF (l_debug <> -1) THEN
1962: rlm_core_sv.dlog(C_DEBUG,'v_status:',v_status);
1963: END IF;
1964: --
1965: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1966: --
1967: RAISE e_FDFailed;
1968: --
1969: END IF;
1977: --
1978: SELECT hsecs INTO l_rd_end_time from v$timer;
1979: l_rd_total:=l_rd_total+(l_rd_end_time-l_rd_start_time)/100;
1980: --
1981: IF v_status = rlm_core_sv.k_PROC_ERROR THEN
1982: --
1983: RAISE e_RDFailed;
1984: --
1985: END IF;
1986: --
1987: UpdateGroupPS(v_Sched_rec.header_id,
1988: v_Sched_rec.schedule_header_id,
1989: v_Group_rec,
1990: rlm_core_sv.k_PS_PROCESSED);
1991: --
1992: COMMIT;
1993: --
1994: IF (p_dspMode = k_SEQ_DSP) THEN
1995: --
1996: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
1997: --
1998: IF (l_debug <> -1) THEN
1999: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header after call ProcessGroups');
2000: END IF;
2001: --
2002: RAISE e_headerLocked;
2003: --
2009: --
2010: WHEN e_MDFailed THEN
2011: --
2012: IF (l_debug <> -1) THEN
2013: rlm_core_sv.dlog(C_DEBUG,'Manage Demand failed group');
2014: END IF;
2015: --
2016: ROLLBACK TO GroupDemand;
2017: --
2017: --
2018: UpdateGroupPS(v_Sched_rec.header_id,
2019: v_Sched_rec.schedule_header_id,
2020: v_Group_rec,
2021: rlm_core_sv.k_PS_ERROR);
2022: -- Bug#: 2771756 - Start
2023: -- Bug 4198330 added group information
2024: rlm_core_sv.dlog(C_DEBUG,'Manage Demand remove messages');
2025: rlm_message_sv.removeMessages(
2020: v_Group_rec,
2021: rlm_core_sv.k_PS_ERROR);
2022: -- Bug#: 2771756 - Start
2023: -- Bug 4198330 added group information
2024: rlm_core_sv.dlog(C_DEBUG,'Manage Demand remove messages');
2025: rlm_message_sv.removeMessages(
2026: p_header_id => p_header_id,
2027: p_message => 'RLM_RSO_CREATION_INFO',
2028: p_message_type => 'I',
2039: --
2040: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2041: --
2042: IF (l_debug <> -1) THEN
2043: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_MDFailed');
2044: END IF;
2045: --
2046: RAISE e_HeaderLocked;
2047: --
2051: --
2052: WHEN e_FDFailed THEN
2053: --
2054: IF (l_debug <> -1) THEN
2055: rlm_core_sv.dlog(C_DEBUG,'Forecast Processor failed group');
2056: END IF;
2057: --
2058: ROLLBACK TO GroupDemand;
2059: --
2059: --
2060: UpdateGroupPS(v_Sched_rec.header_id,
2061: v_Sched_rec.schedule_header_id,
2062: v_Group_rec,
2063: rlm_core_sv.k_PS_ERROR);
2064: -- Bug#: 2771756 - Start
2065: -- Start bug 4198330 added grouping information
2066: rlm_message_sv.removeMessages(
2067: p_header_id => p_header_id,
2080: --
2081: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2082: --
2083: IF (l_debug <> -1) THEN
2084: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_FDFailed');
2085: END IF;
2086: --
2087: RAISE e_HeaderLocked;
2088: --
2092: --
2093: WHEN e_RDFailed THEN
2094: --
2095: IF (l_debug <> -1) THEN
2096: rlm_core_sv.dlog(C_DEBUG,'Reconcile Demand failed group');
2097: END IF;
2098: --
2099: ROLLBACK TO GroupDemand;
2100: --
2100: --
2101: UpdateGroupPS(v_Sched_rec.header_id,
2102: v_Sched_rec.schedule_header_id,
2103: v_Group_rec,
2104: rlm_core_sv.k_PS_ERROR);
2105: -- Bug#: 2771756 - Start
2106: -- Start bug 4198330 added grouping information
2107: rlm_core_sv.dlog(C_DEBUG,' before remove messages');
2108: rlm_message_sv.removeMessages(
2103: v_Group_rec,
2104: rlm_core_sv.k_PS_ERROR);
2105: -- Bug#: 2771756 - Start
2106: -- Start bug 4198330 added grouping information
2107: rlm_core_sv.dlog(C_DEBUG,' before remove messages');
2108: rlm_message_sv.removeMessages(
2109: p_header_id => p_header_id,
2110: p_message => 'RLM_RSO_CREATION_INFO',
2111: p_message_type => 'I',
2122: --
2123: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2124: --
2125: IF (l_debug <> -1) THEN
2126: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_RDFailed');
2127: END IF;
2128: --
2129: RAISE e_HeaderLocked;
2130: --
2134: --
2135: WHEN e_HeaderLocked THEN
2136: --
2137: IF (l_debug <> -1) THEN
2138: rlm_core_sv.dlog(C_DEBUG, 'e_HeaderLocked grp. level exception handler');
2139: END IF;
2140: --
2141: RAISE e_HeaderLocked;
2142: --
2142: --
2143: WHEN OTHERS THEN
2144: --
2145: IF (l_debug <> -1) THEN
2146: rlm_core_sv.dlog(C_DEBUG, 'ERROR::', SUBSTR(SQLERRM,1,200));
2147: END IF;
2148: --
2149: ROLLBACK TO GroupDemand;
2150: --
2150: --
2151: UpdateGroupPS(v_Sched_rec.header_id,
2152: v_Sched_rec.schedule_header_id,
2153: v_Group_rec,
2154: rlm_core_sv.k_PS_ERROR);
2155: -- Bug#: 2771756 - Start
2156: -- Start bug 4198330 added grouping information
2157: rlm_message_sv.removeMessages(
2158: p_header_id => p_header_id,
2171: --
2172: IF NOT LockHeader(p_header_id, v_Sched_rec) THEN
2173: --
2174: IF (l_debug <> -1) THEN
2175: rlm_core_sv.dlog(C_DEBUG, 'Unable to lock header in e_MDFailed');
2176: END IF;
2177: --
2178: RAISE e_HeaderLocked;
2179: --
2203: --
2204: END IF;
2205: --
2206: IF (l_debug <> -1) THEN
2207: rlm_core_sv.dpop(C_SDEBUG);
2208: END IF;
2209: --
2210: EXCEPTION
2211: --
2215: CLOSE c_group_cur; --bug 4570658
2216: END IF;
2217:
2218: IF (l_debug <> -1) THEN
2219: rlm_core_sv.dlog(C_DEBUG, 'e_HeaderLocked Exception in ProcessGroups');
2220: rlm_core_sv.dpop(C_SDEBUG);
2221: END IF;
2222: --
2223: RAISE e_HeaderLocked;
2216: END IF;
2217:
2218: IF (l_debug <> -1) THEN
2219: rlm_core_sv.dlog(C_DEBUG, 'e_HeaderLocked Exception in ProcessGroups');
2220: rlm_core_sv.dpop(C_SDEBUG);
2221: END IF;
2222: --
2223: RAISE e_HeaderLocked;
2224: --
2225: WHEN OTHERS THEN
2226: --
2227: IF (l_debug <> -1) THEN
2228: rlm_message_sv.dump_messages(p_header_id);
2229: rlm_core_sv.dpop(C_SDEBUG, 'Error: '||SUBSTR(SQLERRM,1,200));
2230: END IF;
2231: --
2232: raise;
2233: --