FS 377534 PART EPOD New Palletforce Interface

From Calidus HUB






Aptean Logo.png







Partnerlink

New Palletforce Interface


Functional Specification

13th November 2020 - 0.2
Reference: FS 377534

















FUNCTIONAL OVERVIEW

Client Requirement

As a network, Palletforce put enormous effort into collecting more than 100,000 tracking events each day and every consignment is made up of over 50 individual pieces of data.

To further enhance their tracking capabilities and customer experience, they have improved their ePOD tracking integrations by creating a new ePOD and Tracking API, as well as allowing current processes to receive additional tracking data. Last year, Palletforce invested £2m in a new state of the art ePOD hardware and software.

A number of Palletforce members (including Partnerlink partners) take advantage of the flexibility of using their own technology to integrate with Alliance, however over time the number of compulsory tracking events has diminished in comparison to tracking events that their newly-revamped ePOD solution offers.

With this in mind, from 27th November 2020 the following tracking events will become mandatory for every consignment delivered in Alliance:

  • Scanned onto Delivery Vehicle (DELV)
  • En Route (DONR)
  • Arrived at Delivery Location (ARDL)
  • Proof of Delivery (POD) and all equivalent statuses indicating end of consignment.

In addition to the above, the following tracking and data will also become mandatory to provide:

  • Proof of Collection (POC) confirmation for collections performed on behalf of other members.
  • Delivery order and total number of Palletforce deliveries on the route.

These changes will provide a universal and consistent service for all customers, ensuring that every customer receives the same high-quality tracking data, whilst providing members with the flexibility of using their own ePOD and scanning technology.

This will further enhance Palletforce's current services such as consignment notifications, and provide them with a platform to develop even better consignment tracking that will enhance their customer experience, reduce queries and provide a solid foundation for future development around real-time tracking.


Solution Overview

The C-ePOD Admin screen will not require modification, as the screen already supports the Palletforce (PALLET) interface type, which will now be configured as a SOAP web service.

There are no expected modifications to the data being passed to the partners' TMS solutions for Palletforce jobs, nor to the data being passed to C-ePOD for those jobs. There are no expected modifications to the configuration of the job processes to support this new interface, for example process changes for the driver, or reason code changes for Palletforce jobs. Jobs will be received into the C-ePOD system in the same way that they are now, with no changes to how these are processed by this interface.


The existing Palletforce export will be modified to change from the existing FTP file-based (CSV/PNG) interface to sending the files directly to a web service endpoint provided by Palletforce.

The interface will send all required information to the Palletforce systems at certain events:

  • DONR - En Route. The status is used when the job is a delivery and the job has been set to In Progress i.e. the driver has started this job.
  • ARDL - Arrived at Delivery Location. The status is used when the job is a delivery and the job has been updated with an arrival date and time.
  • Proof of Delivery (POD) and all equivalent statuses indicating end of consignment, including:
    • POD - POD Received. The status is used when the job is a delivery, the container (pallet) status is "C" - complete, with no notes or reason code.
    • PODE - POD Received with Exception. The status is used when the job is a delivery, container status is "C" - complete by also contains notes and/or a reason code (i.e. claused).
    • DMGD - Delivered Damaged. The status is used when the job is a delivery, container status is "X" - cancelled with reason code i.e. pallet has not been delivered.
    • POC - POC Received. The status is used when the job is a collection.
  • ABRT - Delivery aborted. The status is used when the whole job has been cancelled.

At each trigger point, an event status update will be sent to the Palletforce system, detailing the information required for that status update.

All sites (i.e. partners) within Partnerlink will be assigned a unique Access Key, that uniquely identifies the partner to Palletforce. This replaces the existing mechanism of using Palletforce Depot codes.

Unique tracking codes will be provided for the Palletforce jobs, which will be used to identify the consignments in the new interface.

Latitude and longitude will be provided on the status update message, if the applications knows of it.

Each status update message will include the drop number and total drops on the trip.

For end-of-job statuses as listed above, the signatory and signature will also be included.

Where exceptions are indicated, the system will provide details (i.e. the notes and reason code descriptions) in notes against the consignment.

The system will audit the messages sent and will audit the response from the Palletforce web service, to indicate whether the update was successful or has failed.


Scope

The solution described in this document will be delivered in the latest (4.5) version of C-ePOD.

The Scanned onto Delivery Vehicle event (DELV) will not sent by CALIDUS ePOD, as the partners do not use loading tasks within this application. This status event is required by Palletforce. This will be achieved through the partners' TMS solutions or through the use or Palletforce-provided scanners. This is not part of the development to CALIDUS systems indicated as part of this solution. If the partners want this functionality to be included through CALIDUS ePOD, this will require additional assessment and development. This is not included in this estimate.

