EPOD-TTM Interface

From EPOD
Revision as of 10:43, 19 October 2017 by Anw (talk | contribs) (v0.1 - based on version 3.0.1.4)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This document is intended to show every message sent from CALIDUS ePOD to CALIDUS Portal for the Track and Trace module (TTM) to function as expected. The details of all messages, their contents and how they are populated and produced from CALIDUS ePOD is shown in this document.


Scope

This document and all message formats conform to the CALIDUS Portal LOTS-tripOrder XSD version 1.17, as seen in the references of this document. If this is changed, or if CALIDUS Portal functionality changes based on tags that already exist, both this document and the CALIDUS ePOD export processes will require modification.

All functionality described here is gathered from version 3.0.1.4 of the CALIDUS ePOD Server module, the current latest version, including the changes to this interface specified under 328407, referenced in Appendix A.


Details

General Message Format

Each message type sent is encapsulated in standard envelope, as described below:

   <OBS_XML>
       <EVENT>
           <EVENT_HEADER>
               <EVENT_PROCESSED>N</EVENT_PROCESSED>
               <EVENT_SOURCE_TYPE>EPOD</EVENT_SOURCE_TYPE>
               <EVENT_SOURCE_NAME></EVENT_SOURCE_NAME>
               <EVENT_DATE></EVENT_DATE>
               <EVENT_TYPE></EVENT_TYPE>
               <EVENT_ACTION></EVENT_ACTION>
               <EVENT_TIMEZONE></EVENT_TIMEZONE>
           </EVENT_HEADER>
           <EVENT_DETAIL>
               ...
           </EVENT_DETAIL>
       </EVENT>
   </OBS_XML>


Variable data:

Tag Notes
EVENT_SOURCE_NAME EPL_SITE_ID
EVENT_DATE Dependent on message type - see notes below
EVENT_TIME Dependent on message type - see notes below
EVENT_ACTION Dependent on type. For ORD and TRP, "R", for other types "C"
EVENT_DETAIL The defined message content per message type, detailed in the specific Message Type sections in this document.
EVENT_TIMEZONE The local Timezone Olsen ID for TRP messages, omitted for others. If omitted or blank, CALIDUS Portal assumes GMT.


Notes:

Type EVENT_DATE EVENT_TIME
DEL EPL_END_ACTUAL_DATE EPL_END_ACTUAL_TIME
CAN EPL_END_ACTUAL_DATE EPL_END_ACTUAL_TIME
COL EPL_END_ACTUAL_DATE EPL_END_ACTUAL_TIME
ARR EPL_ARRIVAL_DATE if populated else EPL_START_ACTUAL_DATE EPL_ARRIVAL_TIME if populated else EPL_START_ACTUAL_TIME
OIT Date when sending message Time when sending message
ORD Date when sending message Time when sending message
TRP EPL_LOAD_START_ACTUAL_DATE if populated, else Date when sending message EPL_LOAD_START_ACTUAL_TIME if populated, else Time when sending message
GPS Date when sending message Time when sending message


ORD messages

An ORD message informs CALIDUS Portal that an order is created. It contains all the details of the order, but no Trip information.

An ORD message is sent when an order is created. It is also sent when an order is updated through the Flat-file Auto-Import process. It is also sent when an order is updated through the Job and Load Import Webservices

The data in the message sections is predominantly based on the following tables:

Tag Notes
ORDER_HEADER EPOD_JOB
ORDER_HEADER_ADDRESSES EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_DETAILS EPOD_CONTAINER, EPOD_PRODUCT


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>O</TRIP_IDENTIFIER>
   </TRIP_HEADER>
   <STOPS>
       <STOP>
           <STOP_HEADER>
               <STOP_IDENTIFIER>O</STOP_IDENTIFIER>
               <STOP_SEQ>0</STOP_SEQ>
           </STOP_HEADER>
           <ORDERS>
               <ORDER>
                   <ORDER_HEADER>
                       <ORDER_TRANSACTION_DATE>2012-12-20T00:00:00</ORDER_TRANSACTION_DATE>
                       <WMS_WAREHOUSE>EPL_SITE_REF</WMS_WAREHOUSE>
                       <WMS_OWNER>EPL_JOB_GROUP_REF</WMS_OWNER>
                       <SO_REF>EPL_CUST_REF</SO_REF>
                       <TMS_REF>EPL_JOB_CODE</TMS_REF>
                       <PO_REF>EPL_SO_REF</PO_REF>
                       <BOOK_REF>EPL_EXT_REF</BOOK_REF>
                       <BOOK_DATE>2012-12-24T10:00:00</BOOK_DATE>
                       <ORDER_HEADER_ADDRESSES>
                           <ORDER_HEADER_ADDRESS>
                               <ADDRESS_TYPE>DEP</ADDRESS_TYPE>
                               <ADDRESS_ID>EPL_CUSTOMER_CODE</ADDRESS_ID>
                               <ADDRESS_NAME>EPL_NAME</ADDRESS_NAME>
                               <ADDRESS_LINE1>EPL_ADDR_LINE_1</ADDRESS_LINE1>
                               <ADDRESS_LINE2>EPL_ADDR_LINE_2</ADDRESS_LINE2>
                               <ADDRESS_TOWN>EPL_ADDR_LINE_3</ADDRESS_TOWN>
                               <ADDRESS_POSTCODE>EPL_POSTCODE</ADDRESS_POSTCODE>
                               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
                           </ORDER_HEADER_ADDRESS>
                           <ORDER_HEADER_ADDRESS>
                               <ADDRESS_TYPE>DEL</ADDRESS_TYPE>
                               <ADDRESS_ID>EPL_CUSTOMER_CODE</ADDRESS_ID>
                               <ADDRESS_NAME>EPL_NAME</ADDRESS_NAME>
                               <ADDRESS_LINE1>EPL_ADDR_LINE_1</ADDRESS_LINE1>
                               <ADDRESS_LINE2>EPL_ADDR_LINE_2</ADDRESS_LINE2>
                               <ADDRESS_TOWN>EPL_ADDR_LINE_3</ADDRESS_TOWN>
                               <ADDRESS_POSTCODE>EPL_POSTCODE</ADDRESS_POSTCODE>
                               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
                           </ORDER_HEADER_ADDRESS>
                       </ORDER_HEADER_ADDRESSES>
                       <ORDER_TYPE></ORDER_TYPE>
                       <TRACK_TO></TRACK_TO>
                       <CUSTOMER_ID>EPL_ACCOUNT</CUSTOMER_ID>
                       <ORDER_REF_1>EPL_SITE_ID</ORDER_REF_1>
                   </ORDER_HEADER>
                   <ORDER_DETAILS>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>D</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_CONTAINER_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>1</ORDERED>
                           <TO_DELIVER>1</TO_DELIVER>
                       </ORDER_DETAIL>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>S</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_PRODUCT_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>EPL_PRODUCT_QTY_ORDERED</ORDERED>
                           <TO_DELIVER>EPL_PRODUCT_QTY_PLANNED</TO_DELIVER>
                       </ORDER_DETAIL>
                   </ORDER_DETAILS>
               </ORDER>
           </ORDERS>
       </STOP>
   </STOPS>


Variable data for ORDER_HEADER:

