FS 294838 Proctor ePOD Modifications

From Calidus HUB




Aptean Logo.png







Proctors

Proctors ePOD Modifications


CALIDUS ePOD

13th March 2012 - 1.3
Reference: FS 294838












































Functional Overview

Client Requirement

Solution Overview

The ERP system will be able to interface Customer data to the CALIDUS EPOD system, to identify the customer address, contact and email information.

Note Note: Customers can also be created through the standard Job interface - if this is the case, then the Job address provided with the first job for this customer will become the customer address.

Jobs will be received for Collection and Delivery from the following main customer types:

  • Suppliers
  • Customers
  • Proctors-operated Warehouses
  • 3rd Party Warehouses

The jobs will be updated into the CALIDUS EPOD system through the standard WebService interface.

This job upload will create 2 tasks:

  • A Collection Job
  • A Delivery Job

Every Collection and Delivery will be specified separately within the interface, with the Product and Quantity specified for all jobs. Linked collections and deliveries will have the same Job Code, but will be distinguished by the Job Type (i.e. Collection or Delivery).

The Upload system will also identify the Loads onto which jobs are planned, as all planning is completed through the Proctors' ERP system.

In phase 1, the initial uploads will be sent to the EPOD system with either no load information, or with the load ID set to a default value.

In phase 2, the initial uploads will be sent tot he EPOD system with either no load information, or with the correct load identified against them. It will then be possible to subsequently update the Load for a job through another update of the Job alone.

There are two types of job:

  • Customer/Supplier jobs - jobs that begin or end with a Customer or Supplier.
  • Inter-warehouse Transfer - jobs that begin and end from Warehouses

All jobs will be categorised by the CALIDUS EPOD Job Group into one of the two categories - this will define the paperwork produced by the system when the job is completed. The Job Group will be agreed and sent to the system in the upload files.

Once jobs from Proctors-controlled warehouses are picked and marshalled, updated Jobs will be sent to the EPOD system, detailing the actual containers (pallets) and product quantities on each.

Note Note: If this data is not available at the time of collecting or delivering the associated jobs, the system will check periodically through a regularly-scheduled automatic process.

Collection jobs from a Proctors-operated warehouse should then have containers and product quantities specified against them. If this is not the case, the PDA client will force a check of these details at the point that the job is started. If these details are still not available (either that the PDA cannot connect to retrieve this or the data is unavailable from the ERP system), the PDA client will allow the user to continue loading the job, using only the product and quantity details.

Warning Warning: In this circumstance, where pallet information has not been received, the automatic update of the job when complete will identify on product and quantity information, not pallet information.

The process for a Collection of this type will be:

  • Confirm arrival to warehouse.
  • Scan/Enter/Select Pallets to be collected.
  • Once completed, confirm collection through depot signature. There will be an option to confirm whether the collection has been signed for unchecked.

The user will also be able to long-press against any container to show the details of any products contained within it.

Collection jobs from a Customer, Supplier or 3rd party warehouse (i.e. non-Proctors) will have the Product and Quantity created against them (i.e. no containers/pallets). The process will be:

  • Confirm arrival to customer/supplier/warehouse.
  • Scan/Enter/Select Products to be collected.
  • Confirm total quantity of the products.
  • Once completed, confirm collection through customer/supplier signature. There will be an option to confirm whether the collection has been signed for unchecked.

A Delivery of a non-Proctors job will have only product and quantity details. The process will be:

  • Confirm arrival to customer.
  • Scan/Enter/Select Products to be delivered.
  • Confirm total quantity of the products.
  • Once completed, confirm delivery through customer signature. There will be an option to confirm whether the collection has been signed for unchecked.

A Delivery of Proctors job should have container (pallet), product and quantities. If this is not the case, the PDA client will force a check of these details at the point that the job is started. If these details are still not available (either that the PDA cannot connect to retrieve this or the data is unavailable from the ERP system), the PDA client will allow the user to continue loading the job, using only the product and quantity details. The process will be:

  • Confirm arrival to customer/depot.
  • Scan/Enter/Select pallets being delivered
  • Once completed, confirm delivery through customer/depot signature.

Note Note: The system will be configurable to allow the PDA unit to display Job Code rather than Job ID on the Job Detail screen.

Two new POD document formats will be created:

  • A Delivery format, configured for use on Customer/Supplier jobs.
  • A Transfer format, configured for use on Inter-warehouse Transfers.

These formats will be defined against the Job group provided on the upload. In order for these to be created to match the current formats as closely as possible, the CALIDUS EPOD Job Import will be extended to add new fields, identified in detail later in the document.

CALIDUS EPOD will be set up to allow certain customers to be automatically emailed upon completion of jobs to and from them. When enabled, the format associated to the Job Group will be sent to the Customer's associated email address, if there is one. This will also be sent to an email address against the site, if there is one, ensuring that the ERP system is provided copies of the produced PDF files.

Note Note: Email notification of the POD or POC will be attempted if this feature is turned on and if the customer has an email address. If depots or suppliers do not require notification of collections or deliveries, it must be ensured that the customers created do not have an email address.

Confirmation or cancellation of any job will trigger an automatic update of the ERP system. This will be configurable but is expected to be through an email of the standard EPOD XML job update message. This update will be a scheduled process that will regularly check and attempt to update when possible. It will be scheduled to run as often as required by the client, up to once per minute.

Scope

Set-up

Pre-requisites

For automatic updates through email and automatic emailing of POD/POC documents, the EPOD server must be configured with access to the customer's Email server.

Menu Structure

Data

The two new fixed Job Groups will be set up for Proctors-controlled warehouses and 3rd-party. The former will be configured with the Stock Transfer POD format, whilst the latter will be configured with the other format.

Functional Description

The total changes required are:

  • Database
  • Job Import/Export
  • Customers Import
  • Auto-Export
  • Auto-Email
  • Admin
  • PDA Client
    • Delivery/Collection Without Products
  • New POD formats
  • PDF Production

Database Changes

EPOD_SITE

A new flag will be added for the Site Email Address for auto-email, called EPL_EMAIL

EPOD_JOB

New Fields:

  • EPL_SIGNED_UNCHECKED
  • EPL_SO_NUMBER - Our Order Number / Xfer Ref Number
  • EPL_ORDER_DATE
  • EPL_SALES_CONTACT - PPB Contact
  • EPL_XFER_FLAG - default to ""
  • EPL_EMAIL_FLAG - default to ""

Changes:

  • Indexing applied to EPL_JOB_CODE, EPL_JOB_TYPE. This will be a repeating index.
  • Indexing applied to EPL_XFER_FLAG. This will be a repeating index.
  • Indexing applied to EPL_EMAIL_FLAG. This will be a repeating index.

EPOD_CONTAINER

  • EPL_GROSS_WEIGHT - a floating point number.
  • EPL_COMMENT - a maximum length text field.

EPOD_PRODUCT

  • EPL_UNIT_TYPE
  • EPL_DESCRIPTION_LONG
  • EPL_PRODUCT_QTY_ORDERED

EPOD_JOB_GROUP

  • EPL_CONTAINER_ONLY - Controls container-only delivery
  • EPL_JOB_DISPLAY - controls whether Job ID or Job Code is displayed on the PDA.
  • EPL_SIGNED_UNCHECKED - controls whether the PDA displays a Signed Unchecked checkbox on signature capture. The options are Y (Enabled) or N (Disabled).

XF_CONFIG

EPOD_JOB will require a new field of two characters EPL_XFER_FLAG, this will be defaulted to "". EPOD_SITE and EPOD_JOB_GROUP will require a new field EPL_XF_CONFIG which will link to the EPL_XF_CONFIG_ID. If no export is required this will be blank.

A new table EPOD_XF_CONFIG will be created consisting of:

  • EPL_XF_CONFIG_ID: A ten character unique field
  • EPL_DESCRIPTION
  • EPL_XF_TYPE: A ten character field identifying the type of export (SOAP, File, Email)
  • EPL_XF_DESTINATION: A 255 character field identifying the destination of the export
  • EPL_XF_PARM: Additional parameters for example subject for email

