267853
267853 - AS-7UGCV2 / Change to Parameter to Control the Order Schedule Date
Copyright OBS Logistics © 2010
The information contained herein is the property of OBS Logistics and is supplied without liability for errors or omissions. No part may be reproduced or used except as authorised by contract or other written permission. The copyright and foregoing restriction on reproduction and use extend to all media in which the information may be embodied
FUNCTIONAL OVERVIEW
Client Requirement
The current logic is to assign an order to the next day schedule if it has a time after the time of the schedule start. We need to set the SCH_SCHED_TIME to 04:00 (M & S Planning horizon) so a schedule will run from 04:00 to 03:59. In connection with RIO NW-7M8D33 with the schedule driven from the EDDT the following examples would apply. An order with the earliest delivery date and time on the order is 04:30 31/07/09 the schedule would be 090731, if an order with the earliest delivery date and time on the order is 03:30 31/07/09 the schedule would be 090730.
The development needs to work for all instances of the parameter to determine where the schedule is driven from
ECDT - Earliest Collection Date Time
LCDT - Latest Collection Date Time
EDDT - Earliest Delivery Date Time
LDDT - Latest Delivery Date Time
The attached document provided by OBS also outlines the requirements.
Solution
The current logic that MTS uses to derive the schedule of an order will be enhanced to cater for a schedule start time (system parameter SCH_SCHED_START) of early hours of the morning. Currently, the typical value for SCH_SCHED_START is 22:00 hrs. If the time of the order is before SCH_SCHED_START, the order is allocated to today’s schedule and if equal to or after, to tomorrow’s schedule. Currently MTS will apply the same logic if SCH_SCHED_START is set to early hours of the morning and consequently will not give the desired result.
The solution will be based on automatic selection of one of two logic rules. If the SCH_SCHED_START time parameter is before midday (including midnight 00:00) rule 1 will be applied. If the SCH_SCHED_START time parameter is equal to midday or after midday rule 2 will be applied.
- Rule 1 – If the time of the order is before the SCH_SCHED_START, the order will be allocated to the schedule of the order date -1. If the order time is equal to or after the SCH_SCHED_START, the order will be allocated to the schedule of the order date.
- Rule 2 – If the time of the order is before the SCH_SCHED_START, the order will be allocated to schedule of the order date. If the order time is equal to or after the SCH_SCHED_START, the order will be allocated to the schedule of the order date +1.
Reference to RIO NW-7M8D33 - Please note that the order date and order time referenced above will be dynamically selected from any one of the four order dates and times namely;
ECDT - Earliest Collection Date Time
LCDT - Latest Collection Date Time
EDDT - Earliest Delivery Date Time
LDDT - Latest Delivery Date Time
This will be controlled from a new system parameter SCH_SCHED_ORD_DERIVE with possible values of ECDT, LCDT, EDDT or LDDT.
Scope
These changes will be applied to system version 10.6 on MASTST and once approved MASPRD.
SET-UP
Pre-Requisites
Database has the parameters SCH_SCHED_DURATION and SCH_SCHED_START set up. The change is dependant upon the changes outlined in the specification ‘FS-259081NW-7M8D33 New Parameter to Control the Order Schedule Date’ being released.
FUNCTIONAL DESCRIPTION
Current Functionality
Below is a screenshot of a sample order number:
The system parameter SCH_SCHED_ORD_DERIVE currently determines which of the collect times is used for the date within the schedule name. If the parameter is set as ‘ECDT’ or is blank, the schedule is generated based on the early collect time highlighted. If it is set to ‘LCDT’, the schedule is generated based on the late collect date and time. Similarly, if the rule is set to ‘EDDT’ or ‘LDDT’ the schedule is generated on the early or late delivery dates and times.
SCH.Create_Schedule
This procedure is called from various places via SCH.Get_Schedule and is executed whenever a new schedule needs to be created. The procedure receives an initial date and time based on the logic described in the last section, i.e. based on the SCH_SCHED_ORD_DERIVE parameter. The date of the schedule created is passed back to the calling process and this date is used to update the order record. This change involves changing the logic to determine the schedule date the order is assigned to. The two examples below describe the logic required when the SCH_SCHED_START time is set before 12:00 noon:
Assumptions: SCH_SCHED_START parameter is set to a value of 04:00, today’s date is 13-Aug-09.
EXAMPLE 1
If an order is passed in for today’s date and a time of 11:00, the program will check for the existence of a SCH_SCHED record running from 04:00 today up to 03:59 tomorrow. If this schedule exists, the process will pass back the name of the schedule, which will be 090813. If it does not exist, the process will create a new schedule with the name of 090813, the SCHED_START as 13/08/09 04:00 and the SCHED_END as 14/08/09 03:59.
EXAMPLE 2
If an order is passed in for today’s date and a time of 02:00, the program will check for the existence of a SCH_SCHED record running from 04:00 yesterday up to 03:59 today. If this schedule exists, the process will pass back the name of the schedule, which will be 090812. If it does not exist, the process will create a new schedule with the name of 090812, the SCHED_START as 12/08/09 04:00 and the SCHED_END as 13/08/09 03:59.
The following examples describe the logic required when the SCH_SCHED_START time is set after 12:00 noon:
EXAMPLE 3
Assumptions: SCH_SCHED_START parameter is set to a value of 22:00, today’s date is 13-Aug-09.
If an order is passed in for today’s date and a time of 11:00, the program will check for the existence of a SCH_SCHED record running from 22:00 yesterday up to 21:59 tomorrow. If this schedule exists, the process will pass back the name of the schedule, which will be 090813. If it does not exist, the process will create a new schedule with the name of 090813, the SCHED_START as 12/08/09 22:00 and the SCHED_END as 13/08/09 21:59.
EXAMPLE 4
If an order is passed in for today’s date and a time of 23:00, the program will check for the existence of a SCH_SCHED record running from 22:00 today up to 21:59 tomorrow. If this schedule exists, the process will pass back the name of the schedule, which will be 090814. If it does not exist, the process will create a new schedule with the name of 090814, the SCHED_START as 13/08/09 22:00 and the SCHED_END as 14/08/09 21:59.
Note that this process is called from the ORDERS form for manually created orders, the OMS and OMS_INT packages for IMPORT_TI and automatic edi orders, the GEN_TI package for bookings, the IMP package for manual csv orders and the INT_XML_OUT.sql package for inbound xml orders.
REFERENCES
Rio – Work Request.mht | |||
EST-267853 AS-7UGCV2 SCH_SCHED_TIME parameter v3.0.doc |
DOCUMENT HISTORY
Initial version | ||||
Reviewed | ||||
Reviewed |
AUTHORISED BY
Matt Crisford | Development Manager | |
Peter Greer | TMSCC MTS Product Manager |