Tag Notes
ORDER_TRANSACTION_DATE EPL_LAST_CHANGED_DATE/EPL_LAST_CHANGED_TIME in XSD format
WMS_WAREHOUSE EPODSITE.EPL_TTM_XREF
WMS_OWNER EPL_OWNER_NAME if present, else EPODSITE.EPL_TTM_XREF
SO_REF EPL_CUST_REF
TMS_REF EPL_JOB_CODE
PO_REF EPL_SO_REF
BOOK_REF EPL_EXT_REF
BOOK_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XSD format
ORDER_TYPE "C" if there is not a "DEL" address for the order (see below) else "O"
TRACK_TO "COL" if there is not a "DEL" address for the order (see below) else "DEL"
CUSTOMER_ID EPL_ACCOUNT if populated
ORDER_REF_1 EPL_SITE_ID


Two order header addresses should be built, one for DEP (the original collection location) and one for DEL (the ultimate delivery location).

For DEP addresses, the addresses against the jobs are used in this sequence:

  • Use the Origin Job Address (type O) if this exists for any job for this Site, Job Code and Cust Ref .
  • Use the Job Address of the first Collection Job for this Site, Job Code and Cust Ref if this exists.
  • Use the Customer Address of the customer of the first Collection Job for this Site, Job Code and Cust Ref if this exists.
  • If there is no collection job or no origin address, do not write this address.

For DEL addresses:

  • Use the Final Destination Job Address (type F) if this exists on any job for this Site, Job Code and Cust Ref .
  • Use the Job Address of the last Delivery Job if this exists for this Site, Job Code and Cust Ref .
  • Use the Customer Address of the customer of the last Delivery Job if this exists for this Site, Job Code and Cust Ref .
  • If there is no delivery job or no destination address, do not write this address.

Variable data for ORDER_ADDRESS:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
ADDRESS_TYPE DEP if EPL_JOB_TYPE = "O" or DEL if EPL_JOB_TYPE = "F" DEP if this is from the first Collection, DEL if this is from the last Delivery.
ADDRESS_ID EPL_ADDRESS_ID EPL_CUSTOMER_CODE
ADDRESS_NAME EPL_NAME EPL_CUSTOMER_NAME
ADDRESS_LINE_1 EPL_ADDRESS_1 EPL_ADDRESS_1
ADDRESS_LINE_2 EPL_ADDRESS_2 EPL_ADDRESS_2
ADDRESS_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
ADDRESS_POSTCODE EPL_POSTCODE EPL_POSTCODE
LOC_TIMEZONE EPOD_JOB.EPL_TIMEZONE EPOD_JOB.EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.


Variable data for ORDER_DETAIL:

Tag EPOD_CONTAINER EPOD_PRODUCT
DETAIL_TYPE "D" "S"
ITEM_IDENTIFIER EPL_CONTAINER_ID EPL_PRODUCT_CODE
ITEM_DESCRIPTION EPL_DESCRIPTION EPL_DESCRIPTION
ORDERED 1 EPL_PRODUCT_QTY_ORDERED
TO_DELIVER 1 EPL_PRODUCT_QTY_PLANNED


TRP messages

A TRP message informs CALIDUS Portal that a Trip is created, showing all the stops on the trip and the basic information on the orders on the stops.

A TRP message is sent when an order is created. It is also sent when an order is updated through the Flat-file Auto-Import process. It is also sent when an order is updated through the Job and Load Import Webservices

The data in the message sections is predominantly based on the following tables:

Tag Notes
TRIP_HEADER EPOD_LOAD
TRIP_DETAIL EPOD_LOAD, EPOD_VEHICLE, EPOD_USER
STOP_HEADER EPOD_JOB
STOP_DETAIL EPOD_JOB, EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_HEADER EPOD_JOB


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>T</TRIP_IDENTIFIER>
       <TRIP_TRANSACTION_DATE>2012-12-20T00:00:00</TRIP_TRANSACTION_DATE>
       <TRIP_ID>EPL_LOAD_ID<TRIP_ID>
   </TRIP_HEADER>
   <TRIP_DETAIL>
       <HAULIER>EPODSITE.EPL_TTM_XREF</HAULIER>
       <TRACKING>N</TRACKING>
       <DRIVER>EPL_USER_ID</DRIVER>
       <DRIVER_NAME>EPODUSER.EPL_USER_NAME</DRIVER_NAME>
       <TRACTOR>EPODVEHICLE.EPL_VEHICLE_REG</TRACTOR>
       <COST_CENTRE>EPL_SITE_ID<COST_CENTRE>
       <TRIP_STATUS>PLANNED<TRIP_STATUS>
       <TRIP_REF></TRIP_REF>
       <TRIP_TRAILER_ID>EPL_VEHICLE_ID</TRIP_TRAILER_ID>
       <TRIP_TRAILER_TYPE></TRIP_TRAILER_TYPE>
       <TRIP_DISTANCE>EPL_LOAD_DISTANCE_PLANNED</TRIP_DISTANCE>
   </TRIP_DETAIL>
   <STOPS>
       <STOP>
           <STOP_HEADER>
               <STOP_IDENTIFIER>S</STOP_IDENTIFIER>
               <STOP_SEQ>EPL_SEQUENCE</STOP_SEQ>
           </STOP_HEADER>
           <STOP_DETAIL>
               <STOP_REF>EPL_JOB_TYPE</STOP_REF>
               <STOP_TYPE>PK/DL</STOP_TYPE>
               <STOP_LOCATION_TYPE>2</STOP_LOCATION_TYPE>
               <STOP_LOCATION_ID></STOP_LOCATION_ID>
               <STOP_LOCATION_NAME></STOP_LOCATION_NAME>
               <STOP_ADDR_LINE1></STOP_ADDR_LINE1>
               <STOP_ADDR_LINE2><STOP_ADDR_LINE2>
               <STOP_TOWN><STOP_TOWN>
               <STOP_POSTCODE><STOP_POSTCODE>
               <STOP_CONTACT_NAME><STOP_CONTACT_NAME>
               <STOP_CONTACT_PHONE><STOP_CONTACT_PHONE>
               <STOP_PLANNED_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_PLANNED_ARRIVAL_DATE>
               <STOP_PLANNED_DEPARTURE_DATE>2012-12-20T00:00:00<STOP_PLANNED_DEPARTURE_DATE>
               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
           </STOP_DETAIL>
           <ORDERS>
               <ORDER>
                   <ORDER_HEADER>
                       <ORDER_TRANSACTION_DATE>2012-12-20T00:00:00</ORDER_TRANSACTION_DATE>
                       <WMS_WAREHOUSE>EPL_SITE_REF</WMS_WAREHOUSE>
                       <WMS_OWNER>EPL_JOB_GROUP_REF</WMS_OWNER>
                       <SO_REF>EPL_CUST_REF</SO_REF>
                       <TMS_REF>EPL_JOB_CODE</TMS_REF>
                       <PO_REF>EPL_SO_REF</PO_REF>
                       <BOOK_REF>EPL_EXT_REF</BOOK_REF>
                       <BOOK_DATE>2012-12-24T10:00:00</BOOK_DATE>
                   </ORDER_HEADER>
               </ORDER>
           <ORDERS>
       <STOP>
   <STOPS>


Variable data for TRIP_HEADER:

Tag Notes
TRIP_TRANSACTION_DATE EPL_LOAD_START_ACTUAL_DATE if populated, else Date when sending message
TRIP_ID EPL_LOAD_ID


Variable data for TRIP_DETAIL:

Tag Notes
HAULIER EPODSITE.EPL_TTM_XREF
DRIVER EPL_USER_ID
DRIVER_NAME EPODUSER.EPL_USER_NAME
TRACTOR EPODVEHICLE.EPL_VEHICLE_REG
COST_CENTRE EPL_SITE_ID
TRIP_TRAILER_ID EPL_VEHICLE_ID
TRIP_DISTANCE EPL_LOAD_DISTANCE_PLANNED

Variable data for STOP_HEADER:

Tag Notes
STOP_SEQUENCE EPL_SEQUENCE if populated, otherwise a counter incremented for each job on the trip.


Variable data for STOP_DETAIL:

Tag Notes
STOP_REF EPL_JOB_TYPE
STOP_TYPE "PK" if STOP_TYPE = "C" else "DL"
STOP_PLANNED_ARRIVAL_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XML date format
STOP_PLANNED_DEPARTURE_DATE EPL_END_PLANNED_DATE/EPL_END_PLANNED_TIME in XML date format. Only populated if there is an End Planned Date for the job
LOC_TIMEZONE EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.

Stop Location and Address fields in the STOP_DETAIL section are populated based on Job Address or Customer Address, depending on which exist, as follows:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
STOP_LOCATION_ID EPL_ADDRESS_ID if populated, else EPOD_JOB.EPL_CUSTOMER_CODE EPL_ADDRESS_ID_PREFIXED if populated, else EPOD_JOB.EPL_CUSTOMER_CODE
STOP_LOCATION_NAME EPL_NAME if populated, else EPOD_CUSTOMER.EPL_CUSTOMER_NAME EPL_CUSTOMER_NAME
STOP_ADDR_LINE1 EPL_ADDRESS_1 EPL_ADDRESS_1
STOP_ADDR_LINE2 EPL_ADDRESS_2 EPL_ADDRESS_2
STOP_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
STOP_POSTCODE EPL_POSTCODE EPL_POSTCODE
STOP_CONTACT_NAME EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT
STOP_CONTACT_PHONE EPL_TELEPHONE EPL_TELEPHONE


Variable data for ORDER_HEADER:

Tag Notes
ORDER_TRANSACTION_DATE EPL_LAST_CHANGED_DATE/EPL_LAST_CHANGED_TIME in XSD format
WMS_WAREHOUSE EPODSITE.EPL_TTM_XREF
WMS_OWNER EPL_OWNER_NAME if present, else EPODSITE.EPL_TTM_XREF
SO_REF EPL_CUST_REF
TMS_REF EPL_JOB_CODE
PO_REF EPL_SO_REF
BOOK_REF EPL_EXT_REF
BOOK_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XSD format


OIT messages

OIT messages signify that an order is in transit i.e. has been started on the mobile device. These messages are sent only when the user starts a job on the device.

The data in the message sections is predominantly based on the following tables:

Tag Notes
TRIP_HEADER EPOD_JOB, EPOD_AUDIT
TRIP_DETAIL EPOD_AUDIT
STOP_HEADER EPOD_JOB
STOP_DETAIL EPOD_JOB, EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_HEADER EPOD_JOB
ORDER_HEADER_ADDRESSES EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_DETAILS EPOD_CONTAINER, EPOD_PRODUCT


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>T</TRIP_IDENTIFIER>
       <TRIP_TRANSACTION_DATE>2012-12-24T10:00:00</TRIP_TRANSACTION_DATE>
       <TRIP_ID>EPL_LOAD_ID</TRIP_ID>
   </TRIP_HEADER>
   <TRIP_DETAIL>
       <TRACTOR_LAT></TRACTOR_LAT>
       <TRACTOR_LON></TRACTOR_LON>
   </TRIP_DETAIL>
   <STOPS>
       <STOP>
           <STOP_HEADER>
           <STOP_HEADER>
               <STOP_IDENTIFIER>S</STOP_IDENTIFIER>
               <STOP_SEQ>EPL_SEQUENCE</STOP_SEQ>
           </STOP_HEADER>
           <STOP_DETAIL>
               <STOP_REF>EPL_JOB_TYPE</STOP_REF>
               <STOP_TYPE>PK/DL</STOP_TYPE>
               <STOP_LOCATION_TYPE>2</STOP_LOCATION_TYPE>
               <STOP_LOCATION_ID></STOP_LOCATION_ID>
               <STOP_LOCATION_NAME></STOP_LOCATION_NAME>
               <STOP_ADDR_LINE1></STOP_ADDR_LINE1>
               <STOP_ADDR_LINE2><STOP_ADDR_LINE2>
               <STOP_TOWN><STOP_TOWN>
               <STOP_POSTCODE><STOP_POSTCODE>
               <STOP_CONTACT_NAME><STOP_CONTACT_NAME>
               <STOP_CONTACT_PHONE><STOP_CONTACT_PHONE>
               <STOP_PLANNED_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_PLANNED_ARRIVAL_DATE>
               <STOP_PLANNED_DEPARTURE_DATE>2012-12-20T00:00:00<STOP_PLANNED_DEPARTURE_DATE>
               <STOP_ACTUAL_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_ACTUAL_ARRIVAL_DATE>
               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
           </STOP_DETAIL>
           <ORDERS>
               <ORDER>
                   <ORDER_HEADER>
                       <ORDER_TRANSACTION_DATE>2012-12-20T00:00:00</ORDER_TRANSACTION_DATE>
                       <WMS_WAREHOUSE>EPL_SITE_REF</WMS_WAREHOUSE>
                       <WMS_OWNER>EPL_JOB_GROUP_REF</WMS_OWNER>
                       <SO_REF>EPL_CUST_REF</SO_REF>
                       <TMS_REF>EPL_JOB_CODE</TMS_REF>
                       <PO_REF>EPL_SO_REF</PO_REF>
                       <BOOK_REF>EPL_EXT_REF</BOOK_REF>
                       <BOOK_DATE>2012-12-24T10:00:00</BOOK_DATE>
                       ORDER_TRANSACTION_DATE", Audit Date and Time),
                   <ORDER_HEADER>
                   <ORDER_DETAILS>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>D</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_CONTAINER_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>1</ORDERED>
                           <TO_DELIVER>1</TO_DELIVER>
                       </ORDER_DETAIL>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>S</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_PRODUCT_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>EPL_PRODUCT_QTY_ORDERED</ORDERED>
                           <TO_DELIVER>EPL_PRODUCT_QTY_PLANNED</TO_DELIVER>
                       </ORDER_DETAIL>
                   </ORDER_DETAILS>
               </ORDER>
           </ORDERS>
       </STOP>
   </STOPS>


Variable data for TRIP_HEADER:

Tag Notes
TRIP_TRANSACTION_DATE The date/time the Job Start was actioned, from EPOD_AUDIT.EPL_AUDIT_DATE/EPL_AUDIT_TIME
TRIP_ID EPL_LOAD_ID


Variable data for TRIP_DETAIL:

Tag Notes
TRACTOR_LAT The latitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD.
TRACTOR_LON The longitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD.


Variable data for STOP_HEADER:

Tag Notes
STOP_SEQUENCE EPL_SEQUENCE if populated, otherwise a counter incremented for each job on the trip.


Variable data for STOP_DETAIL:

Tag Notes
STOP_REF EPL_JOB_TYPE
STOP_TYPE "PK" if STOP_TYPE = "C" else "DL"
STOP_PLANNED_ARRIVAL_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XML date format
STOP_PLANNED_DEPARTURE_DATE EPL_END_PLANNED_DATE/EPL_END_PLANNED_TIME in XML date format. Only populated if there is an End Planned Date for the job
STOP_ACTUAL_ARRIVAL_DATE EPL_ARRIVAL_DATE/EPL_ARRIVAL_TIME if populated, else EPL_START_ACTUAL_DATE/EPL_START_ACTUAL_TIME, in XML date format
LOC_TIMEZONE EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.

