FS 313974 Job Details UDF
BIU Group
Job Details UDF
CALIDUS ePOD
2nd December 2013 - 0.1
Reference: FS 313974 312018-2
Contents
Functional Overview
Client Requirement
Job Type 2 - Planned Collection then enter weighbridge ticket information from on-board weigh system
- As above, job type 1, but at the end of collection before signature, the user must enter weighbridge ticket no and weight.
- Driver and Customer signatures are required
- Proof of Collection paperwork created for these deliveries.
Example load - 20 Collections or a mixed load with Job type 1
Job Type 4 - Ad - Hoc collection - Bag only collection
- As job type 3. User must answer the following:
- Material - Free text entry
- No of bags
- No signatures required
- No POC paperwork created.
Solution Overview
The Collection/Delivery process will be modified to allow user-configurable fields to be added to the Job Details tab. The fields added will be based on the Job Type, defined by the Job Group passed to CALIDUS ePOD. The screen will be scrollable, to allow the user to easily scroll to and enter the details.
Any jobs without Banks to collect from (for example, Collection type 3 or 4, or a delivery), a Done button will be available on the Job Details tab, to allow the users to complete these jobs.
Although this is user-configurable, this is expected to result in the following configurations:
- For Job Type 2, 2 fields will be present on the Job Details tab:
- Weight
- Weighbridge Ticket Number
- For Job Type 4, 4 fields will be present on the Job Details tab:
- No. of Banks
- Bags/Sacks/Boxes
- Weight
- Weighbridge Ticket Number
Scope
- These changes will be made in the latest version of the CALIDUS ePOD product only.
- The changes are dependent on a specific job group being configured with the correct UDF configuration. This is dependent on the Job Group passed to the system on the job.
- The Depot portion of the Collection No is dependant on this data being passed to CALIDUS ePOD in the field EPL_EXTERNAL_REF.
Warning: The design below is somewhat dependent on the configuration of the assumes UDF fields, in that the users will enter a weight and weighbridge number for each job before signature. If it is necessary to instead capture this information when returning to base (i.e. through a Load Metric), then this will affect the POC report produced, specified elsewhere.
Set-up
Pre-requisites
Menu Structure
Data
Table EPOD_UDF_CONFIG must have new records created for the product groups:
- EPL_DESCRIPTION = "Job Type 2 Fields"
- EPL_KEY_TYPE = "J"
- EPL_KEY_VAL = "{EPL_SITE_ID}|{JOBGROUP2}"
- EPL_CONFIG_TYPE = "JOBDETS"
- EPL_UDF_FIELDS:
<FORM NAME="Job Details" REQUIRED="Y"> <FIELD ID="WEIGHBRIDGE_WEIGHT"> <TEXT>Weight</TEXT> <FORMAT>N</FORMAT> <REQUIRED>Y</REQUIRED> </FIELD> <FIELD ID="WEIGHBRIDGE_TICKET"> <TEXT>Weighbridge Number</TEXT> <FORMAT>T</FORMAT> <REQUIRED>Y</REQUIRED> </FIELD> </FORM>
- EPL_DESCRIPTION = "Job Type 4 Fields"
- EPL_KEY_TYPE = "J"
- EPL_KEY_VAL = "{EPL_SITE_ID}|{JOBGROUP4}"
- EPL_CONFIG_TYPE = "JOBDETS"
- EPL_UDF_FIELDS:
<FORM NAME="Job Details" REQUIRED="Y"> <FIELD ID="NUM_BANKS"> <TEXT>No. of Banks:</TEXT> <FORMAT>N</FORMAT> <REQUIRED>Y</REQUIRED> </FIELD> <FIELD ID="BANK_QTY"> <TEXT>Bags/Sacks/Boxes:</TEXT> <FORMAT>N</FORMAT> <REQUIRED>Y</REQUIRED> </FIELD> <FIELD ID="WEIGHBRIDGE_WEIGHT"> <TEXT>Weight</TEXT> <FORMAT>N</FORMAT> <REQUIRED>Y</REQUIRED> </FIELD> <FIELD ID="WEIGHBRIDGE_TICKET"> <TEXT>Weighbridge Number</TEXT> <FORMAT>T</FORMAT> <REQUIRED>Y</REQUIRED> </FIELD> </FORM>
Note: The ID of the fields in these UDF configurations are intended to make it easier for the host systems to extract data when the data is exported. Given that, it is likely that the customer will request for the ID of these fields to be changed slightly to aid in this.
Functional Description
Database and DAL
The existing EPOD_JOB table will be modified to add a new field as follows:
- EPL_UDF_JOBDETS - nvarchar(max)
Existing packages will be modified to allow the creating, editing and selecting of the new field, including but not limited to:
- EPOD_JOB_INSERT
- EPOD_JOB_SEARCH
- EPOD_JOB_SELECT
- EPOD_JOB_SELECT_DATE_RANGE
- EPOD_JOB_UPDATE
The existing EPOD_JOB/SERVICE_JOB DAL object will be changed to:
- Export the new fields in XML requests, before the EPL_CONTAINERS collection.
- Read the new fields
Note: It is not necessary to add this flag as a searchable item. However, if allowing this keeps the packages and DAL objects standard in design, then this can also be done, within the DAL and the packages.
Example: The XML Export of EPOD_JOB records will now look as follows:
<EPOD_JOB> <EPL_SITE_ID></EPL_SITE_ID> <EPL_JOB_ID></EPL_JOB_ID> <EPL_LOAD_ID></EPL_LOAD_ID> <EPL_JOB_TYPE></EPL_JOB_TYPE> <EPL_JOB_GROUP></EPL_JOB_GROUP> <EPL_JOB_INSTRUCTION></EPL_JOB_INSTRUCTION> <EPL_JOB_SIGNATURE></EPL_JOB_SIGNATURE> <EPL_REASON_CODE></EPL_REASON_CODE> <EPL_LINKED_REASON></EPL_LINKED_REASON> <EPL_STATUS></EPL_STATUS> <EPL_CUSTOMER_CODE></EPL_CUSTOMER_CODE> <EPL_PHOTO_ID></EPL_PHOTO_ID> <EPL_PHOTO></EPL_PHOTO> <EPL_ENG_SIGNATURE></EPL_ENG_SIGNATURE> <EPL_SEQUENCE></EPL_SEQUENCE> <EPL_START_PLANNED_DATE></EPL_START_PLANNED_DATE> <EPL_START_PLANNED_TIME></EPL_START_PLANNED_TIME> <EPL_END_PLANNED_DATE></EPL_END_PLANNED_DATE> <EPL_END_PLANNED_TIME></EPL_END_PLANNED_TIME> <EPL_START_ACTUAL_DATE></EPL_START_ACTUAL_DATE> <EPL_START_ACTUAL_TIME></EPL_START_ACTUAL_TIME> <EPL_END_ACTUAL_DATE></EPL_END_ACTUAL_DATE> <EPL_END_ACTUAL_TIME></EPL_END_ACTUAL_TIME> <EPL_DISTANCE_PLANNED></EPL_DISTANCE_PLANNED> <EPL_DISTANCE_ACTUAL></EPL_DISTANCE_ACTUAL> <EPL_DRIVING_TIME></EPL_DRIVING_TIME> <EPL_CUSTOMER_NAME></EPL_CUSTOMER_NAME> <EPL_INVOICED></EPL_INVOICED> <EPL_CUST_SIGNATORY></EPL_CUST_SIGNATORY> <EPL_JOB_CODE></EPL_JOB_CODE> <EPL_CUST_REF></EPL_CUST_REF> <EPL_OFFICE_INSTRUCTION></EPL_OFFICE_INSTRUCTION> <EPL_SIGNED_UNCHECKED></EPL_SIGNED_UNCHECKED> <EPL_SO_NUMBER></EPL_SO_NUMBER> <EPL_TNCS></EPL_TNCS> <EPL_ORDER_DATE></EPL_ORDER_DATE> <EPL_ORDER_TIME></EPL_ORDER_TIME> <EPL_SALES_CONTACT></EPL_SALES_CONTACT> <EPL_USER_NOTES></EPL_USER_NOTES> <EPL_OWNER_NAME></EPL_OWNER_NAME> <EPL_SERVICE_LEVEL></EPL_SERVICE_LEVEL> <EPL_LAST_CHANGED_DATE></EPL_LAST_CHANGED_DATE> <EPL_LAST_CHANGED_TIME></EPL_LAST_CHANGED_TIME> <EPL_ARRIVAL_DATE></EPL_ARRIVAL_DATE> <EPL_ARRIVAL_TIME></EPL_ARRIVAL_TIME> <EPL_XF_VALUES></EPL_XF_VALUES> <EPL_EXT_REF></EPL_EXT_REF> <EPL_TRAILER_ID></EPL_TRAILER_ID> <EPL_PF_DEPOT></EPL_PF_DEPOT> <EPL_PF_TRACKING_NO></EPL_PF_TRACKING_NO> <EPL_JOB_STATUS></EPL_JOB_STATUS> <EPL_UDF_JOBDETS></EPL_UDF_JOBDETS> <EPOD_CONTAINERS></EPOD_CONTAINERS> <EPOD_SERVICES></EPOD_SERVICES> </EPOD_JOB>
Server
Both the dataservice and PDA web request servers (ePOD_DataService.asmx, ePOD_DataService2.asmx and Calidus_ePOD.asmx) and the AutoExport application will need to export the new field EPOD_JOB.EPL_UDF_JOBDETS in their XML requests. This should be handled by the DAL changes above. The responses affected are:
- AutoExport:
- EPOD_EXPORT_LOAD
- EPOD_EXPORT_JOB
- ePOD_DataService:
- EPOD_EXPORT_LOAD_RESPONSE
- EPOD_EXPORT_JOB_RESPONSE
- Calidus_ePOD:
- JOB_LOCK_RESPONSE
- LOAD_RESPONSE
- AUTO_UPDATE_RESPONSE
The processing of Job Update messages from the PDA (in Calidus_ePOD.asmx, JOB_UPDATE_REQUEST) must be modified to update this new field. The EPOD_JOB tag contents will now look like this:
<EPL_SITE_ID></EPL_SITE_ID> <EPL_LOAD_ID></EPL_LOAD_ID> <EPL_JOB_ID></EPL_JOB_ID> <EPL_USER_ID></EPL_USER_ID> <EPL_VEHICLE_ID></EPL_VEHICLE_ID> <EPL_START_DATE_TIME></EPL_START_DATE_TIME> <EPL_ARRIVAL_DATE_TIME></EPL_ARRIVAL_DATE_TIME> <EPL_END_DATE_TIME></EPL_END_DATE_TIME> <EPL_STATUS></EPL_STATUS> <EPL_CONTACT></EPL_CONTACT> <EPL_INVOICED></EPL_INVOICED> <EPL_SIGNED_UNCHECKED></EPL_SIGNED_UNCHECKED> <EPL_USER_NOTES></EPL_USER_NOTES> <EPL_TNCS></EPL_TNCS> <EPL_AMENDED_FLAG></EPL_AMENDED_FLAG> <EPL_JOB_STATUS></EPL_JOB_STATUS> <EPL_UDF_JOBDETS></EPL_UDF_JOBDETS> <CONFIRMATION> <EPL_ENG_SIGNATURE></EPL_ENG_SIGNATURE> <EPL_JOB_SIGNATURE></EPL_JOB_SIGNATURE> </CONFIRMATION> <EXCEPTION type="job"> <EPL_REASON_CODE></EPL_REASON_CODE> </EXCEPTION> <SERVICES> ... </SERVICES> <CONTAINERS> ... </CONTAINERS>
Note: All XSDs should be modified to include the new field, along with standard documentation. This includes but is not limited to:
- EPOD_EXPORT_LOAD_RESPONSE.xsd
- XMLUpload.xsd
- EPOD_EXPORT_JOB.xsd
- EPOD_EXPORT_JOB_RESPONSE.xsd
- ePOD_ImportResponce.xsd
Note: It is not necessary to add this field to the import procedures, as this information is entered for the first time by the PDA user/customer. However, if adding this to the import makes the system easier to maintain, this may be done. The item should be added as optional (minOccurs=0, maxOccurs=1, nillable=true) in the XSD.
Admin
The new UDF Config screen will be modified to add a new value for Config Type:
- "JOBDETS" - labelled as "Col/Del: Job Details".
Note: This is a phase 2 deliverable item - for phase 1, all administration of UDF configuration items will be through the database and will be directly administered by OBS support or implementation staff.
The Details pop-up on the Job Details screen (Job_Details.aspx, accessible by clicking the Select button against a row in the grid) will be modified to add an Additional Details button to the header (after the existing buttons on the left of the pop-up). This button should only appear if the job has something in the EPL_UDF_JOBDETS field, when viewing an existing job, not when adding a new job.
When pressed, this should display a pop-up showing the translated values in this field. The values may not be edited. They should be formatted in a tabular fashion, as follows:
- Each DDL, Boolean, Numeric or Text FIELD will result in the LABEL being displayed (with a trailing colon, if one is not already in the text) in the first cell, followed by the user-entered data (VALUE) in a second cell.
- Each Option will result in the tale row being populated with the the LABEL being displayed (with a trailing colon, if one is not already in the text) in the first cell, followed by a table of each ITEM, up to a maximum of three columns, displayed vertically, in the second cell.
Note: This functionality should be written as part of POC/POD/Service reports, including the BIU POC Report format. This code should be used here, although it should obey the general formatting of this screen.
This pop-up should contain a single button, Close to close the pop-up.
PDA Device
The existing EPOD_JOB table will be modified to add new fields as follows:
- EPL_UDF_JOBDETS - ntext
The existing PDA_SERVICE DAL object will be changed to:
- Export the new fields in XML requests
- Read the new fields
Note: As the database structure is changing with this version, the default values must be carefully set and the database creation script modified to ensure that the standing data is re-downloaded from the server after the changes have been made. This is achieved by setting the "last version changed" variable (lngLastVersionDB) in DBConnection to the latest version number.
The XML Export of EPOD_JOB records will now look as follows:
<EPL_SITE_ID></EPL_SITE_ID> <EPL_LOAD_ID></EPL_LOAD_ID> <EPL_JOB_ID></EPL_JOB_ID> <EPL_USER_ID></EPL_USER_ID> <EPL_VEHICLE_ID></EPL_VEHICLE_ID> <EPL_START_DATE_TIME></EPL_START_DATE_TIME> <EPL_ARRIVAL_DATE_TIME></EPL_ARRIVAL_DATE_TIME> <EPL_END_DATE_TIME></EPL_END_DATE_TIME> <EPL_STATUS></EPL_STATUS> <EPL_CONTACT></EPL_CONTACT> <EPL_INVOICED></EPL_INVOICED> <EPL_SIGNED_UNCHECKED></EPL_SIGNED_UNCHECKED> <EPL_USER_NOTES></EPL_USER_NOTES> <EPL_TNCS></EPL_TNCS> <EPL_AMENDED_FLAG></EPL_AMENDED_FLAG> <EPL_JOB_STATUS></EPL_JOB_STATUS> <EPL_UDF_JOBDETS></EPL_UDF_JOBDETS> <CONFIRMATION> <EPL_ENG_SIGNATURE></EPL_ENG_SIGNATURE> <EPL_JOB_SIGNATURE></EPL_JOB_SIGNATURE> </CONFIRMATION> <EXCEPTION type="job"> <EPL_REASON_CODE></EPL_REASON_CODE> </EXCEPTION> <SERVICES> ... </SERVICES> <CONTAINERS> ... </CONTAINERS>
The Collection/Delivery process (in ColDel.js) will be modified as follows:
The ColDel function will create a PDA_UDF object for the Job Details tab, named PDA_UDF_JOBDETS, passing in the Site and Job Group and the configuration type required ("JOBDETS"). This will result with any UDF configuration retrieved for the section.
In the Job Details tab, the section will be modified to be contained within a scrolling vertical-layout view. A fixed-size, vertical-layout UDF form will be added to the view under any existing fields, if the PDA_UDF_JOBDETS configuration is not null. This will be created with the value in the new field EPL_UDF_JOBDETS from the EPOD_JOB record, if this contains a value, or using EPL_FIELDS of the PDA_UDF_JOBDETS object, if this object is not null. This object is henceforth referred to as the Job Details UDF object.
The validation function isJobComplete should be modified to:
- If PDA_UDF_JOBDETS is not null, the validation procedure of the Job Details UDF object should be called. If this does not pass, a message should be displayed requiring the user to enter the Job Details field, referred to by the Name element of the Job Details configuration. The device should return the user to the Job Details screen on clearing this message.
If the Collection or Delivery job being actioned does not have any containers or products, a Done button should be added to the Job Details tab. This should act in the same way as the existing Done buttons on the Containers and Products tabs, when all items are complete. In summary:
- Validate the job (through the existing isJobComplete function).
- Save the Job (adding this to the existing completeJob function).
- Move to Job Confirmation (through the existing nextJobEndTask function).
Appendix A: TEST PLAN
Test Script / Scenario Reference | Job Details UDF | Call Number(s): 313974 312018-2 |
Test Script / Scenario Description | To show that additional fields can be added to a Job and the Job completed. | PASS / ISSUES / FAIL |
Menu Access | None | |
Pre-requisites | Configure the UDF as per Data section above. Create 4 Collection Jobs, the matching each of the Job Types:
![]() | Tested By: |
Test Objective | To test that: additional fields can be added to a Job and; Jobs without Containers and Products can still be completed. | Date: |
Step | Action | Result | Remarks | P/F |
1 | PDA | |||
1.01 | Start Job Type 1. | There should be no additional fields on the Job Details tab. A Complete button should be present. | ||
1.02 | Complete this job by confirming all banks and entering signatures. | The log file should show the new EPL_UDF_JOBDETS field, but there should be nothing in it. | ||
1.03 | Start Job Type 2. | There should be additional fields (Weight and Weighbridge Number) on the Job Details tab. A Complete button should be present. | ||
1.04 | Confirm all banks. | The unit should display a validation error, requiring the entry of the required UDF fields. | ||
1.05 | Enter all required values. Click Complete on any tab. | The unit should allow move to completion of the job. | ||
1.06 | Complete this job by entering signatures. | The log file should show the new EPL_UDF_JOBDETS field, populated with the data entered. | ||
1.07 | Start Job Type 3. | There should be no additional fields, but there should be a Complete button, on the Job Details tab. There should be no banks. | ||
1.08 | Click Complete | The unit should allow move to completion of the job. | ||
1.09 | Complete this job by entering signatures. | The log file should show the new EPL_UDF_JOBDETS field, but there should be nothing in it. | ||
1.10 | Start Job Type 4. | There should be additional fields (No. of Banks, Bags/Sacks/Boxes, Weight and Weighbridge Number)and a Complete button, on the Job Details tab. There should be no banks. | ||
1.11 | Click the Complete button. | The unit should display a validation error, requiring the entry of the required UDF fields. | ||
1.12 | Enter all required values. Click the Complete button. | The unit should allow move to completion of the job. | ||
1.13 | Complete this job by entering signatures. | The log file should show the new EPL_UDF_JOBDETS field, populated with the data entered. | ||
1.14 | Start the Delivery job. | There should be no additional fields and no Done button, on the Job Details tab. There should be no banks. | ||
1.15 | Click the Done button. | The unit should allow move to completion of the job. | ||
1.16 | Complete this job by entering signatures. | The log file should show the new EPL_UDF_JOBDETS field, but there should be nothing in it. |
Step | Action | Result | Remarks | P/F |
2 | Admin | |||
2.01 | Check the status of all the jobs completed above. | All should be completed confirmed. | ||
2.02 | Find a completed collection and delivery with no Job UDF information. Click Select. | No Additional Details button should be seen on the pop-up. | ||
2.03 | Find a completed collection Job type 2. Click Select. | An Additional Details button should be seen on the pop-up. | ||
2.04 | Click the Additional Details button. | A pop-up should display, showing only the entered UDF information for that job. It cannot be edited. The only possible action on the screen is to close the new pop-up. | ||
2.05 | Find a completed collection Job type 4. Click Select. | An Additional Information button should be seen on the pop-up. | ||
2.06 | Click the Additional Details button. | A pop-up should display, showing only the entered UDF information for that job. The only possible action on the screen is to close the new pop-up. |
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 | 4.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
Ref No | Document Title & ID | Version | Date |
1 | UG 291094 EPOD Admin User Guide | 2.0 | 4/4/2012 |
2 | [http://172.198.45.54/calidus-assist/OBS/index.php/UG_291097_EPOD_Client_User_Guide UG 291097 EPOD Client User Guide | 3.0 | 23/4/2013 |
3 | REQ 312018 Bag It Up EPOD Requirements | 0.3 | 01/10/2013 |
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 | _____________________________ |