The new Palletforce interface requires that the message identify the address type, Commercial or Retail. This information is not provided to CALIDUS ePOD from the partners' TMS systems. As such, the interface below will be identifying each address type as "U" - Unknown, which is currently acceptable to Palletforce. However, in the future, further development may be required, both to the partners' TMS solutions (to pass this data to C-ePOD) and to C-ePOD (to receive and store this data. The time for this is not included in this estimate.

The details of this Palletforce test system have not yet been provided or assessed. Once provided, this may affect this estimate. At this time, it is not expected that this will affect the estimate in a significant way.

The old Palletforce method of interfacing is being decommissioned and will no longer be available after a changeover period.

Additional time has been added to this solution to account for data set-up of the new interface on behalf of the customers, both for the test and production environments. Additional testing time has been added to test this fully with the test Palletforce system. The details of this Palletforce test system have not yet been provided or assessed.


Impact

Any partner that is part of the Palletforce alliance will now send these messages in the new format from the point that the software is released. Each partner must be made aware of the change.

The old mechanism of flat file transfer will not be available after this development is released. Each partner must be made aware of this.


CONFIGURATION SET-UP

Pre-requisites

None.


Menu Structure

N/A.


Data

Modify all existing PF export types to be set up to new web service

Field Description Sample
EPL_XF_CONFIG_ID The ID, made up of "PALLET" plus the site ID, for consistency PALLETL01
EPL_DESCRIPTION A description Palletforce L01 Test
EPL_XF_TYPE The export method SOAP
EPL_XF_DESTINATION The Palletforce web service. Will differ for test and live. https://ws.palletforce.com/tracking
EPL_XF_ID The type. Always "PF" PF
EPL_XF_MSG_TYPE The message types being sent, pipe delimited. Blank means all are sent. ARDL|POD|ABRT
EPL_WEB_PASSWORD The access key to the Palletforce Alliance tracking system, as provided, for that site/partner ac1234567890
EPL_XF_DIRECTION Export E
EPL_EXPORT_JOB_TYPES The job types to export. C, D or CD (or blank) for all. CD
EPL_EMAIL_ERRORS An email address to email errors to. Optional.  

FS 377534 IF Config.png


Connect all existing PALLET job groups to the correct interface created above.

So, for example, L01 Site, job group PALLET must be set to using this PALLETL01 configuration above.


Implementation Advice

The change will affect all Palletforce jobs that are updated from the point that the new changes are implemented. In order to prevent jobs being sent or processed half-way through, down-time for the implementation into the production system is recommended.

The customer must be made aware that there will be some down-time whilst this change is installed to the production system.

Note Note: All of the data modifications should be completed by the implementation team - the customer should not be required to complete this after implementation to the production system, as timing of the interface changes is critical. If possible, scripts should be created to update the existing data, and tested as part of the implementation to the test system, then re-used when implementing the changes to the production system.


FUNCTIONAL DESCRIPTION

Interface Admin

The C-ePOD Admin screens will not change, as the Interface Configuration screen already supports the Palletforce (PALLET) interface type

An interface configuration will be created for each partner that works with the Palletforce Alliance, and these will now be configured as SOAP web services, identifying all the information required for that new web service.

FS 377534 IF Config.png

Each PALLET (Palletforce) job group will be assigned to the correct interface ID for that partner, which identifies the Palletforce Alliance account code for the interface.

All sites (i.e. partners) within Partnerlink will be assigned a unique Access Key, that uniquely identifies the partner to Palletforce. This replaces the existing mechanism of using Palletforce Depot codes.

See the Configuration Set-up section above for more details.


There are no expected modifications to the data being passed to the partners' TMS solutions for Palletforce jobs, nor to the data being passed to C-ePOD for those jobs. There are no expected modifications to the configuration of the job processes to support this new interface, for example process changes for the driver, or reason code changes for Palletforce jobs. Jobs will be received into the C-ePOD system in the same way that they are now, with no changes to how these are processed by this interface.


Interface

In terms of how the interface operates, this will largely not be visible to the user - messages will still be automatically sent to Palletforce Alliance, except now messages will be sent more frequently, at more status changes.

The existing Palletforce export will be modified to change from the existing FTP file-based (CSV/PNG) interface to sending the files directly to a web service endpoint provided by Palletforce.

The interface will send all required information to the Palletforce systems at certain events:

  • DONR - En Route. The status is used when the job is a delivery and the job has been set to In Progress i.e. the driver has started this job.
  • ARDL - Arrived at Delivery Location. The status is used when the job is a delivery and the job has been updated with an arrival date and time.
  • Proof of Delivery (POD) and all equivalent statuses indicating end of consignment, including:
    • POD - POD Received. The status is used when the job is a delivery, the container (pallet) status is "C" - complete, with no notes or reason code.
    • PODE - POD Received with Exception. The status is used when the job is a delivery, container status is "C" - complete by also contains notes and/or a reason code (i.e. claused).
    • DMGD - Delivered Damaged. The status is used when the job is a delivery, container status is "X" - cancelled with reason code i.e. pallet has not been delivered.
    • POC - POC Received. The status is used when the job is a collection.
  • ABRT - Delivery aborted. The status is used when the whole job has been cancelled.

At each trigger point, an event status update will be sent to the Palletforce system, detailing the information required for that status update.


Unique tracking codes will be provided for the Palletforce jobs, which will be used to identify the consignments in the new interface.

Latitude and longitude will be provided on the status update message, if the applications knows of it.

Each status update message will include the drop number and total drops on the trip.

For end-of-job statuses as listed above, the signatory and signature will also be included.

Where exceptions are indicated, the system will provide details (i.e. the notes and reason code descriptions) in notes against the consignment.

The system will audit the messages sent and will audit the response from the Palletforce web service, to indicate whether the update was successful or has failed.

FS 377534 IF Audit.png


TECHNICAL NOTES

Modules Changed

Module Name Module Type Notes
xf_config* Web form aspx and aspx.cs
EPOD_SYS_EXPORT.cs C# Class  
TRG_EPOD_JOB_UPDATE.sql Database procedure  
{Date}_{Time}-{Version}-{Reference}_NewPalletforceInterface.sql Database script Modifications to the database for the trigger and list data.


Table Updates

Name Type Nullable Default Storage Comments
           


Developer Notes

The Palletforce interface will be modified to connect to a new web service end-point.

The process will also send more data at more events in the job lifecycle, at the following statuses:

  • Job In Progress
  • Job Arrived
  • Job Complete or Cancelled

The old interface is to be removed and replaced with this one.


Summary of Development

Admin changes:

  • Modify Import/Export Config screen to display Message Type on all config IDs.

Database Triggers changes:

  • Modify the creation of XF Control records on the update or creation of Job records.

AutoExport changes:

  • New process, processing Palletforce interfaces based off the XF_CONTROL table, to a new web service endpoint.
  • Processing and converting the JSON response.

Testing:

  • Testing PF jobs work as expected on all of the status changes, through test jobs on a testing instance of the Palletforce Alliance system.
  • Testing other exports are unaffected.

Implementation: Data:

  • Existing PALLET job groups to be modified with correct Interface Configuration ID.
  • Existing Interface Configuration modified with new Web API information, per partner (site).
  • Tables showing exclusion/inclusion of interface configurations to be modified (EPOD_LIST_ITEMS)

Note Note: Additional days have been allocated to this change to help with the customer's data setup as above in test and production, and also to help with their testing.


Admin Screen

The existing admin Imp[ort/Export Configuration screen, id xf_config.aspx, will be modified for this functionality.

The existing sections xfJobType and xfTTMParm will be made visible for ID "PF".


Triggers

  • There is a significant modification to the Job trigger to account for this new functionality.
  • This change will move the Palletforce interface to be in line with the new method of interfacing
  • The existing method of interfacing will be removed as part of this change and will not be available after the change is implemented.
  • A configuration per site/job group is required, not just job group (as per the existing interface.
  • Therefore Job Group record is to point to different configurations, one per site.


The triggers the system currently uses in this area are:

  • TRG_DEBUG_JOB_STATUS - all it does is wrote to EPOD_DEBUG table.
  • TRG_EPOD_JOB_COMPLETE - all it does is PRINT "Updating (job) to status (status)" if completing an unloading job in a warehouse depot.
  • TRG_EPOD_JOB_DELETE
    • if job deleted
    • If jobs left on load
      • Insert debug message
      • Update LOAD EPL_XFER_TTM_FLAG
    • Else
      • Insert debug message
      • Insert EPOD_XF_CONTROL TRP send if enabled
  • TRG_EPOD_JOB_UPDATE - This is the one that needs modification
  • TRG_EPOD_JOB_UPDATE_LOAD


Changes to Trigger

The intention of the change is to make the "PF" (Palletforce) interface behave more in line with the new XF_CONTROL process for other network interfaces.

So therefore:

  • The existing selection of job group "PALLET" will be removed.
  • The PF type will be added to the list of new exports (EPOD_LISTS "EXPORTS_CLIENT_TYPE".)
  • The new standard of export will be modified to add some additional EXC_ACTION values based on the export type "PF".


So, the existing PALLET job group selection will be moved to be more like new process i.e. linked to from the job group of the job, to EPOD_XF_CONFIG using the CONFIG_ID of the JOB_GROUP. There can then be different PALLET_L01, PALLET_L03, etc configurations that are linked from each site's JOB_GROUP record.

This new process (based on EPL_XF_ID of "PF") shouldn't select jobs on completed status alone like the others do, but should check whether the status or arrival date/time has been modified, based on what messages the EPOD_XF_CONFIG message is configured to send, for example:

  • If EPL_STATUS is changed to I from any other value and EPL_XF_MSG_TYPE contains "DONR" or is blank, select the record and set the EXC_ACTION to "DONR"
  • If EPL_STATUS is changed to C from any other value and EPL_XF_MSG_TYPE contains "POD" or is blank, select the record and set the EXC_ACTION to "POD"
  • If EPL_STATUS is changed to X from any other value and EPL_XF_MSG_TYPE contains "ABRT" or is blank, select the record and set the EXC_ACTION to "ABRT"
  • If EPL_ARRIVAL_DATE or EPL_ARRIVAL_TIME is changed to a non-null or non-zero value and EPL_XF_MSG_TYPE contains "ARDL" or is blank, select the record and set the EXC_ACTION to "ARDL"

It should select Col or Del jobs based on EPL_EXPORT_JOB_TYPES.

This should affect then the second part of the statement (removing "PALLET") and the last part (the generic sending based on job group)


Data Modification Scripts

A data modification script will be required to include the database trigger modifications specified above.

This script will also add "PF" to the EPOD_LIST_ITEMS for EPOD_LISTS id "EXPORTS_CLIENT_TYPE".

A single script will be required, listed in the modules changed. This will be named {Date}_{Time}-{Version}-{Reference}_NewPalletforceInterface.sql, with Date, Time and System version are set from the current date, time and system version respectively.

The script must be added to the EPOD_DatabaseScriptsLibrary project and set to "Copy Always" to output directory.


New Sending Process

Data class EPOD_SYS_EXPORT.cs, procedure ExportXFControl will be modified. The section for type "PF" will be modified.

So EXC_TYPE of the EPOD_XF_CONTROL record will be "PF" and EXC_ACTION will be one of the main statuses, for example:

  • DONR
  • ARDL
  • POD (including POC and all related statuses)
  • ABRT

Then when processing the EPOD_XF_CONTROL records, check the EXC_ACTION and send something different based on that.

Each message will be sent with a JSON content, based on the structure below:

{
  "accessKey": "string",
  "addressType": "string",
  "consigneeName": "string",
  "dropOrder": 0,
  "dropOrderTotal": 0,
  "eventDateTime": "2020-02-10T13:37:49.366Z",
  "latitude": 0,
  "longitude": 0,
  "notes": "string",
  "pallets": [
    {
      "palletNumber": "string",
      "eventCode": "string"
    }
  ],
  "signatureImage": "string",
  "trackingCode": "string",
  "uniqueTransactionNumber": "string"
}

The process will build the content, then (through the configuration of the PF messages being "SOAP"), will send these to the endpoint specified.


The SOAP sending region of this method will be modified to check the type of "PF" and populate the message and send it according to the specification. A new method, a variant of SendExportAsSoap will be created to check the response in JSON format, similar to the following template:

{
  "Result": true,
  "UniqueReference": " 70A0C90A-E81E-472C-8904-CC57BC6097C9",
  “Message”:”Result of call”
}

In this case, the Result property being true defines that that message has been successfully received. If false, the Message property holds the detail of the error.

The new method will convert the JSON response into an appropriate XML response and return that value, so that the calling functions do not need to change. Specifically, this requires that the returned XML contains the text "SUCCESS" if successful.


Each message action will populate the message differently, as shown below.


DONR - En Route message

Name Type Required Notes/Mapping
Access Key String Yes Unique security key provided by Palletforce to allow access to the API - as per EPOD_XF_CONFIG
Message String No Details of the error in the result of a failed call - NOT USED
UniqueTransactionNumber String No 3rd parties own unique transaction number - generated from EPL_PF_DEPOT
TrackingCode String Yes Consignment tracking code - EPL_PF_TRACKING
Latitude Decimal No GPS Latitude co-ordinates - EPL_LONG
Longitude Decimal No GPS Longitude co-ordinates - EPL_LAT
DropOrder Integer No Order of the delivery or collection within the route (e.g Drop 1 of 3) - EPL_SEQUENCE
DropOrderTotal Integer No Total number of collections or deliveries in the Route (e.g 3 drops expected in total) - max of EPL_SEQUENCE excluding EPL_LOADING_TYPE "U"
AddressType String Yes C for commercial address, R for residential address, U for unknown - "U"
EventDateTime String Yes Date and Time when the tracking event took place. Format dd-MM-yyyyTHHmmssZ - EPL_START_ACTUAL_DATE/TIME
ConsigneeName String   NOT INCLUDED IN THIS MESSAGE
Notes String No NOT INCLUDED IN THIS MESSAGE
Pallets     Collection of Pallet objects
> PalletNumber String Yes The number of the pallet within the consignment - EPL_CONTAINER_ID
> EventCode String Yes "DONR"
SignatureImage Byte array   NOT INCLUDED IN THIS MESSAGE


ARDL - Arrived at Location

Name Type Required Notes/Mapping
Access Key String Yes Unique security key provided by Palletforce to allow access to the API - as per EPOD_XF_CONFIG
Message String No Details of the error in the result of a failed call - NOT USED
UniqueTransactionNumber String No 3rd parties own unique transaction number - generated from EPL_PF_DEPOT
TrackingCode String Yes Consignment tracking code - EPL_PF_TRACKING
Latitude Decimal No GPS Latitude co-ordinates - EPL_LONG
Longitude Decimal No GPS Longitude co-ordinates - EPL_LAT
DropOrder Integer No Order of the delivery or collection within the route (e.g Drop 1 of 3) - EPL_SEQUENCE
DropOrderTotal Integer No Total number of collections or deliveries in the Route (e.g 3 drops expected in total) - max of EPL_SEQUENCE excluding EPL_LOADING_TYPE "U"
AddressType String Yes C for commercial address, R for residential address, U for unknown - "U"
EventDateTime String Yes Date and Time when the tracking event took place. Format dd-MM-yyyyTHHmmssZ - EPL_ARRIVAL_DATE/TIME
ConsigneeName String   NOT INCLUDED IN THIS MESSAGE
Notes String No NOT INCLUDED IN THIS MESSAGE
Pallets     Collection of Pallet objects
> PalletNumber String Yes The number of the pallet within the consignment - EPL_CONTAINER_ID
> EventCode String Yes "ARDL"
SignatureImage Byte array   NOT INCLUDED IN THIS MESSAGE


POD - confirmed delivered in some way

In general, populated as follows:

Name Type Required Notes/Mapping
Access Key String Yes Unique security key provided by Palletforce to allow access to the API - as per EPOD_XF_CONFIG
UniqueTransactionNumber String No 3rd parties own unique transaction number - generated from EPL_PF_DEPOT
Message String No Details of the error in the result of a failed call - NOT USED
TrackingCode String Yes Consignment tracking code - EPL_PF_TRACKING
Latitude Decimal No GPS Latitude co-ordinates - EPL_LONG
Longitude Decimal No GPS Longitude co-ordinates - EPL_LAT
DropOrder Integer No Order of the delivery or collection within the route (e.g Drop 1 of 3) - EPL_SEQUENCE
DropOrderTotal Integer No Total number of collections or deliveries in the Route (e.g 3 drops expected in total) - max of EPL_SEQUENCE excluding EPL_LOADING_TYPE "U"
AddressType String Yes C for commercial address, R for residential address, U for unknown - "U"
EventDateTime String Yes Date and Time when the tracking event took place. Format dd-MM-yyyyTHHmmssZ
ConsigneeName String   EPL_SIGNATORY
Notes String No Dependent on pallet status - see below
Pallets     Collection of Pallet objects
> PalletNumber String Yes The number of the pallet within the consignment - EPL_CONTAINER_ID
> EventCode String Yes Dependent on pallet status - see below
SignatureImage Byte array   Base64 encoded signature image.

Event code is one of the following:

Code Name Notes/Mapping
POD POD Received Job is a delivery, container status is "C" - complete with no notes or reason code.
PODE POD Received with Exception Job is a delivery, container status is "C" - complete by also contains notes and/or a reason code (i.e. claused)
DMGD Delivered Damaged Job is a delivery, container status is "X" - cancelled with reason code.
POC POC Received Job is a collection.

Where the pallet has a reason code or notes, the descriptions and notes must concatenated together and placed in the Notes property.


ABRT - aborted

Name Type Required Notes/Mapping
Access Key String Yes Unique security key provided by Palletforce to allow access to the API - as per EPOD_XF_CONFIG
UniqueTransactionNumber String No 3rd parties own unique transaction number - generated from EPL_PF_DEPOT
Message String No Details of the error in the result of a failed call - NOT USED
TrackingCode String Yes Consignment tracking code - EPL_PF_TRACKING
Latitude Decimal No GPS Latitude co-ordinates - EPL_LONG
Longitude Decimal No GPS Longitude co-ordinates - EPL_LAT
DropOrder Integer No Order of the delivery or collection within the route (e.g Drop 1 of 3) - EPL_SEQUENCE
DropOrderTotal Integer No Total number of collections or deliveries in the Route (e.g 3 drops expected in total) - max of EPL_SEQUENCE excluding EPL_LOADING_TYPE "U"
AddressType String Yes C for commercial address, R for residential address, U for unknown - "U"
EventDateTime String Yes Date and Time when the tracking event took place. Format dd-MM-yyyyTHHmmssZ - EPL_END_ACTUAL_DATE/TIME
ConsigneeName String   NOT INCLUDED IN THIS MESSAGE
Notes String No Job reason code description.
Pallets     Collection of Pallet objects.
> PalletNumber String Yes The number of the pallet within the consignment - EPL_CONTAINER_ID
> EventCode String Yes "ABRT"
SignatureImage Byte array   NOT INCLUDED IN THIS MESSAGE

TEST PLAN

Test Script / Scenario ReferenceNew Palletforce InterfaceCall Number(s): 377534
Test Script / Scenario DescriptionTesting the new Palletforce Alliance InterfacePASS / ISSUES / FAIL
Menu AccessN/A 
Pre-requisitesNoneTested By:
 
Test ObjectiveTesting:
  • PF jobs work as expected on all of the status changes, through test jobs on a testing instance of the Palletforce Alliance system.
  • other exports are unaffected.
Date:
 


Step Action Result Remarks P/F
1 New Palletforce Interface Tests      
  Ensure that the XF Config is connected to the Palletforce Alliance test system.

Ensure that the site and job group are configured for this XF Config. Ensure that jobs exist that match a job within the Palletforce Alliance test system. Ensure that these jobs are for the correct job group, assigned to a load and assigned to the vehicle and/or user you are using.

Ensure that some of these jobs have multiple pallets.
     
1.01 Start and accept the load. Start the job. A DONR message is sent, populated correctly.    
1.02 Arrive the job. An ARDL message is sent, populated correctly.    
1.03 Complete the job with all pallets correctly delivered. A POD message is sent, populated correctly.    
1.04 Start and arrive another job. Cancel one pallet and deliver the rest. A DONR and ARDL message is sent as before. A PODE message is sent, populated correctly.    
1.05 Cancel a job, before starting it. A DMGD message is sent, populated correctly.    
1.06 Start and arrive a job, then cancel it. A DONR and ARDL message is sent as before. A DMGD message is sent, populated correctly.    


Step Action Result Remarks P/F
2 Regression Tests      
  Ensure that jobs exist for other pallet network exports and standard exports, specifically:
  • PallEx.
  • TPN.
  • PalletLine.
  • HazChem.
  • Standard Job.
  • Standard Load.
     
2.01 For each configured export, complete jobs. Updates are created and sent correctly.    


APPENDIX A: QUOTE & DOCUMENT HISTORY

Cost Details
Activity Estimate
No. of Days
No. of Days Rate per Day (£) Cost (£ Exc. VAT)
Requirements 0.00 0.00 850 £0.00
Change Request Evaluation 2.00 2.00 850 £1,700.00
Functional Specification 1.50 1.50 850 £1,275.00
Technical Specification 0.00 0.00 850 £0.00
Development 6.00 6.00 850 £5,100.00
Testing and Release 3.00 3.00 850 £2,550.00
Implementation 3.00 3.00 850 £2,550.00
Project Management 3.00 3.00 850 £2,550.00
Discount 10%
TOTAL 18.50 18.50   £14,152.50
Estimate excludes training, release to live and go live support.

References

Ref NoDocument Title & IDVersionDate
1EST 377534 PART EPOD New Palletforce Interface1.014/09/2020
2Alliance API specification v1.1.1.pdf1.1.115/01/2020


Glossary

Term or Acronym Meaning
General Definitions
EPOD Electronic Proof of Delivery. The OBSL EPOD system is CALIDUS ePOD. This also comprises the basis of the Service Completion system CALIDUS eServ.
Server The portion of the CALIDUS ePOD/eServ systems that controls all the data and sends information to and receives updates from the mobile device.
Mobile Device; PDA The device used by the driver to perform the jobs. Typically an Android mobile device or tablet.
Site The site usually defines the depot, business or the transport group (carrier). It can be set to any value required by the customer. All transactions data (for example, loads and jobs) and standing data (for example, vehicles and uses) belong to a site. An EPOD user, on a device or in the Admin screen, can only see data for one site at a time.
Load A single journey for the driver with a set of work attached. A load is identified by a unique load ID. This may also be referred to as a worklist or workload.
Job Also Consignment. A single task for the driver as a specific location. This could be the collection of goods or the delivery of goods. Jobs may also be Services (for example, servicing, installing or de-installing a boiler). A job is identified by a unique job ID but can also have other references held against the job (e.g. job code, SO number, customer reference and external reference).
Job Group Jobs must be tagged with a Job Group. All jobs tagged with a single job group are processed in the same way. The job group has configuration associated to it to control such items as: POD/POC Report settings; Pre-Job actions (such as signing at a gatehouse); Post-Job actions (such as who signs for the item, are photos required); configurable fields required for entry for the jobs; Terms and Conditions displayed and; driver/user process (such as photos required for cancellation, comments/notes allowed). The job group can be used for any or all Sites, and the configuration against the job group can be different in each site. Job Groups can also be restricted from Admin and Remote users, so that certain users only see jobs for certain groups.
Container A generic term for any object that contains the items being collected or delivered. Examples of containers are: Pallet; Package; Carton; Item; Cage. A special container "Loose Products" - see Product below. A container is identified by a container ID which is unique to this physical container.
Product A product is any goods that are being collected or delivered where the product has a 'Product Code' which identifies what the product is but which does not uniquely identify each individual item. A product will also have a quantity associated with it to indicate how many items of this 'Product Code' are being collected or delivered. Products can either be processed within a 'Container' or as 'Loose Products' without a 'Container'.
Owner The owner of the order that created the job. Typically this is the sales team that took the order and will be responsible for dealing with queries from the customer regarding the status.
Operator; Executor The Site (depot or carrier) that is executing the load or loads that are involved in the delivery of the items.
Item Related Definitions
Job Code A reference associated with a job or job(s). This reference is common to connected jobs, for example this would be the same on both the collection of goods and the associated delivery of the same goods. Typically this would be the transport unique reference.
SO Number A reference associated with a job which indicates the "Sales Order Number" this job is associated with.
Customer Reference A reference associated with a job which has been provided by and will be recognised by the customer.
External Reference A reference associated with a job which does not match any of the existing references, usually because it has been provided by an external system.
Pallet An alternative for 'Container'. The term pallet is used when the operation only uses portable platforms as the container for goods.
Package An alternative for 'Container'. The term package is used when the operation only uses boxes or wrapping as containers for goods.
Package Code A code representing the type of 'Container'.
Package Desc A description of the type of 'Container'.
Product Code A code which identifies what a product is.
Item A generic term for any individual item that can be collected or delivered. An item can represent a 'Container' or a 'Product'. This can also be used as an alternative for 'Container' when the operation only treats the goods as individual items, i.e. not as identifiable products.
Service Item An item which will be serviced by a service job. See action 'Service'.
Issue Life The time after which an item is no longer fit for purpose.
Pack Size; Case Quantity A product may consist of a full quantity of items, inside a pack. The Pack Size (or Case Quantity) defines the amount of this product contained in a single pack. For example, if there are 85 items to deliver, with a pack size of 24, the number of full packs is determined to be 3 (24 * 3, or 72), with the remaining (13) being 'loose' quantity. This is displayed as "3/13" on the mobile application.
UOM; Item Type Unit of Measure; The major (case) UOM. This can optionally be displayed on the mobile device when changing product quantities.
Product Type A classification of the product being delivered. For example, a company may deliver 7 different mortar products and 80 different concrete slab products. The Product Types may be set to "MORTAR" and "SLABS". This may be used to attach additional configuration, changing the data required when collecting or delivering these product types.
Status Definitions
Status An indicator of how far through the processing a 'Job', 'Container' or 'Product' has progressed.
Pending A status indicating that the processing has not yet started, but is required to be completed.
In Progress A status indicating that processing has started but not yet finished.
Complete A status indicating that the 'Job', 'Container' or 'Product' has been collected or delivered.
Complete (Amended) A status indicating that the 'Job', 'Container' or 'Product' has been collected or delivered but that some changes or amendments have been made. This means that not everything that was planned to be collected or delivered was collected or delivered, some items may have been cancelled or some products may only have had some of the planned quantities collected or delivered.
Complete (Claused) A status indicating that the processing has been finished but that a 'Clause' condition has been recorded for this item.
Claused See 'Complete (Claused)' and action 'Clause'.
Cancelled A status indicating that the processing of this item or job is no longer required.
Cancelled at Collection A status indicating that the delivery of a container or product is no longer required because the associated collection of this container or product was cancelled.
Submitted An optional status that applies only to a 'Job' and which occurs after the 'Job' has been completed. This indicates that any time and expenses information recorded for the 'Job' has been submitted back to the server and can no longer be altered.
Action Definitions
Start An action associated with a 'Job' meaning the driver is about to start the processing of this job or jobs. This action will mark the job(s) with a status of 'In Progress'.
Arrive A conditional action associated with a 'Job' meaning the driver has arrived at the location the goods should be collected from or delivered to.
Continue An action associated with a 'Job' meaning the driver has previously performed the 'Start' and/or 'Arrive' action and has exited the processing screen but is now going to continue the processing.
Collect An action associated with a specific 'Container' or a 'Product' meaning the driver has collected the 'Container' or 'Product'. This action will mark the 'Container' or 'Product' with a status of 'Complete' or 'Complete (Amended)'.
Collect Claused An action associated with a specific 'Container' or a 'Product' meaning the driver has collected the 'Container' or 'Product' but with a condition under which the collection was accepted. This action will accept the clause condition and then mark the 'Container' or 'Product' with a status of 'Complete (Claused)'.
Deliver An action associated with a specific 'Container' or a 'Product' meaning the driver has delivered the 'Container' or 'Product'. This action will mark the 'Container' or 'Product' with a status of 'Complete' or 'Complete (Amended)'.
Deliver Claused An action associated with a specific 'Container' or a 'Product' meaning the driver has delivered the 'Container' or 'Product' but with a condition under which the delivery was accepted. This action will accept the clause condition and then mark the 'Container' or 'Product' with a status of 'Complete (Claused)'.
Clause An action associated with a specific 'Container' or a 'Product' that has already been collected or delivered meaning the collection or delivery has been accepted with a condition. This action will accept the clause condition and then mark the 'Container' or 'Product' with a status of 'Complete (Claused)'.
Cancel An action associated with a 'Job', 'Container' or 'Product' meaning the collection or delivery will not be performed for this 'Job', 'Container' or 'Product'.
Submit An optional action which can conditionally be carried out after a 'Job' has been collection or delivered meaning that any/all required expense or time recording for this 'Job' has been completed and can be submitted back to the server.
Service A service of a service item or items. Typically, Installation, Deinstallation or Service. The process of a service usually encompasses Pre- and Port-work checks, information gathering and diagnosis and resolution notes. Additional references (MC Refs) may also be captured.
Actioned A general term describing completing a job. So, 'Actioned' may be used instead of 'Collected', 'Serviced', 'Delivered'.
Consolidate The action of taking several jobs and linking them together, so they are actioned at the same time with one start, arrive and signature.
Deconsolidate The action of taking a consolidation of jobs and breaking them down into the component jobs again.
Job Swap The action of selecting an existing load not assigned to the user, and picking jobs to transfer onto the user's load.
Signature Capture Usually the final action of a job, where the customer's name and signature are entered.
Other Definitions
Reason Code A code which represents the reason that a job was cancelled or an item was cancelled or claused.
Vehicle The vehicle used for transporting the goods.
Vehicle Checks Also Defect Checks. A series of questions representing the results of checks intended to ensure the vehicle is in an acceptable condition.
Metrics Entry A series of questions to capture information either at the start or end of a 'Load'.
Driver The person performing the collections or deliveries; the user of the device/application.
Engineer The person performing the services; the user of the device/application.
Customer The person/company the goods are being collected from or delivered to.
Signatory The name of the person providing a signature.
T&Cs Terms and Conditions. The T&Cs are shown when signatures are prompted for. The text of the T&Cs are defined in the system itself.
Transfer Load A load select from which to swap jobs to the user's load.
Base E.g. 'Return to Base'. Typically the depot from which the driver departed.
Unplanned Ad Hoc Collection A collection job that is created by the driver, usually after delivering to a customer.
Ad Hoc Container Entry/Scanning The process of adding containers (items) to a job that have not been pre-advised on the job.
Completion Report POD, POC, Service/Work Report.
Load Assignment The action of assigning a vehicle and/or a driver to a load.
Job Assignment The action of putting jobs onto a load.
Collection/Delivery Windows; Access Windows Periods of time between which it is acceptable to deliver or collect from that customer. This has limited use in the system, mostly for reporting purposes.
Location/Map Terms
Lat-Longs; GPS Co-ordinates, GPS Position Latitude and Longitude co-ordinates, specified together as a single entity, identifying the exact position of a location. There are multiple formats - CALIDUS ePOD uses decimal notation, for example "53.3490818,-2.8521498" identifies the OBS Logistics office building in Liverpool.
GPS Global Positioning System; the satellite system used to obtain a GPS position, for use with navigation and location positioning.
Geocode; Reverse Geocode Geocoding is the process of obtaining lat-longs from an address. Reverse Geocoding is the process obtaining an address from lat-longs.
Geofence; Geofence Break A Geofence is a perimeter around a location. A Geofence Break occurs when a device passes through this perimeter on entry or exit from the location.


Authorised By


Murray Middleton

OBS Project Manager

_____________________________

John Davidson

Partnerlink Director

_____________________________