Functional Overview
Client Requirement
The client wants to perform a vehicle check at the start of a load and record any defects when a load is finished. Some of the information on the load will have to come from load metrics.
There are two examples of a daily vehicle check configured at vehicle level. Please see forms (Trip Sheet) and Loader Crane in the requirements document (referenced in Appendix B).
Solution Overview
Currently, the system does not export Vehicle Check information. It is expected that the export processes, both automatic and requested through a web service, will need to be modified to allow this. All completed vehicle checks would be exported to the destination specified in the EPOD export configuration, which can be set up for the entire system or for particular Job Groups only.
The method of communication for automatic export of Vehicle Checks information has not been finalised at this time. It is expected that the export will be to a web-service within the host system, accepting the OBS Calidus EPOD XML format, through a POST or SOAP mechanism.
The supported vehicle checks will be:
- Automatically exported
- POST and SOAP export as String or XML object:
- EPOD_XML_EXPORT_VEHICLECHECKS - All pending checks
It is not envisaged that specific vehicle checks could be requested from EPOD on a per check basis - rather all vehicle checks recorded against a job will be exported. In order for specific vehicle checks to be read, the host system should parse the message returned in order to find the vehicle check required.
Scope
- These changes will be made in the latest version of the CALIDUS ePOD product only.
Set-up
- A set of Vehicle checks must be set up in EPOD against Site Level.
- An export configuration must be set up in EPOD to export the Vehicle Checks.
Pre-requisites
Data
The configuration for automatic export of Vehicle Checks information has not at this time been finalised. It is expected that this will be to a web-service within the host system, accepting the OBS Calidus EPOD XML format, through a POST or SOAP mechanism. The configuration for this on EPOD_XF_CONFIG would be as follows:
- EPL_XF_CONFIG_ID - As assigned to the Site or Job Group
- EPL_DESCRIPTION - As required
- EPL_XF_TYPE = "POST|SOAP" (TBC)
- EPL_XF_DESTINATION = External Web-service URL (TBC)
- EPL_XF_ID = "VEHICLECHECKS"
- EPL_WEB_PARAMETER = External Web-service Parameter, if required (TBC)
- EPL_WEB_USER = External Web-service User-name, if required (TBC)
- EPL_WEB_PASSWORD = External Web-service Password, if required (TBC)
- EPL_SOAP_ACTION = External Web-service Action, if SOAP (TBC)
- EPL_SOAP_NS = External Web-service Namespace, if SOAP (TBC)
- EPL_SOAP_NS_PREFIX = External Web-service Namespace Prefix, if SOAP (TBC)
- EPL_XF_DIRECTION = "O"
The expected Vehicle Check configuration set-up in EPOD_SITE is as follows:
<VEHICLE_CHECK FREQ="1">
<QUESTION ID="0001">
<TEXT>Driver Daily Checks</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>N</SKIPABLE>
<ITEMS>
<ITEM>Lamps/Indicators/Stop Lamps</ITEM>
<ITEM>Reflectors/Markers/Warning Devices</ITEM>
<ITEM>Battery security/condition</ITEM>
<ITEM>Mirrors security/condition</ITEM>
<ITEM>Brakes - pressure - operation - leaks</ITEM>
<ITEM>Brakes/Warning Devices/Instruments</ITEM>
<ITEM>Steering-wear-operation</ITEM>
<ITEM>Tyres-inflation-damage-wear</ITEM>
<ITEM>Wheels-condition-security</ITEM>
<ITEM>Body/guards/wings/damage</ITEM>
<ITEM>Body/load security - protection</ITEM>
<ITEM>Spray suppression -damage</ITEM>
<ITEM>Number plates - security - illumination</ITEM>
<ITEM>Horn/wipers/washers-operation-condition</ITEM>
<ITEM>Engine Oil/water/fuel-levels-leaks</ITEM>
<ITEM>Exhaust-condition-smoke emission</ITEM>
<ITEM>Tachograph/speedometer-operation</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0021">
<TEXT>Loader Type</TEXT>
<FORMAT>T</FORMAT>
<SKIPABLE>Y</SKIPABLE>
</QUESTION>
<QUESTION ID="0022">
<TEXT>In Cab</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>Y</SKIPABLE>
<ITEMS>
<ITEM>PTO Cab Switch Operation</ITEM>
<ITEM>Handbrake Interlock (if fitted)</ITEM>
<ITEM>Height Warning Signs</ITEM>
<ITEM>Report of Thorough Examination</ITEM>
<ITEM>Training Certificate Card</ITEM>
<ITEM>Operator's Manual</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0023">
<TEXT>Hydraulic Fluid</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>Y</SKIPABLE>
<ITEMS>
<ITEM>Hydraulic Oil Level</ITEM>
<ITEM>Condition of Oil (Visual/Colour)</ITEM>
<ITEM>Hydraulic Oil leaks</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0024">
<TEXT>Attachments</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>Y</SKIPABLE>
<ITEMS>
<ITEM>Operation of Attachments, if fitted</ITEM>
<ITEM>Condition of attachment</ITEM>
<ITEM>Stowing of attachment to vehicle</ITEM>
<ITEM>Hydraulic Leaks</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0025">
<TEXT>Lifting Accessories</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>Y</SKIPABLE>
<ITEMS>
<ITEM>Correct Lifting Accessories</ITEM>
<ITEM>Condition of Lifting Accessories</ITEM>
<ITEM>Report of Thorough Examination</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0026">
<TEXT>Stabilisers</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>Y</SKIPABLE>
<ITEMS>
<ITEM>Stabiliser beam cam-locks</ITEM>
<ITEM>Stabiliser beam secondary locks</ITEM>
<ITEM>Swing up stabiliser blocks</ITEM>
<ITEM>Stabiliser hoses and pipework</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0027">
<TEXT>Loader</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>Y</SKIPABLE>
<ITEMS>
<ITEM>Loader operation</ITEM>
<ITEM>Operation of control levers remotes</ITEM>
<ITEM>Operation of rated capacity indicator</ITEM>
<ITEM>Operation of emergency stop switches</ITEM>
<ITEM>Operation of height warning device</ITEM>
<ITEM>Additional safety systems</ITEM>
<ITEM>Condition of hoses and pipework</ITEM>
<ITEM>Condition of hook and safety catch</ITEM>
<ITEM>Loader stowing device transport position</ITEM>
<ITEM>Attachment of loader to vehicle</ITEM>
</ITEMS>
</QUESTION>
<QUESTION ID="0028">
<TEXT>Is the Loader Crane safe to use?</TEXT>
<FORMAT>B</FORMAT>
<SKIPABLE>Y</SKIPABLE>
</QUESTION>
<QUESTION ID="0029">
<TEXT>Remarks</TEXT>
<FORMAT>T</FORMAT>
<SKIPABLE>Y</SKIPABLE>
</QUESTION>
</VEHICLE_CHECK>
Functional Description
Database and DAL
The existing EPOD_VEHICLE_CHECK table will be modified to add a new field as follows:
- EPL_XFER_FLAG - nvarchar(1)
Existing packages will be modified to allow the creating, editing and selecting of the new field, including but not limited to:
- EPOD_VEHICLE_CHECK_INSERT
- EPOD_VEHICLE_CHECK_SEARCH
- EPOD_VEHICLE_CHECK_SELECT
- EPOD_VEHICLE_CHECK_UPDATE
The existing EPOD_VEHICLE_CHECK DAL object will be changed to:
- Read the new field
- Search by this field
- Write to the field when created
- Update the field when vehicle checks sent
Admin
The existing Auto Export Configuration screen XF_Config.aspx will be modified to add a new Type "VEHICLECHECKS", used when adding, editing or displaying configuration details on the screen.
Server
The webservices ePOD_dataservice.asmx/ePOD_dataservice2.asmx will be modified as follows:
- The POST and SOAP export from String (through ePOD_dataservice.asmx) or XML object (through ePOD_dataservice2.asmx):
- Add EPOD_XML_EXPORT_VEHICLECHECKS - response: All pending checks
Each method will require a request in XML format to be specified through a POST or HTTP request. For example, for a service EPOD_XML_EXPORT_VEHICLECHECKS:
POST /epod_test/webservices/dataservice/ePOD_dataservice.asmx HTTP/1.1
Host: www.calidus-web.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "ePOD_DataService/EPOD_XML_EXPORT_VEHICLECHECKS"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EPOD_XML_EXPORT_VEHICLECHECKS xmlns="ePOD_DataService">
<EXPORT>string</EXPORT>
</EPOD_XML_EXPORT_VEHICLECHECKS>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EPOD_XML_EXPORT_VEHICLECHECKSResponse xmlns="ePOD_DataService">
<EPOD_XML_EXPORT_VEHICLECHECKSResult>string</EPOD_XML_EXPORT_VEHICLECHECKSResult>
</EPOD_XML_EXPORT_VEHICLECHECKSResponse>
</soap:Body>
</soap:Envelope>
The EPOD_XML_EXPORT_VEHICLECHECKS request should be in the following format:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="EPOD_EXPORT_VEHICLECHECKS">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="EPL_SITE_ID"/>
<xs:attribute type="xs:string" name="EPL_USER_ID"/>
<xs:attribute type="xs:string" name="EPL_USER_PASSWORD"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Note: The request requires the following attributes:
- EPL_USER_ID - the user provided to you for requests
- EPL_USER_PASSWORD - the password provided to you for requests
- EPL_SITE_ID - the Site provided to you for requests. This will also filter the responses to this site only.
Example:
<EPOD_EXPORT_VEHICLECHECKS EPL_SITE_ID="DEMO" EPL_USER_ID="ADM" EPL_USER_PASSWORD="TEST" />
The web-service will:
- Retrieve all EPOD_VEHICLE_CHECK records matching that have EPL_XFER_FLAG = "N".
- Build XML response and reply
- Await response
- Set the field EPL_XFER_FLAG = "Y" for all the processed records when an acknowledgement response is received.
The payload XML should be created in the following format:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="EPOD_EXPORT_VEHICLECHECKS_RESPONSE">
<xs:complexType>
<xs:sequence>
<xs:element name="EPOD_VEHICLE_CHECKS" minOccurs="0" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="EPOD_VEHICLE_CHECK" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="EPL_SITE_ID"/>
<xs:element type="xs:string" name="EPL_VEHICLE_ID"/>
<xs:element type="xs:int" name="EPL_VEHICLE_CHECK_DATE"/>
<xs:element type="xs:int" name="EPL_VEHICLE_CHECK_TIME"/>
<xs:element type="xs:string" name="EPL_USER_ID"/>
<xs:element name="EPL_VEHICLE_CHECK_DATA">
<xs:complexType>
<xs:sequence>
<xs:element name="VEHICLE_CHECK">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="QUESTION">
<xs:complexType>
<xs:sequence>
<xs:element name="TEXT" type="xs:string" nillable="true"/>
<xs:element name="FORMAT" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="X"/>
<xs:enumeration value="N"/>
<xs:enumeration value="T"/>
<xs:enumeration value="B"/>
<xs:enumeration value="DDL"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SKIPABLE" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" nillable="true" name="ANSWER" type="xs:string" />
<xs:element name="ITEMS" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="ITEM" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="ANSWER" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="RESULT"/>
</xs:complexType>
</xs:element>
</xs:schema>
Example of a valid file:
<EPOD_EXPORT_VEHICLECHECKS_RESPONSE RESULT="ACK">
<EPOD_VEHICLE_CHECKS>
<EPOD_VEHICLE_CHECK>
<EPL_SITE_ID>DEMO</EPL_SITE_ID>
<EPL_VEHICLE_ID>VEH1</EPL_VEHICLE_ID>
<EPL_VEHICLE_CHECK_DATE>20130101</EPL_VEHICLE_CHECK_DATE>
<EPL_VEHICLE_CHECK_TIME>09000000</EPL_VEHICLE_CHECK_TIME>
<EPL_USER_ID>USER1</EPL_USER_ID>
<EPL_VEHICLE_CHECK_DATA>
<VEHICLE_CHECK>
<QUESTION ID="0001">
<TEXT>Please enter the current mileage of the vehicle.</TEXT>
<FORMAT>N</FORMAT>
<SKIPABLE>N</SKIPABLE>
<ANSWER>5</ANSWER>
</QUESTION>
<QUESTION ID="002">
<TEXT>Please check the following items:</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>N</SKIPABLE>
<ITEMS>
<ITEM ANSWER="Y">Oil Level</ITEM>
<ITEM ANSWER="Y">Tyres</ITEM>
<ITEM ANSWER="Y">Brakes</ITEM>
<ITEM ANSWER="Y">Water</ITEM>
<ITEM ANSWER="Y">Lights</ITEM>
</ITEMS>
</QUESTION>
</VEHICLE_CHECK>
</EPL_VEHICLE_CHECK_DATA>
</EPOD_VEHICLE_CHECK>
</EPOD_VEHICLE_CHECKS>
</EPOD_EXPORT_VEHICLECHECKS_RESPONSE>
Note: The content of EPL_VEHICLE_CHECK_DATA should not include any of the VEHICLE_CHECK_RESPONSE tag or attribute contents OTHER THAN the VEHICLE_CHECK tag.
Note: A valid response is indicated by the RESULT attribute being set to "ACK". If the request received above generates any errors, the errors should be returned in the ERRORS tag, with the RESULT attribute being set to "NAK" instead.
Example of an error response:
<EPOD_EXPORT_VEHICLECHECKS_RESPONSE RESULT="NAK">
<ERRORS>
<ERROR error="description" exception="Full error description"/>
</ERRORS>
</EPOD_EXPORT_VEHICLECHECKS_RESPONSE>
Auto-Export
- Automatically exported
- EPOD_XML_EXPORT_VEHICLECHECKS - All pending checks
The Auto-Export procedure automatically sends recently completed jobs to any third party system.
The Vehicle Checks will be sent according to the standard outbound flow, looking up entries in the Job Export Configuration table "EPOD_XF_CONFIG" and sending out messages via SOAP or POST methods. The new flag against Vehicle Check "EPL_XFER_FLAG" will be initially set to "N" when the vehicle check record is created, but set to "Y" once a vehicle check message has been sent, indicating that the record no longer needs to be sent.
The content of XML messages will be similar to the XML above in the webservice outbound, and is illustrated below:
<EPOD_EXPORT_VEHICLECHECKS_RESPONSE RESULT="ACK">
<EPOD_VEHICLE_CHECKS>
<EPOD_VEHICLE_CHECK>
<EPL_SITE_ID>DEMO</EPL_SITE_ID>
<EPL_VEHICLE_ID>VEH1</EPL_VEHICLE_ID>
<EPL_VEHICLE_CHECK_DATE>20130101</EPL_VEHICLE_CHECK_DATE>
<EPL_VEHICLE_CHECK_TIME>09000000</EPL_VEHICLE_CHECK_TIME>
<EPL_USER_ID>USER1</EPL_USER_ID>
<EPL_VEHICLE_CHECK_DATA>
<VEHICLE_CHECK>
<QUESTION ID="0001">
<TEXT>Please enter the current mileage of the vehicle.</TEXT>
<FORMAT>N</FORMAT>
<SKIPABLE>N</SKIPABLE>
<ANSWER>5</ANSWER>
</QUESTION>
<QUESTION ID="002">
<TEXT>Please check the following items:</TEXT>
<FORMAT>X</FORMAT>
<SKIPABLE>N</SKIPABLE>
<ITEMS>
<ITEM ANSWER="Y">Oil Level</ITEM>
<ITEM ANSWER="Y">Tyres</ITEM>
<ITEM ANSWER="Y">Brakes</ITEM>
<ITEM ANSWER="Y">Water</ITEM>
<ITEM ANSWER="Y">Lights</ITEM>
</ITEMS>
</QUESTION>
</VEHICLE_CHECK>
</EPL_VEHICLE_CHECK_DATA>
</EPOD_VEHICLE_CHECK>
</EPOD_VEHICLE_CHECKS>
</EPOD_EXPORT_VEHICLECHECKS_RESPONSE>
Note: The above XML may require additional SOAP wrappers in order to send via the SOAP protocol. The above shows the XML payload.
Appendix A: TEST PLAN
Test Script / Scenario Reference | Vehicle Checks Auto-Export | Call Number(s): 313959 312018-7 |
Test Script / Scenario Description | Test the export of Vehicle Checks | PASS / ISSUES / FAIL |
Menu Access | None | |
Pre-requisites | None | Tested By: |
Test Objective | To test that the Vehicle Checks are exported when expected, and contain the correct data, is parsable, and does not throw any errors when being produced. | Date: |
Step |
Action |
Result |
Remarks |
P/F |
1 |
Webservice Requests |
|
|
|
|
|
|
|
|
1.01 |
Request a vehicle check export from the web service |
The list of Vehicle Checks which have the EPL_XFER_FLAG set to N is returned |
|
|
1.02 |
Request a vehicle check export from the web service |
It should return no results, as the current list of exported vehicle checks will have been exported |
|
|
1.03 |
Request a vehicle check export with an invalid user/site or password |
No results returned |
|
|
1.04 |
Request other types of export |
The other types of export should still run as per current system. If invalid data is passed, this should be caught by the XSD |
|
|
Step |
Action |
Result |
Remarks |
P/F |
2 |
Auto Export |
|
|
|
|
|
|
|
|
2.01 |
Set up an auto export record to export in SOAP to an external system, and wait for generation |
The export should be generated. After this, reset the flag on EPOD_VEHICLE_CHECK table so that we can run the next test |
|
|
2.02 |
Set up an auto export record to export in POST to an external system, and wait for generation |
The export should be generated. This time, do not reset the flag on EPOD_VEHICLE_CHECK. |
|
|
2.03 |
Wait for another export |
None should be sent, as the flag will have marked the vehicle check records already processed as sent. |
|
|
Appendix B: Quote & Document References
Cost Details |
Activity |
No. of Days |
Rate per Day (£) |
Cost (£ Exc. VAT) |
Requirements |
0.00 |
0 |
£0.00 |
Change Request Evaluation |
0.00 |
0 |
£0.00 |
Functional Specification |
0.50 |
0 |
£0.00 |
Technical Specification |
0.00 |
0 |
£0.00 |
Development |
3.00 |
0 |
£0.00 |
Testing and Release |
0.50 |
0 |
£0.00 |
Implementation |
0.00 |
0 |
£0.00 |
Project Management |
First argument to "number_format" must be a number. |
0 |
£First argument to "number_format" must be a number. |
|
TOTAL |
First argument to "number_format" must be a number. |
|
£First argument to "number_format" must be a number. |
Estimate excludes training, release to live and go live support. |
B.1 References
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
Barry Preece | OBS Project Manager | _____________________________ |
____________________(PRINT) | Client Representative | _____________________________ |