A new table EPOD_XF_AUDIT_HEADER will be created consisting of:

  • EPL_HEADER_ID: A unique auto-increment Id
  • EPL_SITE_ID: Indexed
  • EPL_JOB_GROUP: Indexed
  • EPL_REQUEST_DATA: A maximum length free-text field
  • EPL_REQUEST_DATE
  • EPL_REQUEST_TIME
  • EPL_STATUS: Two character status field
  • EPL_STATUS_DESCRIPTION: Returned Status Description (A maximum length free-text field)

A new table EPOD_XF_AUDIT_DETAIL will be created consisting of:

  • EPL_HEADER_ID: Foreign key to EPOD_XF_AUDIT_HEADER
  • EPL_DETAIL_ID: A unique auto-increment Id
  • EPL_REQUEST_DATE
  • EPL_REQUEST_TIME
  • EPL_STATUS: Two character status field
  • EPL_STATUS_DESCRIPTION: Returned Status Description (A maximum length free-text field)

Note Note: This table is for future development and will not be used at this time.

JOB_ADDRESS

A new table EPOD_JOB_ADDRESS will be created consisting of:

  • EPL_SITE_ID: Foreign key to EPOD_SITE
  • EPL_JOB_ID: Foreign key to EPOD_JOB
  • EPL_ADDRESS_LINE_1
  • EPL_ADDRESS_LINE_2
  • EPL_ADDRESS_LINE_3
  • EPL_ADDRESS_LINE_4
  • EPL_POST_CODE
  • EPL_CONTACT
  • EPL_TELEPHONE
  • EPL_EMAIL
  • EPL_LAST_CHANGE_DATE
  • EPL_LAST_CHANGE_TIME

The table will be indexed on EPL_SITE_ID and EPL_JOB_ID.

XML Interface

Job Import

The system shall use the EPL_JOB_CODE field as a reference linking the delivery and collection, the index used shall be EPL_JOB_CODE and EPL_JOB_TYPE. The field EPL_JOB_ID will always be unique, this will be auto-generated by our system if not passed in.

The import can include an optional EPOD_CUSTOMER tag. This is used in preference to the CUSTOMER_NAME and CUSTOMER_CODE tags to update Customer address information. The supplied information against the job is then used exclusively for the Job Address, if different. So for Proctor both the standard adress section with the job message will be completed, mapping to the delivery address (EPOD_JOB_ADDRESS) and the EPOD_CUSTOMER tag will be populated updating the customer address.

The Import XML structure will have a attribute of ID. This will not be stored within the system, instead this will be stamped on the responding message from the web service. Within the responce the EPL_JOB_CODE field will be added to any job records returned in the import confirmation.

Proctors ERP system will provide the ePOD web service with the XML structure of the following example:

 <EPOD_IMPORT EPL_SITE_ID="TEST" EPL_USER_ID="ADM" EPL_USER_PASSWORD="TEST" ID="XXXXX">
   <EPOD_LOADS>
     <EPOD_LOAD>
       <EPL_SITE_ID>TEST</EPL_SITE_ID>
       <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
       <EPL_LOAD_START_PLANNED_DATE>20111129</EPL_LOAD_START_PLANNED_DATE>
       <EPL_LOAD_START_PLANNED_TIME>00000000</EPL_LOAD_START_PLANNED_TIME>
       <EPL_LOAD_END_PLANNED_DATE>20111129</EPL_LOAD_END_PLANNED_DATE>
       <EPL_LOAD_END_PLANNED_TIME>00000000</EPL__LOAD_END_PLANNED_TIME>
       <EPL_LOAD_DISTANCE_PLANNED>0</EPL_LOAD_DISTANCE_PLANNED>
       <EPL_USER_ID>MATT</EPL_USER_ID>
       <EPOD_JOBS>
         <EPOD_JOB>
           <EPL_SITE_ID>TEST</EPL_SITE_ID>
           <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
           <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
           <EPL_JOB_CODE>JOB_CODE_001</EPL_JOB_CODE>
           <EPL_JOB_TYPE>C</EPL_JOB_TYPE>
           <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
           <EPL_CUST_REF>039459</EPL_CUST_REF>
           <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
           <EPL_OFFICE_INSTRUCTION>Free Text Instructions</EPL_OFFICE_INSTRUCTION>
           <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
           <EPL_START_PLANNED_TIME>00000000</EPL_START_PLANNED_TIME>
           <EPL_END_PLANNED_DATE>20111129</EPL_END_PLANNED_DATE>
           <EPL_END_PLANNED_TIME>00000000</EPL_END_PLANNED_TIME>
           <EPL_DISTANCE_PLANNED>10</EPL_DISTANCE_PLANNED>
           <EPOD_CUSTOMER>
               <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
               <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
               <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
               <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
               <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
               <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
               <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
               <EPL_CONTACT>Dave Jones</EPL_CONTACT>
               <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
               <EPL_EMAIL>[email protected]</EPL_EMAIL>
           </EPOD_CUSTOMER>
           <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
           <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
           <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
           <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
           <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
           <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
           <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
           <EPL_CONTACT>Dave Jones</EPL_CONTACT>
           <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
           <EPL_EMAIL>[email protected]</EPL_EMAIL>
           <EPL_SO_NUMBER>01393</EPL_SO_NUMBER>
           <EPL_ORDER_DATE>20120302</EPL_ORDER_DATE>
           <EPL_SALES_CONTACT>MATT</EPL_SALES_CONTACT>
           <EPOD_CONTAINERS>
             <EPOD_CONTAINER>
               <EPL_SITE_ID>TEST</EPL_SITE_ID>
               <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
               <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
               <EPL_SEQUENCE>0001</EPL_SEQUENCE>
               <EPL_CONTAINER_PACKAGE_CODE>XX00</EPL_CONTAINER_PACKAGE_CODE>
               <EPL_CONTAINER_PACKAGE_DESC>Test Container</EPL_CONTAINER_PACKAGE_DESC>
               <EPL_GROSS_WEIGHT>100.14</EPL_GROSS_WEIGHT>
               <EPL_DESCRIPTION_LONG>1 PLT 800</EPL_DESCRIPTION_LONG>
               <EPOD_PRODUCTS>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF></EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF></EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
               </EPOD_PRODUCTS>              
             </EPOD_CONTAINER>
           </EPOD_CONTAINERS>
         </EPOD_JOB>
         <EPOD_JOB>
           <EPL_SITE_ID>TEST</EPL_SITE_ID>
           <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
           <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
           <EPL_JOB_CODE>JOB_CODE_001</EPL_JOB_CODE>
           <EPL_JOB_TYPE>D</EPL_JOB_TYPE>
           <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
           <EPL_CUST_REF>039459</EPL_CUST_REF>
           <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
           <EPL_OFFICE_INSTRUCTION>Free Text Instructions</EPL_OFFICE_INSTRUCTION>
           <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
           <EPL_START_PLANNED_TIME>00000000</EPL_START_PLANNED_TIME>
           <EPL_END_PLANNED_DATE>20111129</EPL_END_PLANNED_DATE>
           <EPL_END_PLANNED_TIME>00000000</EPL_END_PLANNED_TIME>
           <EPL_DISTANCE_PLANNED></EPL_DISTANCE_PLANNED>
           <EPOD_CUSTOMER>
               <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
               <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
               <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
               <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
               <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
               <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
               <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
               <EPL_CONTACT>Dave Jones</EPL_CONTACT>
               <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
               <EPL_EMAIL>[email protected]</EPL_EMAIL>
           </EPOD_CUSTOMER>
           <EPL_CUSTOMER_CODE>JohnSmithLtd</EPL_CUSTOMER_CODE>
           <EPL_CUSTOMER_NAME>John Smith</EPL_CUSTOMER_NAME>
           <EPL_ADDRESS_1>19 Sutton Drive</EPL_ADDRESS_1>
           <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
           <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
           <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
           <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
           <EPL_CONTACT>Dave Jones</EPL_CONTACT>
           <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
           <EPL_EMAIL>[email protected]</EPL_EMAIL>
           <EPL_SO_NUMBER>01393</EPL_SO_NUMBER>
           <EPL_ORDER_DATE>20120302</EPL_ORDER_DATE>
           <EPL_SALES_CONTACT>MATT</EPL_SALES_CONTACT>
           <EPOD_CONTAINERS>
             <EPOD_CONTAINER>
               <EPL_SITE_ID>TEST</EPL_SITE_ID>
               <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
               <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
               <EPL_SEQUENCE>0001</EPL_SEQUENCE>
               <EPL_CONTAINER_PACKAGE_CODE>XX00</EPL_CONTAINER_PACKAGE_CODE>
               <EPL_CONTAINER_PACKAGE_DESC>Test Container</EPL_CONTAINER_PACKAGE_DESC>
               <EPL_GROSS_WEIGHT>100.14</EPL_GROSS_WEIGHT>
               <EPL_DESCRIPTION_LONG>1 PLT 800</EPL_DESCRIPTION_LONG>
               <EPOD_PRODUCTS>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
               </EPOD_PRODUCTS>
             </EPOD_CONTAINER>
           </EPOD_CONTAINERS>
         </EPOD_JOB>
       </EPOD_JOBS>
     </EPOD_LOAD>
   </EPOD_LOADS>
 </EPOD_IMPORT>