Stop Location and Address fields in the STOP_DETAIL section are populated based on Job Address or Customer Address, depending on which exist, as follows:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
STOP_LOCATION_ID EPL_ADDRESS_ID if populated, else EPOD_JOB.EPL_CUSTOMER_CODE EPL_ADDRESS_ID_PREFIXED if populated, else EPOD_JOB.EPL_CUSTOMER_CODE
STOP_LOCATION_NAME EPL_NAME if populated, else EPOD_CUSTOMER.EPL_CUSTOMER_NAME EPL_CUSTOMER_NAME
STOP_ADDR_LINE1 EPL_ADDRESS_1 EPL_ADDRESS_1
STOP_ADDR_LINE2 EPL_ADDRESS_2 EPL_ADDRESS_2
STOP_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
STOP_POSTCODE EPL_POSTCODE EPL_POSTCODE
STOP_CONTACT_NAME EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT
STOP_CONTACT_PHONE EPL_TELEPHONE EPL_TELEPHONE


Variable data for ORDER_HEADER:

Tag Notes
ORDER_TRANSACTION_DATE EPOD_AUDIT.EPL_AUDIT_DATE/EPL_AUDIT_TIME in XSD date format
WMS_WAREHOUSE EPODSITE.EPL_TTM_XREF
WMS_OWNER EPL_OWNER_NAME if present, else EPODSITE.EPL_TTM_XREF
SO_REF EPL_CUST_REF
TMS_REF EPL_JOB_CODE
PO_REF EPL_SO_REF
BOOK_REF EPL_EXT_REF
BOOK_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XSD format


Variable data for ORDER_DETAIL:

Tag EPOD_CONTAINER EPOD_PRODUCT
DETAIL_TYPE "D" "S"
ITEM_IDENTIFIER EPL_CONTAINER_ID EPL_PRODUCT_CODE
ITEM_DESCRIPTION EPL_DESCRIPTION EPL_DESCRIPTION
ORDERED 1 EPL_PRODUCT_QTY_ORDERED
TO_DELIVER 1 EPL_PRODUCT_QTY_PLANNED


ARR messages

ARR messages signify that the driver has arrived at the destination and is starting processing the job i.e. has been marked arrived on the mobile device. These messages are sent only when the user arrives a job on the device. For configurations where no Arrival functionality is specified, the OIT message serves to start the job.

The data in the message sections is predominantly based on the following tables:

Tag Notes
TRIP_HEADER EPOD_JOB, EPOD_AUDIT
TRIP_DETAIL EPOD_AUDIT
STOP_HEADER EPOD_JOB
STOP_DETAIL EPOD_JOB, EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_HEADER EPOD_JOB
ORDER_HEADER_ADDRESSES EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_DETAILS EPOD_CONTAINER, EPOD_PRODUCT


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>T</TRIP_IDENTIFIER>
       <TRIP_TRANSACTION_DATE>2012-12-24T10:00:00</TRIP_TRANSACTION_DATE>
       <TRIP_ID>EPL_LOAD_ID</TRIP_ID>
   </TRIP_HEADER>
   <STOPS>
       <STOP>
           <STOP_HEADER>
           <STOP_HEADER>
               <STOP_IDENTIFIER>S</STOP_IDENTIFIER>
               <STOP_SEQ>EPL_SEQUENCE</STOP_SEQ>
           </STOP_HEADER>
           <STOP_DETAIL>
               <STOP_REF>EPL_JOB_TYPE</STOP_REF>
               <STOP_TYPE>PK/DL</STOP_TYPE>
               <STOP_LOCATION_TYPE>2</STOP_LOCATION_TYPE>
               <STOP_LOCATION_ID></STOP_LOCATION_ID>
               <STOP_LOCATION_NAME></STOP_LOCATION_NAME>
               <STOP_ADDR_LINE1></STOP_ADDR_LINE1>
               <STOP_ADDR_LINE2><STOP_ADDR_LINE2>
               <STOP_TOWN><STOP_TOWN>
               <STOP_POSTCODE><STOP_POSTCODE>
               <STOP_CONTACT_NAME><STOP_CONTACT_NAME>
               <STOP_CONTACT_PHONE><STOP_CONTACT_PHONE>
               <STOP_PLANNED_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_PLANNED_ARRIVAL_DATE>
               <STOP_PLANNED_DEPARTURE_DATE>2012-12-20T00:00:00<STOP_PLANNED_DEPARTURE_DATE>
               <STOP_ACTUAL_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_ACTUAL_ARRIVAL_DATE>
               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
           </STOP_DETAIL>
       </STOP>
   </STOPS>


Variable data for TRIP_HEADER:

Tag Notes
TRIP_TRANSACTION_DATE The date/time the Job Arrive was actioned, from EPOD_JOB.EPL_ARRIVAL_DATE/EPOD_JOB.EPL_ARRIVAL_TIME
TRIP_ID EPL_LOAD_ID


Variable data for STOP_HEADER:

Tag Notes
STOP_SEQUENCE EPL_SEQUENCE if populated, otherwise a counter incremented for each job on the trip.


Variable data for STOP_DETAIL:

Tag Notes
STOP_REF EPL_JOB_TYPE
STOP_TYPE "PK" if STOP_TYPE = "C" else "DL"
STOP_PLANNED_ARRIVAL_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XML date format
STOP_PLANNED_DEPARTURE_DATE EPL_END_PLANNED_DATE/EPL_END_PLANNED_TIME in XML date format. Only populated if there is an End Planned Date for the job
STOP_ACTUAL_ARRIVAL_DATE EPL_ARRIVAL_DATE/EPL_ARRIVAL_TIME if populated, else EPL_START_ACTUAL_DATE/EPL_START_ACTUAL_TIME, in XML date format
LOC_TIMEZONE EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.

Stop Location and Address fields in the STOP_DETAIL section are populated based on Job Address or Customer Address, depending on which exist, as follows:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
STOP_LOCATION_ID EPL_ADDRESS_ID if populated, else EPOD_JOB.EPL_CUSTOMER_CODE EPL_ADDRESS_ID_PREFIXED if populated, else EPOD_JOB.EPL_CUSTOMER_CODE
STOP_LOCATION_NAME EPL_NAME if populated, else EPOD_CUSTOMER.EPL_CUSTOMER_NAME EPL_CUSTOMER_NAME
STOP_ADDR_LINE1 EPL_ADDRESS_1 EPL_ADDRESS_1
STOP_ADDR_LINE2 EPL_ADDRESS_2 EPL_ADDRESS_2
STOP_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
STOP_POSTCODE EPL_POSTCODE EPL_POSTCODE
STOP_CONTACT_NAME EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT
STOP_CONTACT_PHONE EPL_TELEPHONE EPL_TELEPHONE


COL messages

COL messages signify that an collection order has been completed. These messages are sent only when the job is marked as completed, normally through the Mobile Device completing the job.

The data in the message sections is predominantly based on the following tables:

Tag Notes
TRIP_HEADER EPOD_JOB
TRIP_DETAIL EPOD_AUDIT
STOP_HEADER EPOD_JOB
STOP_DETAIL EPOD_JOB, EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_HEADER EPOD_JOB
ORDER_HEADER_ADDRESSES EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_DETAILS EPOD_CONTAINER, EPOD_PRODUCT


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>T</TRIP_IDENTIFIER>
       <TRIP_TRANSACTION_DATE>2012-12-24T10:00:00</TRIP_TRANSACTION_DATE>
       <TRIP_ID>EPL_LOAD_ID</TRIP_ID>
   </TRIP_HEADER>
   <TRIP_DETAIL>
       <TRACTOR_LAT></TRACTOR_LAT>
       <TRACTOR_LON></TRACTOR_LON>
   </TRIP_DETAIL>
   <STOPS>
       <STOP>
           <STOP_HEADER>
           <STOP_HEADER>
               <STOP_IDENTIFIER>S</STOP_IDENTIFIER>
               <STOP_SEQ>EPL_SEQUENCE</STOP_SEQ>
           </STOP_HEADER>
           <STOP_DETAIL>
               <STOP_REF>EPL_JOB_TYPE</STOP_REF>
               <STOP_TYPE>PK/DL</STOP_TYPE>
               <STOP_LOCATION_TYPE>2</STOP_LOCATION_TYPE>
               <STOP_LOCATION_ID></STOP_LOCATION_ID>
               <STOP_LOCATION_NAME></STOP_LOCATION_NAME>
               <STOP_ADDR_LINE1></STOP_ADDR_LINE1>
               <STOP_ADDR_LINE2><STOP_ADDR_LINE2>
               <STOP_TOWN><STOP_TOWN>
               <STOP_POSTCODE><STOP_POSTCODE>
               <STOP_CONTACT_NAME><STOP_CONTACT_NAME>
               <STOP_CONTACT_PHONE><STOP_CONTACT_PHONE>
               <STOP_PLANNED_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_PLANNED_ARRIVAL_DATE>
               <STOP_PLANNED_DEPARTURE_DATE>2012-12-20T00:00:00<STOP_PLANNED_DEPARTURE_DATE>
               <STOP_ACTUAL_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_ACTUAL_ARRIVAL_DATE>
               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
           </STOP_DETAIL>
           <STOP_SIGNATURE>
               <SIGNATURE>EPL_JOB_SIGNATURE</SIGNATURE>
               <SIGNATORY>EPL_CUST_SIGNATORY</SIGNATORY>
           </STOP_SIGNATURE>
           <ORDERS>
               <ORDER>
                   <ORDER_HEADER>
                       <ORDER_TRANSACTION_DATE>2012-12-20T00:00:00</ORDER_TRANSACTION_DATE>
                       <WMS_WAREHOUSE>EPL_SITE_REF</WMS_WAREHOUSE>
                       <WMS_OWNER>EPL_JOB_GROUP_REF</WMS_OWNER>
                       <SO_REF>EPL_CUST_REF</SO_REF>
                       <TMS_REF>EPL_JOB_CODE</TMS_REF>
                       <PO_REF>EPL_SO_REF</PO_REF>
                       <BOOK_REF>EPL_EXT_REF</BOOK_REF>
                       <BOOK_DATE>2012-12-24T10:00:00</BOOK_DATE>
                       ORDER_TRANSACTION_DATE", Audit Date and Time),
                   <ORDER_HEADER>
                   <ORDER_DETAILS>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>D</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_CONTAINER_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>1</ORDERED>
                           <TO_DELIVER>1</TO_DELIVER>
                           <DELIVERED></DELIVERED>
                           <REASON_CODES>
                               <REASON_CODE>
                                   <RC_CODE>EPL_REASON_CODE</RC_CODE>
                                   <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                                   <RC_COMMENT>EPL_CUST_COMMENTS</RC_COMMENT>
                                   <RC_TYPE>DEL</RC_TYPE>
                               </REASON_CODE>
                           </REASON_CODES>
                       </ORDER_DETAIL>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>S</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_PRODUCT_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>EPL_PRODUCT_QTY_ORDERED</ORDERED>
                           <TO_DELIVER>EPL_PRODUCT_QTY_PLANNED</TO_DELIVER>
                           <DELIVERED>EPL_PRODUCT_QTY_ACTUAL</DELIVERED>
                           <REASON_CODES>
                               <REASON_CODE>
                                   <RC_CODE>EPL_REASON_CODE</RC_CODE>
                                   <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                                   <RC_TYPE>DEL</RC_TYPE>
                               </REASON_CODE>
                           </REASON_CODES>
                       </ORDER_DETAIL>
                   </ORDER_DETAILS>
               </ORDER>
           </ORDERS>
       </STOP>
   </STOPS>


Variable data for TRIP_HEADER:

Tag Notes
TRIP_TRANSACTION_DATE The date/time the Job was completed, from EPOD_JOB.EPL_ACTUAL_END_DATE/EPL_ACTUAL_END_TIME, if populated, else the time the message is sent, in XSD Date format.
TRIP_ID EPL_LOAD_ID


Variable data for TRIP_DETAIL:

Tag Notes
TRACTOR_LAT The latitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD, if populated, else 0.
TRACTOR_LON The longitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD, if populated, else 0.


Variable data for STOP_HEADER:

Tag Notes
STOP_SEQUENCE EPL_SEQUENCE if populated, otherwise a counter incremented for each job on the trip.


Variable data for STOP_DETAIL:

Tag Notes
STOP_REF EPL_JOB_TYPE
STOP_TYPE "PK" if STOP_TYPE = "C" else "DL"
STOP_PLANNED_ARRIVAL_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XML date format
STOP_PLANNED_DEPARTURE_DATE EPL_END_PLANNED_DATE/EPL_END_PLANNED_TIME in XML date format. Only populated if there is an End Planned Date for the job
STOP_ACTUAL_ARRIVAL_DATE EPL_ARRIVAL_DATE/EPL_ARRIVAL_TIME if populated, else EPL_START_ACTUAL_DATE/EPL_START_ACTUAL_TIME, in XML date format
LOC_TIMEZONE EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.

Stop Location and Address fields in the STOP_DETAIL section are populated based on Job Address or Customer Address, depending on which exist, as follows:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
STOP_LOCATION_ID EPL_ADDRESS_ID if populated, else EPOD_JOB.EPL_CUSTOMER_CODE EPL_ADDRESS_ID_PREFIXED if populated, else EPOD_JOB.EPL_CUSTOMER_CODE
STOP_LOCATION_NAME EPL_NAME if populated, else EPOD_CUSTOMER.EPL_CUSTOMER_NAME EPL_CUSTOMER_NAME
STOP_ADDR_LINE1 EPL_ADDRESS_1 EPL_ADDRESS_1
STOP_ADDR_LINE2 EPL_ADDRESS_2 EPL_ADDRESS_2
STOP_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
STOP_POSTCODE EPL_POSTCODE EPL_POSTCODE
STOP_CONTACT_NAME EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT
STOP_CONTACT_PHONE EPL_TELEPHONE EPL_TELEPHONE


Variable data for ORDER_HEADER:

Tag Notes
ORDER_TRANSACTION_DATE EPL_ACTUAL_END_DATE/EPL_ACTUAL_END_TIME, if populated, else the time the message is sent, in XSD Date format.
WMS_WAREHOUSE EPODSITE.EPL_TTM_XREF
WMS_OWNER EPL_OWNER_NAME if present, else EPODSITE.EPL_TTM_XREF
SO_REF EPL_CUST_REF
TMS_REF EPL_JOB_CODE
PO_REF EPL_SO_REF
BOOK_REF EPL_EXT_REF
BOOK_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XSD format


Variable data for ORDER_DETAIL:

Tag EPOD_CONTAINER EPOD_PRODUCT
DETAIL_TYPE "D" "S"
ITEM_IDENTIFIER EPL_CONTAINER_ID EPL_PRODUCT_CODE
ITEM_DESCRIPTION EPL_DESCRIPTION EPL_DESCRIPTION
ORDERED 1 EPL_PRODUCT_QTY_ORDERED
TO_DELIVER 1 EPL_PRODUCT_QTY_PLANNED
DELIVERED 1 if delivered (EPL_STATUS = "C") or 0 if not delivered (EPL_STATUS = "X") EPL_PRODUCT_QTY_ACTUAL


