286734: Difference between revisions
Middletong (talk | contribs) No edit summary |
No edit summary |
||
(5 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
=286734 | {{Doc_Title|System=FUNCTIONAL SPECIFICATION|Title=Carrier Trip Planning|Reference=FS 286734 DK-8EMEWU |Version=2.0|Date=|Sysver=10.6|Client=DHL C-TMS}} | ||
Line 169: | Line 165: | ||
==Carrier Lane Maintenance== | ==Carrier Lane Maintenance== | ||
A new tab page in the ‘Resource Maintenance’ screen called ‘CARRIER_LANES’ with the title ‘Carrier Lanes’ will be created to view and manipulate the carrier lane data stored on the new tables: | |||
[[Image:286734_1.png]] | |||
The tab page will contain a table to display the haulier lane details and a sub-screen for the haulier group details that can be called via a button called ‘Group’. An example of the layout of the tab page and sub-screen is shown below: | |||
[[Image:286734_2.png]] | |||
*Clicking New will allow the user to add a new row in the screen (user function to control access). Greyed if not applicable. | |||
*Clicking Delete will delete the highlighted record (dependent on user level access). Greyed if not applicable. | |||
*Clicking Cancel will not save any changes made. | |||
*Clicking Save will save the changes made. | |||
*Clicking Refresh will select the records for display. | |||
*Clicking Group will display the information for the lane group and carrier for the highlighted row (see screen at section 3.1.2). | |||
*Clicking Update Rates will display a window in which the user can select a carrier and optionally a Tariff ID and adjust the rate by a percentage (see screen at section 3.1.3). | |||
*Clicking Audit will display the audit trail for the changes to the Carrier Lanes (see screen at section 3.1.4). | |||
*Clicking Close will close the form and return the user to the menus. | |||
*A horizontal scrollbar will be available at the bottom of the data columns so that all of the columns may be viewed. | |||
*A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed. | |||
*Double Click on the Tariff ID will open the relevant contracts tariff detail screen. | |||
Permission to insert and change carrier lane information will be granted in the access control screens for the user group: | |||
An example of the access control screen is shown below to illustrate where this permission is mainatained for user groups. | |||
[[Image:286734_3.png]] | |||
New functions will be created to enable the records to be maintained by authorised user groups. | |||
These functions will control whether a user can maintain carrier lanes, plan trips for carrier lanes and change order collection and delivery dates. | |||
The records for the carrier lanes will be selected and queried using the filters: | |||
*Lane ID | |||
*Carrier Region | |||
*Carrier Lane Group | |||
*Carrier | |||
*Collect (PlanningRegion, Postal Region, Postcode, Distance Greater or Distance Less) | |||
*Deliver (PlanningRegion, Postal Region, Postcode, Distance Greater or Distance Less) | |||
*Procured (DHL or PET) | |||
*Lane Type (REG or DIST) | |||
*Historic (defaults to N so current effective selected) | |||
*Inactive (defaults to N so active selected) | |||
Each filter will allow a list of values to be entered which can be displayed via the use of ‘%’ in the field or by pressing a button positioned directly to the right of the field. | |||
No records will be displayed on initail entry into the screen as the user is expected to enter filters first. If the user uses the keyboard to navigate in the filters in the screen the fields entered will be in the following sequence: | |||
*Lane ID | |||
*Carrier Region | |||
*Carrier Lane Group | |||
*Carrier | |||
*Collect | |||
*Deliver | |||
*Procured | |||
*Lane Type | |||
*Historic | |||
*Inactive | |||
*Refresh (Button) | |||
If the user uses the keyboard to navigate in the haulier lane rows then each column will be entered in turn from left to right. | |||
The user will require access to the ‘New’ and ‘Delete’ buttons and they will be inactive (i.e. greyed out) should the user not have permission to insert or change data in this screen. If the user presses the ‘Save’ or ‘Cancel’ buttons in the screen then the data will be refreshed automatically. | |||
Validation will be performed to ensure that the haulier lane record is unique, the unique record will be: | |||
*Carrier Region | |||
*Carrier Lane Group | |||
*Carrier | |||
*Country Collect | |||
*Collect Type | |||
*Collect | |||
*Country Deliver | |||
*Deliver Type | |||
*Deliver | |||
*Start Date | |||
*End Date | |||
*Tariff_ID | |||
This will allow more than one record to exist but for different date ranges. | |||
The ‘Lane ID’ will be generated automatically for each record using sequence ‘SEQ_RTE_HAULIER_LANE’. | |||
The data displayed on screen is described as follows with the corresponding database column in which the data will be stored and retrieved (from the database table ‘RTE_HAULIER_LANE’ unless otherwise stated): | |||
[[Image:286734_4.png]] | |||
The records will be validated during entry: | |||
*The carrier must exist as a carrier in the ‘Carriers’ tab page of the ‘Resource Maintenance’ screen (i.e. ‘RES_CARRIER.CARRIER_ID’) | |||
*The country codes must exist in the ‘Country Code’ screen (i.e. ‘GEO_COUNTRY.COUNTRY_CODE’) | |||
*The collect and deliver types will be a dropdown list of ‘Postcode’, ‘Postal Region’, ‘Planning Region’, ‘Distance Greater’ and ‘Distance Less’ and will be mapped to values ‘PC’, ‘PR’, ‘PL’, ‘DG’ and ‘DL’ respectively | |||
*Collect and deliver will correspond to the type: | |||
**Postcodes must exist for a location (i.e. ‘GEO_LOCATION.POSTCODE’) | |||
**Postal Regions must exist for the country code of the lane in the ‘Region Data’ tab page of the ‘Static Data Maintenance’ screen (i.e. ‘GEO_PLAN_REGION.POSTAL_REGION’) | |||
**Planning Regions must exist for the country code of the lane in the ‘Region Data’ tab page of the ‘Static Data Maintenance’ screen (i.e. ‘GEO_PLAN_REGION.PLANNING_REGION’) | |||
**Distance Greater and Distance Less must be numeric values | |||
*The procured value will be a dropdown list of ‘DHL’ or ‘PET’ | |||
*The lane type will be a dropdown list of ‘REG’ or ‘DIST’ | |||
*The priority will be a number and ‘1’ will represent the highest priority | |||
*The action will be a dropdown list of ‘Manual Plan’, ‘Create Trip’ or ‘Brief Trip’ and will be mapped to values ‘M’, ‘C’ and ‘B’ respectively: | |||
**‘Manual Plan’ indicates that the lane will not be used to automatic trip plan | |||
**‘Create Trip’ indicates that the lane will be used for trip planning but the carrier will NOT be briefed should a trip be created | |||
**‘Brief Trip’ indicates that the lane will be used for trip planning but the carrier will be briefed should a trip be created by updating the status of the trip to ‘ACCEPTED’ and so trigger the production of the driver manifest/trip sheet | |||
*The cost per tonne will be the cost to the carrier in currency but may be left blank | |||
*The maximum number of trips per lane that a carrier can accept per day must be a positive number | |||
*The tariff ID will be an existing tariff from a matching carrier contract. | |||
*The rate agreement will be a free format reference | |||
*The start date will be in format ‘DD/MM/YYYY’ and must be valid | |||
*The end date will be optional and in format ‘DD/MM/YYYY’ and if entered must be valid and must not be before the start date | |||
*The inactive flag will be a tick box which if ticked will set the flag to ‘Y’ | |||
The lane selection logic will best match the lane ‘collect from’ and ‘deliver to’ attributes first on postcode, then postal region, then planning region of the order collection location and delivery addresses and then distance of the order. This selection will be considered in the following sequence: postcode to postcode; postcode to postal region; postcode to planning region; postcode to distance less breakpoint; postcode to distance greater breakpoint then postal region to postcode, etc through all permutations of postcode, postal region planning region and distance breakpoints. | |||
This logic will allow for the most specific data to be applied first, i.e. postcode, postal region, planning region then distance breakpoint. | |||
===Carrier Lane Groups=== | |||
The ‘Group’ button will call the screen below in a different window and canvas: | |||
[[Image:286734_5.png]] | |||
*Clicking New will allow the user to add a new row in the screen (user function to control access). Greyed if not applicable. | |||
*Clicking Delete will delete the highlighted record (dependent on user level access). Greyed if not applicable. | |||
*Clicking Cancel will not save any changes made. | |||
*Clicking Save will save the changes made. | |||
*Clicking Refresh will select the records for display. | |||
*Clicking Close will close the screen and return the user to the Carrier Lanes screen. | |||
*A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed. | |||
If the ‘Carrier Lane Groups’ sub-screen has been called with a carrier lane record highlighted then the carrier lane group will be found automatically and the filters populated. | |||
The user will require access to the ‘New’ and ‘Delete’ buttons and they will be inactive (i.e. greyed out) should the user not have permission to insert or change data in this screen. | |||
The users with access to the tab page will be able to insert, update and delete carrier lanes and update carrier lane groups. If a new carrier lane is inserted then the carrier lane group will be inserted too with a default number of maximum trips per day of ‘9999’. | |||
A unique carrier lane can be defined as the combination of the types of collection and delivery locations (postcodes, postal regions, planning regions or distance breakpoints). | |||
When the tab page is opened the ‘Carrier Lanes’ window and canvas will be displayed with all records stored on the ‘RTE_HAULIER_LANES’ table. | |||
The filters at the top of the screen will be used to select specific records. | |||
The data displayed on screen is described as follows with the corresponding database column in which the data will be stored and retrieved (from datebase table ‘RTE_HAULIER_LANE_GROUP’): | |||
[[Image:286734_6.png]] | |||
The records will be validated during entry: | |||
*The lane group must exist as a carrier lane (i.e. ‘RTE_HAULIER_LANE.LANE_GROUP’) | |||
*The carrier must exist as a carrier in the ‘Carriers’ tab page of the ‘Resource Maintenance’ screen (i.e. ‘RES_CARRIER.CARRIER_ID’) and in combination with the lane group as a carrier lane | |||
*The maximum number of trips per lane group that a carrier can accept per day must be a positive number | |||
===Update Rate Agreement=== | |||
The ‘Update Rates’ button will call the screen below in a different window and canvas: | |||
[[Image:286734_7.png]] | |||
*Clicking Cancel will not save any changes made. | |||
*Clicking Save will save the changes made. | |||
*Clicking Close will close the screen and return the user to the Haulier Lanes screen. | |||
A valid carrier and optionally a carrier region and lane group and/or a rate agreement and/or a tariff Id will be entered supported by a list of values lookup, and a percentage entered for which the cost per tonne of the carrier lane records will be calculated. | |||
The percentage entered can be a positive or a negative number. | |||
The update rates function will always create new records set with the entered effective date start and end. The current most recent effective date start lane record will be used as input to the function. | |||
If a date range would overlap then the existing record will be updated to end on the day before the start date of the new record, this will avoid concurrent rates being created. | |||
The update rate function will apply to the carrier lane records if a tariff id is not entered and to the contract tariff id is a tariff id is entered. | |||
===Carrier Lane Audit=== | |||
The ‘Audit’ button will call the screen below in a different window and canvas for the carrier lane highlighted: | |||
[[Image:286734_8.png]] | |||
*Clicking Close will close the screen and return the user to the Carrier Lanes screen. | |||
*A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed. | |||
An audit record will be created when a carrier lane is created, updated or deleted via a database trigger on the new ‘RTE_HAULIER_LANE’ table. | |||
The trigger will write to the new ‘RTE_HAULIER_LANE_AUDIT’ table with the change(s) made recorded. | |||
An audit ID will be generated automatically from a database sequence number. | |||
The audit screen will display the audit records in reverse chronological sequence so the most recent change first. | |||
===Tables=== | |||
New database tables will be used to store the data displayed in the new tab page and sub-screen as described in the tables below: | |||
'''RTE_HAULIER_LANE:''' | |||
[[Image:286734_8.png]] | |||
'''RTE_HAULIER_LANE_GROUP:''' | |||
[[Image:286734_9.png]] | |||
'''RTE_HAULIER_LANE_ORDERS:''' | |||
[[Image:286734_10.png]] | |||
'''RTE_HAULIER_LANE_AUDIT:''' | |||
[[Image:286734_11.png]] | |||
==Carrier Lane Upload=== | |||
===Import Maintenance=== | |||
[[Image:286734_12.png]] | |||
A new CSV import function will be created to upload carrier lane information into C-TMS. The resulting data uploads will then be visible in the carrier lane maintenance screen as described above. The import function will provide insert of new lane data and update of existing records. | |||
The new import will be setup in the ‘Import Maintenance’ screen for the following values: | |||
Header Level (‘IMP_RECORD_FORMAT’): | |||
[[Image:286734_13.png]] | |||
'''Detail Level (‘IMP_FIELD_SOURCE’):''' | |||
[[Image:286734_14.png]] | |||
The ‘IDENTIFIER’ will be the activity to be performed, i.e. ‘I’ to insert a record, ‘U’ to update a record or ‘D’ to delete a record. | |||
The import type ‘CARRIER_LANE’ will be inserted into the ‘IMP_IMPORT_TYPES’ table so that it can be used in the configuration of the import. | |||
The user group will need authorised access for the import type to process a file. An example of how this authorisation is maintained is shown below; | |||
[[Image:286734_15.png]] | |||
[[Image:286734_16.png]] | |||
Validation will be performed to ensure that the insertion of a carrier lane will not create a duplicate record and that the record is found to update or delete. | |||
If a haulier lane is inserted without lane group then a default record will be created with the maximum number of trips per day of ‘9999’. | |||
The created and updated columns on the tables ‘RTE_HAULIER_LANE’ and ‘RTE_HAULIER_LANE_GROUP’ will be set as required via the triggers on those tables. | |||
===IMP Package=== | |||
The ‘IMP’ package will be changed to process the new ‘CARRIER_LANE’ type in function ‘IMPORT_SERVER_FILE’ for which a new function called ‘PROCESS_CARRIER_LANE’ will be created to extract the items in the file and upload the data into the carrier lane and group tables. | |||
The record type will determine into which table the data is inserted, updated or deleted based on the value in the ‘IDENTIFIER’ field. | |||
The fields will need to be validated as follows: | |||
'''LANE''' | |||
[[Image:286734_17.png]] | |||
'''GROUP''' | |||
[[Image:286734_18.png]] | |||
Once the data has been validated it will be inserted, updated or deleted as required. The update action will create a new carrier lane record in place of the original which will be closed by its effective END_DATE. | |||
==Haulier Lane Extract== | |||
A new CSV extract process will be created to extract the carrier lane information from the C-TMS database into a CSV format. This functionality will allow maintenance and amendments to be managed in excel and then re-imported using the CSV upload function mentioned above. The output will be configured to be of the same format expected by the import described above. The generic C-TMS reporting suite function will be used to obtain the extracts. | |||
The screens and description below illustrates the method that this will be achieved using for example an extract of data across orders and trips and stops. | |||
[[Image:286734_19.png]] | |||
The file produced in the directory indicated for the example above looks like: | |||
# more ORS_MTS_OWNER_110412090457.csv | |||
Schedule,Trip ID,Trip Status,Stop Location,Stop No.,Order Ref | |||
050812,=t("MAN-00002162"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3349") | |||
050812,=t("MAN-00002162"),=t("CONFIRMED"),=t("RAMAHAYD"),2,=t("3349") | |||
050812,=t("MAN-00002162"),=t("CONFIRMED"),=t("EXELLUTT"),3,=t("") | |||
050812,=t("MAN-00002163"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3346") | |||
050812,=t("MAN-00002163"),=t("CONFIRMED"),=t("BAYLGOOL"),2,=t("3346") | |||
050812,=t("MAN-00002163"),=t("CONFIRMED"),=t("EXELLUTT"),3,=t("") | |||
050812,=t("MAN-00002164"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3345") | |||
050812,=t("MAN-00002164"),=t("CONFIRMED"),=t("BAYLWARR"),2,=t("3345") | |||
050812,=t("MAN-00002164"),=t("CONFIRMED"),=t("EXELLUTT"),3,=t("") | |||
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3370") | |||
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("TESTYORK"),3,=t("3351") | |||
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("NISASCUN"),2,=t("3370") | |||
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("EXELLUTT"),4,=t("3351") | |||
And then once uploaded into a spreadsheet: | |||
[[Image:286734_20.png]] | |||
The new extract will be setup in the ‘Oracle Reporting Suite’ screen for the following values: | |||
'''Header Level (‘ORS_MASTER_DATA’):''' | |||
[[Image:286734_21.png]] | |||
'''Detail Level (‘ORS_MASTER_DATA’):''' | |||
[[Image:286734_22.png]] | |||
The system parameters ‘MTS_CSV_EXPORT_PATH’ and ‘MTS_CSV_EXPORT_PATH_ORS’ control where the output file is written. | |||
If the extract is performed at the ‘LANE’ level then only the items for that level will be included whereas if the extract is performed at the ‘GROUP’ level then the items for both of the levels will be included. | |||
The SQL code on table ‘ORS_SQL’ will be as below: | |||
[[Image:286734_23.png]] | |||
==Automatic Planning by Lanes== | |||
Automatic planning of single order full load trips will be provided by reference to the carrier lane data and will be performed when an order is raised via the inbound EDI order upload; the order will be assessed against the carrier lanes setup and if there is a haulier available for the route then a trip will be created with the haulier and the order will be assigned to it; the haulier will then be advised of the work via the automatic briefing of the driver manifest. | |||
The pre-sold carrier lanes will have agreed costs (or lane table rates) in place which will automatically generate the costs for the trip and pass them through to EFX. | |||
Only the carrier lanes configured with ‘Action’ types ‘Create Trip’ and ‘Brief Trip’ will be considered for automatic planning. | |||
The creation of the trip will use the following procedures: | |||
*TRM.INSERT_TRIP | |||
*TRM.ADD_ORD_TO_TRIP | |||
*TRM.CALC_DISTANCE_AND_TIME | |||
*TRM.VALIDATE_TRIP | |||
If a valid carrier lane cannot be found for the order then the order will remain in the unplanned order well for manual trip planning. | |||
When the order is assigned to a trip the ‘RTE_HAULIER_LANE_ORDERS’ table will be updated to enable the number of orders assigned to trips for a carrier lane per schedule to be recorded, this will make it possible to assess the transport capacity of the carrier is not exceeded during trip planning. | |||
===Redirected Orders=== | |||
Redirected orders will be identified with a sub-reference of type ‘69’ (original order) with the original OMS reference of the redirected order; these orders will not automatically plan regardless of the action field on the corresponding carrier lanes record. | |||
It is expected that the original trip will be at status ‘EN-ROUTE’ so redirected orders will be manually planned by add to trip via a right-click option called ‘Apply to Original Trip’ using function ‘TRM.ADD_ORD_TO_TRIP’ and validated using function ‘TRM.VALIDATE_TRIP’. | |||
Redirect orders will be revenue rated using the manual exception revenue / tonne entry on the order screen finance tab. The carrier trip will be cost manually by spot rate override for redirect order scenarios. | |||
When the order is assigned to the trip the ‘RTE_HAULIER_LANE_ORDERS’ table will be updated to enable the number of orders assigned to trips for a carrier lane per schedule to be recorded, this will make it possible to assess the transport capacity of the haulier is not exceeded during trip planning. The redirected order will replace the original order on the table. | |||
==Create and Brief Carrier Trips== | |||
A new form ‘HAUL_TRIP_PLAN’ will be created to allow planners to plan orders onto trips with reference to carrier lanes. The form will be called ‘Carrier Trip Planning’ on the main window and canvas and be accessed from the ‘Trip Management’ menu. An example of the design of the screen is shown below: | |||
[[Image:286734_24.png]] | |||
A configure layout function will be provided to allow planners to create various personalised views of the columns of data to suit their preference. The screen design shows all columns that will be available and subsets of these can be created into personalised views by the planners. A default view will be defined which controls the columns displayed initially as the planner opens the form for the first time in a user session. | |||
[[Image:286734_25.png]] | |||
*Clicking Layout will allow the user to configure layout to their preference and display the columns in their chosen format. | |||
*Clicking Combine Orders will allow the user to create a trip for the orders selected (user function to control access). Greyed if not applicable. | |||
*Clicking Combine Orders & Brief will allow the user to create and brief a trip for the orders selected (user function to control access). Greyed if not applicable. | |||
*Clicking Create Trip will allow the user to create a trip for each of the orders selected (user function to control access). Greyed if not applicable. | |||
*Clicking Create Trip & Brief will allow the user to create and brief a trip for each of the orders selected (user function to control access). Greyed if not applicable. | |||
*Clicking Change Date will allow the user to update the planned collection and delivery dates for the orders selected (user function to control access). Greyed if not applicable. | |||
*Clicking Refresh will select the records for display using the filters. | |||
*Clicking Close will close the screen and return the user to the menu. | |||
*A horizontal scrollbar will be available at the bottom of the data columns so that all of the columns may be viewed. | |||
*A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed. | |||
*Double click on Cust Ref or OMS Ref will open the detail ORDERS form and query the order details | |||
*Double click on Tariff ID will open the contract tariff form and query the contract tariff details (ladder table of costs by distance breakpoints) | |||
This new screen will display the unscheduled orders for specific selection criteria and the planner can then create trips for the orders and brief them to carriers. The order status selection will be UNSCHEDULED by default. | |||
The screen can also be used to query trips already planned to aid visibility of the operation. The orders will be queried using the order status and or trip status to view planned orders. | |||
he selection criteria will be: | |||
*Mandatory Schedule range from and to (delivery date range) | |||
*Optional order status (i.e. UNSCHEDULED or SCHEDULED defaulting to UNSCHEDULED’) | |||
*Optional Planning region from (multiple values allowed) | |||
*Optional Planning region to (multiple values allowed) | |||
*Optional Postal region from | |||
*Optional Postal region to | |||
*Optional Postcode from | |||
*Optional Postcode to | |||
*Optional Collection location code | |||
*Optional Delivery location code | |||
*Optional Customer reference | |||
*Optional OMS reference | |||
*Optional Order status | |||
*Optional Carrier (to filter on matching orders by reference to the lane table agreements and rules for a particular carrier) | |||
*Optional Carrier region | |||
*Optional Carrier lane group | |||
*Optional Trip status | |||
*Option Trip Id | |||
The orders will display the following information: | |||
*Schedule | |||
*Order Status | |||
*Customer Order Reference | |||
*OMS Reference | |||
*R – Redirect Order Flag | |||
*S – Split Order Flag | |||
*Planning Region From | |||
*Postal Region From | |||
*Collection Location ID | |||
*Collection Location Name | |||
*Collection Town | |||
*Collection Postcode | |||
*Early Collect Date and Time | |||
*Late Collect Date and Time | |||
*Planning Region To | |||
*Postal Region To | |||
*Delivery Location ID | |||
*Delivery Location Name | |||
*Delivery Town | |||
*Delivery Postcode | |||
*Early Delivery Date and Time | |||
*Late Delivery Date and Time | |||
*Distance (Order) | |||
*Weight | |||
*Currency | |||
*Revenue (generated) | |||
*Revenue/Tonne | |||
The ‘Revenue’ generated will be calculated by identifying the rate applied (i.e. the ‘Revenue/Tonne’ obtained from the postcode matrix or the base contract) and the ordered weight. | |||
The screen will also be used to display visibility of planned orders so trip and cost information will also be displayed: | |||
*Trip ID | |||
*Trip Distance | |||
*Trip Status | |||
*Carrier | |||
*Region | |||
*Lane Group | |||
*Currency | |||
*Carrier cost of trip | |||
*Cost/Tonne of trip | |||
A configurable layout will be included as a right-click option in the orders data block to enable the planners to create a view of the columns from the full list defined above. This will use the same functionality and logic used for the configurable layout in the existing ‘Trip Manipulation’ screen: | |||
[[Image:286734_26.png]] | |||
Only unscheduled orders not planned on trips can be processed using the 5 action buttons. | |||
Once the orders are displayed, the planner will highlight an order, or orders, using mouse clicks. | |||
Action buttons will be used to allow the planner to process the highlighted orders: | |||
*'''Combine Orders:''' The highlighted orders will be used to reference the carrier lane table rules and a suggestion list of possible carriers including preference, type, cost per tonne, lane type and contact details will be generated. The planner will select a carrier from the list (or lookup an alternative from the full list of known carriers). The selection can be abandoned in which case the carrier pop up list will close and the orders can then be selected again. Once the planner confirms the carrier and confirms the action a single trip will be created for the selected orders at ‘PLANNED’ status. | |||
*'''Combine Orders & Brief:''' As above combine orders function but the single trip resulting will be created and updated to ‘ACCEPTED’ status which will automatically generate the driver manifest document and send via the defined method of e-mail or fax. | |||
*'''Create Trip:''' The highlighted order, or orders, will be used to reference the carrier lane table rules and a suggestion list of possible carriers including preference, type, cost per tonne, lane type and contact details will be generated. The planner will select a carrier from the list (or lookup an alternative from the full list of known carriers). The selection can be abandoned in which case the carrier pop up list will close and the orders can then be selected again. Once the planner confirms the carrier and the action a single trip for each order will be created for the selected orders at ‘PLANNED’ status. | |||
*'''Create Trip & Brief:''' As above create trip function but the resulting trips (one trip per order) will be created and updated to ‘ACCEPTED’ status which will automatically generate the driver manifest document and send via the defined method of e-mail or fax. | |||
The trip creation functionality will be developed with the following assumptions: | |||
*The schedule of the trip created will be based on the delivery date of the orders planned. | |||
*A new schedule will be created using function ‘SCH.CREATE_SCHEDULE’ if one does not exist. | |||
*If the capacity of a trip is exceeded, based on weight capacity of vehicle type (trailer type) selected, then an error message will be generated to prevent the creation of an overweight trip. | |||
*The maximum number of orders per carrier per day (carrier group) and the maximum number of trips per lane will be assessed for each carrier and validation performed to warn the user if these constraints have been, or will be, exceeded. | |||
*Once a new trip is created, the order well will be refreshed using the current selection criteria and will display the remaining unallocated orders that match | |||
===Carrier Selection=== | |||
When orders have been selected and the planner selects one of the 4 action buttons to create trips then a new sub-screen called ‘Carrier Selection’ will be displayed to enable the planner to see which carriers are preferred for the matching lane(s) and to allow one of the carriers, or a different carrier, to be assigned to the trip(s) being created. | |||
Carriers will only be displayed if a lane can be found for all of the orders selected; if no carriers are found then the list will be empty and the user will specify a carrier as an override in the screen header with a spot rate cost which will then be applied to the trip(s) created on save. | |||
An example of the sub-screen is shown below: | |||
[[Image:286734_27.png]] | |||
Any carrier lanes will be found and displayed for the orders highlighted in the lane selection logic defined in section 3.1.1 and then the priority should the carrier lane criteria result in multiple carrier results. | |||
*The planner can choose a suggested carrier from the list. | |||
*The carrier select will allow the planner to specify a different carrier in the header to those preferred and suggested and in this circumstance a spot rate cost entry will be required. | |||
*Spot Rate will allow the planner to specify a different rate per tonne for the selected carrier. | |||
*Capped Load will allow the planner to specify the capped tonnage in the adjacent field (the difference to be applied/apportioned equally to each combined order). | |||
*Skip Select will be a tick box to allow the planner to create a trip without assigning a carrier and a cost. | |||
*Clicking Cancel will not save any changes made and will return the user to the Haulier Trip Planning screen and the haulier selection process will be abandoned. | |||
*Clicking Save will save the changes made, create the trip(s) and return the user to the Haulier Trip Planning screen. | |||
*The select screen provides a view of the previous historic 10 orders between the collection and delivery locations of the order highlighted. | |||
*Clicking Close will close the screen and return the user to the Haulier Trip Planning screen. | |||
*A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed. | |||
The select functionality will allow a different carrier from the suggestions list to be selected from a drop-down list of carriers; the spot rate cost will then be required and the trip creation process will run once the spot rate cost has been set. The spot rate will be entered in the specified currency, usually GBP for a carrier listed. | |||
The capped load field will allow the tonnage for the trip to be specified by exception and costed accordingly regardless of the ordered or actual weight captured at debrief or from Tokairo scan. | |||
Capped weights on combined order trips will be apportioned equally to the orders assigned to the trip. For example, with a capped load of 29t for a total trip weight of 24t: | |||
[[Image:286734_28.png]] | |||
The ‘SCH_ORD’ table will be updated (but not committed until trip creation has been successful) as follows for a capped load of 29t: | |||
[[Image:286734_29.png]] | |||
The orders assigned to the trip will then indicate in the ‘Finance’ tab page of the ‘Order Details’ screen that they have a capped load (see ‘FS-286731 DK-8EME2Y Order Management‘ for further details). | |||
The ‘Contact’ field will be the ‘Contact’ and ‘Phone’ as maintained for the carrier in the ‘Resource Maintenance’ screen: | |||
[[Image:286734_30.png]] | |||
If the details for the carrier for the creation of the trip are as required then the planner will press the ‘Save’ button, the trip creation process will run and return the planner to the ‘Carrier Trip Planning’ screen. A selected carrier and lane cost or spot rate must be available for the planner to save and continue with the trip creation unless skip select is checked. | |||
A trailer type will be defaulted from a list of valid trailer types. The capacity of the trailer type will then be validated during trip creation against the total weight of the orders being assigned to the trip and the process discontinued should the capacity of the trailer type be exceeded for a trip stop. This functionality will be configured using system parameters ‘TRM_USE_MAX_RPE_OF_LARG_TRAILER’ and ‘TRM_CHECK_LIMITS’. | |||
===Previous Costs=== | |||
The carrier selection screen will provide the planner with a view of the previous 10 costs agreed with carriers planned between the same collection and delivery location. | |||
The data will be displayed in descending sequence for the schedule and order reference (i.e. OMS reference). | |||
===Trip Creation=== | |||
Prior to trip creation a save point will be introduced to enable any rollbacks to be performed. | |||
The creation of the trip may will the following procedures: | |||
*TRM.INSERT_TRIP | |||
*TRM.ADD_ORD_TO_TRIP | |||
*TRM.CALC_DISTANCE_AND_TIME | |||
*TRM.VALIDATE_TRIP | |||
If an error has been detected during the processing, the error message and an explanation will be displayed and the process will be rolled back to the save point. | |||
When an order is assigned to a trip the ‘RTE_HAULIER_LANE_ORDERS’ table will be updated to enable the number of orders assigned to trips for a carrier lane per schedule to be recorded, this will make it possible to assess the trip capacity of the haulier is not exceeded during trip planning. | |||
===Briefing=== | |||
If the trip(s) created are to be briefed, by sending the delivery manifest to the carrier assigned, then the trip status will be updated to ‘ACCEPTED’ and the briefing performed automatically if a haulier has been assigned to the trip. | |||
A trigger on the ‘SCH_TRIP’ table will be run when the status is updated to ‘ACCEPTED’. This will write an event called ‘DRIVER_MANIFEST’ and a database job will process and create the driver manifest for the carrier assigned to the trip from this event (see the functional specification ‘FS-286735 DK-8EMF3R Additional Documentation’ for further details about sending e-mails or faxes.). | |||
The carrier trip planning screen will be developed so that orders on ‘PLANNED’ trips can be selected. A right-click option will allow the planner to brief the carrier assigned to the trip displayed by setting the trip status to ‘ACCEPTED’. | |||
It will also be possible prior to updating the status to ‘ACCEPTED’ to enter or change the carrier and cost for the trip by calling the ‘Haulier Selection’ screen via a right-click option called ‘Select Carrier’ in the orders data block. If a carrier is entered or changed then the same functionality that exists in the standard trip planning screens will be applied. | |||
A right click option will allow trips to be deleted up until briefed. This will delete the trip using standard functionality and return the allocated order(s) to the order well. | |||
The current trip planning screens (‘Trip Planning’, ‘Trip Manipulation’ and ‘Execution’) can also be used as standard functionality to create trips for a group of orders, add orders to existing trips and create separate trips for a group of orders. | |||
It is assumed planned for own fleet will be done using the same functionality described above. | |||
===Order De-Assignment=== | |||
If an order is de-assigned from a trip and has been recorded on the ‘RTE_HAULIER_LANE_ORDERS’ table for the carrier lane, then the record will be deleted to ensure that the number of trips assigned to the carrier is up-to-date. | |||
The trigger ‘T_SCH_HAULAGE_ACTIVITY_BIU’ will be changed for ‘DELETING’ actions to delete the order from the table should a record exist. | |||
===Change Date Function=== | |||
There is a requirement in the operation to be able to amend order collection and delivery dates quickly for unplanned and planned orders. The planner will select multiple orders simultaneously in the haulier planning screen described above and amend the collection and/or the delivery date in one function. | |||
This is a general requirement that allows easy manipulation of order dates. One operational example relates to orders placed to facilitate dock delivery; a number of orders may be booked for delivery to the docks but the arrival and, therefore, the loading dates of the ship have been estimated; on confirmation of a loading date being received, this will trigger the planning sequence to reschedule the planned delivery dates to dock for respective unscheduled orders. | |||
A ‘Change Date’ button will be available in the new haulier trip planning screen to perform this function for orders. The user will select orders and then using the change date, a sub-screen called ‘Changed Date’ will allow the user to enter early collection date and time, late collection date and time, early deliver date and time and late deliver date and time. | |||
An example of the sub-screen is shown below: | |||
[[Image:286734_31.png]] | |||
*Clicking Cancel will not save any changes made. | |||
*Clicking Save will save the changes made. | |||
*Clicking Close will close the screen and return the user to the Haulier Trip Planning screen. | |||
If one order has been selected then the OMS reference and customer reference and the existing dates and times will be displayed for the planner to update. If multiple orders have been selected then the date fields will be blank for the planner to update. | |||
The existing C-TMS trip planning screens provide a currently supported function to move planned trips to another schedule day. In this circumstance the dates and times of the planned orders remain unchanged. This function is used to re-plan trips into another schedule day where required. | |||
=REFERENCES= | =REFERENCES= |
Latest revision as of 09:29, 8 July 2011
DHL C-TMS
Carrier Trip Planning
FUNCTIONAL SPECIFICATION - 10.6
- 2.0
Reference: FS 286734 DK-8EMEWU
FUNCTIONAL OVERVIEW
Client Requirement
Auto planning by lane rules, carrier assignment, shipment well make and brief loads, combined shipments, vessel voyage (ports), allocation (HL) to single haulier.
Solution
Carrier Lane Maintenance:
New tables will be created to store carrier lanes and rates for an active date range:
- RTE_HAULIER_LANE (For the lane ID, region, lane group (to control max loads by carrier), carrier & name, route type collect from and deliver to (i.e. postcode/postal region/planning region/distance), procured type (i.e. DHL or PET), lane type (i.e. REG or DIST), priority, trip action (i.e. Manual Plan, Create Trip, Brief Trip), cost per tonne, maximum trips per lane, tariff id, rate agreement reference and start and end effective dates of lane agreement, inactive flag (i.e. Y/N))
- RTE_HAULIER_LANE_GROUP (For the lane group expected to be organised by region, carrier and maximum trips per day)
These tables will be used to store the lane rules including preferred carrier(s) for the route between the collection and delivery locations, plus the agreed cost per tonne where known.
There will be the ability to rank preferred carriers by order of priority (i.e. ‘1’ is the first choice carrier to fulfil the order movement) for the automatic planning of unscheduled orders onto trips. The carrier suggestions screen will list the carriers from lane rules that match the order(s) and there will be no limitation to the number of matching carriers displayed in the list.
The lane selection logic with best match the lane from and to attributes first on postcode then postal region then planning region and then distance of the order collection and delivery addresses with a wildcard (blank) meaning anywhere and any distance. This selection will be considered in the following sequence postcode to postcode then postcode to postal region then postcode to planning region then postcode to distance breakpoint then postcode to wildcard then postal region to postcode etc. through all permutations.
The trip action field defines whether a trip created via the automatic planning process will just create the trip or also brief the carrier of the trip by updating the status of the trip to ‘ACCEPTED’ and so trigger the production of the driver manifest/trip sheet. Allowed values will be Manual, Create and Brief. (Manual means manually planned trip, create and brief will allow automatic planning of trip; where planning means allocation to carrier).
Carrier Lane Upload:
A new CSV import process will be created to upload carrier lane information into C-TMS. The resulting data upload will then be visible in the carrier lane maintenance screen as described above. The import function will provide insert of new lane data and update of existing records.
Haulier Lane Extract:
A new CSV extract process will be created to extract the carrier lane information from the C-TMS database into a CSV format. This functionality will allow maintenance and amendments to be managed in excel and then re-imported using the CSV upload function mentioned above.
Automatic Planning by Lanes:
Automatic planning of single order full load trips will be provided by reference to the carrier lane data and will be performed when an order is raised via the inbound EDI order upload; the order will be assessed against the carrier lanes setup and if there is a carrier available for the route then a trip will be created with the carrier and the order will be assigned to it; the carrier will then be advised of the work via the automatic briefing of the driver manifest.
The pre-sold carrier lanes will have agreed costs (or lane table rates) in place which will automatically generate the costs for the trip and pass them through to EFX.
Create and Brief Carrier Trips:
The planner will plan unscheduled orders to trips using the carrier lanes data in a new carrier planning screen: this new screen will display the unscheduled orders for specific selection criteria and the planner can then create trips for the orders and brief them to carriers. The intention is that the screen can also be used to query trips already planned to aid visibility of the operation over days and weeks.
The selection criteria will be:
- Mandatory schedule date range (delivery date range)
- Optional planning region from and to (multiple selection values will be allowed)
- Optional postal region from and to (multiple selection values will be allowed)
- Optional postcode from and to
- Optional collection location
- Optional delivery location
- Optional customer reference
- Optional OMS reference
- Optional order status (i.e. UNSCHEDULED or SCHEDULED defaulting to UNSCHEDULED’)
- Optional Carrier (to filter on orders possibly fulfilled by the lane table agreements and rules)
- Optional Carrier Region & Lane Group
- Optional Trip Status
- Optional Trip ID
The orders will display the following information:
- Schedule
- Order status
- Customer Order reference
- OMS Reference
- R (flag to denote if redirect order)
- S (flag to denote if split order)
- Planning region (collect)
- Postal region (collect)
- Collection location
- Name
- Town
- Postcode
- Early collection date and time
- Late collection date and time
- Planning region (deliver)
- Postal region (deliver)
- Delivery location
- Name
- Town
- Postcode
- Early delivery date and time
- Late delivery and time
- Distance
- Weight
- Revenue calculated from customer contract (Openfield)
- Revenue per Tonne
A function will be available to view previous ten orders with the same from and to location and the cost incurred from the appointed carrier for each.
The screen will also be used to display visibility of planned orders so trip and cost information will also be displayed:
- Trip ID
- Trip distance
- Trip status
- Carrier
- Region
- Lane group
- Carrier cost
- Cost per Tonne
Once the orders are displayed, the planner will highlight an order or orders using mouse clicks. Action buttons will be used to allow the planner to process the highlighted orders:
Combine orders – The highlighted orders will be used to reference the lane table rules and a suggestion list of possible carriers including preference, type, cost per tonne, lane type and contact details will be generated. The planner will select a carrier from the list (or lookup an alternative from the full list of known carriers) and vehicle type (trailer type).
The selection can be abandoned in which case the carrier pop up list will close and the orders can then be selected again. Once the planner confirms the carrier and confirms the action a single trip will be created for the selected orders at PLANNED status.
Combine orders and brief - As above combine orders function but the resulting single trip will be created at ACCEPTED status which will automatically generate the driver manifest document and send via the defined method of e-mail or fax.
Create trip - The highlighted order (or orders) will be used to reference the lane table rules and a suggestion list of possible carriers including preference, type, cost per tonne, lane type and contact details will be generated. The suggested carrier will be displayed only if the lane table defines that the carrier can fulfil all the orders selected. The planner will select a carrier from the list (or lookup an alternative from the full list of known carriers) and vehicle type (trailer type). The selection can be abandoned in which case the carrier pop up list will close and the orders can then be selected again. Once the planner confirms the carrier and the action, a single trip for each order will be created for the selected orders at PLANNED status.
Create trip and brief – As above create trip function but the resulting trips (one trip per order) will be created at ACCEPTED status which will automatically generate the driver manifest document and send via the defined method of e-mail or fax.
The trip creation functionality will be developed with the following assumptions:
The schedule of the trip created will be based on the delivery date of the orders planned.
If the capacity of a trip is exceeded, based on weight capacity of vehicle type (trailer type) selected, then an error message will be generated to prevent the creation of an overweight trip.
The maximum number of orders per carrier per day (carrier group) and the maximum number of trips per lane will be assessed for each carrier and validation performed to warn if these constraints are exceeded.
The planning screen will be developed so that orders on PLANNED trips can be selected. A right-click option will allow the planner to brief the haulier assigned to the trip displayed by setting the trip status to ACCEPTED.
The planning screen will allow trips to be created without a carrier and cost at PLANNED status. The carrier and cost will be added later before the trip can be promoted to ACCEPTED status.
The current trip planning screens (‘Trip Planning’, ‘Trip Manipulation’ and ‘Execution’) can also be used as standard functionality to create trips for a group of orders, add orders to existing trips and create separate trips for a group of orders.
It is assumed planning and scheduling for own fleet will be achieved using the same functionality described above.
Change Date Function:
There is a requirement in the operation to be able to amend order collection and delivery dates quickly. The planner will select multiple orders simultaneously in the carrier planning screen described above and amend the collection and/or the delivery date in one function.
This is a general requirement that allows easy manipulation of unscheduled order dates. One operational example relates to orders placed to facilitate dock delivery; a number of orders may be booked for delivery to the docks but the arrival and, therefore, the loading dates of the ship have been estimated; on confirmation of a loading date being received, this will trigger the planning sequence to reschedule the planned delivery dates to dock for respective orders.
A ‘Change Date’ button will be available in the new carrier planning screen to perform this function for unscheduled orders. The user will select orders and then using the change date, a pop up screen will allow the user to enter early collection date and time, late collection date and time, early deliver date and time and late deliver date and time and then save.
The C-TMS trip planning screens provide a function to move planned trips to another schedule day. In this circumstance the dates and times of the planned orders remain unchanged.
Scope
This change will be applied to system version 10.6.0 on INDTST and once approved INDPRD.
Set-Up
Pre-Requisites
- The new tables called ‘RTE_HAULIER_LANE’ and ‘RTE_HAULIER_LANE_GROUP’ will be required.
- The new triggers to maintain the created and updated information will be required.
- The new tab page called ‘Carrier Lanes’ will need access to be granted to the relevant user groups.
- The new screen called ‘Carrier Trip Planning’ will need access to be granted to the relevant user groups and added to the menu structure.
- The new sequence number must be setup.
- The new function to allow user access to the new carrier lane maintenance tab page and the carrier trip planning screen must be setup.
- The new import and extract details must be setup.
Menu Structure
The new form called ‘HAUL_TRIP_PLAN’ will be added to the ‘Trip Management’ menu within C-TMS.
Data
- The new tables will be required.
- The new triggers will be required.
- The new tab page will be required.
- The new screen will be required.
- The new sequence number will be required.
- The new function will be required.
- The new import and extract setup will be required.
FUNCTIONAL DESCRIPTION
Carrier Lane Maintenance
A new tab page in the ‘Resource Maintenance’ screen called ‘CARRIER_LANES’ with the title ‘Carrier Lanes’ will be created to view and manipulate the carrier lane data stored on the new tables:
The tab page will contain a table to display the haulier lane details and a sub-screen for the haulier group details that can be called via a button called ‘Group’. An example of the layout of the tab page and sub-screen is shown below:
- Clicking New will allow the user to add a new row in the screen (user function to control access). Greyed if not applicable.
- Clicking Delete will delete the highlighted record (dependent on user level access). Greyed if not applicable.
- Clicking Cancel will not save any changes made.
- Clicking Save will save the changes made.
- Clicking Refresh will select the records for display.
- Clicking Group will display the information for the lane group and carrier for the highlighted row (see screen at section 3.1.2).
- Clicking Update Rates will display a window in which the user can select a carrier and optionally a Tariff ID and adjust the rate by a percentage (see screen at section 3.1.3).
- Clicking Audit will display the audit trail for the changes to the Carrier Lanes (see screen at section 3.1.4).
- Clicking Close will close the form and return the user to the menus.
- A horizontal scrollbar will be available at the bottom of the data columns so that all of the columns may be viewed.
- A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed.
- Double Click on the Tariff ID will open the relevant contracts tariff detail screen.
Permission to insert and change carrier lane information will be granted in the access control screens for the user group:
An example of the access control screen is shown below to illustrate where this permission is mainatained for user groups.
New functions will be created to enable the records to be maintained by authorised user groups.
These functions will control whether a user can maintain carrier lanes, plan trips for carrier lanes and change order collection and delivery dates.
The records for the carrier lanes will be selected and queried using the filters:
- Lane ID
- Carrier Region
- Carrier Lane Group
- Carrier
- Collect (PlanningRegion, Postal Region, Postcode, Distance Greater or Distance Less)
- Deliver (PlanningRegion, Postal Region, Postcode, Distance Greater or Distance Less)
- Procured (DHL or PET)
- Lane Type (REG or DIST)
- Historic (defaults to N so current effective selected)
- Inactive (defaults to N so active selected)
Each filter will allow a list of values to be entered which can be displayed via the use of ‘%’ in the field or by pressing a button positioned directly to the right of the field.
No records will be displayed on initail entry into the screen as the user is expected to enter filters first. If the user uses the keyboard to navigate in the filters in the screen the fields entered will be in the following sequence:
- Lane ID
- Carrier Region
- Carrier Lane Group
- Carrier
- Collect
- Deliver
- Procured
- Lane Type
- Historic
- Inactive
- Refresh (Button)
If the user uses the keyboard to navigate in the haulier lane rows then each column will be entered in turn from left to right.
The user will require access to the ‘New’ and ‘Delete’ buttons and they will be inactive (i.e. greyed out) should the user not have permission to insert or change data in this screen. If the user presses the ‘Save’ or ‘Cancel’ buttons in the screen then the data will be refreshed automatically.
Validation will be performed to ensure that the haulier lane record is unique, the unique record will be:
- Carrier Region
- Carrier Lane Group
- Carrier
- Country Collect
- Collect Type
- Collect
- Country Deliver
- Deliver Type
- Deliver
- Start Date
- End Date
- Tariff_ID
This will allow more than one record to exist but for different date ranges.
The ‘Lane ID’ will be generated automatically for each record using sequence ‘SEQ_RTE_HAULIER_LANE’.
The data displayed on screen is described as follows with the corresponding database column in which the data will be stored and retrieved (from the database table ‘RTE_HAULIER_LANE’ unless otherwise stated):
The records will be validated during entry:
- The carrier must exist as a carrier in the ‘Carriers’ tab page of the ‘Resource Maintenance’ screen (i.e. ‘RES_CARRIER.CARRIER_ID’)
- The country codes must exist in the ‘Country Code’ screen (i.e. ‘GEO_COUNTRY.COUNTRY_CODE’)
- The collect and deliver types will be a dropdown list of ‘Postcode’, ‘Postal Region’, ‘Planning Region’, ‘Distance Greater’ and ‘Distance Less’ and will be mapped to values ‘PC’, ‘PR’, ‘PL’, ‘DG’ and ‘DL’ respectively
- Collect and deliver will correspond to the type:
- Postcodes must exist for a location (i.e. ‘GEO_LOCATION.POSTCODE’)
- Postal Regions must exist for the country code of the lane in the ‘Region Data’ tab page of the ‘Static Data Maintenance’ screen (i.e. ‘GEO_PLAN_REGION.POSTAL_REGION’)
- Planning Regions must exist for the country code of the lane in the ‘Region Data’ tab page of the ‘Static Data Maintenance’ screen (i.e. ‘GEO_PLAN_REGION.PLANNING_REGION’)
- Distance Greater and Distance Less must be numeric values
- The procured value will be a dropdown list of ‘DHL’ or ‘PET’
- The lane type will be a dropdown list of ‘REG’ or ‘DIST’
- The priority will be a number and ‘1’ will represent the highest priority
- The action will be a dropdown list of ‘Manual Plan’, ‘Create Trip’ or ‘Brief Trip’ and will be mapped to values ‘M’, ‘C’ and ‘B’ respectively:
- ‘Manual Plan’ indicates that the lane will not be used to automatic trip plan
- ‘Create Trip’ indicates that the lane will be used for trip planning but the carrier will NOT be briefed should a trip be created
- ‘Brief Trip’ indicates that the lane will be used for trip planning but the carrier will be briefed should a trip be created by updating the status of the trip to ‘ACCEPTED’ and so trigger the production of the driver manifest/trip sheet
- The cost per tonne will be the cost to the carrier in currency but may be left blank
- The maximum number of trips per lane that a carrier can accept per day must be a positive number
- The tariff ID will be an existing tariff from a matching carrier contract.
- The rate agreement will be a free format reference
- The start date will be in format ‘DD/MM/YYYY’ and must be valid
- The end date will be optional and in format ‘DD/MM/YYYY’ and if entered must be valid and must not be before the start date
- The inactive flag will be a tick box which if ticked will set the flag to ‘Y’
The lane selection logic will best match the lane ‘collect from’ and ‘deliver to’ attributes first on postcode, then postal region, then planning region of the order collection location and delivery addresses and then distance of the order. This selection will be considered in the following sequence: postcode to postcode; postcode to postal region; postcode to planning region; postcode to distance less breakpoint; postcode to distance greater breakpoint then postal region to postcode, etc through all permutations of postcode, postal region planning region and distance breakpoints.
This logic will allow for the most specific data to be applied first, i.e. postcode, postal region, planning region then distance breakpoint.
Carrier Lane Groups
The ‘Group’ button will call the screen below in a different window and canvas:
- Clicking New will allow the user to add a new row in the screen (user function to control access). Greyed if not applicable.
- Clicking Delete will delete the highlighted record (dependent on user level access). Greyed if not applicable.
- Clicking Cancel will not save any changes made.
- Clicking Save will save the changes made.
- Clicking Refresh will select the records for display.
- Clicking Close will close the screen and return the user to the Carrier Lanes screen.
- A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed.
If the ‘Carrier Lane Groups’ sub-screen has been called with a carrier lane record highlighted then the carrier lane group will be found automatically and the filters populated.
The user will require access to the ‘New’ and ‘Delete’ buttons and they will be inactive (i.e. greyed out) should the user not have permission to insert or change data in this screen.
The users with access to the tab page will be able to insert, update and delete carrier lanes and update carrier lane groups. If a new carrier lane is inserted then the carrier lane group will be inserted too with a default number of maximum trips per day of ‘9999’.
A unique carrier lane can be defined as the combination of the types of collection and delivery locations (postcodes, postal regions, planning regions or distance breakpoints).
When the tab page is opened the ‘Carrier Lanes’ window and canvas will be displayed with all records stored on the ‘RTE_HAULIER_LANES’ table.
The filters at the top of the screen will be used to select specific records.
The data displayed on screen is described as follows with the corresponding database column in which the data will be stored and retrieved (from datebase table ‘RTE_HAULIER_LANE_GROUP’):
The records will be validated during entry:
- The lane group must exist as a carrier lane (i.e. ‘RTE_HAULIER_LANE.LANE_GROUP’)
- The carrier must exist as a carrier in the ‘Carriers’ tab page of the ‘Resource Maintenance’ screen (i.e. ‘RES_CARRIER.CARRIER_ID’) and in combination with the lane group as a carrier lane
- The maximum number of trips per lane group that a carrier can accept per day must be a positive number
Update Rate Agreement
The ‘Update Rates’ button will call the screen below in a different window and canvas:
- Clicking Cancel will not save any changes made.
- Clicking Save will save the changes made.
- Clicking Close will close the screen and return the user to the Haulier Lanes screen.
A valid carrier and optionally a carrier region and lane group and/or a rate agreement and/or a tariff Id will be entered supported by a list of values lookup, and a percentage entered for which the cost per tonne of the carrier lane records will be calculated.
The percentage entered can be a positive or a negative number.
The update rates function will always create new records set with the entered effective date start and end. The current most recent effective date start lane record will be used as input to the function.
If a date range would overlap then the existing record will be updated to end on the day before the start date of the new record, this will avoid concurrent rates being created.
The update rate function will apply to the carrier lane records if a tariff id is not entered and to the contract tariff id is a tariff id is entered.
Carrier Lane Audit
The ‘Audit’ button will call the screen below in a different window and canvas for the carrier lane highlighted:
- Clicking Close will close the screen and return the user to the Carrier Lanes screen.
- A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed.
An audit record will be created when a carrier lane is created, updated or deleted via a database trigger on the new ‘RTE_HAULIER_LANE’ table.
The trigger will write to the new ‘RTE_HAULIER_LANE_AUDIT’ table with the change(s) made recorded.
An audit ID will be generated automatically from a database sequence number.
The audit screen will display the audit records in reverse chronological sequence so the most recent change first.
Tables
New database tables will be used to store the data displayed in the new tab page and sub-screen as described in the tables below:
RTE_HAULIER_LANE:
RTE_HAULIER_LANE_GROUP:
RTE_HAULIER_LANE_ORDERS:
RTE_HAULIER_LANE_AUDIT:
Carrier Lane Upload=
Import Maintenance
A new CSV import function will be created to upload carrier lane information into C-TMS. The resulting data uploads will then be visible in the carrier lane maintenance screen as described above. The import function will provide insert of new lane data and update of existing records.
The new import will be setup in the ‘Import Maintenance’ screen for the following values:
Header Level (‘IMP_RECORD_FORMAT’):
Detail Level (‘IMP_FIELD_SOURCE’):
The ‘IDENTIFIER’ will be the activity to be performed, i.e. ‘I’ to insert a record, ‘U’ to update a record or ‘D’ to delete a record.
The import type ‘CARRIER_LANE’ will be inserted into the ‘IMP_IMPORT_TYPES’ table so that it can be used in the configuration of the import.
The user group will need authorised access for the import type to process a file. An example of how this authorisation is maintained is shown below;
Validation will be performed to ensure that the insertion of a carrier lane will not create a duplicate record and that the record is found to update or delete.
If a haulier lane is inserted without lane group then a default record will be created with the maximum number of trips per day of ‘9999’.
The created and updated columns on the tables ‘RTE_HAULIER_LANE’ and ‘RTE_HAULIER_LANE_GROUP’ will be set as required via the triggers on those tables.
IMP Package
The ‘IMP’ package will be changed to process the new ‘CARRIER_LANE’ type in function ‘IMPORT_SERVER_FILE’ for which a new function called ‘PROCESS_CARRIER_LANE’ will be created to extract the items in the file and upload the data into the carrier lane and group tables.
The record type will determine into which table the data is inserted, updated or deleted based on the value in the ‘IDENTIFIER’ field.
The fields will need to be validated as follows:
LANE
GROUP
Once the data has been validated it will be inserted, updated or deleted as required. The update action will create a new carrier lane record in place of the original which will be closed by its effective END_DATE.
Haulier Lane Extract
A new CSV extract process will be created to extract the carrier lane information from the C-TMS database into a CSV format. This functionality will allow maintenance and amendments to be managed in excel and then re-imported using the CSV upload function mentioned above. The output will be configured to be of the same format expected by the import described above. The generic C-TMS reporting suite function will be used to obtain the extracts.
The screens and description below illustrates the method that this will be achieved using for example an extract of data across orders and trips and stops.
The file produced in the directory indicated for the example above looks like:
- more ORS_MTS_OWNER_110412090457.csv
Schedule,Trip ID,Trip Status,Stop Location,Stop No.,Order Ref
050812,=t("MAN-00002162"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3349")
050812,=t("MAN-00002162"),=t("CONFIRMED"),=t("RAMAHAYD"),2,=t("3349")
050812,=t("MAN-00002162"),=t("CONFIRMED"),=t("EXELLUTT"),3,=t("")
050812,=t("MAN-00002163"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3346")
050812,=t("MAN-00002163"),=t("CONFIRMED"),=t("BAYLGOOL"),2,=t("3346")
050812,=t("MAN-00002163"),=t("CONFIRMED"),=t("EXELLUTT"),3,=t("")
050812,=t("MAN-00002164"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3345")
050812,=t("MAN-00002164"),=t("CONFIRMED"),=t("BAYLWARR"),2,=t("3345")
050812,=t("MAN-00002164"),=t("CONFIRMED"),=t("EXELLUTT"),3,=t("")
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("EXELLUTT"),1,=t("3370")
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("TESTYORK"),3,=t("3351")
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("NISASCUN"),2,=t("3370")
050812,=t("MAN-00002166"),=t("CONFIRMED"),=t("EXELLUTT"),4,=t("3351")
And then once uploaded into a spreadsheet:
The new extract will be setup in the ‘Oracle Reporting Suite’ screen for the following values:
Header Level (‘ORS_MASTER_DATA’):
Detail Level (‘ORS_MASTER_DATA’):
The system parameters ‘MTS_CSV_EXPORT_PATH’ and ‘MTS_CSV_EXPORT_PATH_ORS’ control where the output file is written.
If the extract is performed at the ‘LANE’ level then only the items for that level will be included whereas if the extract is performed at the ‘GROUP’ level then the items for both of the levels will be included.
The SQL code on table ‘ORS_SQL’ will be as below:
Automatic Planning by Lanes
Automatic planning of single order full load trips will be provided by reference to the carrier lane data and will be performed when an order is raised via the inbound EDI order upload; the order will be assessed against the carrier lanes setup and if there is a haulier available for the route then a trip will be created with the haulier and the order will be assigned to it; the haulier will then be advised of the work via the automatic briefing of the driver manifest.
The pre-sold carrier lanes will have agreed costs (or lane table rates) in place which will automatically generate the costs for the trip and pass them through to EFX.
Only the carrier lanes configured with ‘Action’ types ‘Create Trip’ and ‘Brief Trip’ will be considered for automatic planning.
The creation of the trip will use the following procedures:
- TRM.INSERT_TRIP
- TRM.ADD_ORD_TO_TRIP
- TRM.CALC_DISTANCE_AND_TIME
- TRM.VALIDATE_TRIP
If a valid carrier lane cannot be found for the order then the order will remain in the unplanned order well for manual trip planning.
When the order is assigned to a trip the ‘RTE_HAULIER_LANE_ORDERS’ table will be updated to enable the number of orders assigned to trips for a carrier lane per schedule to be recorded, this will make it possible to assess the transport capacity of the carrier is not exceeded during trip planning.
Redirected Orders
Redirected orders will be identified with a sub-reference of type ‘69’ (original order) with the original OMS reference of the redirected order; these orders will not automatically plan regardless of the action field on the corresponding carrier lanes record.
It is expected that the original trip will be at status ‘EN-ROUTE’ so redirected orders will be manually planned by add to trip via a right-click option called ‘Apply to Original Trip’ using function ‘TRM.ADD_ORD_TO_TRIP’ and validated using function ‘TRM.VALIDATE_TRIP’.
Redirect orders will be revenue rated using the manual exception revenue / tonne entry on the order screen finance tab. The carrier trip will be cost manually by spot rate override for redirect order scenarios.
When the order is assigned to the trip the ‘RTE_HAULIER_LANE_ORDERS’ table will be updated to enable the number of orders assigned to trips for a carrier lane per schedule to be recorded, this will make it possible to assess the transport capacity of the haulier is not exceeded during trip planning. The redirected order will replace the original order on the table.
Create and Brief Carrier Trips
A new form ‘HAUL_TRIP_PLAN’ will be created to allow planners to plan orders onto trips with reference to carrier lanes. The form will be called ‘Carrier Trip Planning’ on the main window and canvas and be accessed from the ‘Trip Management’ menu. An example of the design of the screen is shown below:
A configure layout function will be provided to allow planners to create various personalised views of the columns of data to suit their preference. The screen design shows all columns that will be available and subsets of these can be created into personalised views by the planners. A default view will be defined which controls the columns displayed initially as the planner opens the form for the first time in a user session.
- Clicking Layout will allow the user to configure layout to their preference and display the columns in their chosen format.
- Clicking Combine Orders will allow the user to create a trip for the orders selected (user function to control access). Greyed if not applicable.
- Clicking Combine Orders & Brief will allow the user to create and brief a trip for the orders selected (user function to control access). Greyed if not applicable.
- Clicking Create Trip will allow the user to create a trip for each of the orders selected (user function to control access). Greyed if not applicable.
- Clicking Create Trip & Brief will allow the user to create and brief a trip for each of the orders selected (user function to control access). Greyed if not applicable.
- Clicking Change Date will allow the user to update the planned collection and delivery dates for the orders selected (user function to control access). Greyed if not applicable.
- Clicking Refresh will select the records for display using the filters.
- Clicking Close will close the screen and return the user to the menu.
- A horizontal scrollbar will be available at the bottom of the data columns so that all of the columns may be viewed.
- A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed.
- Double click on Cust Ref or OMS Ref will open the detail ORDERS form and query the order details
- Double click on Tariff ID will open the contract tariff form and query the contract tariff details (ladder table of costs by distance breakpoints)
This new screen will display the unscheduled orders for specific selection criteria and the planner can then create trips for the orders and brief them to carriers. The order status selection will be UNSCHEDULED by default.
The screen can also be used to query trips already planned to aid visibility of the operation. The orders will be queried using the order status and or trip status to view planned orders.
he selection criteria will be:
- Mandatory Schedule range from and to (delivery date range)
- Optional order status (i.e. UNSCHEDULED or SCHEDULED defaulting to UNSCHEDULED’)
- Optional Planning region from (multiple values allowed)
- Optional Planning region to (multiple values allowed)
- Optional Postal region from
- Optional Postal region to
- Optional Postcode from
- Optional Postcode to
- Optional Collection location code
- Optional Delivery location code
- Optional Customer reference
- Optional OMS reference
- Optional Order status
- Optional Carrier (to filter on matching orders by reference to the lane table agreements and rules for a particular carrier)
- Optional Carrier region
- Optional Carrier lane group
- Optional Trip status
- Option Trip Id
The orders will display the following information:
- Schedule
- Order Status
- Customer Order Reference
- OMS Reference
- R – Redirect Order Flag
- S – Split Order Flag
- Planning Region From
- Postal Region From
- Collection Location ID
- Collection Location Name
- Collection Town
- Collection Postcode
- Early Collect Date and Time
- Late Collect Date and Time
- Planning Region To
- Postal Region To
- Delivery Location ID
- Delivery Location Name
- Delivery Town
- Delivery Postcode
- Early Delivery Date and Time
- Late Delivery Date and Time
- Distance (Order)
- Weight
- Currency
- Revenue (generated)
- Revenue/Tonne
The ‘Revenue’ generated will be calculated by identifying the rate applied (i.e. the ‘Revenue/Tonne’ obtained from the postcode matrix or the base contract) and the ordered weight.
The screen will also be used to display visibility of planned orders so trip and cost information will also be displayed:
- Trip ID
- Trip Distance
- Trip Status
- Carrier
- Region
- Lane Group
- Currency
- Carrier cost of trip
- Cost/Tonne of trip
A configurable layout will be included as a right-click option in the orders data block to enable the planners to create a view of the columns from the full list defined above. This will use the same functionality and logic used for the configurable layout in the existing ‘Trip Manipulation’ screen:
Only unscheduled orders not planned on trips can be processed using the 5 action buttons.
Once the orders are displayed, the planner will highlight an order, or orders, using mouse clicks.
Action buttons will be used to allow the planner to process the highlighted orders:
- Combine Orders: The highlighted orders will be used to reference the carrier lane table rules and a suggestion list of possible carriers including preference, type, cost per tonne, lane type and contact details will be generated. The planner will select a carrier from the list (or lookup an alternative from the full list of known carriers). The selection can be abandoned in which case the carrier pop up list will close and the orders can then be selected again. Once the planner confirms the carrier and confirms the action a single trip will be created for the selected orders at ‘PLANNED’ status.
- Combine Orders & Brief: As above combine orders function but the single trip resulting will be created and updated to ‘ACCEPTED’ status which will automatically generate the driver manifest document and send via the defined method of e-mail or fax.
- Create Trip: The highlighted order, or orders, will be used to reference the carrier lane table rules and a suggestion list of possible carriers including preference, type, cost per tonne, lane type and contact details will be generated. The planner will select a carrier from the list (or lookup an alternative from the full list of known carriers). The selection can be abandoned in which case the carrier pop up list will close and the orders can then be selected again. Once the planner confirms the carrier and the action a single trip for each order will be created for the selected orders at ‘PLANNED’ status.
- Create Trip & Brief: As above create trip function but the resulting trips (one trip per order) will be created and updated to ‘ACCEPTED’ status which will automatically generate the driver manifest document and send via the defined method of e-mail or fax.
The trip creation functionality will be developed with the following assumptions:
- The schedule of the trip created will be based on the delivery date of the orders planned.
- A new schedule will be created using function ‘SCH.CREATE_SCHEDULE’ if one does not exist.
- If the capacity of a trip is exceeded, based on weight capacity of vehicle type (trailer type) selected, then an error message will be generated to prevent the creation of an overweight trip.
- The maximum number of orders per carrier per day (carrier group) and the maximum number of trips per lane will be assessed for each carrier and validation performed to warn the user if these constraints have been, or will be, exceeded.
- Once a new trip is created, the order well will be refreshed using the current selection criteria and will display the remaining unallocated orders that match
Carrier Selection
When orders have been selected and the planner selects one of the 4 action buttons to create trips then a new sub-screen called ‘Carrier Selection’ will be displayed to enable the planner to see which carriers are preferred for the matching lane(s) and to allow one of the carriers, or a different carrier, to be assigned to the trip(s) being created.
Carriers will only be displayed if a lane can be found for all of the orders selected; if no carriers are found then the list will be empty and the user will specify a carrier as an override in the screen header with a spot rate cost which will then be applied to the trip(s) created on save.
An example of the sub-screen is shown below:
Any carrier lanes will be found and displayed for the orders highlighted in the lane selection logic defined in section 3.1.1 and then the priority should the carrier lane criteria result in multiple carrier results.
- The planner can choose a suggested carrier from the list.
- The carrier select will allow the planner to specify a different carrier in the header to those preferred and suggested and in this circumstance a spot rate cost entry will be required.
- Spot Rate will allow the planner to specify a different rate per tonne for the selected carrier.
- Capped Load will allow the planner to specify the capped tonnage in the adjacent field (the difference to be applied/apportioned equally to each combined order).
- Skip Select will be a tick box to allow the planner to create a trip without assigning a carrier and a cost.
- Clicking Cancel will not save any changes made and will return the user to the Haulier Trip Planning screen and the haulier selection process will be abandoned.
- Clicking Save will save the changes made, create the trip(s) and return the user to the Haulier Trip Planning screen.
- The select screen provides a view of the previous historic 10 orders between the collection and delivery locations of the order highlighted.
- Clicking Close will close the screen and return the user to the Haulier Trip Planning screen.
- A vertical scrollbar will be available at the end of the data rows so that all of the rows may be viewed.
The select functionality will allow a different carrier from the suggestions list to be selected from a drop-down list of carriers; the spot rate cost will then be required and the trip creation process will run once the spot rate cost has been set. The spot rate will be entered in the specified currency, usually GBP for a carrier listed.
The capped load field will allow the tonnage for the trip to be specified by exception and costed accordingly regardless of the ordered or actual weight captured at debrief or from Tokairo scan.
Capped weights on combined order trips will be apportioned equally to the orders assigned to the trip. For example, with a capped load of 29t for a total trip weight of 24t:
The ‘SCH_ORD’ table will be updated (but not committed until trip creation has been successful) as follows for a capped load of 29t:
The orders assigned to the trip will then indicate in the ‘Finance’ tab page of the ‘Order Details’ screen that they have a capped load (see ‘FS-286731 DK-8EME2Y Order Management‘ for further details).
The ‘Contact’ field will be the ‘Contact’ and ‘Phone’ as maintained for the carrier in the ‘Resource Maintenance’ screen:
If the details for the carrier for the creation of the trip are as required then the planner will press the ‘Save’ button, the trip creation process will run and return the planner to the ‘Carrier Trip Planning’ screen. A selected carrier and lane cost or spot rate must be available for the planner to save and continue with the trip creation unless skip select is checked.
A trailer type will be defaulted from a list of valid trailer types. The capacity of the trailer type will then be validated during trip creation against the total weight of the orders being assigned to the trip and the process discontinued should the capacity of the trailer type be exceeded for a trip stop. This functionality will be configured using system parameters ‘TRM_USE_MAX_RPE_OF_LARG_TRAILER’ and ‘TRM_CHECK_LIMITS’.
Previous Costs
The carrier selection screen will provide the planner with a view of the previous 10 costs agreed with carriers planned between the same collection and delivery location.
The data will be displayed in descending sequence for the schedule and order reference (i.e. OMS reference).
Trip Creation
Prior to trip creation a save point will be introduced to enable any rollbacks to be performed.
The creation of the trip may will the following procedures:
- TRM.INSERT_TRIP
- TRM.ADD_ORD_TO_TRIP
- TRM.CALC_DISTANCE_AND_TIME
- TRM.VALIDATE_TRIP
If an error has been detected during the processing, the error message and an explanation will be displayed and the process will be rolled back to the save point.
When an order is assigned to a trip the ‘RTE_HAULIER_LANE_ORDERS’ table will be updated to enable the number of orders assigned to trips for a carrier lane per schedule to be recorded, this will make it possible to assess the trip capacity of the haulier is not exceeded during trip planning.
Briefing
If the trip(s) created are to be briefed, by sending the delivery manifest to the carrier assigned, then the trip status will be updated to ‘ACCEPTED’ and the briefing performed automatically if a haulier has been assigned to the trip.
A trigger on the ‘SCH_TRIP’ table will be run when the status is updated to ‘ACCEPTED’. This will write an event called ‘DRIVER_MANIFEST’ and a database job will process and create the driver manifest for the carrier assigned to the trip from this event (see the functional specification ‘FS-286735 DK-8EMF3R Additional Documentation’ for further details about sending e-mails or faxes.).
The carrier trip planning screen will be developed so that orders on ‘PLANNED’ trips can be selected. A right-click option will allow the planner to brief the carrier assigned to the trip displayed by setting the trip status to ‘ACCEPTED’.
It will also be possible prior to updating the status to ‘ACCEPTED’ to enter or change the carrier and cost for the trip by calling the ‘Haulier Selection’ screen via a right-click option called ‘Select Carrier’ in the orders data block. If a carrier is entered or changed then the same functionality that exists in the standard trip planning screens will be applied.
A right click option will allow trips to be deleted up until briefed. This will delete the trip using standard functionality and return the allocated order(s) to the order well.
The current trip planning screens (‘Trip Planning’, ‘Trip Manipulation’ and ‘Execution’) can also be used as standard functionality to create trips for a group of orders, add orders to existing trips and create separate trips for a group of orders.
It is assumed planned for own fleet will be done using the same functionality described above.
Order De-Assignment
If an order is de-assigned from a trip and has been recorded on the ‘RTE_HAULIER_LANE_ORDERS’ table for the carrier lane, then the record will be deleted to ensure that the number of trips assigned to the carrier is up-to-date.
The trigger ‘T_SCH_HAULAGE_ACTIVITY_BIU’ will be changed for ‘DELETING’ actions to delete the order from the table should a record exist.
Change Date Function
There is a requirement in the operation to be able to amend order collection and delivery dates quickly for unplanned and planned orders. The planner will select multiple orders simultaneously in the haulier planning screen described above and amend the collection and/or the delivery date in one function.
This is a general requirement that allows easy manipulation of order dates. One operational example relates to orders placed to facilitate dock delivery; a number of orders may be booked for delivery to the docks but the arrival and, therefore, the loading dates of the ship have been estimated; on confirmation of a loading date being received, this will trigger the planning sequence to reschedule the planned delivery dates to dock for respective unscheduled orders.
A ‘Change Date’ button will be available in the new haulier trip planning screen to perform this function for orders. The user will select orders and then using the change date, a sub-screen called ‘Changed Date’ will allow the user to enter early collection date and time, late collection date and time, early deliver date and time and late deliver date and time.
An example of the sub-screen is shown below:
- Clicking Cancel will not save any changes made.
- Clicking Save will save the changes made.
- Clicking Close will close the screen and return the user to the Haulier Trip Planning screen.
If one order has been selected then the OMS reference and customer reference and the existing dates and times will be displayed for the planner to update. If multiple orders have been selected then the date fields will be blank for the planner to update.
The existing C-TMS trip planning screens provide a currently supported function to move planned trips to another schedule day. In this circumstance the dates and times of the planned orders remain unchanged. This function is used to re-plan trips into another schedule day where required.
REFERENCES
EST-259410 PA-7MKDYG CN Loading Schedule Report Changes v1.doc |
DOCUMENT HISTORY
Initial version | ||||
Reviewed and Issued |
AUTHORISED BY
Matt Crisford | Development Manager | |
Peter Greer | TMSCC MTS Product Manager |