The following XML would have the same outcome as above without the generation of container records:

 <EPOD_IMPORT EPL_SITE_ID="TEST" EPL_USER_ID="ADM" EPL_USER_PASSWORD="TEST" ID="XXXXX">
   <EPOD_LOADS>
     <EPOD_LOAD>
       <EPL_SITE_ID>TEST</EPL_SITE_ID>
       <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
       <EPL_LOAD_START_PLANNED_DATE>20111129</EPL_LOAD_START_PLANNED_DATE>
       <EPL_LOAD_START_PLANNED_TIME>00000000</EPL_LOAD_START_PLANNED_TIME>
       <EPL_LOAD_END_PLANNED_DATE>20111129</EPL_LOAD_END_PLANNED_DATE>
       <EPL_LOAD_END_PLANNED_TIME>00000000</EPL__LOAD_END_PLANNED_TIME>
       <EPL_LOAD_DISTANCE_PLANNED>0</EPL_LOAD_DISTANCE_PLANNED>
       <EPL_USER_ID>MATT</EPL_USER_ID>
       <EPOD_JOBS>
         <EPOD_JOB>
           <EPL_SITE_ID>TEST</EPL_SITE_ID>
           <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
           <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
           <EPL_JOB_CODE>JOB_CODE_001</EPL_JOB_CODE>
           <EPL_JOB_TYPE>C</EPL_JOB_TYPE>
           <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
           <EPL_CUST_REF>039459</EPL_CUST_REF>
           <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
           <EPL_OFFICE_INSTRUCTION>Free Text Instructions</EPL_OFFICE_INSTRUCTION>
           <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
           <EPL_START_PLANNED_TIME>00000000</EPL_START_PLANNED_TIME>
           <EPL_END_PLANNED_DATE>20111129</EPL_END_PLANNED_DATE>
           <EPL_END_PLANNED_TIME>00000000</EPL_END_PLANNED_TIME>
           <EPL_DISTANCE_PLANNED>10</EPL_DISTANCE_PLANNED>
           <EPOD_CUSTOMER>
               <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
               <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
               <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
               <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
               <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
               <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
               <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
               <EPL_CONTACT>Dave Jones</EPL_CONTACT>
               <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
               <EPL_EMAIL>[email protected]</EPL_EMAIL>
           </EPOD_CUSTOMER>
           <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
           <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
           <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
           <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
           <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
           <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
           <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
           <EPL_CONTACT>Dave Jones</EPL_CONTACT>
           <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
           <EPL_EMAIL>[email protected]</EPL_EMAIL>
           <EPL_SO_NUMBER>01393</EPL_SO_NUMBER>
           <EPL_ORDER_DATE>20120302</EPL_ORDER_DATE>
           <EPL_SALES_CONTACT>MATT</EPL_SALES_CONTACT>
               <EPOD_PRODUCTS>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
               </EPOD_PRODUCTS>
           </EPOD_JOB>
         <EPOD_JOB>
           <EPL_SITE_ID>TEST</EPL_SITE_ID>
           <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
           <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
           <EPL_JOB_CODE>JOB_CODE_001</EPL_JOB_CODE>
           <EPL_JOB_TYPE>C</EPL_JOB_TYPE>
           <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
           <EPL_CUST_REF>039459</EPL_CUST_REF>
           <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
           <EPL_OFFICE_INSTRUCTION>Free Text Instructions</EPL_OFFICE_INSTRUCTION>
           <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
           <EPL_START_PLANNED_TIME>00000000</EPL_START_PLANNED_TIME>
           <EPL_END_PLANNED_DATE>20111129</EPL_END_PLANNED_DATE>
           <EPL_END_PLANNED_TIME>00000000</EPL_END_PLANNED_TIME>
           <EPL_DISTANCE_PLANNED>10</EPL_DISTANCE_PLANNED>
           <EPOD_CUSTOMER>
               <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
               <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
               <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
               <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
               <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
               <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
               <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
               <EPL_CONTACT>Dave Jones</EPL_CONTACT>
               <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
               <EPL_EMAIL>[email protected]</EPL_EMAIL>
           </EPOD_CUSTOMER>
           <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
           <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
           <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
           <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
           <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
           <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
           <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
           <EPL_CONTACT>Dave Jones</EPL_CONTACT>
           <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
           <EPL_EMAIL>[email protected]</EPL_EMAIL>
           <EPL_SO_NUMBER>01393</EPL_SO_NUMBER>
           <EPL_ORDER_DATE>20120302</EPL_ORDER_DATE>
           <EPL_SALES_CONTACT>MATT</EPL_SALES_CONTACT>
               <EPOD_PRODUCTS>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
              </EPOD_PRODUCTS>
           </EPOD_JOB>
         </EPOD_JOBS>
       </EPOD_LOAD>
     </EPOD_LOADS>
   </EPOD_IMPORT>