A REASON_CODES section will only be created if the detail line in question (EPOD_CONTAINER or EPOD_PRODUCT) has a reason code or clause comment against it.

Variable data for REASON_CODE:

Tag Reason Code Clause Comment (For Containers only)
RC_CODE EPL_REASON_CODE "_CLAUSED_"
RC_DESCRIPTION EPOD_REASON.EPL_DESCRIPTION "Claused Delivery"
RC_COMMMENT Tag not produced EPOD_CONTAINER.EPL_CUST_COMMENT


CAN messages

CAN messages signify that a job has been cancelled. These messages are sent only when the job is marked as cancelled, through the Mobile Device completing the job or through the Admin console.

The data in the message sections is predominantly based on the following tables:

Tag Notes
TRIP_HEADER EPOD_JOB
STOP_HEADER EPOD_JOB
STOP_DETAIL EPOD_JOB, EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_HEADER EPOD_JOB
ORDER_HEADER_ADDRESSES EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_DETAILS EPOD_CONTAINER, EPOD_PRODUCT
ORDER_REASON_CODES EPOD_JOB, EPOD_REASON_CODE


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>T</TRIP_IDENTIFIER>
       <TRIP_TRANSACTION_DATE>2012-12-24T10:00:00</TRIP_TRANSACTION_DATE>
       <TRIP_ID>EPL_LOAD_ID</TRIP_ID>
   </TRIP_HEADER>
   <STOPS>
       <STOP>
           <STOP_HEADER>
           <STOP_HEADER>
               <STOP_IDENTIFIER>O</STOP_IDENTIFIER>
               <STOP_SEQ>EPL_SEQUENCE</STOP_SEQ>
           </STOP_HEADER>
           <STOP_DETAIL>
               <STOP_REF>EPL_JOB_TYPE</STOP_REF>
               <STOP_TYPE>PK/DL</STOP_TYPE>
               <STOP_LOCATION_TYPE>2</STOP_LOCATION_TYPE>
               <STOP_LOCATION_ID></STOP_LOCATION_ID>
               <STOP_LOCATION_NAME></STOP_LOCATION_NAME>
               <STOP_ADDR_LINE1></STOP_ADDR_LINE1>
               <STOP_ADDR_LINE2><STOP_ADDR_LINE2>
               <STOP_TOWN><STOP_TOWN>
               <STOP_POSTCODE><STOP_POSTCODE>
               <STOP_CONTACT_NAME><STOP_CONTACT_NAME>
               <STOP_CONTACT_PHONE><STOP_CONTACT_PHONE>
               <STOP_PLANNED_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_PLANNED_ARRIVAL_DATE>
               <STOP_PLANNED_DEPARTURE_DATE>2012-12-20T00:00:00<STOP_PLANNED_DEPARTURE_DATE>
               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
           </STOP_DETAIL>
           <ORDERS>
               <ORDER>
                   <ORDER_HEADER>
                       <ORDER_TRANSACTION_DATE>2012-12-20T00:00:00</ORDER_TRANSACTION_DATE>
                       <WMS_WAREHOUSE>EPL_SITE_REF</WMS_WAREHOUSE>
                       <WMS_OWNER>EPL_JOB_GROUP_REF</WMS_OWNER>
                       <SO_REF>EPL_CUST_REF</SO_REF>
                       <TMS_REF>EPL_JOB_CODE</TMS_REF>
                       <PO_REF>EPL_SO_REF</PO_REF>
                       <BOOK_REF>EPL_EXT_REF</BOOK_REF>
                       <BOOK_DATE>2012-12-24T10:00:00</BOOK_DATE>
                       ORDER_TRANSACTION_DATE", Audit Date and Time),
                   <ORDER_HEADER>
                   <ORDER_DETAILS>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>D</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_CONTAINER_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>1</ORDERED>
                           <TO_DELIVER>1</TO_DELIVER>
                           <DELIVERED></DELIVERED>
                           <REASON_CODES>
                               <REASON_CODE>
                                   <RC_CODE>EPL_REASON_CODE</RC_CODE>
                                   <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                                   <RC_COMMENT>EPL_CUST_COMMENTS</RC_COMMENT>
                                   <RC_TYPE>DEL</RC_TYPE>
                               </REASON_CODE>
                           </REASON_CODES>
                       </ORDER_DETAIL>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>S</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_PRODUCT_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>EPL_PRODUCT_QTY_ORDERED</ORDERED>
                           <TO_DELIVER>EPL_PRODUCT_QTY_PLANNED</TO_DELIVER>
                           <DELIVERED>EPL_PRODUCT_QTY_ACTUAL</DELIVERED>
                           <REASON_CODES>
                               <REASON_CODE>
                                   <RC_CODE>EPL_REASON_CODE</RC_CODE>
                                   <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                                   <RC_TYPE>DEL</RC_TYPE>
                               </REASON_CODE>
                           </REASON_CODES>
                       </ORDER_DETAIL>
                   </ORDER_DETAILS>
                   <ORDER_REASON_CODES>
                       <ORDER_REASON_CODE>
                           <RC_TYPE>DEL</RC_TYPE>
                           <RC_CODE>EPL_REASON_CODE</RC_CODE>
                           <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                       </ORDER_REASON_CODE>
                   </ORDER_REASON_CODES>
               </ORDER>
           </ORDERS>
       </STOP>
   </STOPS>


Variable data for TRIP_HEADER:

Tag Notes
TRIP_TRANSACTION_DATE The date/time the Job was cancelled, from EPOD_JOB.EPL_ACTUAL_END_DATE/EPL_ACTUAL_END_TIME, if populated, else the time the message is sent, in XSD Date format.
TRIP_ID EPL_LOAD_ID


Variable data for STOP_HEADER:

Tag Notes
STOP_SEQUENCE EPL_SEQUENCE if populated, otherwise a counter incremented for each job on the trip.


Variable data for STOP_DETAIL:

Tag Notes
STOP_REF EPL_JOB_TYPE
STOP_TYPE "PK" if STOP_TYPE = "C" else "DL"
STOP_PLANNED_ARRIVAL_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XML date format
STOP_PLANNED_DEPARTURE_DATE EPL_END_PLANNED_DATE/EPL_END_PLANNED_TIME in XML date format. Only populated if there is an End Planned Date for the job
STOP_ACTUAL_ARRIVAL_DATE EPL_ARRIVAL_DATE/EPL_ARRIVAL_TIME if populated, else EPL_START_ACTUAL_DATE/EPL_START_ACTUAL_TIME, in XML date format
LOC_TIMEZONE EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.

Stop Location and Address fields in the STOP_DETAIL section are populated based on Job Address or Customer Address, depending on which exist, as follows:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
STOP_LOCATION_ID EPL_ADDRESS_ID if populated, else EPOD_JOB.EPL_CUSTOMER_CODE EPL_ADDRESS_ID_PREFIXED if populated, else EPOD_JOB.EPL_CUSTOMER_CODE
STOP_LOCATION_NAME EPL_NAME if populated, else EPOD_CUSTOMER.EPL_CUSTOMER_NAME EPL_CUSTOMER_NAME
STOP_ADDR_LINE1 EPL_ADDRESS_1 EPL_ADDRESS_1
STOP_ADDR_LINE2 EPL_ADDRESS_2 EPL_ADDRESS_2
STOP_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
STOP_POSTCODE EPL_POSTCODE EPL_POSTCODE
STOP_CONTACT_NAME EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT
STOP_CONTACT_PHONE EPL_TELEPHONE EPL_TELEPHONE


Variable data for ORDER_HEADER:

Tag Notes
ORDER_TRANSACTION_DATE EPL_ACTUAL_END_DATE/EPL_ACTUAL_END_TIME, if populated, else the time the message is sent, in XSD Date format.
WMS_WAREHOUSE EPODSITE.EPL_TTM_XREF
WMS_OWNER EPL_OWNER_NAME if present, else EPODSITE.EPL_TTM_XREF
SO_REF EPL_CUST_REF
TMS_REF EPL_JOB_CODE
PO_REF EPL_SO_REF
BOOK_REF EPL_EXT_REF
BOOK_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XSD format


Variable data for ORDER_DETAIL:

Tag EPOD_CONTAINER EPOD_PRODUCT
DETAIL_TYPE "D" "S"
ITEM_IDENTIFIER EPL_CONTAINER_ID EPL_PRODUCT_CODE
ITEM_DESCRIPTION EPL_DESCRIPTION EPL_DESCRIPTION
ORDERED 1 EPL_PRODUCT_QTY_ORDERED
TO_DELIVER 1 EPL_PRODUCT_QTY_PLANNED
DELIVERED 1 if delivered (EPL_STATUS = "C") or 0 if not delivered (EPL_STATUS = "X") EPL_PRODUCT_QTY_ACTUAL


A REASON_CODES section will only be created if the detail line in question (EPOD_CONTAINER or EPOD_PRODUCT) has a reason code or clause comment against it.

Variable data for REASON_CODE:

Tag Reason Code Clause Comment (For Containers only)
RC_CODE EPL_REASON_CODE "_CLAUSED_"
RC_DESCRIPTION EPOD_REASON.EPL_DESCRIPTION "Claused Delivery"
RC_COMMMENT Tag not produced EPOD_CONTAINER.EPL_CUST_COMMENT


Variable data for ORDER_REASON_CODE:

Tag Reason Code
RC_CODE EPL_REASON_CODE
RC_DESCRIPTION EPOD_REASON_CODE.EPL_DESCRIPTION


DEL messages

DEL messages signify that a delivery order has been completed. These messages are sent only when the job is marked as completed, normally through the Mobile Device completing the job.

The data in the message sections is predominantly based on the following tables:

Tag Notes
TRIP_HEADER EPOD_JOB
TRIP_DETAIL EPOD_AUDIT
STOP_HEADER EPOD_JOB
STOP_DETAIL EPOD_JOB, EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_HEADER EPOD_JOB
ORDER_HEADER_ADDRESSES EPOD_JOB_ADDRESS, EPOD_CUSTOMER
ORDER_DETAILS EPOD_CONTAINER, EPOD_PRODUCT, EPOD_REASON_CODE


The basic XML Layout is as follows:

   <TRIP_HEADER>
       <TRIP_IDENTIFIER>T</TRIP_IDENTIFIER>
       <TRIP_TRANSACTION_DATE>2012-12-24T10:00:00</TRIP_TRANSACTION_DATE>
       <TRIP_ID>EPL_LOAD_ID</TRIP_ID>
   </TRIP_HEADER>
   <TRIP_DETAIL>
       <TRACTOR_LAT></TRACTOR_LAT>
       <TRACTOR_LON></TRACTOR_LON>
   </TRIP_DETAIL>
   <STOPS>
       <STOP>
           <STOP_HEADER>
           <STOP_HEADER>
               <STOP_IDENTIFIER>S</STOP_IDENTIFIER>
               <STOP_SEQ>EPL_SEQUENCE</STOP_SEQ>
           </STOP_HEADER>
           <STOP_DETAIL>
               <STOP_REF>EPL_JOB_TYPE</STOP_REF>
               <STOP_TYPE>PK/DL</STOP_TYPE>
               <STOP_LOCATION_TYPE>2</STOP_LOCATION_TYPE>
               <STOP_LOCATION_ID></STOP_LOCATION_ID>
               <STOP_LOCATION_NAME></STOP_LOCATION_NAME>
               <STOP_ADDR_LINE1></STOP_ADDR_LINE1>
               <STOP_ADDR_LINE2><STOP_ADDR_LINE2>
               <STOP_TOWN><STOP_TOWN>
               <STOP_POSTCODE><STOP_POSTCODE>
               <STOP_CONTACT_NAME><STOP_CONTACT_NAME>
               <STOP_CONTACT_PHONE><STOP_CONTACT_PHONE>
               <STOP_PLANNED_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_PLANNED_ARRIVAL_DATE>
               <STOP_PLANNED_DEPARTURE_DATE>2012-12-20T00:00:00<STOP_PLANNED_DEPARTURE_DATE>
               <STOP_ACTUAL_ARRIVAL_DATE>2012-12-20T00:00:00<STOP_ACTUAL_ARRIVAL_DATE>
               <LOC_TIMEZONE>EPL_TIMEZONE</LOC_TIMEZONE>
           </STOP_DETAIL>
           <STOP_SIGNATURE>
               <SIGNATURE>EPL_JOB_SIGNATURE</SIGNATURE>
               <SIGNATORY>EPL_CUST_SIGNATORY</SIGNATORY>
           </STOP_SIGNATURE>
           <ORDERS>
               <ORDER>
                   <ORDER_HEADER>
                       <ORDER_TRANSACTION_DATE>2012-12-20T00:00:00</ORDER_TRANSACTION_DATE>
                       <WMS_WAREHOUSE>EPL_SITE_REF</WMS_WAREHOUSE>
                       <WMS_OWNER>EPL_JOB_GROUP_REF</WMS_OWNER>
                       <SO_REF>EPL_CUST_REF</SO_REF>
                       <TMS_REF>EPL_JOB_CODE</TMS_REF>
                       <PO_REF>EPL_SO_REF</PO_REF>
                       <BOOK_REF>EPL_EXT_REF</BOOK_REF>
                       <BOOK_DATE>2012-12-24T10:00:00</BOOK_DATE>
                       ORDER_TRANSACTION_DATE", Audit Date and Time),
                   <ORDER_HEADER>
                   <ORDER_DETAILS>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>D</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_CONTAINER_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>1</ORDERED>
                           <TO_DELIVER>1</TO_DELIVER>
                           <DELIVERED></DELIVERED>
                           <REASON_CODES>
                               <REASON_CODE>
                                   <RC_CODE>EPL_REASON_CODE</RC_CODE>
                                   <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                                   <RC_COMMMENT>EPL_CUST_COMMENT</RC_COMMMENT>
                                   <RC_TYPE>DEL</RC_TYPE>
                               </REASON_CODE>
                           </REASON_CODES>
                       </ORDER_DETAIL>
                       <ORDER_DETAIL>
                           <DETAIL_TYPE>S</DETAIL_TYPE>
                           <ITEM_IDENTIFIER>EPL_PRODUCT_ID</ITEM_IDENTIFIER>
                           <ITEM_DESCRIPTION>EPL_DESCRIPTION</ITEM_DESCRIPTION>
                           <ORDERED>EPL_PRODUCT_QTY_ORDERED</ORDERED>
                           <TO_DELIVER>EPL_PRODUCT_QTY_PLANNED</TO_DELIVER>
                           <DELIVERED>EPL_PRODUCT_QTY_ACTUAL</DELIVERED>
                           <REASON_CODES>
                               <REASON_CODE>
                                   <RC_CODE>EPL_REASON_CODE</RC_CODE>
                                   <RC_DESCRIPTION>EPOD_REASON_CODE.EPL_DESCRIPTION</RC_DESCRIPTION>
                                   <RC_TYPE>DEL</RC_TYPE>
                               </REASON_CODE>
                           </REASON_CODES>
                       </ORDER_DETAIL>
                   </ORDER_DETAILS>
               </ORDER>
           </ORDERS>
       </STOP>
   </STOPS>


