FS 324096 Pall-Ex Interface: Difference between revisions
From Calidus HUB
m (Minor formatting changes) |
(v1.1 - Removed reference to Barcode scanning) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
{{#vardefine:System|''CALIDUS'' ePOD}} | {{#vardefine:System|''CALIDUS'' ePOD}} | ||
{{#vardefine:Doc_Title|Pall-Ex Interface}} | {{#vardefine:Doc_Title|Pall-Ex Interface}} | ||
{{#vardefine:Version| | {{#vardefine:Version|1.1}} | ||
{{#vardefine:Date| | {{#vardefine:Date|2nd September 2015}} | ||
{{#vardefine:Reference|324096}} | {{#vardefine:Reference|324096}} | ||
{{#vardefine:Year|2015}} | {{#vardefine:Year|2015}} | ||
Line 41: | Line 41: | ||
The Admin Export Configuration screen will be changed to allow the parameters for the new Pall-Ex extract to be specified against it. | The Admin Export Configuration screen will be changed to allow the parameters for the new Pall-Ex extract to be specified against it. | ||
<!-- {{#var:System}} will be modified to store alternative pallet barcode fields. This will be controlled by a flag against the job group. | |||
--> | |||
The Partnerlink Import process will be modified to add a field to the import process to identify the Pallet System in use (for example, Palletforce, Pall-Ex, Fortec). | The Partnerlink Import process will be modified to add a field to the import process to identify the Pallet System in use (for example, Palletforce, Pall-Ex, Fortec). Additionally, this will generate the Pall-Ex pallet barcodes and store them into a field on the job. | ||
Line 48: | Line 50: | ||
At least 2 messages will be sent to update the Pall-Ex TWINE system, by connecting through three methods of their existing webservice: | At least 2 messages will be sent to update the Pall-Ex TWINE system, by connecting through three methods of their existing webservice: | ||
* AddEpodConsignment – One message sent per cancelled or completed | * AddEpodConsignment – One message sent per cancelled consignment, to update the consignment as cancelled delivery, with an appropriate reason code. | ||
* AddEpodPallet – One message sent per cancelled or completed pallet, to update the pallets and the consignment as cancelled or completed delivery, with an appropriate reason code. | |||
* AddMPodImage – to upload the signature image from the delivery to the consignment. | * AddMPodImage – to upload the signature image from the delivery to the consignment. | ||
The process will check the responses of sending these messages to the webservice, and will store the results in the Audit tables within {{#var:System}}. Messages that process in error will be marked as such, so that they may be identified and reprocessed manually if required. | The process will check the responses of sending these messages to the webservice, and will store the results in the Audit tables within {{#var:System}}. Messages that process in error will be marked as such, so that they may be identified and reprocessed manually if required. | ||
The Mobile Device Application will be modified to allow Job Group (exclusive, non-exclusive and generic) reason codes for Job and Detail reason codes as well as Clause reason codes. {{Note}} For a more detailed explanation of exclusive, non-exclusive and generic reason codes, see [[FS 318572 PART Job Group Level Clausing]], referenced in [[#Appendix B: Quote & Document References|Appendix B]]. | |||
The Mobile Device Application will also be modified to allow | <!-- The Mobile Device Application will also be modified to allow scanning of the alternative barcode specified in the new job group configuration flag, and to display this alternative container ID in any screens that currently display the system Container ID (i.e. the Partnerlink Pallet ID). --> | ||
Line 62: | Line 65: | ||
* Jobs will be sent to Partnerlink and through to {{#var:System}} using the existing JobShare interfaces. | * Jobs will be sent to Partnerlink and through to {{#var:System}} using the existing JobShare interfaces. | ||
* Pallets for these Pallet Networks will be labelled with their own network's pallet labels, and not Partnerlink labels, like PalletForce. It is expected that pallets will be created by {{#var:System}} in the normal way, identifying the individual pallets by assigning each pallet a unique ID, counting from the 1 to the total number of pallets. | * Pallets for these Pallet Networks will be labelled with their own network's pallet labels, and not Partnerlink labels, like PalletForce. It is expected that pallets will be created by {{#var:System}} in the normal way, identifying the individual pallets by assigning each pallet a unique ID, counting from the 1 to the total number of pallets. | ||
* The Consignment Barcode will be sent to {{#var:System}} from the host TMS - this will be used to generate the Pall-Ex pallet barcodes, and to update Pall-Ex' TWINE system on completion of the jobs. | |||
* It has been confirmed that Pall-Ex pallet barcodes are generated by adding a 2-digit, zero-filled unbroken sequence to the Consignment Barcode, and the system will generate these barcodes based on this. If this is not correct, it is unlikely that the solution described within this document will be successful. | |||
* The new partners will accept updates into their Transport systems from {{#var:System}} in the standard OBS format - the pallet network system will be updated separately. This will require a modification to identify consignments as being completed for Pall-Ex. | * The new partners will accept updates into their Transport systems from {{#var:System}} in the standard OBS format - the pallet network system will be updated separately. This will require a modification to identify consignments as being completed for Pall-Ex. | ||
* The Consignment will already exist within the Pall-Ex TWINE system, ready for updating with POD information from {{#var:System}}. | * The Consignment will already exist within the Pall-Ex TWINE system, ready for updating with POD information from {{#var:System}}. | ||
Line 111: | Line 116: | ||
!Epod Code !!Description !!Type !!Note | !Epod Code !!Description !!Type !!Note | ||
|- | |- | ||
|01 ||Pallet Delivered || ||Default for all jobs | |01 ||Pallet Delivered || ||Default for all jobs | ||
|- | |- | ||
|02 ||Pallet Delivered Short ||CLA || | |02 ||Pallet Delivered Short ||CLA || | ||
|- | |- | ||
|03 ||Pallet Delivered Damaged ||CLA || | |03 ||Pallet Delivered Damaged ||CLA || | ||
|- | |- | ||
|04 ||Late Economy Delivery ||CLA ||Possibly not required | |04 ||Late Economy Delivery ||CLA ||Possibly not required | ||
Line 123: | Line 128: | ||
|06 ||Late Timed Delivery ||CLA ||Possibly not required | |06 ||Late Timed Delivery ||CLA ||Possibly not required | ||
|- | |- | ||
|07 ||Refused - R.T.S - Damaged ||DET || | |07 ||Refused - R.T.S - Damaged ||DET || | ||
|- | |- | ||
|08 ||Refused - R.T.S - Not Required ||DET || | |08 ||Refused - R.T.S - Not Required ||DET || | ||
|- | |- | ||
|09 ||Other ||JOB/DET || | |09 ||Other ||JOB/DET || | ||
|- | |- | ||
|10 ||No Customer Delivery Paperwork ||CLA ||Possibly not required | |10 ||No Customer Delivery Paperwork ||CLA ||Possibly not required | ||
|- | |- | ||
|13 ||Not Booked In - Awaiting Instructions || ||Not required | |13 ||Not Booked In - Awaiting Instructions || ||Not required | ||
|- | |- | ||
|14 ||Collection Return Received || ||Not required | |14 ||Collection Return Received || ||Not required | ||
|- | |- | ||
|15 ||Company Stamped ||CLA ||Possibly not required | |15 ||Company Stamped ||CLA ||Possibly not required | ||
Line 139: | Line 144: | ||
|16 ||Handball Delivered ||CLA ||Possibly not required | |16 ||Handball Delivered ||CLA ||Possibly not required | ||
|- | |- | ||
|17 ||In Progress || ||Not required | |17 ||In Progress || ||Not required | ||
|- | |- | ||
|18 ||Arrived At Delivery point || ||Not required | |18 ||Arrived At Delivery point || ||Not required | ||
|- | |- | ||
|19 ||Collection Attempted ||JOB ||Possibly not required | |19 ||Collection Attempted ||JOB ||Possibly not required | ||
|} | |} | ||
The interface of job data from the host TMS systems will be modified to identify the Pallet System in use (for example, Palletforce, Pall-Ex, Fortec). This will also pass in the Consignment Barcode. For Pall-Ex jobs, this will be: | |||
* PF Tracking Number - Consignment Barcode | |||
* Tracking System - "PALLEX" | |||
Line 151: | Line 160: | ||
= Functional Description = | = Functional Description = | ||
== Database == | == Database == | ||
The database package used to retrieve the job transfer configurations must be modified. | The database package used to retrieve the job transfer configurations must be modified. | ||
Line 209: | Line 204: | ||
AND CHARINDEX(J.EPL_JOB_TYPE ,c.EPL_EXPORT_JOB_TYPES)>0 | AND CHARINDEX(J.EPL_JOB_TYPE ,c.EPL_EXPORT_JOB_TYPES)>0 | ||
WHERE J.EPL_JOB_ID=@EPL_JOB_ID and J.EPL_SITE_ID=@EPL_SITE_ID | WHERE J.EPL_JOB_ID=@EPL_JOB_ID and J.EPL_SITE_ID=@EPL_SITE_ID | ||
<!-- A new flag will be added to the Job Group table EPOD_JOB_GROUP, to control which container ID will be used when scanning containers on the mobile device. This will be called "EPL_CONTAINER_SCANNED" and will be a text field, defaulting to the value "EPL_CONTAINER_ID". --> | |||
== Admin == | |||
=== Export Configuration Screen === | |||
The Admin Export Configuration screen will be changed to allow the parameters for the new Pall-Ex extract to be specified against it. | |||
[[File:FS_324096_ExportConfig1.PNG|border|600px]] | |||
<br />''Export Configuration Maintenance''<br /> | |||
The ID drop-down list will be modified to allow the new values below when entering a new configuration: | |||
* PALLEX | |||
* FORTRACK | |||
<!-- === Job Group Maintenance Screen === | |||
A new flag will be added to the Job Group table EPOD_JOB_GROUP, to control which container ID will be used when scanning containers on the mobile device. | |||
[[File:FS_3274096_JobGroup1.PNG|border|600px]] | |||
<br />''Job Group Maintenance''<br /> | |||
This will be added to the PDA tab and called "Pallet Barcode". The field will be a drop-down list of values, as follows: | |||
* "EPL_CONTAINER_ID" (the default value) - labelled as "Container ID" | |||
* "EPL_CODE_1" - labelled as "Alternative ID 1" | |||
* "EPL_CODE_2" - labelled as "Alternative ID 2" | |||
* "EPL_CODE_3" - labelled as "Alternative ID 3" | |||
{{Note}} The Partnerlink Import process for Pall-Ex jobs is currently the only process that will populate these fields, and it is expected that this will populate only the first field - the other values been added in case of any potential data contentions. | |||
The tab contents will be organised to ensure that this field is in line with all others, and is efficiently organised. | |||
=== Container/Products Screen === | |||
This screen will be modified to display the new External Container IDs. | |||
[[File:FS_3274096_Container1.PNG|border|600px]] | |||
<br />''Container/Product Maintenance''<br /> | |||
The table displaying containers will be modified to add the alternative IDs to the display, depending on the job group of the job being displayed. The container ID will always be displayed, and a column will be added to display the appropriate external ID field, depending on the new Job Group configuration flag EPL_CONTAINER_SCANNED having a value other than "EPL_CONTAINER_ID": If so, the field indicated in the flag will be displayed (for example, if the value is "EPL_CODE_2", the value of field EPL_CODE_2 will be displayed in this column). If the value of the flag is "EPL_CONTAINER_ID", this column will not be displayed. | |||
[[File:FS_3274096_Container2.PNG|border]] | |||
<br />''Container/Product Add/Edit pop-up screen''<br /> | |||
The Pop-up Container Entry/Amend screen will be modified to allow entry and amendment of the fields EPL_CODE_1, EPL_CODE_2 and EPL_CODE_3. These will be added under the existing Container ID. | |||
--> | |||
== Mobile Device Application == | |||
=== Reason Code Entry === | |||
The Mobile Device Application will also be modified to allow Job Group (exclusive, non-exclusive and generic) reason codes for Job and Detail reason codes as well as Clause reason codes. {{Note}} For a more detailed explanation of exclusive, non-exclusive and generic reason codes, see [[FS 318572 PART Job Group Level Clausing]], referenced in [[#Appendix B: Quote & Document References|Appendix B]]. | |||
This will be completed by, wherever reason codes are selected for showing throughout the application, the same code changes applied in the above referenced specification are also applied there. | |||
<!-- === Database/DAL === | |||
The Job Group table will be modified to store the new flag EPL_CONTAINER_SCANNED. This will be populated on initial log on and, if not received, will default to the value "EPL_CONTAINER_ID". All functions that update or create the Job Group table will be modified to set this value. | |||
The PDA_CONTAINER DAL object will be modified to return the displayable container ID, based on the configuration on the Job Group. | |||
A new property (EPL_DISP_ID) and a new method (getDispID) will be added to the object, to allow the retrieval of the correct field. The new property will default to null. | |||
The procedure will have a parameter of the field to be displayed. If the new object property EPL_DISP_ID is not null, the procedure will return the value in this property. If this property is null, the procedure will check the value of the field specified. If this is not null or a zero-length string, the procedure will return this value, otherwise it will return the value of the system container ID (EPL_CONTAINER_ID). | |||
The PDA_CONTAINERS DAL object will be modified to search by the field configured against the job group. The existing find method will be modified to accept a parameter of the field being searched. The search will check against this value, or the value of EPL_CONTAINER_ID, and return the container if a match has been found. | |||
=== Collection/Delivery === | |||
The process will change to search, scan and enter containers using the field identified in the new Job Group configuration flag EPL_CONTAINER_SCANNED. | |||
The process will perform an initial validation check on whether the configured container display field exists in first container on the screen, to ensure that, if this is set to a value that doesn't exist within the mobile device application, it will default the value of EPL_CONTAINER_SCANNED to "EPL_CONTAINER_ID". | |||
Whenever a container ID is displayed on the screen or an alert or message is displayed to the user, the screen currently displays the system container ID (currently the Partnerlink Pallet ID). The process will be modified to display the ID required by the configuration against the Job Group, in the new flag EPL_CONTAINER_SCANNED. This will be achieved by calling the new function created for this purpose (the new PDA_CONTAINER method getDispID, passing the value of the Job Group configuration flag EPL_CONTAINER_SCANNED). | |||
Items affected are numerous in this screen, but consist of: | |||
* The Container list | |||
* The Products tab title | |||
* All alerts and informational messages to the users, when scanning, entering or delivering containers. | |||
{{Note}} The pop-up Info screen will not require modification, as the container and alternative values are already displayed here. | |||
Whenever a container barcode is scanned or entered, the process will find the barcode scanned by the user in the containers list. The function to do this (the find method of the PDA_CONTAINERS object) will be amended as part of this specification to find the container, and the call to this function will be modified to pass in the value of the Job Group configuration flag EPL_CONTAINER_SCANNED. | |||
{{Note}} This function is also called from actions resulting from pressing against the row on the containers list. This will be called, hard-coding the parameter of the find method to "EPL_CONTAINER_ID". | |||
The call of the Signature Capture screen should be modified to pass in the Job Group as a new parameter, by reference, as will all other instances where this Signature Capture process is called. | |||
=== Signature === | |||
The parameters to this screen should be modified to receive the job group from the calling screens. If nothing is received in this parameter, the screen should fetch the Job Group for the first (or only) job being signed for. | |||
Whenever a container ID is displayed, the screen currently displays the system container ID (currently the Partnerlink Pallet ID). The process will be modified to display the ID required by the configuration against the Job Group, in the new flag EPL_CONTAINER_SCANNED. This will be achieved by calling the new function created for this purpose (the new PDA_CONTAINER method getDispID, passing the value of the Job Group configuration flag EPL_CONTAINER_SCANNED). | |||
Items affected: | |||
* The list of containers on the containers tab. | |||
{{Note}} The pop-up Clause screen will not require modification, as the container and alternative values are already displayed here. | |||
=== Cancellation === | |||
The parameters to this screen (and all functions that call this screen) should be modified to receive the job group from the calling screens. If nothing is received in this parameter, the screen should fetch the Job Group for the first (or only) job being actioned. | |||
Whenever a container ID is displayed, the screen currently displays the system container ID (currently the Partnerlink Pallet ID). The process will be modified to display the ID required by the configuration against the Job Group, in the new flag EPL_CONTAINER_SCANNED. This will be achieved by calling the new function created for this purpose (the new PDA_CONTAINER method getDispID, passing the value of the Job Group configuration flag EPL_CONTAINER_SCANNED). | |||
Items affected: | |||
* The title at the top of the screen (e.g. "Cancel Container X") | |||
* The action text at the top of the screen (e.g. "Are you sure you wish to cancel Container X for job Y?") | |||
* Confirmation message (e.g. "Container X cancelled") | |||
--> | |||
== Auto-Import == | == Auto-Import == | ||
The Partnerlink Import process will be modified to add a field to the import process to identify the Pallet System in use (for example, Palletforce, Pall-Ex, Fortec). This has been specified in full in FS 326965 Partnerlink EPOD Interface, referenced in [[#Appendix B: Quote & Document References|Appendix B]]. The changes are as follows: | The Partnerlink Import process will be modified to add a field to the import process to identify the Pallet System in use (for example, Palletforce, Pall-Ex, Fortec). This has been specified in full in FS 326965 Partnerlink EPOD Interface, referenced in [[#Appendix B: Quote & Document References|Appendix B]]. The changes are as follows: | ||
Line 235: | Line 342: | ||
If the new field Tracking System is not passed, the system will operate as it does now (assuming PalletForce). If passed in, this will be used to set the Job Group against the incoming job. | If the new field Tracking System is not passed, the system will operate as it does now (assuming PalletForce). If passed in, this will be used to set the Job Group against the incoming job. | ||
If the Tracking System has been set to "PALLEX"<!-- and the new Job Group configuration flag EPL_CONTAINER_SCANNED is configured to a value other than "EPL_CONTAINER_ID" -->, the procedure should generate the Pall-Ex pallet IDs at the same time as generating the Container IDs, by concatenating the Consignment Barcode (in PF Tracking Number) with a 2-digit counter, incremented per pallet to be created, zero-filled. This should be saved onto the container in the field EPL_CODE_1. <!-- indicated in the Job Group configuration flag. --> | |||
Line 275: | Line 384: | ||
<tem:PODCode>?</tem:PODCode> | <tem:PODCode>?</tem:PODCode> | ||
</tem:addEpodConsignment> | </tem:addEpodConsignment> | ||
</soap:Body> | |||
</soap:Envelope> | |||
;addEpodPallet | |||
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" | |||
xmlns:tem="http://tempuri.org/"> | |||
<soap:Header/> | |||
<soap:Body> | |||
<tem:addEpodPallet> | |||
<tem:UserName>?</tem:UserName> | |||
<tem:Password>?</tem:Password> | |||
<tem:PalletBarcode>?</tem:PalletBarcode> | |||
<tem:PodSignature>?</tem:PodSignature> | |||
<tem:PODCode>?</tem:PODCode> | |||
<tem:podDateTime>?</tem:podDateTime> | |||
<tem:poddesc>?</tem:poddesc> | |||
<tem:manualmpodscan>?</tem:manualmpodscan> | |||
</tem:addEpodPallet> | |||
</soap:Body> | </soap:Body> | ||
</soap:Envelope> | </soap:Envelope> | ||
Line 306: | Line 434: | ||
<addEpodConsignmentResult>Success: Epods Added</addEpodConsignmentResult> | <addEpodConsignmentResult>Success: Epods Added</addEpodConsignmentResult> | ||
</addEpodConsignmentResponse> | </addEpodConsignmentResponse> | ||
</soap:Body> | |||
</soap:Envelope> | |||
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" | |||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |||
<soap:Body> | |||
<addEpodPalletResponse xmlns="http://tempuri.org/"> | |||
<addEpodPallettResult>Success: Epods Added</addEpodPallettResult> | |||
</addEpodPalletResponse> | |||
</soap:Body> | </soap:Body> | ||
</soap:Envelope> | </soap:Envelope> | ||
Line 329: | Line 467: | ||
=== New Pall-Ex Auto-Export Process === | === New Pall-Ex Auto-Export Process === | ||
{{Note}} It is assumed that this process will perform consignment-level debriefing only, not pallet-level debriefing, because: | <!-- {{Note}} It is assumed that this process will perform consignment-level debriefing only, not pallet-level debriefing, because: | ||
* the pallet level webservice within TWINE may not be working as expected at this time | * the pallet level webservice within TWINE may not be working as expected at this time | ||
* {{#var:System}} may not have the Pall-Ex pallet IDs or know the format | * {{#var:System}} may not have the Pall-Ex pallet IDs or know the format | ||
* {{#var:System}} may not be sent the pallet information from Mandata. | * {{#var:System}} may not be sent the pallet information from Mandata. | ||
--> | |||
{{Note}} This function will be heavily based on the existing function EPOD_SYS_EXPORT.GenerateJobExportContent and will be called EPOD_SYS_EXPORT.GeneratePallExContent. | {{Note}} This function will be heavily based on the existing function EPOD_SYS_EXPORT.GenerateJobExportContent and will be called EPOD_SYS_EXPORT.GeneratePallExContent. | ||
In a change from the function this is copied from, the job itself will be passed by reference to this function instead of the job ID and Site ID. | In a change from the function this is copied from, the job itself will be passed by reference to this function instead of the job ID and Site ID. | ||
The process will then make | The process will then make several calls to the TWINE webservice, the root of which will be defined in the transfer configuration: | ||
* AddEpodConsignment – One message sent per | * AddEpodConsignment – One message sent per cancelled consignment, to update the consignment with an appropriate reason code. | ||
* AddEpodPallet - One message sent per completed (cancelled or delivered) pallet, to update the pallet with the appropriate reason code. | |||
* AddMPodImage – to upload the signature image from the delivery to the consignment. Only for successfully completed deliveries. | * AddMPodImage – to upload the signature image from the delivery to the consignment. Only for successfully completed deliveries. | ||
Line 353: | Line 492: | ||
|Password ||Password provided by Pallex ||Required ||EPOD_XF_CONFIG.EPL_WEB_PASSWORD | |Password ||Password provided by Pallex ||Required ||EPOD_XF_CONFIG.EPL_WEB_PASSWORD | ||
|- | |- | ||
|Barcode ||The Consignment Barcode ||Nvarchar(18) ||EPOD_JOB.EPL_PF_TRACKING_NO | |Barcode ||The Consignment Barcode ||Nvarchar(18) ||EPOD_JOB.EPL_PF_TRACKING_NO. | ||
|- | |- | ||
|ConsignmentID ||The Consignment ID ||Nvarchar(13) || | |ConsignmentID ||The Consignment ID ||Nvarchar(13) ||Not required | ||
|- | |- | ||
|CURN ||Not in Use || | |CURN ||Not in Use || | ||
|- | |- | ||
|podDateTime ||The time the signature was captured ||Any Valid Date Time format ||EPOD_JOB.EPL_ACTUAL_END_DATE/TIME | |podDateTime ||The time the signature was captured ||Any Valid Date Time format ||EPOD_JOB.EPL_ACTUAL_END_DATE/TIME | ||
Line 367: | Line 506: | ||
|PodSignature ||A string representation of the Recipient signature ||Nvarchar(50) ||EPOD_JOB.EPL_CUST_SIGNATORY | |PodSignature ||A string representation of the Recipient signature ||Nvarchar(50) ||EPOD_JOB.EPL_CUST_SIGNATORY | ||
|- | |- | ||
|PODCode ||Predefined list ||Nvarchar(2) || | |PODCode ||Predefined list ||Nvarchar(2) || EPOD_JOB.EPL_REASON_CODE | ||
|} | |} | ||
The resulting XML should be placed in a list, for returning to the calling function and sending to the TWINE webservice. The format should be as follows: | The resulting XML should be placed in a list, for returning to the calling function and sending to the TWINE webservice. The format should be as follows: | ||
Line 384: | Line 521: | ||
<tem:PODCode>?</tem:PODCode> | <tem:PODCode>?</tem:PODCode> | ||
</tem:addEpodConsignment> | </tem:addEpodConsignment> | ||
For the AddEpodPallet message, this should be placed in within an AddEpodPallet tag with the following tags: | |||
{| border="1" | |||
|- bgcolor="silver" | |||
!Parameter !!Description !!Details !! Notes | |||
|- | |||
|username ||Username provided by Pallex ||Required ||EPOD_XF_CONFIG.EPL_WEB_USER | |||
|- | |||
|password ||Password provided by Pallex ||Required ||EPOD_XF_CONFIG.EPL_WEB_PASSWORD | |||
|- | |||
|palletbarcode ||The Pallet Barcode ||Nvarchar(18) ||<!-- The field from EPOD_CONTAINER referenced by the new Job Group configuration flag EPL_CONTAINER_SCANNED, assumed to be -->EPOD_CONTAINER.EPL_CODE_1. | |||
|- | |||
|podsignature ||A string representation of the Recipient signature ||Nvarchar(50) ||EPOD_JOB.EPL_CUST_SIGNATORY | |||
|- | |||
|podcode ||Predefined list ||Nvarchar(2) || EPOD_CONTAINER.EPL_REASON_CODE if populated, else "01" | |||
|- | |||
|poddatetime ||Date and time of delivery ||XML Date Time format ||EPOD_JOB.EPL_ACTUAL_END_DATE/TIME, formatted as an XML DateTime | |||
|- | |||
|poddesc ||Any additional notes ||Nvarchar(250) ||EPOD_CONTAINER.EPL_CUST_COMMENTS | |||
|- | |||
|manualmpodscan ||Please set to True for any electronic solution. ||True / False ||Hardcoded "True" | |||
|} | |||
For PODCode, for normal successful deliveries (where there is no reason code set against them), this should be set to "01". In all other cases, the reason code against the job should be used here (EPOD_CONTAINER.EPL_REASON_CODE). | |||
The resulting XML should be placed in a list, for returning to the calling function and sending to the TWINE webservice. The format should be as follows: | |||
<tem:addEpodPallet> | |||
<tem:UserName>?</tem:UserName> | |||
<tem:Password>?</tem:Password> | |||
<tem:PalletBarcode>?</tem:PalletBarcode> | |||
<tem:PodSignature>?</tem:PodSignature> | |||
<tem:PODCode>?</tem:PODCode> | |||
<tem:podDateTime>?</tem:podDateTime> | |||
<tem:poddesc>?</tem:poddesc> | |||
<tem:manualmpodscan>?</tem:manualmpodscan> | |||
</tem:addEpodPallet> | |||
Line 410: | Line 586: | ||
<tem:oImageData>cid:454165867125</tem:oImageData> | <tem:oImageData>cid:454165867125</tem:oImageData> | ||
</tem:addMPodImage> | </tem:addMPodImage> | ||
<!-- MEDIA LANDSCAPE YES --> | <!-- MEDIA LANDSCAPE YES --> | ||
= Appendix A: TEST PLAN = | = Appendix A: TEST PLAN = | ||
{{TestPlan_Header | {{TestPlan_Header | ||
Line 434: | Line 607: | ||
|Remarks= | |Remarks= | ||
|PassFail= | |PassFail= | ||
}} {{TestPlan_CycleFooter}} | }}<!-- {{TestPlan_Test | ||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Ensure that Pallet Barcode can be configured on the PDA tab of the Job Groups Maintenance screen. | |||
|Result=The new field is present. The drop-down list contains the values as described. The value saved can be saved, retrieved, edited and displayed correctly. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Configure the system as using EPL_CODE_1 as the alternative pallet ID. Use the Container/Products screen to create a new Container. | |||
|Result=The pop-up allows Alternative ID 1, 2 and 3 to be added, saved, displayed and edited as expected. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Save a value in EPL_CODE_1. Save and display the screen. | |||
|Result=The container table should display an additional column to show the alternative pallet ID - the correct value is displayed in this table for the record changed. | |||
|Remarks= | |||
|PassFail= | |||
}} -->{{TestPlan_CycleFooter}} | |||
{{TestPlan_CycleHeader | {{TestPlan_CycleHeader | ||
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | |Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | ||
|Title=Mobile Device | |Title=Mobile Device - Reason Codes | ||
|Notes=Set up as follows: | |Notes=Set up as follows: | ||
* Set up Exclusive, Non-exclusive and generic reason codes at Job, Detail and Clause level. | * Set up Exclusive, Non-exclusive and generic reason codes at Job, Detail and Clause level. | ||
Line 499: | Line 690: | ||
|PassFail= | |PassFail= | ||
}} {{TestPlan_CycleFooter}} | }} {{TestPlan_CycleFooter}} | ||
<!-- | |||
{{TestPlan_CycleHeader | |||
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | |||
|Title=Mobile Device - Alternative Container IDs | |||
|Notes=Set up as follows: | |||
* Set up the system to use EPL_CODE_1 as the alternative pallet ID. | |||
* Set up a jobs that are for a PALLEX export, with several containers: | |||
** 3 with a unique value in EPL_CODE_1. | |||
** 3 without a value in EPL_CODE_1 | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Start a delivery job and move to the Container tab. | |||
|Result=The Container IDs displayed in the container list are the values entered in EPL_CODE_1. The one without a value in here should display the container ID instead. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Click on a container in the container list with an alternative ID and choose Deliver. | |||
|Result=A message should display showing the container is delivered, showing the value in EPL_CODE_1 | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Click on a container in the container list with an alternative ID and choose Cancel | |||
|Result=The Cancellation screen should show the container ID as the value in EPL_CODE_1 | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Cancel the container with a reason code. | |||
|Result=A message should display showing the container is cancelled, showing the value in EPL_CODE_1 | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Click on a container in the container list with an alternative ID and choose Info | |||
|Result=The Container Information screen should display the container and Code 1 values separately - the container ID should be the system container ID. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Enter a container to deliver that does not exist as a system or alternative container ID. | |||
|Result=A message should display showing the container could not be found. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Enter a container to deliver that exists as an alternative container ID | |||
|Result=A message should display showing the container is delivered, showing the value in EPL_CODE_1 | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Enter a container to deliver that exists with a system container ID | |||
|Result=A message should display showing the container is delivered, showing the value in EPL_CONTAINER_ID | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Scan a container to deliver that does not exist as a system or alternative container ID. | |||
|Result=A message should display showing the container could not be found. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Scan a container to deliver that exists as an alternative container ID | |||
|Result=A message should display showing the container is delivered, showing the value in EPL_CODE_1 | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Scan a container to deliver that exists with a system container ID | |||
|Result=A message should display showing the container is delivered, showing the value in EPL_CONTAINER_ID | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Complete the delivery | |||
|Result=The signature screen should display, showing the container IDs correctly i.e. those with Alternative Codes will display those, those without will display the system container ID. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_Test | |||
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }} | |||
|Action=Clause a container with an alternative container ID | |||
|Result=The Container Information screen should display the container and Code 1 values separately - the container ID should be the system container ID. | |||
|Remarks= | |||
|PassFail= | |||
}} {{TestPlan_CycleFooter}} | |||
--> | |||
{{TestPlan_CycleHeader | {{TestPlan_CycleHeader | ||
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | |Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }} | ||
Line 562: | Line 841: | ||
|RefV4=2.8 | |RefV4=2.8 | ||
|RefDate4=04/02/2014 | |RefDate4=04/02/2014 | ||
|EREQ=0 | |||
|EEST=1.25 | |||
|EFS=2.0 | |||
|ETS=1.5 | |||
|EDEV=7.75 | |||
|ESTT=1.5 | |||
|EIMP=1 | |||
|EPM=1 | |||
|REQ=0 | |REQ=0 | ||
|EST=1.25 | |EST=1.25 | ||
|FS= | |FS=3.0 | ||
|TS= | |TS=2.5 | ||
|DEV= | |DEV=14.25 | ||
|ST= | |ST=2.75 | ||
|IMP=1 | |IMP=1 | ||
|PM=1 | |PM=1.75 | ||
|Client={{#var:Client}} | |Client={{#var:Client}} | ||
|Year={{#var:Year}} | |Year={{#var:Year}} | ||
|FSEST=Y | |FSEST=Y | ||
|FOC=Y | |||
|FIXEDCOST=6000 | |||
|Rev1=Matt Turner | |Rev1=Matt Turner | ||
|Rev1Title=OBSL Account Manager | |Rev1Title=OBSL Account Manager |