Both the collection and delivery must share the same EPL_JOB_CODE reference.

  <EPOD_IMPORT EPL_SITE_ID="TEST" EPL_USER_ID="ADM" EPL_USER_PASSWORD="TEST">
         <EPOD_JOBS>
           <EPOD_JOB>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_LOAD_ID></EPL_LOAD_ID>
             <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
             <EPL_JOB_CODE>JC01</EPL_JOB_CODE>
             <EPL_JOB_TYPE>C</EPL_JOB_TYPE>
             <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
             <EPL_CUST_REF></EPL_CUST_REF>
             <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
             <EPL_OFFICE_INSTRUCTION>Free Text Instructions</EPL_OFFICE_INSTRUCTION>
             <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
             <EPL_START_PLANNED_TIME>00000000</EPL_START_PLANNED_TIME>
             <EPL_END_PLANNED_DATE>20111129</EPL_END_PLANNED_DATE>
             <EPL_END_PLANNED_TIME>00000000</EPL_END_PLANNED_TIME>
             <EPL_DISTANCE_PLANNED></EPL_DISTANCE_PLANNED>
             <EPOD_CUSTOMER>
               <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
               <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
               <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
               <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
               <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
               <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
               <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
               <EPL_CONTACT>Dave Jones</EPL_CONTACT>
               <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
               <EPL_EMAIL>[email protected]</EPL_EMAIL>
             </EPOD_CUSTOMER>
             <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
             <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
             <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
             <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
             <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
             <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
             <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
             <EPL_CONTACT>Dave Jones</EPL_CONTACT>
             <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
             <EPL_EMAIL>[email protected]</EPL_EMAIL>
             <EPL_SO_NUMBER>01393</EPL_SO_NUMBER>
             <EPL_ORDER_DATE>20120302</EPL_ORDER_DATE>
             <EPL_SALES_CONTACT>MATT</EPL_SALES_CONTACT>
               <EPOD_PRODUCTS>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
              </EPOD_PRODUCTS>
           </EPOD_JOB>
           <EPOD_JOB>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_LOAD_ID></EPL_LOAD_ID>
             <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
             <EPL_JOB_CODE>JC01</EPL_JOB_CODE>
             <EPL_JOB_TYPE>D</EPL_JOB_TYPE>
             <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
             <EPL_CUST_REF></EPL_CUST_REF>
             <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
             <EPL_OFFICE_INSTRUCTION>Free Text Instructions</EPL_OFFICE_INSTRUCTION>
             <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
             <EPL_START_PLANNED_TIME>00000000</EPL_START_PLANNED_TIME>
             <EPL_END_PLANNED_DATE>20111129</EPL_END_PLANNED_DATE>
             <EPL_END_PLANNED_TIME>00000000</EPL_END_PLANNED_TIME>
             <EPL_DISTANCE_PLANNED></EPL_DISTANCE_PLANNED>
             <EPOD_CUSTOMER>
               <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
               <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
               <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
               <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
               <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
               <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
               <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
               <EPL_CONTACT>Dave Jones</EPL_CONTACT>
               <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
               <EPL_EMAIL>[email protected]</EPL_EMAIL>
             </EPOD_CUSTOMER>
             <EPL_CUSTOMER_CODE>JohnSmithLtd</EPL_CUSTOMER_CODE>
             <EPL_CUSTOMER_NAME>John Smith</EPL_CUSTOMER_NAME>
             <EPL_ADDRESS_1>19 Sutton Drive</EPL_ADDRESS_1>
             <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
             <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
             <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
             <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
             <EPL_CONTACT>Dave Jones</EPL_CONTACT>
             <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
             <EPL_EMAIL>[email protected]</EPL_EMAIL>
             <EPL_SO_NUMBER>01393</EPL_SO_NUMBER>
             <EPL_ORDER_DATE>20120302</EPL_ORDER_DATE>
             <EPL_SALES_CONTACT>MATT</EPL_SALES_CONTACT>
               <EPOD_PRODUCTS>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
                 <EPOD_PRODUCT>
                   <EPL_SITE_ID>TEST</EPL_SITE_ID>
                   <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
                   <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
                   <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
                   <EPL_SEQUENCE>0001</EPL_SEQUENCE>
                   <EPL_CUST_REF>019294</EPL_CUST_REF>
                   <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
                   <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
                   <EPL_PRODUCT_QTY_ORDERED>1</EPL_PRODUCT_QTY_ORDERED>
                   <EPL_ITEM_TYPE></EPL_ITEM_TYPE>
                   <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
                   <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
                   <EPL_PRODUCT_WEIGHT></EPL_PRODUCT_WEIGHT>
                 </EPOD_PRODUCT>
              </EPOD_PRODUCTS>
           </EPOD_JOB>
         </EPOD_JOBS>
   </EPOD_IMPORT>

Job Update

To update the jobs with the Container details, Proctors' ERP must follow the same standard structure as the import. All Job, Container and Product tags that are populated and present will update the relevant details in the CALIDUS EPOD system.

Note Note:

  • If the EPL_JOB_ID is blank (as expected for the Proctors interface, as the Collection and Deliveries will be linked via EPL_JOB_CODE), the system will check to see whether a job exists for this EPL_JOB_CODE and EPL_JOB_TYPE. If so, the record will be updated. If not, a new record (with a generated EPL_JOB_ID) will be created.
  • If the EPL_JOB_ID is not blank, the system will check to see whether a job exists for this EPL_JOB_ID. If so, the record will be updated. If not, a new record will be created with this EPL_JOB_ID.
  • If the EPL_LOAD_ID tag is not present, the system will not update the Load ID of the Job.
  • If the EPL_LOAD_ID tag is present and is left blank, the the system will update the Load ID of the Job to blank (i.e. remove the Job from the Load).
  • If the EPOD_CONTAINERS tag is not populated, the system will not update any container information. If it is present, the system will delete any existing container information and replace it with the information in the containers tag.
  • If the EPOD_PRODUCTS tag is not populated, the system will not update any product information. If it is present, the system will delete any existing product information and replace it with the information in the product tag.
  • The import can include an optional EPOD_CUSTOMER tag. This is used in preference to the CUSTOMER_NAME and CUSTOMER_CODE tags to update Customer address information. The supplied information against the job is then used exclusively for the Job Address, if different.

Changes will be made to the Customer Address import to ensure that a customer and a job can have defined addresses, as follows:

  • If the EPOD_CUSTOMER tag exists in the message
    • Pass the contents of the tag to the Customer Import, to update the Customer details
    • Use the address information in the message to update the Job Address.
  • Else
    • If the Customer Code exists in the message
      • the system will check that the record exists within the database with that code.
      • If the record exists,
        • The system will check the address information provided on the job against the address information against the customer.
        • If this information is the different, the address information will be added to the Job, defaulting all non-present fields from the customer.
      • If not, the record will be created with that code.
    • If not, and the Customer Name exists
      • the system will check that the record exists within the database with that name.
      • If the record exists,
        • The system will check the address information provided on the job against the address information against the customer.
        • If this information is the different, the address information will be added to the Job, defaulting all non-present fields from the customer.
      • If not, the record will be created and a code generated for it.
    • If neither Code nor Name exist, the system will store the address information against the Job.

Job Export

At the point of job status changed the system will export the Jobs structure using the standard XML and send this to a predefined email address, for interfacing with the ERP system. This will be configured using the XF_CONFIG section of the system.

The required email functionality will need to be added to the existing export process.

The following XML is produced by the export, this example shows the export with multiple Jobs:

<?xml version="1.0"?>
<EPOD_EXPORT_JOB>
 <EPOD_JOBS>
   <EPOD_JOB>
     <EPL_SITE_ID>TEST</EPL_SITE_ID> 
     <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID> 
     <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID> 
     <EPL_JOB_TYPE>C</EPL_JOB_TYPE> 
     <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
     <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
     <EPL_JOB_SIGNATURE/> 
     <EPL_REASON_CODE/> 
     <EPL_STATUS>P</EPL_STATUS>
     <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE> 
     <EPL_PHOTO_ID/> 
     <EPL_ENG_SIGNATURE/> 
     <EPL_SEQUENCE/> 
     <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
     <EPL_START_PLANNED_TIME>0</EPL_START_PLANNED_TIME> 
     <EPL_END_PLANNED_DATE>0</EPL_END_PLANNED_DATE>
     <EPL_END_PLANNED_TIME>0</EPL_END_PLANNED_TIME> 
     <EPL_START_ACTUAL_DATE>0</EPL_START_ACTUAL_DATE> 
     <EPL_START_ACTUAL_TIME>0</EPL_START_ACTUAL_TIME> 
     <EPL_END_ACTUAL_DATE>0</EPL_END_ACTUAL_DATE> 
     <EPL_END_ACTUAL_TIME>0</EPL_END_ACTUAL_TIME>
     <EPL_DISTANCE_PLANNED>0</EPL_DISTANCE_PLANNED> 
     <EPL_DISTANCE_ACTUAL>0</EPL_DISTANCE_ACTUAL>
     <EPL_DRIVING_TIME>0</EPL_DRIVING_TIME>
     <EPL_SO_NUMBER></EPL_SO_NUMBER>
     <EPL_ORDER_DATE></EPL_ORDER_DATE>
     <EPL_SALES_CONTACT></EPL_SALES_CONTACT>
     <EPL_SIGNED_UNCHECKED>N</EPL_SIGNED_UNCHECKED>
     <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME> 
     <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1> 
     <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2> 
     <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3> 
     <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4> 
     <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE> 
     <EPL_CONTACT>Dave Jones</EPL_CONTACT> 
     <EPL_TELEPHONE>08458795846</EPL_TELEPHONE> 
     <EPL_EMAIL></EPL_EMAIL>
     <EPL_INVOICED/> 
     <EPL_CUST_SIGNATORY/> 
     <EPL_JOB_CODE/> 
     <EPL_CUST_REF>WAREHOUSE1_ORD0011</EPL_CUST_REF> 
     <EPL_OFFICE_INSTRUCTION/> 
     <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE> 
     <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME> 
     <EPOD_CONTAINERS>
       <EPOD_CONTAINER>
         <EPL_SITE_ID>TEST</EPL_SITE_ID>
         <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID> 
         <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID> 
         <EPL_SEQUENCE>0001</EPL_SEQUENCE>
         <EPL_CONTAINER_PACKAGE_CODE>XX00</EPL_CONTAINER_PACKAGE_CODE>
         <EPL_CONTAINER_PACKAGE_DESC>Test Container</EPL_CONTAINER_PACKAGE_DESC>
         <EPL_GROSS_WEIGHT>100.14</EPL_GROSS_WEIGHT>
         <EPL_COMMENT>1 PLT 800</EPL_COMMENT>
         <EPL_REASON_CODE/> 
         <EPL_STATUS>P</EPL_STATUS>
         <EPL_PHOTO_ID/> 
         <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
         <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
         <EPOD_PRODUCTS>
           <EPOD_PRODUCT>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
             <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
             <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
             <EPL_SEQUENCE>0001</EPL_SEQUENCE>
             <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
             <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
             <EPL_PRODUCT_QTY_ACTUAL>0</EPL_PRODUCT_QTY_ACTUAL>
             <EPL_PRODUCT_QTY_CASE>0</EPL_PRODUCT_QTY_CASE>
             <EPL_REASON_CODE/>
             <EPL_STATUS/>
             <EPL_PRODUCT_WEIGHT>0</EPL_PRODUCT_WEIGHT>
             <EPL_CUST_REF/>
             <EPL_ITEM_TYPE/>
             <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
             <EPL_DESCRITPION_LONG></EPL_DESCRITPION_LONG>
             <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
             <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
           </EPOD_PRODUCT>
           <EPOD_PRODUCT>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
             <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
             <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
             <EPL_SEQUENCE>0001</EPL_SEQUENCE>
             <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
             <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
             <EPL_PRODUCT_QTY_ACTUAL>0</EPL_PRODUCT_QTY_ACTUAL>
             <EPL_PRODUCT_QTY_CASE>0</EPL_PRODUCT_QTY_CASE>
             <EPL_REASON_CODE/>
             <EPL_STATUS/>
             <EPL_PRODUCT_WEIGHT>0</EPL_PRODUCT_WEIGHT>
             <EPL_CUST_REF/>
             <EPL_ITEM_TYPE/>
             <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
             <EPL_DESCRITPION_LONG></EPL_DESCRITPION_LONG>
             <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
             <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
           </EPOD_PRODUCT>
         </EPOD_PRODUCTS>
       </EPOD_CONTAINER>
     </EPOD_CONTAINERS>
     <EPOD_SERVICES/>
   </EPOD_JOB>
   <EPOD_JOB>
     <EPL_SITE_ID>TEST</EPL_SITE_ID>
     <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
     <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
     <EPL_JOB_TYPE>D</EPL_JOB_TYPE>
     <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
     <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
     <EPL_JOB_SIGNATURE/> <EPL_REASON_CODE/>
     <EPL_STATUS>P</EPL_STATUS>
     <EPL_CUSTOMER_CODE>JohnSmithLtd</EPL_CUSTOMER_CODE>
     <EPL_PHOTO_ID/> 
     <EPL_ENG_SIGNATURE/>
     <EPL_SEQUENCE/>
     <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
     <EPL_START_PLANNED_TIME>0</EPL_START_PLANNED_TIME>
     <EPL_END_PLANNED_DATE>0</EPL_END_PLANNED_DATE>
     <EPL_END_PLANNED_TIME>0</EPL_END_PLANNED_TIME>
     <EPL_START_ACTUAL_DATE>0</EPL_START_ACTUAL_DATE>
     <EPL_START_ACTUAL_TIME>0</EPL_START_ACTUAL_TIME>
     <EPL_END_ACTUAL_DATE>0</EPL_END_ACTUAL_DATE>
     <EPL_END_ACTUAL_TIME>0</EPL_END_ACTUAL_TIME>
     <EPL_DISTANCE_PLANNED>0</EPL_DISTANCE_PLANNED>
     <EPL_DISTANCE_ACTUAL>0</EPL_DISTANCE_ACTUAL>
     <EPL_DRIVING_TIME>0</EPL_DRIVING_TIME>
     <EPL_SO_NUMBER></EPL_SO_NUMBER>
     <EPL_ORDER_DATE></EPL_ORDER_DATE>
     <EPL_SALES_CONTACT></EPL_SALES_CONTACT>
     <EPL_SIGNED_UNCHECKED>N</EPL_SIGNED_UNCHECKED>
     <EPL_CUSTOMER_NAME>John Smith</EPL_CUSTOMER_NAME>
     <EPL_ADDRESS_1>19 Sutton Drive</EPL_ADDRESS_1>
     <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
     <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
     <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
     <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
     <EPL_CONTACT>Dave Jones</EPL_CONTACT>
     <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
     <EPL_EMAIL>[email protected]</EPL_EMAIL>
     <EPL_INVOICED/>
     <EPL_CUST_SIGNATORY/>
     <EPL_JOB_CODE/>
     <EPL_CUST_REF>WAREHOUSE1_ORD0011</EPL_CUST_REF>
     <EPL_OFFICE_INSTRUCTION/>
     <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
     <EPL_LAST_CHANGED_TIME>11575902</EPL_LAST_CHANGED_TIME>
     <EPOD_CONTAINERS>
       <EPOD_CONTAINER>
         <EPL_SITE_ID>TEST</EPL_SITE_ID>
         <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
         <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
         <EPL_SEQUENCE>0001</EPL_SEQUENCE>
         <EPL_CONTAINER_PACKAGE_CODE>XX00</EPL_CONTAINER_PACKAGE_CODE>
         <EPL_CONTAINER_PACKAGE_DESC>Test Container</EPL_CONTAINER_PACKAGE_DESC>     
         <EPL_GROSS_WEIGHT>100.14</EPL_GROSS_WEIGHT>
         <EPL_COMMENT>1 PLT 800</EPL_COMMENT>
         <EPL_REASON_CODE/>
         <EPL_STATUS>P</EPL_STATUS>
         <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
         <EPL_LAST_CHANGED_TIME>11575902</EPL_LAST_CHANGED_TIME>
         <EPOD_PRODUCTS>
           <EPOD_PRODUCT>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
             <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
             <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
             <EPL_SEQUENCE>0001</EPL_SEQUENCE>
             <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
             <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
             <EPL_PRODUCT_QTY_ACTUAL>0</EPL_PRODUCT_QTY_ACTUAL>
             <EPL_PRODUCT_QTY_CASE>0</EPL_PRODUCT_QTY_CASE>
             <EPL_REASON_CODE/>
             <EPL_STATUS>P</EPL_STATUS>
             <EPL_PRODUCT_WEIGHT>0</EPL_PRODUCT_WEIGHT>
             <EPL_CUST_REF/>
             <EPL_ITEM_TYPE/>
             <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
             <EPL_DESCRITPION_LONG></EPL_DESCRITPION_LONG>
             <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
             <EPL_LAST_CHANGED_TIME>11575902</EPL_LAST_CHANGED_TIME>
           </EPOD_PRODUCT>
           <EPOD_PRODUCT>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_JOB_ID>JOB_001_D</EPL_JOB_ID>
             <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
             <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
             <EPL_SEQUENCE>0001</EPL_SEQUENCE>
             <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
             <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
             <EPL_PRODUCT_QTY_ACTUAL>0</EPL_PRODUCT_QTY_ACTUAL>
             <EPL_PRODUCT_QTY_CASE>0</EPL_PRODUCT_QTY_CASE>
             <EPL_REASON_CODE/>
             <EPL_STATUS>P</EPL_STATUS>
             <EPL_PRODUCT_WEIGHT>0</EPL_PRODUCT_WEIGHT>
             <EPL_CUST_REF/>
             <EPL_ITEM_TYPE/>
             <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
             <EPL_DESCRITPION_LONG></EPL_DESCRITPION_LONG>
             <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
             <EPL_LAST_CHANGED_TIME>11575903</EPL_LAST_CHANGED_TIME>
           </EPOD_PRODUCT>
         </EPOD_PRODUCTS>
       </EPOD_CONTAINER>
     </EPOD_CONTAINERS> 
     <EPOD_SERVICES/>
   </EPOD_JOB>
 </EPOD_JOBS>