Variable data for TRIP_HEADER:

Tag Notes
TRIP_TRANSACTION_DATE The date/time the Job was completed, from EPOD_JOB.EPL_ACTUAL_END_DATE/EPL_ACTUAL_END_TIME, if populated, else the time the message is sent, in XSD Date format.
TRIP_ID EPL_LOAD_ID


Variable data for TRIP_DETAIL:

Tag Notes
TRACTOR_LAT The latitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD, if populated, else 0.
TRACTOR_LON The longitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD, if populated, else 0.


Variable data for STOP_HEADER:

Tag Notes
STOP_SEQUENCE EPL_SEQUENCE if populated, otherwise a counter incremented for each job on the trip.


Variable data for STOP_DETAIL:

Tag Notes
STOP_REF EPL_JOB_TYPE
STOP_TYPE "PK" if STOP_TYPE = "C" else "DL"
STOP_PLANNED_ARRIVAL_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XML date format
STOP_PLANNED_DEPARTURE_DATE EPL_END_PLANNED_DATE/EPL_END_PLANNED_TIME in XML date format. Only populated if there is an End Planned Date for the job
STOP_ACTUAL_ARRIVAL_DATE EPL_ARRIVAL_DATE/EPL_ARRIVAL_TIME if populated, else EPL_START_ACTUAL_DATE/EPL_START_ACTUAL_TIME, in XML date format
LOC_TIMEZONE EPL_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.

Stop Location and Address fields in the STOP_DETAIL section are populated based on Job Address or Customer Address, depending on which exist, as follows:

Tag EPOD_JOB_ADDRESS EPOD_CUSTOMER
STOP_LOCATION_ID EPL_ADDRESS_ID if populated, else EPOD_JOB.EPL_CUSTOMER_CODE EPL_ADDRESS_ID_PREFIXED if populated, else EPOD_JOB.EPL_CUSTOMER_CODE
STOP_LOCATION_NAME EPL_NAME if populated, else EPOD_CUSTOMER.EPL_CUSTOMER_NAME EPL_CUSTOMER_NAME
STOP_ADDR_LINE1 EPL_ADDRESS_1 EPL_ADDRESS_1
STOP_ADDR_LINE2 EPL_ADDRESS_2 EPL_ADDRESS_2
STOP_TOWN EPL_ADDRESS_3 EPL_ADDRESS_3
STOP_POSTCODE EPL_POSTCODE EPL_POSTCODE
STOP_CONTACT_NAME EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT EPOD_JOB.EPL_CUST_SIGNATORY if populated else EPL_CONTACT
STOP_CONTACT_PHONE EPL_TELEPHONE EPL_TELEPHONE


Variable data for ORDER_HEADER:

Tag Notes
ORDER_TRANSACTION_DATE EPL_ACTUAL_END_DATE/EPL_ACTUAL_END_TIME, if populated, else the time the message is sent, in XSD Date format.
WMS_WAREHOUSE EPODSITE.EPL_TTM_XREF
WMS_OWNER EPL_OWNER_NAME if present, else EPODSITE.EPL_TTM_XREF
SO_REF EPL_CUST_REF
TMS_REF EPL_JOB_CODE
PO_REF EPL_SO_REF
BOOK_REF EPL_EXT_REF
BOOK_DATE EPL_START_PLANNED_DATE/EPL_START_PLANNED_TIME in XSD format


Variable data for ORDER_DETAIL:

Tag EPOD_CONTAINER EPOD_PRODUCT
DETAIL_TYPE "D" "S"
ITEM_IDENTIFIER EPL_CONTAINER_ID EPL_PRODUCT_CODE
ITEM_DESCRIPTION EPL_DESCRIPTION EPL_DESCRIPTION
ORDERED 1 EPL_PRODUCT_QTY_ORDERED
TO_DELIVER 1 EPL_PRODUCT_QTY_PLANNED
DELIVERED 1 if delivered (EPL_STATUS = "C") or 0 if not delivered (EPL_STATUS = "X") EPL_PRODUCT_QTY_ACTUAL


A REASON_CODES section will only be created if the detail line in question (EPOD_CONTAINER or EPOD_PRODUCT) has a reason code or clause comment against it.

Variable data for REASON_CODE:

Tag Reason Code Clause Comment (For Containers only)
RC_CODE EPL_REASON_CODE "_CLAUSED_"
RC_DESCRIPTION EPOD_REASON.EPL_DESCRIPTION "Claused Delivery"
RC_COMMMENT Tag not produced EPOD_CONTAINER.EPL_CUST_COMMENT


GPS messages

GPS messages inform CALIDUS Portal of Lat/Long information gathered from mobile devices during operation, for last known location tracking and ETA purposes. These messages are sent every time the Mobil Device sends a GPS Tracking message to the server.

The data in the message sections is predominantly based on the following tables:

Tag Notes
GPS_TRACKS EPOD_AUDIT
GPS_POINTS EPOD_AUDIT


The basic XML Layout is as follows:

   <GPS_TRACKS>
       <GPS_TRACK>
           <HAULIER>EPL_SITE_ID</HAULIER>
           <HAULIER_NAME>EPOD_SITE.EPL_DESCRIPTION</HAULIER_NAME>
           <DRIVER>EPL_USER_ID</DRIVER>
           <DRIVER_NAME>EPOD_USER.EPL_USER_NAME</DRIVER_NAME>
           <TRACTOR>EPL_VEHICLE_ID</TRACTOR>
           <GPS_POINTS>
               <GPS_POINT>
                   <GPS_POINT_DATE>2012-12-20T00:00:00</GPS_POINT_DATE>
                   <TRACTOR_LAT></TRACTOR_LAT>
                   <TRACTOR_LON></TRACTOR_LON>
                   <TRIP_ID>EPL_LOAD_ID</TRIP_ID>
                   <LOC_TIMEZONE>EPL_DEVICE_TIMEZONE</LOC_TIMEZONE>
               </GPS_POINT>
           </GPS_POINTS>
       </GPS_TRACK>
   </GPS_TRACKS>


Variable data for GPS_TRACK:

Tag Reason Code
HAULIER EPL_SITE_ID
HAULIER_NAME EPOD_SITE.EPL_DESCRIPTION
DRIVER EPL_USER_ID
DRIVER_NAME EPOD_USER.EPL_USER_NAME
TRACTOR EPL_VEHICLE_ID


Variable data for GPS_POINT:

Tag Reason Code
GPS_POINT_DATE EPL_DEVICE_DATE/EPL_DEVICE_TIME in XSD date format.
TRACTOR_LAT The latitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD.
TRACTOR_LON The longitude of where the job was started, extracted from EPOD_AUDIT.EPL_GPS_COORD
TRIP_ID EPL_LOAD_ID
LOC_TIMEZONE EPL_DEVICE_TIMEZONE

Note Note: If Timezone is omitted or blank, CALIDUS Portal assumes GMT.


Sending Messages to CALIDUS Portal

The Auto-Export process that generates and sends these files is a stand-alone application, that must be initiated through a system scheduler. The expected interval for this process is 3-5 minutes.

All messages generated by these processes are exported through flat-file transfer, either through a local file folder or through FTP.

The default file naming convention is:

   EPOD_LOTS_<EPL_SITE_ID>_FTP_<currentDate>_<currentTime>_1.XML

although this can be overridden through the export configuration parameters in EPOD_XF_CONFIG.

In all cases, the file is created in a separate area as a temporary file, or created as a temporary file in the destination folder, then renamed, to prevent misreads by CALIDUS Portal of incomplete data.