FS 341168 Palletline Integration: Difference between revisions
From Calidus HUB
(v0.1 - Initial Draft) |
(v0.6 - Amended layout of the signature screen and added examples.) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
{{#vardefine:System|''CALIDUS'' ePOD}} | {{#vardefine:System|''CALIDUS'' ePOD}} | ||
{{#vardefine:Doc_Title|Palletline Interface}} | {{#vardefine:Doc_Title|Palletline Interface}} | ||
{{#vardefine:Version|0. | {{#vardefine:Version|0.6}} | ||
{{#vardefine:Date| | {{#vardefine:Date|13th April 2017}} | ||
{{#vardefine:Reference|341168}} | {{#vardefine:Reference|341168}} | ||
{{#vardefine:Year|2017}} | {{#vardefine:Year|2017}} | ||
Line 24: | Line 24: | ||
== Client Requirement == | == Client Requirement == | ||
Andy Ward advises that David Hathaway Transport are joining the Palletline network and require the POD debrief information to be sent from | Andy Ward advises that David Hathaway Transport are joining the Palletline network and require the POD debrief information to be sent from CALIDUS ePOD to Palletline's Contrado system. | ||
Line 32: | Line 32: | ||
* New Palletline Jobs will be sent to Partnerlink through the existing JobShare format, or directly to the back-end TMSs. | * New Palletline Jobs will be sent to Partnerlink through the existing JobShare format, or directly to the back-end TMSs. | ||
* When planned, these jobs will be sent to ''CALIDUS'' ePOD through the existing interface in use for the existing partners, and will be identified with a new Job Group e.g. PLINE. The Pallet Depot will be set to the Palletline depot code provided to the carrier, in Hathaway's case, this is "053". The Pallet Consignment will be sent in as the Palletline ID. {{Note}} This will require change to the sending process from the Partner's TMS system to accommodate these new values for every partner that wishes to join the Palletline network. | * When planned, these jobs will be sent to ''CALIDUS'' ePOD through the existing interface in use for the existing partners, and will be identified with a new Job Group e.g. PLINE. The Pallet Depot will be set to the Palletline depot code provided to the carrier, in Hathaway's case, this is "053". The Pallet Consignment will be sent in as the Palletline ID. {{Note}} This will require change to the sending process from the Partner's TMS system to accommodate these new values for every partner that wishes to join the Palletline network. | ||
* The jobs will be completed like any other normal delivery. | * The jobs will be completed like any other normal delivery. | ||
* When jobs are completed, the existing AutoExport functionality will update the Partners (identified through their Partner Codes) using a flat-file export of the job details in OBS Logistics' XML format, as it does now. | * When jobs are completed, the existing AutoExport functionality will update the Partners (identified through their Partner Codes) using a flat-file export of the job details in OBS Logistics' XML format, as it does now. | ||
Line 65: | Line 64: | ||
* Palletline's Contrado system will be updated separately to the partner's TMS systems. | * Palletline's Contrado system will be updated separately to the partner's TMS systems. | ||
* The Consignment will already exist within the Palletline Contrado system, ready for updating with POD information from ''CALIDUS'' ePOD. | * The Consignment will already exist within the Palletline Contrado system, ready for updating with POD information from ''CALIDUS'' ePOD. | ||
{{Warning}} If this process requires the files to be sent to an FTP destination, the FTP server, username and password for this remote server must be provided. | |||
{{Warning}} The configuration and the development below assumes that the files created for the Palletline Contrado system will always be placed in the same folder or FTP destination for the depot. If this requires to be identified through different sub-folders for each owning (rather than executing) depot, then this will require additional development. | |||
Line 70: | Line 74: | ||
The reason codes used by Palletline are not currently used in the Partnerlink system | The reason codes used by Palletline are not currently used in the Partnerlink system, so these will not cause any contention in the system. It is assumed that any conflicts between these reason codes and any generic or partner-specific reason codes of the same type will be resolved by the partners. | ||
This change applies only to Customer and Driver signatures at Job Confirmation. Other signatures (for example, Vehicle Checks, Pre-job signatures, etc) are not affected and will not produce SVG signatures. They are not required for this functionality. | |||
Line 82: | Line 89: | ||
== Data == | == Data == | ||
A new Auto-Export configuration will be created for each partner that requires it, linked to the job group PLINE: | |||
* EPL_XF_CONFIG_ID - As required. For example, for Hathaways, this may be "PLINE_L02". | |||
A new Auto-Export configuration will be created for each partner that requires | |||
* EPL_XF_ID - PLINE | * EPL_XF_ID - PLINE | ||
* EPL_XF_TYPE - FILE | * EPL_XF_TYPE - FILE | ||
* EPL_XF_DIRECTION - O | * EPL_XF_DIRECTION - O | ||
* EPL_XF_DESTINATION - E:\ftpserver\PartnerLink\ | * EPL_XF_DESTINATION - E:\ftpserver\PartnerLink\PALLETLINE_TST\L02\OUT | ||
* EPL_EXPORT_JOB_TYPES - D | * EPL_EXPORT_JOB_TYPES - D | ||
{{Note}} This configuration is for the test system and assumes that the folder will be created. | {{Note}} This configuration is for the test system and assumes that the folder will be created. | ||
{{Warning}} This configuration above assumes that the files will be placed in the {{#var:System}} local file system - in this case, an FTP service, username and password must be provided to Palletline's Contrado system to collect the files from this location only. Alternatively, if this process requires the files to be sent to an FTP destination, the FTP server, username and password for this remote server must be provided. | {{Warning}} This configuration above assumes that the files will be placed in the {{#var:System}} local file system - in this case, an FTP service, username and password must be provided to Palletline's Contrado system to collect the files from this location only. Alternatively, if this process requires the files to be sent to an FTP destination, the FTP server, username and password for this remote server must be provided. | ||
{{Warning}} Further to this, the configuration and the development below assumes that the files created for the Palletline Contrado system will always be placed in the same folder or FTP destination for the depot. If this requires to be identified through different sub-folders for each owning (rather than executing) depot, then this will require additional development. | |||
A new Job Group "PLINE" will be set up for Palletline jobs. This will initially be a copy of the Palletforce job group "PALLET". The Export Config ID will be set to the Export Configuration created above (e.g. "PLINE_L02"). | |||
Palletline Reason Codes will be added for all sites that require the ability to complete Palletline jobs, as follows: | Palletline Reason Codes will be added for all sites that require the ability to complete Palletline jobs, as follows: | ||
Line 125: | Line 137: | ||
The interface of job data from the host TMS systems will be modified to identify the Pallet System in use | The interface of job data from the host TMS systems will be modified to identify the Pallet System in use and the Consignment ID. For Palletline jobs, this will be: | ||
* PF Tracking Number - Consignment | * PF Tracking Number - Consignment ID. {{Note}} The Palletline ID is noted to be field 4 in the Palletline manifest download file. | ||
* Tracking System - "PLINE" | * Tracking System - "PLINE" | ||
Line 173: | Line 185: | ||
* PLINE, description "Palletline" | * PLINE, description "Palletline" | ||
{{Note}} The Filename field will be increased in length to match the | {{Note}} The Filename field will be increased in length to match the Destination field. | ||
{{Note}} When complete, the standard interface configuration documentation must be modified to add the new Palletline interface. This is referenced in [[#Appendix B: Quote & Document References|Appendix B]]. | {{Note}} When complete, the standard interface configuration documentation must be modified to add the new Palletline interface. This is referenced in [[#Appendix B: Quote & Document References|Appendix B]]. | ||
Line 187: | Line 199: | ||
== Mobile Device Application == | == Mobile Device Application == | ||
=== Database/DAL === | === Database/DAL === | ||
The EPOD_JOB_GROUP table and DAL object will have field EPL_SVG_SIGNATURE_IND added to them, allowing a | The EPOD_JOB_GROUP table and DAL object will have field EPL_SVG_SIGNATURE_IND added to them, allowing a numeric value defaulting to 0. The field will be populated upon log-on through the Logon Response message from the server, defaulting to 0. | ||
The EPOD_JOB database table and DAL object will have fields EPL_JOB_SIGNATURE_SVG and EPL_ENG_SIGNATURE_SVG added to them, allowing the maximum text. | The EPOD_JOB database table and DAL object will have fields EPL_JOB_SIGNATURE_SVG and EPL_ENG_SIGNATURE_SVG added to them, allowing the maximum text. | ||
Line 195: | Line 207: | ||
=== Signature === | === Signature === | ||
The signature captured by the device will be 25% shorter by changing the signature height from the base height sigHeight from 235 to 180. | The signature captured by the device will be 25% shorter by changing the signature height from the base height sigHeight from 235 to 180. The view containing this will also be shortened. Note that the background customer text view should be styled correctly for this change, moving the styling to the central Style repository and reducing the height of the font to fit the new signature height. | ||
The signature itself will be positioned to the top of the available space rather than the centre. | The signature itself will be positioned to the top of the available space rather than the centre. | ||
The Signature Terms and Conditions view will be increased in size from 40% to 50% and be moved up 10%, making better use of the available space from the smaller signature. | |||
{{Note}} All these style changes can be styled so that they only apply when the new SVG signatures are required for the jobs being completed (through the new EPL_SVG_SIGNATURE_IND Job Group flag), so that current customers and customers that do not require SVG signatures are unaffected and keep the same layout. | |||
<gallery widths=250px heights=300px perrow=3> | |||
File:FS_341168_Signature1.PNG|''Signature with SVG required'' | |||
File:FS_341168_Signature2.PNG|''Without SVG required'' | |||
</gallery> | |||
The captured vector signature will be blue, and 2 pixels wide. | The captured vector signature will be blue, and 2 pixels wide. | ||
The vector | The vector SVG tag will include the height and width as integers, set from the base width and height values (sigHeight and sigWidth). | ||
The vector signature result will be parsed to remove all decimal components and the results passed back to the success callback function p_fncSuccess. The decimal components can be removed using a Regular Expression as follows (example): | The vector signature result will be parsed to remove all decimal components and the results passed back to the success callback function p_fncSuccess. The decimal components can be removed using a Regular Expression as follows (example): | ||
vars.vector = vars.vector.replace(/\.\d*?(\,|\s)/g, $1); | vars.vector = vars.vector.replace(/\.\d*?(\,|\s)/g, $1); | ||
{{Note}} The vector SVG signature should still be captured on touching the screen on the device, as this is used to determine whether the user has entered a signature. However, this will only be returned to the function if the new Job Group EPL_SVG_SIGNATURE_IND flag is enabled (set to 1). | {{Note}} The vector SVG signature should still be captured on touching the screen on the device, as this is used to determine whether the user has entered a signature. However, this will only be returned to the function if the new Job Group EPL_SVG_SIGNATURE_IND flag is enabled (set to 1). If the signature process is called by a process that is not Customer or Driver signature at Job Confirmation (for example, Vehicle Checks or Pre-Job signatures), no SVG signature will be returned. | ||
The utility function to control the sequence of tasks after a job is complete, including signatures (funNextJobEndTask) will be modified to add an extra parameter p_strSVG to the success callback function definition. This will then be used to update all the jobs being completed with the SVG Signature returned. This will be done for both Customer and Driver Signature, updating the appropriate fields on PDA_JOB (respectively EPL_JOB_SIGNATURE_SVG and EPL_ENG_SIGNATURE_SVG). | The utility function to control the sequence of tasks after a job is complete, including signatures (funNextJobEndTask) will be modified to add an extra parameter p_strSVG to the success callback function definition. This will then be used to update all the jobs being completed with the SVG Signature returned. This will be done for both Customer and Driver Signature, updating the appropriate fields on PDA_JOB (respectively EPL_JOB_SIGNATURE_SVG and EPL_ENG_SIGNATURE_SVG). | ||
Line 222: | Line 242: | ||
... | ... | ||
{{Note}} This device work has been extensively prototyped and is available to be | {{Note}} This device work has been extensively prototyped and is available to be used by the developer as a base for the above developments. | ||
== Server Job Update Processing == | == Server Job Update Processing == | ||
When processing the job update back from the server (in EPODServer.MessageProcess.ProcessJobUpdate), the two new fields EPL_JOB_SIGNATURE_SVG and EPL_ENG_SIGNATURE_SVG will be saved to the EPOD_JOB record, if the tags exist and contain data. | When processing the job update back from the server (in EPODServer.MessageProcess.ProcessJobUpdate), the two new fields EPL_JOB_SIGNATURE_SVG and EPL_ENG_SIGNATURE_SVG will be saved to the EPOD_JOB record, if the tags exist and contain data. Unlike JPEG signatures, these SVG signatures need only be stored directly in the database, not translated and saved to the filesystem. | ||
{{Note}} The SVG signatures can only be populated if normal signatures are also populated, therefore no further work is required to use the SVG signatures in any other modules other than the Palletline export at this time (such as the POD/POC reports). | |||
Line 287: | Line 309: | ||
!Field !!EPOD Field !!Notes | !Field !!EPOD Field !!Notes | ||
|- | |- | ||
|Id ||EPL_PF_TRACKING_NO || | |Id ||EPL_PF_TRACKING_NO || | ||
|- | |- | ||
|PodDate || EPL_ACTUAL_END_DATE in YYYY-MM-DD format|| | |PodDate || EPL_ACTUAL_END_DATE in YYYY-MM-DD format|| | ||
|- | |- | ||
|PodName || EPL_CUST_SIGNATORY|| | |PodName || EPL_CUST_SIGNATORY|| | ||
|- | |- | ||
|PodTime || EPL_ACTUAL_END_TIME in HH:MM:SS format, zero-filled|| | |PodTime || EPL_ACTUAL_END_TIME in HH:MM:SS format, zero-filled|| | ||
|- | |- | ||
|Signature || EPL_SVG_CUST_SIGNATORY, formatted ||See following for format details. | |Signature || EPL_SVG_CUST_SIGNATORY, formatted ||See following for format details. | ||
|- | |- | ||
|PhotosAvailable ||"0", always || | |PhotosAvailable ||"0", always || | ||
|- | |- | ||
|Latitude || ||See following. | |Latitude || ||See following. | ||
|- | |- | ||
|LatitudeIndicator || ||See following. | |LatitudeIndicator || ||See following. | ||
|- | |- | ||
|Longitude || ||See following. | |Longitude || ||See following. | ||
|- | |- | ||
|LongitudeIndicator || ||See following. | |LongitudeIndicator || ||See following. | ||
|- | |- | ||
|Item || ||One created per pallet on the job. All fields below come from EPOD_CONTAINER. | |Item || ||One created per pallet on the job. All fields below come from EPOD_CONTAINER. | ||
|- | |- | ||
|No ||Last 2 digits of EPL_CONTAINER_ID || | |No ||Last 2 digits of EPL_CONTAINER_ID || | ||
|- | |- | ||
|Status ||EPL_REASON_CODE if populated, else "MPOD" ||See following. | |Status ||EPL_REASON_CODE if populated, else "MPOD" ||See following. | ||
|- | |- | ||
|Notes ||EPL_CUST_COMMENTS if populated, else do not include the tag. || | |Notes ||EPL_CUST_COMMENTS if populated, else do not include the tag. || | ||
|} | |} | ||
{{Note}} Unless noted otherwise, all fields are obtained from EPOD_JOB. | {{Note}} Unless noted otherwise, all fields are obtained from EPOD_JOB. | ||
Line 347: | Line 369: | ||
See P:\EPOD\Support\Utils\Web Tools\SVGHEXConvert\SVGHEXConvert.html for details and capability of testing results. | See P:\EPOD\Support\Utils\Web Tools\SVGHEXConvert\SVGHEXConvert.html for details and capability of testing results. | ||
{{Note}} This is coded in JavaScript to show capability and test the results - it is not expected that this test/prototype code will be used within the export process. Note that the code uses basic string manipulation and conversion routines as follows: | |||
• RegExp replaces | |||
• String.split | |||
• parseInt | |||
• toString and toSting(16) | |||
The conversion from HEX back to SVG in this test page is required only to aid testing, and is not required in the server or export processes. | |||
''' Codes ''' | ''' Status Codes ''' | ||
* For claused pallets - The reason code entered will be included in the Code tag at all times if present. If this is not present, use the code MPOD. The user comment (if present) will be included in the Notes tag. | * For claused pallets - The reason code entered will be included in the Code tag at all times if present. If this is not present, use the code MPOD. The user comment (if present) will be included in the Notes tag. | ||
* For cancelled jobs - The Job reason code will be identified against all pallets on the job, in the Code field. No comment is required. | * For cancelled jobs - The Job reason code will be identified against all pallets on the job, in the Code field. No comment is required. | ||
* For delivered jobs - Any pallets with a reason code against them will have the reason code entered in the Code tag. For pallets that have been successfully delivered, use the code MPOD. | * For delivered jobs - Any pallets with a reason code against them will have the reason code entered in the Code tag. For pallets that have been successfully delivered, use the code MPOD. | ||
{{Note}} Should the job be cancelled through the Admin system rather than from a device, each pallet on the job should be sent in this message with the code NDNV. | |||
Line 445: | Line 476: | ||
|Action=Cancel one SVG job. | |Action=Cancel one SVG job. | ||
Complete both of the other jobs, cancelling some containers with different reasons. | Complete both of the other jobs, cancelling some containers with different reasons. Clause some delivered containers. | ||
Clause some delivered containers. | |||
Check the database. | Check the database. | ||
|Result=The jobs requiring SVG signatures have a value in both SVG signature fields. The SVG signatures are valid, and have width and height attributes with | |Result=The jobs requiring SVG signatures have a value in both SVG signature fields. The SVG signatures are valid, and have width and height attributes with integer values only (check the data, and load the SVG into a website to check formatting - one has been created in WebTools for this purpose). | ||
The job not requiring SVG signatures has both fields blank. | The job not requiring SVG signatures has both fields blank. | ||
Line 459: | Line 488: | ||
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | |Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | ||
|Title=Auto-Export | |Title=Auto-Export | ||
|Notes=Ensure that the Job Group with SVG signatures required is linked to an XF Configuration for type PLINE. | |Notes=Ensure that the Job Group with SVG signatures required is linked to an XF Configuration for type PLINE. Ensure that this configuration points to a file location. Ensure that the other job's job group is not linked to this XF Configuration. | ||
Ensure that this | |||
Ensure that the other job's job group is not linked to this XF Configuration. | |||
}} <!--INSERT TESTS HERE --> {{TestPlan_Test | }} <!--INSERT TESTS HERE --> {{TestPlan_Test | ||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | ||
Line 472: | Line 497: | ||
The job not requiring export has no file. | The job not requiring export has no file. | ||
|Remarks= | |||
|PassFail= | |||
}}{{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Create a new job requiring export to Palletline with multiple containers and cancel using the Admin console. | |||
|Result=The Job has a Palletline export file created for it, with the correct name. The file is populated correctly. The GPS is not present. There is no signature. The containers are included in the file, marked with status NDNV. | |||
|Remarks= | |Remarks= | ||
|PassFail= | |PassFail= |