</EPOD_EXPORT_JOB>

The following XML is produced by the export, this example shows the export with a single Job:

<?xml version="1.0"?>
<EPOD_EXPORT_JOB>
 <EPOD_JOBS>
   <EPOD_JOB>
     <EPL_SITE_ID>TEST</EPL_SITE_ID>
     <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
     <EPL_LOAD_ID>TIPIMPORT</EPL_LOAD_ID>
     <EPL_JOB_TYPE>C</EPL_JOB_TYPE>
     <EPL_JOB_GROUP>JG01</EPL_JOB_GROUP>
     <EPL_JOB_INSTRUCTION>Free Text Instructions</EPL_JOB_INSTRUCTION>
     <EPL_JOB_SIGNATURE/>
     <EPL_REASON_CODE/>
     <EPL_STATUS>P</EPL_STATUS>
     <EPL_CUSTOMER_CODE>WAREHOUSE1</EPL_CUSTOMER_CODE>
     <EPL_PHOTO_ID/>
     <EPL_ENG_SIGNATURE/>
     <EPL_SEQUENCE/>
     <EPL_START_PLANNED_DATE>20111129</EPL_START_PLANNED_DATE>
     <EPL_START_PLANNED_TIME>0</EPL_START_PLANNED_TIME>
     <EPL_END_PLANNED_DATE>0</EPL_END_PLANNED_DATE>
     <EPL_END_PLANNED_TIME>0</EPL_END_PLANNED_TIME>
     <EPL_START_ACTUAL_DATE>0</EPL_START_ACTUAL_DATE>
     <EPL_START_ACTUAL_TIME>0</EPL_START_ACTUAL_TIME>
     <EPL_END_ACTUAL_DATE>0</EPL_END_ACTUAL_DATE>
     <EPL_END_ACTUAL_TIME>0</EPL_END_ACTUAL_TIME>
     <EPL_DISTANCE_PLANNED>0</EPL_DISTANCE_PLANNED>
     <EPL_DISTANCE_ACTUAL>0</EPL_DISTANCE_ACTUAL>
     <EPL_DRIVING_TIME>0</EPL_DRIVING_TIME>
     <EPL_SO_NUMBER></EPL_SO_NUMBER>
     <EPL_ORDER_DATE></EPL_ORDER_DATE>
     <EPL_SALES_CONTACT></EPL_SALES_CONTACT>
     <EPL_SIGNED_UNCHECKED>N</EPL_SIGNED_UNCHECKED>
     <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
     <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
     <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
     <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
     <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
     <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
     <EPL_CONTACT>Dave Jones</EPL_CONTACT>
     <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
     <EPL_EMAIL>[email protected]</EPL_EMAIL>
     <EPL_INVOICED/>
     <EPL_CUST_SIGNATORY/>
     <EPL_JOB_CODE/>
     <EPL_CUST_REF>WAREHOUSE1_ORD0011</EPL_CUST_REF>
     <EPL_OFFICE_INSTRUCTION/>
     <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
     <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
     <EPOD_CONTAINERS>
       <EPOD_CONTAINER>
         <EPL_SITE_ID>TEST</EPL_SITE_ID>
         <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID> 
         <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
         <EPL_SEQUENCE>0001</EPL_SEQUENCE>
         <EPL_CONTAINER_PACKAGE_CODE>XX00</EPL_CONTAINER_PACKAGE_CODE>
         <EPL_CONTAINER_PACKAGE_DESC>Test Container</EPL_CONTAINER_PACKAGE_DESC>
         <EPL_GROSS_WEIGHT>100.14</EPL_GROSS_WEIGHT>
         <EPL_COMMENT>1 PLT 800</EPL_COMMENT>
         <EPL_REASON_CODE/> 
         <EPL_STATUS>P</EPL_STATUS>
         <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE> 
         <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
         <EPOD_PRODUCTS>
           <EPOD_PRODUCT>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
             <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
             <EPL_PRODUCT_CODE>TESTPROD1</EPL_PRODUCT_CODE>
             <EPL_SEQUENCE>0001</EPL_SEQUENCE>
             <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
             <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
             <EPL_PRODUCT_QTY_ACTUAL>0</EPL_PRODUCT_QTY_ACTUAL>
             <EPL_PRODUCT_QTY_CASE>0</EPL_PRODUCT_QTY_CASE>
             <EPL_REASON_CODE/>
             <EPL_STATUS>P</EPL_STATUS>
             <EPL_PRODUCT_WEIGHT>0</EPL_PRODUCT_WEIGHT>
             <EPL_CUST_REF/>
             <EPL_ITEM_TYPE/>
             <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
             <EPL_DESCRITPION_LONG></EPL_DESCRITPION_LONG>
             <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
             <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
           </EPOD_PRODUCT>
           <EPOD_PRODUCT>
             <EPL_SITE_ID>TEST</EPL_SITE_ID>
             <EPL_JOB_ID>JOB_001_C</EPL_JOB_ID>
             <EPL_CONTAINER_ID>0000000000001</EPL_CONTAINER_ID>
             <EPL_PRODUCT_CODE>TESTPROD2</EPL_PRODUCT_CODE>
             <EPL_SEQUENCE>0001</EPL_SEQUENCE>
             <EPL_DESCRIPTION>TEST ITEM</EPL_DESCRIPTION>
             <EPL_PRODUCT_QTY_PLANNED>1</EPL_PRODUCT_QTY_PLANNED>
             <EPL_PRODUCT_QTY_ACTUAL>0</EPL_PRODUCT_QTY_ACTUAL>
             <EPL_PRODUCT_QTY_CASE>0</EPL_PRODUCT_QTY_CASE>
             <EPL_REASON_CODE/>
             <EPL_STATUS>P</EPL_STATUS>
             <EPL_PRODUCT_WEIGHT>0</EPL_PRODUCT_WEIGHT>
             <EPL_CUST_REF/>
             <EPL_ITEM_TYPE/>
             <EPL_UNIT_TYPE></EPL_UNIT_TYPE>
             <EPL_DESCRIPTION_LONG></EPL_DESCRIPTION_LONG>
             <EPL_LAST_CHANGED_DATE>20120118</EPL_LAST_CHANGED_DATE>
             <EPL_LAST_CHANGED_TIME>11575901</EPL_LAST_CHANGED_TIME>
           </EPOD_PRODUCT>
         </EPOD_PRODUCTS>
       </EPOD_CONTAINER>
     </EPOD_CONTAINERS>
     <EPOD_SERVICES/>
   </EPOD_JOB>
 </EPOD_JOBS>
</EPOD_EXPORT_JOB>

Auto-Export Process

