FS 294229 Whiteline EPOD Modifications
Whiteline Group Ltd
Whiteline ePOD Modifications
CALIDUS ePOD
15th December 2011 - 1.0
Reference: FS 294229
Contents
Functional Overview
Client Requirement
The customer requires an ePOD system.
The functionality required is:
- Deliveries of loose products
- Collections of loose products
- Automatic Import of data from host system (Cold Fusion)
- Export of data
- Admin functions (for creation of Collections)
- Facility to confirm receipt of payment
- Integrated Navigation
The customer will have 5 users of the system.
Solution Overview
The following developments will be required:
- Data Interfacing
- Import
- Export
- Customer Reference
- Payment Received
- Integrated Navigation
- New POD format
Scope
- Modifications will be made to the latest version (1.1) of the CALIDUS ePOD system.
- The software delivery is by end of January (TBC).
- The software will be hosted on one of the customer's servers - minimum requirements have been notified.
Set-up
Pre-requisites
- For emailing POC/POD documents, Email must be configured on the CALIDUS ePOD server.
- The Co-pilot product must be installed for integrated navigation to work.
Menu Structure
None
Data
None
Functional Description
Configuration
The new field 'Delivery Payment' must be set to 'Enabled'.
Database Modifications
A new field will be added to the EPOD_PRODUCT table, called EPL_CUST_REF. This will be a 30-character field.
A new field will be added to the EPOD_SITE and EPOD_JOB_GROUPS tables, called EPL_DELIVERY_PAYMENT. This will be a 1-character rule, of values 'Y' or 'N'. This will control whether the Delivery process allows the user to display the Payment tab.
A new field will be added to the EPOD_PRODUCT table, called EPL_ITEM_TYPE. This will be a 30-character field.
Data Interfacing
Data interfacing has been discussed with the Whiteline technical resource (Ian Finch of IFCon). The interfacing will be through a modified version of the standard Web Service XML structures.
All import data will be sent from the host system to the ePOD Web Service.
All export data will re requested by the host system from the ePOD Web Service. This will be requested based on a single day to be updated.
Import
The import XML will be modified to include a new tag EPL_CUST_REF within the EPOD_PRODUCT container tag, as follows:
<xsd:element name="EPL_CUST_REF" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="30" /> </xsd:restriction> </xsd:simpleType> </xsd:element>
When received within an EPOD_LOADS or EPOD_JOBS tag, this will be saved to the new field against the EPOD_PRODUCT table.
Export
The export XML will be modified to include a new tag EPL_CUST_REF within the EPOD_PRODUCT container tag, as follows:
<xsd:element name="EPL_CUST_REF" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="30" /> </xsd:restriction> </xsd:simpleType> </xsd:element>
Requests for data through the Web Service (ePOD_DataService.asmx) will require an XML message structure to define what data is being extracted. The structures follow:
- Load by Load ID
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="EPOD_EXPORT_LOAD"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_LOAD_ID" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="EPL_USER_ID" type="xsd:string" /> <xsd:attribute name="EPL_USER_PASSWORD" type="xsd:string" /> <xsd:attribute name="EPL_SITE_ID" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema>
Only the specified Load will be returned.
- Load by Date
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="EPOD_EXPORT_LOAD_DATE"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_LOAD_END_ACTUAL_DATE" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="EPL_USER_ID" type="xsd:string" /> <xsd:attribute name="EPL_USER_PASSWORD" type="xsd:string" /> <xsd:attribute name="EPL_SITE_ID" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema>
Only Loads that have been completed or cancelled on that date will be returned.
The format of the returned XML for both Load Exports is as follows:
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation> ePOD Generic XML Export Load </xsd:documentation> <xsd:documentation> History: Version 0.1 25-11-2011 Luke Miles </xsd:documentation> </xsd:annotation> <xsd:element name="EPOD_EXPORT_LOAD_RESPONSE"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_LOADS" maxOccurs="1" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_LOAD" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_SITE_ID: Unique reference of the site that the Load belongs to. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_ID" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_LOAD_ID: Unique reference of the Load. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_START_PLANNED_DATE" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPL_LOAD_START_PLANNED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LOAD_END_PLANNED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LOAD_END_PLANNED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LOAD_START_ACTUAL_DATE" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPL_LOAD_START_ACTUAL_TIME" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPL_LOAD_END_ACTUAL_DATE" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPL_LOAD_END_ACTUAL_TIME" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPL_LOAD_DISTANCE_PLANNED" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LOAD_DISTANCE_ACTUAL" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPL_VEHICLE_ID" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_USER_ID" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" nillable="false" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1" /> <xsd:element name="EPOD_JOBS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_JOB" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_JOB_ID: Unique reference for this job. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_TYPE" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_JOB_TYPE: Defines the type of Job (D - Delivery, C - Collection, S - Service). </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="C"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_GROUP" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_JOB_GROUP: Defines the type of Job (D - Delivery, C - Collection, S - Service). </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_INSTRUCTION" nillable="true" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPL_JOB_INSTRUCTION: Free text that will be shown to the driver on the PDA. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_OFFICE_INSTRUCTION" nillable="true" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPL_JOB_INSTRUCTION: Free text that will not be shown on the PDA but will in the Admin system. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="225" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_SIGNATURE" type="xsd:string" maxOccurs="1" nillable="true"/> <xsd:element name="EPL_REASON_CODE" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" maxOccurs="1" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PHOTO_ID" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_PHOTO" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_ENG_SIGNATURE" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_SEQUENCE" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_START_PLANNED_DATE" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_START_PLANNED_TIME" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_END_PLANNED_DATE" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_END_PLANNED_TIME" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_START_ACTUAL_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_START_ACTUAL_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_END_ACTUAL_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_END_ACTUAL_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_DISTANCE_PLANNED" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_DISTANCE_ACTUAL" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_DRIVING_TIME" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_CUSTOMER_CODE" nillable="false" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPL_CUSTOMER_CODE: The Unique reference for the Customer. If this does not exist within the system </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CUSTOMER_NAME" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_1" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_2" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_3" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_4" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_POSTCODE" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTACT" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_TELEPHONE" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_EMAIL" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPOD_CONTAINERS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_CONTAINER" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_CONTAINER_ID: The unique identifier for a cotainer. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="true" maxOccurs="0" /> <xsd:element name="EPL_CONTAINER_PACKAGE_CODE" nillable="true" maxOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_PACKAGE_DESC" nillable="true" maxOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_REASON_CODE" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PHOTO_ID" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_PHOTO" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPOD_PRODUCTS"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_PRODUCT"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_DESCRIPTION" nillable="true" maxOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_QTY_PLANNED" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_QTY_ACTUAL" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_QTY_CASE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_REASON_CODE" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PHOTO_ID" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_PHOTO" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_SERVICE" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPOD_SERVICE object contains any details relating the service part of the job, if the job is of type service </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_ID" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_SERVICE_ID: Unique identifier for the Service object. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_TYPE" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_SERVICE_TYPE: Defining the type of service (D - Deinstallation, I - Installation, S - Service). </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="I"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_REG_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="15" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_VIN_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SIM_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="RESULT" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema>
- Job by Job ID
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="EPOD_EXPORT_JOB"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_JOB_ID" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="EPL_USER_ID" type="xsd:string" /> <xsd:attribute name="EPL_USER_PASSWORD" type="xsd:string" /> <xsd:attribute name="EPL_SITE_ID" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema>
Only the specified job will be returned.
- Job by Date
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="EPOD_EXPORT_JOB"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_END_ACTUAL_DATE" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="EPL_USER_ID" type="xsd:string" /> <xsd:attribute name="EPL_USER_PASSWORD" type="xsd:string" /> <xsd:attribute name="EPL_SITE_ID" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema>
Only Jobs that have been completed or cancelled on that date will be returned.
Note: It is expected that this implementation will use the Job By Date export.
The Export Format will be as follows:
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation> ePOD Generic XML Export Job </xsd:documentation> <xsd:documentation> History: Version 0.1 25-11-2011 Luke Miles </xsd:documentation> </xsd:annotation> <xsd:element name="EPOD_EXPORT_JOB_RESPONSE"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_JOBS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_JOB" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_JOB_ID: Unique reference for this job. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_TYPE" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_JOB_TYPE: Defines the type of Job (D - Delivery, C - Collection, S - Service). </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="C"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_GROUP" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_JOB_GROUP: Defines the type of Job (D - Delivery, C - Collection, S - Service). </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_INSTRUCTION" nillable="true" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPL_JOB_INSTRUCTION: Free text that will be shown to the driver on the PDA. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_OFFICE_INSTRUCTION" nillable="true" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPL_JOB_INSTRUCTION: Free text that will not be shown on the PDA but will in the Admin system. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="225" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_SIGNATURE" type="xsd:string" maxOccurs="1" nillable="true"/> <xsd:element name="EPL_REASON_CODE" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" maxOccurs="1" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PHOTO_ID" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_PHOTO" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_ENG_SIGNATURE" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_SEQUENCE" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_START_PLANNED_DATE" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_START_PLANNED_TIME" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_END_PLANNED_DATE" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_END_PLANNED_TIME" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_START_ACTUAL_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_START_ACTUAL_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_END_ACTUAL_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_END_ACTUAL_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_DISTANCE_PLANNED" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_DISTANCE_ACTUAL" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_DRIVING_TIME" type="xsd:int" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_CUSTOMER_CODE" nillable="false" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPL_CUSTOMER_CODE: The Unique reference for the Customer. If this does not exist within the system </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CUSTOMER_NAME" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_1" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_2" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_3" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_4" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_POSTCODE" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTACT" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_TELEPHONE" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_EMAIL" nillable="true" maxOccurs="1"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPOD_CONTAINERS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_CONTAINER" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_CONTAINER_ID: The unique identifier for a cotainer. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="true" maxOccurs="0" /> <xsd:element name="EPL_CONTAINER_PACKAGE_CODE" nillable="true" maxOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_PACKAGE_DESC" nillable="true" maxOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_REASON_CODE" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PHOTO_ID" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_PHOTO" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPOD_PRODUCTS"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_PRODUCT"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_DESCRIPTION" nillable="true" maxOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_QTY_PLANNED" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_QTY_ACTUAL" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_QTY_CASE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_REASON_CODE" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="2" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" maxOccurs="1" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PHOTO_ID" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_PHOTO" type="xsd:string" nillable="true" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_DATE" type="xsd:int" nillable="false" maxOccurs="1"/> <xsd:element name="EPL_LAST_CHANGED_TIME" type="xsd:int" nillable="false" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_SERVICE" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation> EPOD_SERVICE object contains any details relating the service part of the job, if the job is of type service </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_ID" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_SERVICE_ID: Unique identifier for the Service object. </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_TYPE" nillable="false"> <xsd:annotation> <xsd:documentation> EPL_SERVICE_TYPE: Defining the type of service (D - Deinstallation, I - Installation, S - Service). </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="I"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_REG_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="15" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_VIN_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SIM_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="RESULT" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:schema>
The exported file will follow the standard XML export structure, specified in Appendix B. The element below must be added to the EPOD_JOB tag:
<xsd:element name="EPL_INVOICED" nillable="true"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element>
Customer Reference
A new field EPL_CUST_REF will be added to the EPOD_PRODUCT table. Note: This is being added under another development - please see references section for details.
It will not be necessary to view this through the Admin screens. However it will be necessary to view this on the PDA Client.
This will be achieved by allowing the user to long-click on a product in the grid on the Product tab of the Delivery screen. This will pop up a menu with a Details option against it. When selecting this option, the screen will display a new form, showing:
- EPL_PRODUCT_CODE
- EPL_DESCRIPTION
- EPL_ITEM_TYPE
- EPL_CUST_REF
- EPL_PRODUCT_QTY_PLANNED
An OK button will be provided to return the user to the Delivery screen Product tab.
Payment Received
PDA Client
After all products have been confirmed (as delivered or cancelled), the user will be directed to a new tab on the Delivery screen, labelled Payment.
This tab will display a label or 'Payment Received' and a check box. The user can optionally check this box before clicking OK to finish the job.
This information will be sent back to the Admin system through the standard interface, and stored against the EPOD_JOB table in the existing EPL_INVOICED field.
Note: This field should be added to the standard interface, as specified in the #Export section.
Admin
The Job Group and Site configuration screens will be modified to allow the user to configure whether the Payment tab is displayed on the PDA Client. this is controlled through the new flag EPL_DELIVERY_PAYMENT field. This will be labelled 'Delivery Payment' and will allow values of 'Y' and 'N' only, labelled as 'Enabled' and 'Disabled' in the screen. The value will be selected through the use of a DDL. The value should default to 'Disabled'.
Integrated Navigation
Note: Integrated navigation is being developed under OBS product development.
The PDA Job screen will be modified to add a Navigate button to the Contact tab. This will be positioned next to the Call button. When clicked, this will start the Co-pilot application, if it is not already running.
When started, the PDA client will pass the address details to the Co-pilot application, which will then plan the route to the destination.
The user will be able to complete the route as per the usual navigation process.
Once complete, the user can either stop the Co-pilot application, or simply hide it using the buttons provided within Co-pilot. Note: As Co-pilot takes several seconds to start and initiate a connection to GPS, it is recommended to leave the Co-pilot application running.
The coding for the Co-pilot integration is detailed within the SDK provided for this product.
The PDA client must initiate the application and the messaging service to the application before any addresses (stops) can be interfaced to the application. This should only be done if the application is not already running. There is no need to close the messaging queue or the application at any point other than when the PDA client is closed.
The PDA client must also listen for events back from Co-pilot. This is required at a minimum so that the PDA client can be aware of whether the Co-pilot application is running.
Bespoke POD Document
A new POC format will be created, labelled as "Whiteline". This will match as closely as possible the existing documents used by the client, as can be seen in Appendix A.
The elements displayed on the POD will be:
- Customer - EPL_CUSTOMER_NAME of EPOD_CUSTOMER
- Telephone - EPL_TELEPHONE of EPOD_CUSTOMER
- Delivery Date - EPL_START_PLANNED_DATE of EPOD_CUSTOMER
- Job No - EPL_PRODUCT_CODE of EPOD_PRODUCT + EPL_CUST_REF of EPOD_PRODUCT
- Item Type - EPL_ITEM_TYPE of EPOD_PRODUCT
- Description - EPL_DESCRIPTION of EPOD_PRODUCT
- Received By - EPL_SIGNATURE of EPOD_JOB
- Print Name - EPL_CUST_SIGNATORY of EPOD_JOB
- Date / Time - EPL_END_ACTUAL_DATE_TIME
Note: No images will be produced.
A test format has been produced and is shown in in Appendix A
Appendix A: POD Document Formats
Sample Document from Client
Prototype POD Format
Appendix A: Export XML Structure
<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="EPOD_IMPORT"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_LOADS" maxOccurs="1" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_LOAD" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_START_PLANNED_DATE" type="xsd:int" nillable="true" minOccurs="0" /> <xsd:element name="EPL_LOAD_START_PLANNED_TIME" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_LOAD_END_PLANNED_DATE" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_LOAD_END_PLANNED_TIME" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_LOAD_DISTANCE_PLANNED" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_USER_ID" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPOD_JOBS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_JOB" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_TYPE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="C"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_GROUP" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_INSTRUCTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_OFFICE_INSTRUCTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CUSTOMER_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_START_PLANNED_DATE" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_START_PLANNED_TIME" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_DISTANCE_PLANNED" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_CUSTOMER_NAME" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_1" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_2" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_3" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_4" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_POSTCODE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTACT" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_TELEPHONE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_EMAIL" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPOD_CONTAINERS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_CONTAINER" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"/> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="true" minOccurs="0" /> <xsd:element name="EPL_CONTAINER_PACKAGE_CODE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_PACKAGE_DESC" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPOD_PRODUCTS" nillable="true" minOccurs="0" maxOccurs="1" > <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_PRODUCT" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_DESCRIPTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_QTY_PLANNED" type="xsd:int" nillable="false"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_PRODUCTS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_PRODUCT" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_DESCRIPTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_QTY_PLANNED" type="xsd:int" nillable="false"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_SERVICE" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_TYPE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="I"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_REG_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="15" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_VIN_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SIM_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_JOBS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_JOB" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_LOAD_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="12" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_TYPE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="C"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_GROUP" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_INSTRUCTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_OFFICE_INSTRUCTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CUSTOMER_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_START_PLANNED_DATE" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_START_PLANNED_TIME" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_DISTANCE_PLANNED" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_CUSTOMER_NAME" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_1" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_2" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_3" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_4" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_POSTCODE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTACT" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_TELEPHONE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_EMAIL" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPOD_CONTAINERS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_CONTAINER" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"/> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="true" minOccurs="0"/> <xsd:element name="EPL_CONTAINER_PACKAGE_CODE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_PACKAGE_DESC" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPOD_PRODUCTS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_PRODUCT" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTAINER_ID" type="xsd:int" nillable="false"/> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_DESCRIPTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_QTY_PLANNED" type="xsd:int" nillable="false"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_PRODUCTS" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_PRODUCT" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SEQUENCE" type="xsd:int" nillable="false"/> <xsd:element name="EPL_DESCRIPTION" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_QTY_PLANNED" type="xsd:int" nillable="false"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_SERVICE" nillable="true" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_JOB_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SERVICE_TYPE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="D"/> <xsd:enumeration value="I"/> <xsd:enumeration value="S"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_REG_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="15" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_VIN_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_SIM_NUMBER" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_CUSTOMERS" maxOccurs="1" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_CUSTOMER" nillable="true" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CUSTOMER_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CUSTOMER_NAME" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_1" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_2" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_3" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_ADDRESS_4" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_POSTCODE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_CONTACT" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_TELEPHONE" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_EMAIL" nillable="true" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EPOD_SERVICE_PRODUCT_MASTERS" nillable="false" maxOccurs="1" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPOD_SERVICE_PRODUCT_MASTER" nillable="false" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="EPL_SITE_ID" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_CODE" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_PRODUCT_GROUP" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_DESCRIPTION" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_STATUS" nillable="false"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="A"/> <xsd:enumeration value="I"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="EPL_QUANTITY" type="xsd:int" /> <xsd:element name="EPL_PRODUCT_WEIGHT" type="xsd:decimal" nillable="true" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="EPL_SITE_ID"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="EPL_USER_ID"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="EPL_USER_PASSWORD"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> </xsd:schema>
Appendix A: TEST PLAN
Test Script / Scenario Reference | Whiteline ePOD Modifications | Call Number(s): 294229 |
Test Script / Scenario Description | Full System Test for Whiteline's functionality | PASS / ISSUES / FAIL |
Menu Access | N/a | |
Pre-requisites | WhiteLines Test Site configuration | Tested By: |
Test Objective | Fully test Whiteline's functionality | Date: |
Step | Action | Result | Remarks | P/F |
1 | Admin | |||
Admin Changes | ||||
1.10 | Create a Delivery with Loose Products and include a customer reference (Add products button within the Container.aspx page) | Products appear as loose (not related to a container) | ||
1.20 | Create a Collection with Loose Products and include a customer reference (Add products button within the Container.aspx page) | Products appear as loose (not related to a container) | ||
1.30 | Check POD format is correctly formatted and data is shown correctly | POD format will match documentation |
Step | Action | Result | Remarks | P/F |
2 | PDA Client | |||
PDA Client Changes | ||||
2.10 | Process a delivery with Loose Products | No container tab should appear instead users will be directed straight to products (only if there are no other containers) | ||
2.20 | Process a collection with Loose Products | No container tab should appear instead users will be directed straight to products (only if there are no other containers) | ||
2.30 | Check Naivation is functioning. Start Co-Pilot in one job, check that the destination is sent to Co-Pilot. Minimise Co-Pilot and start it for another job. Minimise Co-Pilot and complete the Job. Exit the App and check that Co-Pilot is closed. | Co-Pilot should be started, prompted with locations and closed by the ePOD Client. | ||
2.40 | Check that the Payment recieved on delivery functions. Check the payment on delivery check box, at the end of product delivery/collection. | This should interface back to the admin system and be shown against the job, | ||
2.50 | Check that the context menu for products functions. Long hold on a product with produce a context menu. Check the data on here is correct. | The context menu should display the following:
|
Appendix C: Document References
C.1 References
Ref No | Document Title & ID | Version | Date |
1 | FS 293863 CDL EPOD Modifications | 0.2 | 01/12/2011 |
C.2 Glossary
Term | Definition |
---|---|
EPOD | Electronic Proof of Delivery. The OBS EPOD system is CALIDUS ePOD. |
CALIDUS eSERV | The OBS mobile system to complete Service functionality in the field. This is part of the CALIDUS ePOD system. |
PDA | The mobile device on which the C-ePOD system will run in the field. This can be a Phone, EDA or industrial PDA, running Android. |
DAL | Data Access Layer. A mechanism for accessing data by the system that is removed from the application, allowing for simplified access and providing protection to the data, as only approved DAL methods can be used to modify it. |
GPS | Global Positioning System. A mechanism of retrieving accurate positioning information in the form of Latitude and Longitude (Lat-Long) co-ordinates from a device. |
GPRS, 3G, HSDPA, Data Service | All terms referring to mobile device network connectivity, and the speed at which the device connects to the internet. |
C.3 Authorised By
Steve McCartney | OBS Representative | _____________________________ |
Matt Turner | OBS Representative | _____________________________ |