Whenever a job is updated to Cancelled or Complete (i.e. when the jobs are updated by the PDA client, or when jobs are updated via the Admin system), after committing the changes to the database, the Auto Export flag will be checked against the Job Group and Site. If this flag is present the EPL_JOB record will have the EPL_XFER_FLAG set to N, to indicate that the record requires interfacing but has not yet been sent.

Note Note: These changes will be committed into the Data Access Layer, so that the same code will be called whether running this through the Admin or PDA server functions.

A timed process will be running to send any Jobs with the Xfer flag of N. The process will:

  • Retrieve all jobs on the EPL_JOBS table with the Xfer flag set to N, sorted by Site and Job Group.
  • For each record found in distinct Site and Job Group:
    • Load the details of this Job ID,
    • Generate the XML export as per the standard for currently existing exports
    • Once all jobs for the Site/Job Group are exported:
      • Get the configuration of the Job Group. If the configuration for the Job Group does not exist, get the configuration for the Site.
      • Attempt to transfer this to the destination specified in the configuration.

If this process if successful then the Xfer flag on the Job record will be set to Y, and a success audit record written. If this fails the flag on the job will be set to N and a record will be written to a audit table with details of the failure. If the file is send successfully but a message is received from the destination advising of this problem then an audit record will be written and the flag will be set to N.

This timed process will be scheduled on the system. The frequency of the process will be defined by the schedule and can be no more frequent that one per minute. If the process is already running, the process will wait for the next cycle before starting.

The status of the audit records based on the result are:

  • S for success;
  • SF for success send but error at the receivers, and;
  • F for failure to send.

These records will be cleared down once they are older than 7 days.

Customer Import

Proctors ERP system will provide the ePOD web service with the XML structure of the following example:

 <EPOD_CUSTOMERS>
   <EPOD_CUSTOMER>
     <EPL_SITE_ID>Dave Jones</EPL_SITE_ID>
     <EPL_CUSTOMER_CODE>CUST01</EPL_CUSTOMER_CODE>
     <EPL_CUSTOMER_NAME>Dave Jones</EPL_CUSTOMER_NAME>
     <EPL_ADDRESS_1>16 Sutton Drive</EPL_ADDRESS_1>
     <EPL_ADDRESS_2>Bebington</EPL_ADDRESS_2>
     <EPL_ADDRESS_3>Wirral</EPL_ADDRESS_3>
     <EPL_ADDRESS_4>Merseyside</EPL_ADDRESS_4>
     <EPL_POSTCODE>CH62 9GR</EPL_POSTCODE>
     <EPL_CONTACT>Dave Jones</EPL_CONTACT>
     <EPL_TELEPHONE>08458795846</EPL_TELEPHONE>
     <EPL_EMAIL>[email protected]</EPL_EMAIL>
   </EPOD_CUSTOMER>
 </EPOD_CUSTOMERS>

Similarly to the Job import:

  • If the Customer Code exists in the message
    • the system will check that the record exists within the database with that code.
      • If the record exists, it will be updated with the populated values in the message.
      • If not, the record will be created.
  • If not, and the Customer Name exists
    • the system will check that the record exists within the database with that name.
      • If the record exists, it will be updated with the populated values in the message.
      • If not, the record will be created and a code generated for it.
  • If neither exist, the system will not import the customer.

Admin System

Within Phase one the Admin interface will be used to plan Jobs onto loads, all required functionality has been implemented. Within phase two this will not be required as Proctors will interface pre-planned loads. The following changes will need to be made to the admin system to reflect the database changes:

Jobs Screen

  • EPL_SIGNED_UNCHECKED - Visible on the POD only, this field is not searchable
  • EPL_SO_NUMBER - Our Order Number / Xfer Ref Number - Entry only
  • EPL_ORDER_DATE - Entry only
  • EPL_SALES_CONTACT - PPB Contact - Entry only
  • EPOD_JOB_ADDRESS.

In order to accommodate the new fields and allow them to be displayed and entered, the Job screen must be extensively modified.

The Entry panel will be modified to allow entry of the following fields, in two adjacent panels, as below:

[Edit buttons]

Job Type

Job Code

Job Group

Cust Ref

Dnote No

Planned Date/Time

Order Date/Time

Sales Contact

Job/Office Instructions

Customer Code

Use Customer Address as Delivery Address?

New Customer Code

New Customer Name

Address 1

Address 2

Address 3

Address 4

Postcode

Contact

Email

Telephone

[Save] [Cancel]

All fields in Bold are new fields. All fields in Italics are new functionality.

The Edit buttons will not be shown in entry mode.

The left side of the screen will show all the Job-related fields for entry, including the new fields.

The right side of the screen will be the area to identify the customer and address.

The Instructions entry will be through a tabbed entry box. The first tab will contain the Job Instructions and will be displayed. The second tab can be clicked on to edit the Office Instructions.

The Customer drop-down will allow you to select:

  • No Customer
    • All entry fields (bar Customer Code and Name) below will be enabled.
    • The check-box will be disabled.
  • Create a New Customer:
    • All entry fields below will be enabled.
    • Customer Code and Name must be entered
    • The check-box will be disabled.
  • Select an Existing Customer from the list.
    • All fields below will be populated from the Customer's address information.
    • The check-box will be enabled, indicating that you are using the Customer's address as the delivery address.
    • Only the check-box will be an enabled field - all others will be disabled.

Un-checking the check box will enable all the entry fields, which will remain populated with the default values from the customer address.

Clicking Save will create the Job. If a new customer is being created, the address entered will be assigned to the customer. If a delivery address has been chosen that is different to the selected existing customer (or no customer has been selected), the address will be saved to the Job address.

The following columns will be removed from the grid:

  • Site ID
  • Job Instructions
  • Office Instructions
  • Reason Code
  • Configure
  • Details
  • Report

The Status field will be modified to show the Reason Code and Description entered for a cancelled job in a tool-tip (activated by hovering the mouse pointer over the Status).

The grid will be modified to not allow direct entry. Instead, the grid will use the Entry panel. This will be activated by clicking once on the line, which will display the Entry panel, populated with the details of the line selected.

The functionality will differ to the Entry functionality, in that the Action buttons will be populated as follows:

  • Details - Display any Container, Product or Service details associated to the job
  • Report - Display the POD/POC/Service report (only enabled if the Job is at status Complete
  • Cancel Job - Move a Job to Cancelled status.
  • Image - Display any Image associated to the Job.

Containers Screen

  • EPL_GROSS_WEIGHT - Visible against the container record and available for entry.
  • EPL_COMMENT - Visible against the container record and available for entry.

Job Products Screen

  • EPL_UNIT_TYPE - Visible against the product record and available for entry
  • EPL_DESCRIPTION_LONG - Visible against the product record and available for entry
  • EPL_PRODUCT_QTY_ORDERED - Visible against the product record and available for entry

Site Maintenance Screen

  • EPL_EMAIL - Visible and editable.

Job Group Maintenance Screen

  • EPL_CONTAINER_ONLY - Controls container only delivery - Visible and Editable
  • EPL_JOB_DISPLAY - controls which element is displayed on the PDA device on the Job Detail screen as the Job Reference. The two options are Job Code or Job ID, defaulting to the latter.
  • EPL_SIGNED_UNCHECKED - controls whether the PDA displays a Signed Unchecked checkbox on signature capture. The options are Y (Enabled) or N (Disabled).


Transfer Configuration Screen

A new audit and maintenance screen will be required.

This will allow users to search the EPOD_XF_AUDIT_HEADER table by EPL_REQUEST_DATE, EPL_REQUEST_TIME, EPL_STATUS, EPL_JOB_GROUP. With a later implementation allowing to search for EPL_JOB_ID, or EPL_LOAD_ID.

This screen will display the header records details, EPL_JOB_GROUP, EPL_REQUEST_DATE, EPL_REQUEST_TIME, EPL_STATUS, EPL_STATUS_DESCRIPTION, and EPL_REQUEST_DATA.

Note Note: This would be best displayed within a popup of some kind. For future implementation, the editing and resending of this data may be needed. Doing so a link would need to be made to each job.

PDA Server

The message sent to the PDA client from the server will be modified so that the Job Address (if present) will be used in preference to the Customer address. The Container Weight field (EPL_GROSS_WEIGHT) must also be passed.

The Standing Data Configuration must be changed to pass the new control flags to the device (e.g. EPL_JOB_DISPLAY).

PDA Client

The DB changes will need to be reflected on the PDA.

The PDA will need to be implemented with the functionality to transfer collection details to the delivery job, based on matching Job Codes. This includes altering the planned delivery quantity to the actual collection quantity specified in the collection.

The PDA will need to display Job Code rather than Job ID on the Job Detail screen, depending on the value of the new configuration flag.

The PDA will need to select the appropriate delivery or collection process based on the jobs attributes:

  • Collections
    • Proctors-Controlled Warehouse - Collection of Containers without Products
    • Non-Proctors Location - Collection of Products without Containers
  • Deliveries
    • Proctors Collection - Delivery of Containers without Products.
    • Non-Proctors Collection - Delivery of Products without Containers

When starting a collection or delivery from a Proctors-Controlled Warehouse a update check must be forced (this is currently handled under the standard process) if no container records are received, then an alert is given to the user advising that the data may not be up to date.

Standard Collection

The user will be able to long-press any container in the grid. This will provide a popup menu, allowing the user to see the details of the selected container. The PDA will display a screen displaying:

  • ID
  • Package Code and Description
  • Weight

Collection of Containers without Products

This will check a parameter on the Job Group - if Container-only Collection is enabled and there are no loose products, the collection will continue as Container only, otherwise the standard (Products Without Containers) collection process will be used.

The user is presented with a list of Containers for collection. The user selects a container either through text entry or scanning. Users have the ability to short-deliver by container only and use the exception process to document any non-delivered containers. When all Containers are accounted for, the user is prompted to complete the job, with a customer signature.

Long-pressing on a container will display a pop-up menu with a Products option shown. If this is clicked, the PDA client will display a list of all products against the container. Note Note: This option should be available only if this is unit is configured for containers without products.

Collection of Products without Containers

The user is presented with a list of products for collection. The user confirms collection of each product as in the standard approach. When all Products are accounted for the user is prompted to complete the job, with a customer signature.

Delivery of Products without Containers

The process is the same as Collection of Products without Containers.

Delivery of Containers without Products

The process is the same as Collection of Containers without Products.

Photos

Photos will be captured using the standard exception process. User's must be aware that quality of the images will affect GPRS usage, higher quality equals longer more date to transfer. This can only be controlled on the PDA itself and must be set in the PDA's camera settings.

Signature Capture

The Signature Capture screen will be modified to allow the entry of a Signed Unchecked check box, if the Job Group has been configured for this. The box will appear unchecked. The user will have the ability to check the box to signify that the client signing for the collection or delivery of the goods has signed for them without checking.

The Job Update back to the PDA Server will be modified to include the new flag EPL_SIGNED_UNCHECKED, which will be saved to the field on EPOD_JOB.

New POD formats

New POD formats will be created for the operation.

The POD or POC format produced will be dependant on the Job Group associated to the Job.

All images captured relating to the Job will be displayed on a second page of the POD/POC document, with the associated detail information (Job ID, Container ID, Product Code, Image description). Again image quality is dependant on device settings, which affects the image size.

Fields on the Delivery Note document will be sourced from the following database fields:

  • Delivery Note: EPL_JOB_CODE
  • Customer Address: Address information from the Job's Customer
  • Delivery Address: Address information from the Job's Address (if present) or the Customer's.
  • Customer Tel No: From the Job's Address (if present) or the Customer.
  • Cust No/Contact: From the Job's Address (if present) or the Customer.
  • Our Order No: EPL_SO_NUMBER (New field)
  • Order Date: EPL_ORDER_DATE (New Field)
  • Customer Order No: EPL_CUST_REF
  • PPB Contact: EPL_SALES_CONTACT (New Field)
  • Product Reference: EPL_PRODUCT_CODE
  • Product Description: EPL_DESCRIPTION and EPL_DESCRIPTION_LONG
  • Due Date: EPL_START_PLANNED_DATE/TIME Note Note: This is the same for all lines.
  • Unit: EPL_UNIT_TYPE (New Field)
  • Quantity: EPL_PRODUCT_QTY_ORDERED (New Field)
  • Quantity Despatched: EPL_PRODUCT_QTY_PLANNED
  • Quantity Delivered: EPL_PRODUCT_QTY_ACTUAL
  • No Of Parcels: EPL_COMMENT of EPOD_CONTAINER (New field)
  • Pallet ID: EPL_CONTAINER_ID
  • Special Instructions: EPL_JOB_INSTRUCTION
  • Total Weight: See below
  • Delivered By: PDA User Name
  • Print Name: EPL_CUST_SIGNATORY (entered by PDA user)
  • Date: Job Completion Date
  • Signed Unchecked: EPL_SIGNED_UNCHECKED (New Field)

Total Weight will be calculated at the container level. The weight must be passed through as part of the interfaced container record. If no containers have been interfaced, this field will be omitted.

Warning Warning: The following elements have been excluded from the design:

  • Barcode
  • Vat No
  • Picked
  • Converted

Fields on the Transfer Note document will be sourced from the following database fields (where different from the Delivery Note):

  • Stock Transfer Note: EPL_JOB_CODE
  • Transfer Stock From: From the Collection's Customer information
  • Transfer Stock To: From the Delivery's Customer information
  • Xfer Ref No: EPL_SO_NUMBER (New Field)
  • Input By: EPL_SALES_CONTACT (New Field)
  • Part Number: EPL_PRODUCT_ID
  • Product Description: EPL_DESCRIPTION

Warning Warning: The following elements have been excluded from the design:

  • Location
  • Location Qty

Note Note: The existing generic POD/POC format must be modified to check for the Job address before using the Customer's address.

Note Note: There could be many pallets and stock codes on a collection or delivery. This will run into multiple pages regardless of which note is produced. In the case where multiple pages of information are displayed, the header, up to and including the Customer Tel No table, will be shown on every page, whereas the Signature footer table will be shown only on the first page, being omitted from all subsequent pages.


PDF Production

A new rule will be added at a Site level to control whether emails to customers will be HTML-Embedded or PDF attachment style.

The system will check this rule when:

  1. The "Email To" button is pressed on the "View POD" page
  2. auto-emailed documents are being produced.

If this rule is not enabled, the system will send emails as now (embedded HTML emails).

If this rule is enabled, the system will:

  • Export and save the page to a temporary directory, with all images rendered.
  • Run the saved page through a conversion routine to convert the HTML to a PDF page (saved in the same directory).
  • Attach this generated PDF to the email and send
  • Delete the temporary folder.

The conversion routine will use the WkHtmlToPDF program with default parameters - this must be installed on the server.

Auto-Email

The Auto-email code will be moved into the new batch Auto-Export Process.

The update of a job to complete or cancelled will result in the new field EPL_EMAIL_FLAG being set to "N". The batch process will retrieve all job records where this flag is "N" and the Job Group or Site associated to the job requires auto-email.

The process will iterate through these records and retrieve the email addresses that the job should be emailed to from the Site, Job and Customer records.

If no emails have been specified, EPL_EMAIL_FLAG will set to "X".

If an email address has been specified, the email will be built as per the current process and sent to the defined email address. EPL_EMAIL_FLAG will set to "Y".


Appendix A: POD Formats

Delivery Note.jpg Stock Transfer Note.jpg


Appendix B: Document References

B.1 References

Ref NoDocument Title & IDVersionDate
1   


B.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.


B.3 Authorised By


Matt Turner

OBS Representative
_____________________________

Stephen McCartney

OBS Representative
_____________________________