FS 324096 Pall-Ex Interface: Difference between revisions

From Calidus HUB
(v0.1 - Initial draft.)
 
(v0.2 - Completed details. Note that this is draft until it is confirmed how the data will be received from the TMSs)
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|0.1}}
{{#vardefine:Version|0.2}}
{{#vardefine:Date|26th May 2013}}
{{#vardefine:Date|18th June 2013}}
{{#vardefine:Reference|324096}}
{{#vardefine:Reference|324096}}
{{#vardefine:Year|2015}}
{{#vardefine:Year|2015}}
Line 48: Line 48:


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:
* AddEpodPallet – One message sent per pallet on the consignment, to update a pallet and consignment with delivery and signatory information.
* AddEpodConsignment – One message sent per cancelled or completed consignment, to update the consignment as cancelled or completed delivery, with an appropriate reason code.  
* AddEpodConsignment – One message sent per cancelled consignment, to update the consignment as cancelled delivery, with an appropriate reason code. {{Warning}} It is possible that the TMS systems may not be able to accurately identify the actual Pall-Ex pallet identity for the individual pallets. In this case (decided at functional specification stage), the process may be amended to always use this webservice to confirm the consignment as delivered rather than the above AddEpodPallet webservice.
* 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.
{{Warning}} As it has not been confirmed whether {{#var:System}} will be receiving pallet IDs in the format required to update the pallets individually, at this time the system will update Pall-Ex TWINE system at consignment level only. If this is required after sign-off of this specification, further development will be required.
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]].




Line 69: Line 73:




The reason codes used by Pall-Ex are not currently used in the Partnerlink system (2 character numeric values from 01 to 19), so these will not cause any contention in the system. It has been confirmed that  
The reason codes used by Pall-Ex are not currently used in the Partnerlink system (2 character numeric values from 01 to 19), so these will not cause any contention in the system. It has been confirmed 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 process is dependent on jobs being received into {{#var:System}} through the standard Partnerlink interface, changes to which have been specified in FS 326965 Partnerlink EPOD Interface. This change to the inbound interface may require changes to the Partner TMS systems to allow the new fields to be specified. The changes for this have been specified here for completeness. Note that no changes will be necessary to Partner TMS systems if those systems are used solely by partners that do not complete Pall-Ex jobs or have no requirement to specify linked (consolidated) jobs.
This process is dependent on jobs being received into {{#var:System}} through the standard Partnerlink interface, changes to which have been specified in [[FS 326965 Partnerlink EPOD Interface]], referenced in [[#Appendix B: Quote & Document References|Appendix B]]. This change to the inbound interface may require changes to the Partner TMS systems to allow the new fields to be specified. The changes for this have been specified here for completeness. Note that no changes will be necessary to Partner TMS systems if those systems are used solely by partners that do not complete Pall-Ex jobs or have no requirement to specify linked (consolidated) jobs.




Line 90: Line 94:


== Data  ==
== Data  ==
{{Warning}}
* New Sites will be set up and configured for all new Partner Codes. This will be as Partnerlink standard.
* New Partner Codes - New Site Configurations
* A new Job Group "PALLEX" will be set up for Pall-Ex jobs. This will initially be a copy of the Palletforce job group "PALLET".
* New Pall-Ex job group configuration
* A new Auto-Export configuration will be created, linked to the job group PALLEX:
* New Export configuration
** EPL_XF_ID - PALLEX
** EPL_XF_TYPE - SOAP
** EPL_XF_DIRECTION - O
** EPL_WEB_USER - UKD999
** EPL_WEB_PASSWORD - te5t999
** EPL_XF_DESTINATION - http://82.3.53.216/depotcustomer.asmx
** EPL_SOAP_NS - http://tempuri.org/
** EPL_SOAP_NS_PREFIX - tem
** EPL_EXPORT_JOB_TYPES - D
* Pall-Ex Reason Codes added for all sites that require them, as follows:
{| border="1"
|- bgcolor="silver"
!Epod Code !!Description !!Type !!Note
|-
|01 ||Pallet Delivered || ||Default for all jobs
|-
|02 ||Pallet Delivered Short ||CLA ||
|-
|03 ||Pallet Delivered Damaged ||CLA ||
|-
|04 ||Late Economy Delivery ||CLA ||Possibly not required
|-
|05 ||Late Next Day Delivery ||CLA ||Possibly not required
|-
|06 ||Late Timed Delivery ||CLA ||Possibly not required
|-
|07 ||Refused - R.T.S - Damaged ||DET ||
|-
|08 ||Refused - R.T.S - Not Required ||DET ||
|-
|09 ||Other ||JOB/DET ||
|-
|10 ||No Customer Delivery Paperwork ||CLA ||Possibly not required
|-
|13 ||Not Booked In - Awaiting Instructions || ||Not required
|-
|14 ||Collection Return Received || ||Not required
|-
|15 ||Company Stamped ||CLA ||Possibly not required
|-
|16 ||Handball Delivered ||CLA ||Possibly not required
|-
|17 ||In Progress || ||Not required
|-
|18 ||Arrived At Delivery point || ||Not required
|-
|19 ||Collection Attempted ||JOB ||Possibly not required
|}
 




Line 101: Line 153:


== Admin ==
== Admin ==
The Admin Export Configuration screen will be changed to allow the parameters for the new Pall-Ex extract to be specified against it.
The ID drop-down list will be modified to allow the new values below when entering a new configuration:
* PALLEX
* FORTRACK
== Mobile Device Application ==
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 ===
The database package used to retrieve the job transfer configurations must be modified.
The package EPOD_JOB_GROUP_CONFIGS retrieves the transfer configurations for each job, for each possible transfer, namely:
* OWNER - the owning site.
* OPERATOR - the operating site.
* PALLET - any pallet network configuration
Each of these configurations if present are retrieved sequentially and grouped together and returned to the calling process.
Any existing code will not be modified, so as not to affect current functionality.
An additional selection will be added to this and returned with the others, looking for transfer configurations for the new pallet networks (PALLEX and FORTRACK).
This section will link to the job specified, the site and job group for the job, and the indicated XF Configuration records of ID "PALLEX" or "FORTRACK" that match the job type (Delivery or Collection). If found, the Job Group configuration will be returned in preference to the Site configuration.
This configuration will also be marked as PARTNER_TYPE "PALLET", to indicate that this is a pallet network configuration.
{{Note}} Suggested SQL:
    union all
    SELECT c.*, 'PALLET' PARTNER_TYPE FROM
    EPOD_JOB j
    INNER JOIN EPOD_SITE s
    ON s.EPL_SITE_ID = j.EPL_SITE_ID
    INNER JOIN EPOD_JOB_GROUPS jg
    ON jg.EPL_SITE_ID = j.EPL_SITE_ID
    AND jg.EPL_JOB_GROUP = j.EPL_JOB_GROUP
    LEFT JOIN EPOD_XF_CONFIG cjg
    ON cjg.EPL_XF_CONFIG_ID = jg.EPL_XF_CONFIG
    AND cjg.EPL_XF_ID IN ('PALLEX','FORTRACK')
    AND CHARINDEX(J.EPL_JOB_TYPE ,cjg.EPL_EXPORT_JOB_TYPES)>0
    LEFT JOIN EPOD_XF_CONFIG cs
    ON cs.EPL_XF_CONFIG_ID = s.EPL_XF_CONFIG
    AND cs.EPL_XF_ID IN ('PALLEX','FORTRACK')
    AND CHARINDEX(J.EPL_JOB_TYPE ,cs.EPL_EXPORT_JOB_TYPES)>0
    INNER JOIN EPOD_XF_CONFIG c
    ON c.EPL_XF_CONFIG_ID = CASE
        WHEN (cjg.EPL_XF_CONFIG_ID IS NOT NULL) THEN cjg.EPL_XF_CONFIG_ID
        ELSE cs.EPL_XF_CONFIG_ID
    END
    AND c.EPL_XF_ID IN ('PALLEX','FORTRACK')
    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


== 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:
{| border="1"
|- bgcolor="silver"
!# !!Field Name !!Type !!Max Length !!width="50%"|Notes
|-
|bgcolor="red"|63 ||PF Depot ||C ||10 ||Pallet Tracking System depot code, used when generating Pallet IDs for this pallet network.
|-
|bgcolor="red"|64 ||PF Tracking Number ||C ||30 ||Pallet Tracking System tracking number, used when generating Pallet IDs for this pallet network.
|-
|bgcolor="red"|* ||Tracking System ||C ||29 ||This identifies any external pallet tracking system in use for this job. Currently values of "PALLET", "PALLEX", "FORTRACK". If this is not set, and Pallet Tracking System Depot Code and Tracking number are set, defaults to "PALLET" (for the Palletforce network).
|-
|bgcolor="red"|* ||Linked ID ||C ||40 ||If this is set, any jobs with the same linked ID on the same load will be consolidated into a single delivery or collection. {{Note}} Only link jobs of the same type and partner or pallet network.
|-
|bgcolor="red"|* ||Load Information ||C ||500 ||If this is set, shown on the ePOD Device Load Information pop-up.
|}


{{Note}} Those items marked with * above have been added since the last implementation of this interface. The other items above already existed but have had their length changed.
If the new fields Linked ID and Load Information are not passed, the system will not populate the data within {{#var:System}}.
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.




== Auto-Export ==
== Auto-Export ==
{{Warning}} Generic changes to autoexport
The auto-export process retrieves all completed jobs that have not yet been transferred out of the system, and checks whether they require transfer.
 
Any that do not require transfer will be marked as transferred.
 
Any that have an applicable export configuration (see the database package modification above) will be passed to a procedure to transfer out according to the type (XF_ID) and parameters set against the configuration.
 
This function (EPOD_SYS_EXPORT.ExportJob) will be modified when checking EPOD_PARTNER_XF_CONFIG.EPL_XF_ID, to convert to a switch statement rather than a compound if statement. The cases are:
* PF - PalletForce (existing code) - calls EPOD_SYS_EXPORT.GeneratePalletForceContent
* PALLEX - for Pall-Ex exports (see next section) - calls new function EPOD_SYS_EXPORT.GeneratePallExContent, defined below. The call to this function will be similar to that of the above, except that the Job will be passed as a parameter.
* FORTRACK - for ForTec exports (future development) - This is added to support future development, and should drop through to the default processing with an appropriate comment.
* Default - default processing - calls EPOD_SYS_EXPORT.GenerateJobExportContent
All code will be placed in a switch statement rather than a compound if statement.
 
 
Once all the data is created, the function then sends the message in the format specified on the transfer configuration record. For Pall-Ex messages, this will require a change to the standard SOAP message processing. The function will be changed to add a section specific to Export ID "PALLEX", with all existing codes enclosed as the default processing.
 
For Export ID PALLEX, the function will loop through each item in the list and send this through a specific SendExportAsSoap function. {{Note}} This procedure may need a slight modification to ensure that the messages are sent in the correct format - if this is the case, existing code function should be maintained for all other messages.
 
The resulting message should be in this format:
 
:addEpodConsignment
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    xmlns:tem="http://tempuri.org/">
  <soap:Header/>
  <soap:Body>
      <tem:addEpodConsignment>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:Barcode>?</tem:Barcode>
        <tem:ConsignmentID>?</tem:ConsignmentID>
        <tem:CURN>?</tem:CURN>
        <tem:podDateTime>?</tem:podDateTime>
        <tem:poddesc>?</tem:poddesc>
        <tem:manualmpodscan>?</tem:manualmpodscan>
        <tem:PodSignature>?</tem:PodSignature>
        <tem:PODCode>?</tem:PODCode>
      </tem:addEpodConsignment>
  </soap:Body>
</soap:Envelope>
 
 
:addMPodImage
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    xmlns:tem="http://tempuri.org/">
  <soap:Header/>
  <soap:Body>
      <tem:addMPodImage>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:ConsignmentBarcode>?</tem:ConsignmentBarcode>
        <tem:oImageData>cid:454165867125</tem:oImageData>
      </tem:addMPodImage>
  </soap:Body>
</soap:Envelope>
 
This will then be sent to the webservice through the standard mechanism in the system, and the resulting response returned to this function. {{Note}} This is SOAP 1.2, not SOAP 1.0 - the latter is not supported.
 
This function will check the response and, if this is a failure, will mark the job as having failed export (exactly as it does in the existing SOAP code). The responses, if successful will follow the format of:
    Tag "whatevermethodResponse" containing tag "whatevermethodResult", containing at least the text "Success", as below for example:
 
<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>
      <addEpodConsignmentResponse xmlns="http://tempuri.org/">
        <addEpodConsignmentResult>Success: Epods Added</addEpodConsignmentResult>
      </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>
      <addMpodImageResponse xmlns="http://tempuri.org/">
        <addMpodImageResult>Success: Pod Image Added</addMpodImageResult>
      </addMpodImageResponse>
  </soap:Body>
</soap:Envelope>
 
As long as the result tag exists, and the text within contains "Success", this will be seen as a successful send. Anything else (i.e. no Result tag or "Success" not contained within will be seen as a failure.
 
Once this is complete, the job will be marked as having been exported for each successful export type (OPERATOR, OWNER and PALLET), based on the success of the send above. The new PALLEX export is seen as a PALLET export type.
 
When all exports have been successful, the job is marked as completely exported and will not be exported again.
 
The result (success or fail) and the response will be logged to the Audit table.
 


=== New Pall-Ex Auto-Export Process ===
=== New Pall-Ex Auto-Export Process ===
{{Warning}} Assuming we will have to do consignment level debriefing, as the pallet level webservice may not be working, and we may not have the Pall-Ex pallet IDs or know the format, and we may not get the information from Mandata anyway.
{{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
* {{#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.
 
 
{{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.
 
The process will then make two calls to the TWINE webservice, the root of which will be defined in the transfer configuration:
* AddEpodConsignment – One message sent per completed or cancelled consignment, to update the consignment. If cancelled, there will also be an appropriate reason code.
* AddMPodImage – to upload the signature image from the delivery to the consignment. Only for successfully completed deliveries.
 
 
For the AddEpodConsignment message, this should be placed in within an AddEpodConsignment 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
|-
|Barcode ||The Consignment Barcode ||Nvarchar(18) ||EPOD_JOB.EPL_PF_TRACKING_NO. Note: Only one need be populated. It has not yet been confirmed which (this or ConsignmentID), but the assumption is this one.
|-
|ConsignmentID ||The Consignment ID ||Nvarchar(13) ||EPOD_JOB.EPL_PF_TRACKING_NO. Note: See above
|-
|CURN ||Not in Use ||
|-
|podDateTime ||The time the signature was captured ||Any Valid Date Time format ||EPOD_JOB.EPL_ACTUAL_END_DATE/TIME
|-
|Poddesc ||Any additional notes ||Nvarchar(250) ||EPOD_JOB.EPL_USER_NOTES
|-
|ManualMpodScan ||Please set to True for any electronic solution. ||True / False ||Hardcoded "True"
|-
|PodSignature ||A string representation of the Recipient signature ||Nvarchar(50) ||EPOD_JOB.EPL_CUST_SIGNATORY
|-
|PODCode ||Predefined list ||Nvarchar(2) || See below.
|}
 
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_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:
 
      <tem:addEpodConsignment>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:Barcode>?</tem:Barcode>
        <tem:podDateTime>?</tem:podDateTime>
        <tem:poddesc>?</tem:poddesc>
        <tem:manualmpodscan>?</tem:manualmpodscan>
        <tem:PodSignature>?</tem:PodSignature>
        <tem:PODCode>?</tem:PODCode>
      </tem:addEpodConsignment>
 
 
For the addMPodImage message, this should be placed in within an addMPodImage 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
|-
|consignmentbarcode ||The Consignment Barcode ||Nvarchar(16) ||EPOD_JOB.EPL_PF_TRACKING_NO.
|-
|oimagedata ||The Signature JPG image  ||Bytes ||EPOD_JOB.EPL_JOB_SIGNATURE
|}
 
{{Note}} the image data content is the raw bytes of the JPEG image, not a base64-encoded string.
 
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:addMPodImage>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:ConsignmentBarcode>?</tem:ConsignmentBarcode>
        <tem:oImageData>cid:454165867125</tem:oImageData>
      </tem:addMPodImage>




Line 118: Line 415:


= Appendix A: TEST PLAN  =
= Appendix A: TEST PLAN  =
{{TestPlan_Header
{{TestPlan_Header
|Title={{#var:Doc_Title}}
|Title={{#var:Doc_Title}}
|Log={{#var:Reference}}
|Log={{#var:Reference}}
|Description=description of what is to be achieved
|Description=Testing Exports out to the Pall-Ex TWINE system from {{#var:System}}.
|MenuAccess=Where on the menus the item can be found
|MenuAccess=Administration/Auto-Export
|Prerequisites=The prerequisites of the test
|Prerequisites=A system configured as Partnerlink Test.
|Objective=The details of what each group of tests is to achieve
|Objective=To test: Job and Detail-level Reason Codes may be selected from a sub-set, based on the job and job group attributes; Auto-Export may be configured for Pall-Ex exports and; Auto-Export exports the jobs correctly to the Pall-Ex TWINE system.
}}  
}} {{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}
{{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}
{{TestPlan_CycleHeader
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}
|Title=Admin System
|Notes=
}} <!--INSERT TESTS HERE --> {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Ensure that Pall-Ex exports may be configured through the Auto-Export screen
|Result=New Export Configurations may be created of ID PALLEX, allowing selection of this through the drop-down grid and displayed on the table on the screen.
|Remarks=
|PassFail=
}} {{TestPlan_CycleFooter}}
 
{{TestPlan_CycleHeader
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}
|Title=Mobile Device
|Notes=Set up as follows:
* Set up Exclusive, Non-exclusive and generic reason codes at Job, Detail and Clause level.
* Set up 3 jobs that are for a PALLEX export, with PALLEX-exclusive reason codes (referred below as PALLEX jobs).
* Set up 3 jobs that are for a partner job group with non-exclusive reason codes, owned and operated by the same partner (referred below as OWNER OPERATED jobs).
* Set up 3 jobs that are for a partner job group with non-exclusive reason codes, owned and operated by different partners (referred below as SHARED jobs).
}} <!--INSERT TESTS HERE --> {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a PALLEX job.
|Result=Only exclusive reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a container on a PALLEX job.
|Result=Only exclusive reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Clause a container on a PALLEX job.
|Result=Only exclusive reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a OWNER OPERATED job.
|Result=All non-exclusive and generic reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a container on a OWNER OPERATED job.
|Result=All non-exclusive and generic reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Clause a container on a OWNER OPERATED job.
|Result=All non-exclusive and generic reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a SHARED job.
|Result=Only generic reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a container on a SHARED job.
|Result=Only generic reason codes are shown
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Clause a container on a SHARED job.
|Result=Only generic reason codes are shown
|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=Area being tested in this cycle
|Title=Auto-Export
|Notes=Any notes or prerequisites for the tests following.
|Notes=Ensure that the job groups and sites are configured to export to the Pall-Ex TWINE test system.
 
Set up 5 jobs that are for a PALLEX export, with PALLEX-exclusive reason codes. Ensure that 3 of these PALLEX jobs have a value in EPL_PF_TRACKING_NO that matches one of the following, and 2 do not:
* C201005267228
* C201005267229
* C201005267230
* C201005267231
* C201005267232
 
Start the Auto-Export process.
}} <!--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 }} }}
|Action=The actions to follow
|Action=Successfully complete a job with a correct consignment number.
|Result=The expected result
|Result=The export should show as exported successfully. The consignment should be updated to Epod Confirmed with a signature in TWINE, with reason code "01".
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Cancel a job with a correct consignment number.
|Result=The export should show as exported successfully. The consignment should be updated to Epod Confirmed with a signature in TWINE, with the correct reason code.
|Remarks=
|Remarks=
|PassFail=
|PassFail=
}} {{TestPlan_Test
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=The actions to follow
|Action=Successfully complete a job with an incorrect consignment number.
|Result=The expected result
|Result=The export should show as an error when exported. The consignment should not be updated in TWINE.
|Remarks=
|Remarks=
|PassFail=
|PassFail=
}} {{TestPlan_Test
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=The actions to follow
|Action=Cancel a job with an incorrect consignment number.
|Result=The expected result
|Result=The export should show as an error when exported. The consignment should not be updated in TWINE.
|Remarks=
|PassFail=
}} {{TestPlan_Test
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}
|Action=Change the export configuration to point to an incorrect URL for the TWINE webservice. Successfully complete a job with a correct consignment number.
|Result=The export should show as an error when exported. The consignment should not be updated in TWINE.
|Remarks=
|Remarks=
|PassFail=
|PassFail=
Line 163: Line 555:
|RefV2=1.0
|RefV2=1.0
|RefDate2=08/04/2015
|RefDate2=08/04/2015
|Ref2=[[FS 326965 Partnerlink EPOD Interface]]
|Ref3=[[FS 326965 Partnerlink EPOD Interface]]
|RefV2=1.0
|RefV3=1.0
|RefDate2=22/05/2015
|RefDate3=22/05/2015
|Ref4=Pall-Ex TWINE webservices v2.8.pdf
|RefV4=2.8
|RefDate4=04/02/2014
|REQ=0
|REQ=0
|EST=1.25
|EST=1.25

Revision as of 16:26, 18 June 2015





Aptean Logo.png







The Client Name

Pall-Ex Interface


CALIDUS ePOD

18th June 2013 - 0.2
Reference: FS 324096












































Functional Overview

Client Requirement

AE Parker will be rolling out CALIDUS ePOD to their fleet and will need to send ePOD information/confirmation on deliver completion through to Pall-Ex systems.


Solution Overview

Process:

  • The new partner A.E.Parker will be set up with a new partner code within CALIDUS ePOD, will be configured for their use following the standard configuration. This partner will be configured for export to the TMS system in use.
  • Pall-Ex specific reason codes will be set up as required by the Pall-Ex TWINE system.
  • New Pall-Ex 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. PALLEX. Note: This will require change to the sending process from the TMS system to accommodate this new job group.
  • 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 with each existing partner.
  • The AutoExport process will also export the files to Pall-Ex TWINE system, identified through the Job's Group and the configuration attached to it.
  • The AutoExport functionality will store the success or failure of the export, along with any of the returned reasons from the export.


The Admin Export Configuration screen will be changed to allow the parameters for the new Pall-Ex extract to be specified against it.


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 new Pall-Ex Export process will work as follows:

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 consignment, to update the consignment as cancelled or completed delivery, with an appropriate reason code.
  • 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 CALIDUS ePOD. Messages that process in error will be marked as such, so that they may be identified and reprocessed manually if required.

Warning Warning: As it has not been confirmed whether CALIDUS ePOD will be receiving pallet IDs in the format required to update the pallets individually, at this time the system will update Pall-Ex TWINE system at consignment level only. If this is required after sign-off of this specification, further development will be required.


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 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.


Scope

Assumptions:

  • Jobs will be sent to Partnerlink and through to CALIDUS ePOD 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 CALIDUS ePOD 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 new partners will accept updates into their Transport systems from CALIDUS ePOD 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 CALIDUS ePOD.
  • AE Parker will be assigned a Partner Code by Partnerlink, which will be provided to OBS Logistics prior to implementation of this change.


Changes will be made to latest version of CALIDUS ePOD only, and will require an update to all application components and full system and user acceptance testing.


This process is dependent on multiple reason codes for pallet networks change, specified in EST 318572 PART Job Group Level Clausing - No Duplicates. The work for this change must be completed before or as part of this change.


The reason codes used by Pall-Ex are not currently used in the Partnerlink system (2 character numeric values from 01 to 19), so these will not cause any contention in the system. It has been confirmed 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 process is dependent on jobs being received into CALIDUS ePOD through the standard Partnerlink interface, changes to which have been specified in FS 326965 Partnerlink EPOD Interface, referenced in Appendix B. This change to the inbound interface may require changes to the Partner TMS systems to allow the new fields to be specified. The changes for this have been specified here for completeness. Note that no changes will be necessary to Partner TMS systems if those systems are used solely by partners that do not complete Pall-Ex jobs or have no requirement to specify linked (consolidated) jobs.


Additionally, jobs will be exported through the standard interface (also specified in the same document). As the latest version of the system is being used for the basis of this change, this may require changes to the partner TMS systems to extract the information in the new format. Note that only new fields have been added - fields have not been changed for purpose or function.


Note Note: This change requires integration with another system, so up to 1 day has been added to the specification and testing time to allow for this. If the specification time increases beyond this time allowed due to additional work required during this stage, the estimate will be increased to cover the actual time taken.


Set-up

Pre-requisites

Menu Structure

Data

  • New Sites will be set up and configured for all new Partner Codes. This will be as Partnerlink standard.
  • A new Job Group "PALLEX" will be set up for Pall-Ex jobs. This will initially be a copy of the Palletforce job group "PALLET".
  • A new Auto-Export configuration will be created, linked to the job group PALLEX:
  • Pall-Ex Reason Codes added for all sites that require them, as follows:
Epod Code Description Type Note
01 Pallet Delivered Default for all jobs
02 Pallet Delivered Short CLA
03 Pallet Delivered Damaged CLA
04 Late Economy Delivery CLA Possibly not required
05 Late Next Day Delivery CLA Possibly not required
06 Late Timed Delivery CLA Possibly not required
07 Refused - R.T.S - Damaged DET
08 Refused - R.T.S - Not Required DET
09 Other JOB/DET
10 No Customer Delivery Paperwork CLA Possibly not required
13 Not Booked In - Awaiting Instructions Not required
14 Collection Return Received Not required
15 Company Stamped CLA Possibly not required
16 Handball Delivered CLA Possibly not required
17 In Progress Not required
18 Arrived At Delivery point Not required
19 Collection Attempted JOB Possibly not required



Functional Description

Admin

The Admin Export Configuration screen will be changed to allow the parameters for the new Pall-Ex extract to be specified against it.

The ID drop-down list will be modified to allow the new values below when entering a new configuration:

  • PALLEX
  • FORTRACK

Mobile Device Application

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 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.

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 =

The database package used to retrieve the job transfer configurations must be modified.

The package EPOD_JOB_GROUP_CONFIGS retrieves the transfer configurations for each job, for each possible transfer, namely:

  • OWNER - the owning site.
  • OPERATOR - the operating site.
  • PALLET - any pallet network configuration

Each of these configurations if present are retrieved sequentially and grouped together and returned to the calling process.

Any existing code will not be modified, so as not to affect current functionality.

An additional selection will be added to this and returned with the others, looking for transfer configurations for the new pallet networks (PALLEX and FORTRACK).

This section will link to the job specified, the site and job group for the job, and the indicated XF Configuration records of ID "PALLEX" or "FORTRACK" that match the job type (Delivery or Collection). If found, the Job Group configuration will be returned in preference to the Site configuration.

This configuration will also be marked as PARTNER_TYPE "PALLET", to indicate that this is a pallet network configuration.


Note Note: Suggested SQL:

   union all
   SELECT c.*, 'PALLET' PARTNER_TYPE FROM
   EPOD_JOB j
   INNER JOIN EPOD_SITE s
   ON s.EPL_SITE_ID = j.EPL_SITE_ID
   INNER JOIN EPOD_JOB_GROUPS jg
   ON jg.EPL_SITE_ID = j.EPL_SITE_ID 
   AND jg.EPL_JOB_GROUP = j.EPL_JOB_GROUP
   LEFT JOIN EPOD_XF_CONFIG cjg
   ON cjg.EPL_XF_CONFIG_ID = jg.EPL_XF_CONFIG
   AND cjg.EPL_XF_ID IN ('PALLEX','FORTRACK') 
   AND CHARINDEX(J.EPL_JOB_TYPE ,cjg.EPL_EXPORT_JOB_TYPES)>0
   LEFT JOIN EPOD_XF_CONFIG cs
   ON cs.EPL_XF_CONFIG_ID = s.EPL_XF_CONFIG
   AND cs.EPL_XF_ID IN ('PALLEX','FORTRACK') 
   AND CHARINDEX(J.EPL_JOB_TYPE ,cs.EPL_EXPORT_JOB_TYPES)>0
   INNER JOIN EPOD_XF_CONFIG c
   ON c.EPL_XF_CONFIG_ID = CASE
       WHEN (cjg.EPL_XF_CONFIG_ID IS NOT NULL) THEN cjg.EPL_XF_CONFIG_ID
       ELSE cs.EPL_XF_CONFIG_ID
   END
   AND c.EPL_XF_ID IN ('PALLEX','FORTRACK') 
   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

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. The changes are as follows:

# Field Name Type Max Length Notes
63 PF Depot C 10 Pallet Tracking System depot code, used when generating Pallet IDs for this pallet network.
64 PF Tracking Number C 30 Pallet Tracking System tracking number, used when generating Pallet IDs for this pallet network.
* Tracking System C 29 This identifies any external pallet tracking system in use for this job. Currently values of "PALLET", "PALLEX", "FORTRACK". If this is not set, and Pallet Tracking System Depot Code and Tracking number are set, defaults to "PALLET" (for the Palletforce network).
* Linked ID C 40 If this is set, any jobs with the same linked ID on the same load will be consolidated into a single delivery or collection. Note Note: Only link jobs of the same type and partner or pallet network.
* Load Information C 500 If this is set, shown on the ePOD Device Load Information pop-up.

Note Note: Those items marked with * above have been added since the last implementation of this interface. The other items above already existed but have had their length changed.


If the new fields Linked ID and Load Information are not passed, the system will not populate the data within CALIDUS ePOD.

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.


Auto-Export

The auto-export process retrieves all completed jobs that have not yet been transferred out of the system, and checks whether they require transfer.

Any that do not require transfer will be marked as transferred.

Any that have an applicable export configuration (see the database package modification above) will be passed to a procedure to transfer out according to the type (XF_ID) and parameters set against the configuration.

This function (EPOD_SYS_EXPORT.ExportJob) will be modified when checking EPOD_PARTNER_XF_CONFIG.EPL_XF_ID, to convert to a switch statement rather than a compound if statement. The cases are:

  • PF - PalletForce (existing code) - calls EPOD_SYS_EXPORT.GeneratePalletForceContent
  • PALLEX - for Pall-Ex exports (see next section) - calls new function EPOD_SYS_EXPORT.GeneratePallExContent, defined below. The call to this function will be similar to that of the above, except that the Job will be passed as a parameter.
  • FORTRACK - for ForTec exports (future development) - This is added to support future development, and should drop through to the default processing with an appropriate comment.
  • Default - default processing - calls EPOD_SYS_EXPORT.GenerateJobExportContent

All code will be placed in a switch statement rather than a compound if statement.


Once all the data is created, the function then sends the message in the format specified on the transfer configuration record. For Pall-Ex messages, this will require a change to the standard SOAP message processing. The function will be changed to add a section specific to Export ID "PALLEX", with all existing codes enclosed as the default processing.

For Export ID PALLEX, the function will loop through each item in the list and send this through a specific SendExportAsSoap function. Note Note: This procedure may need a slight modification to ensure that the messages are sent in the correct format - if this is the case, existing code function should be maintained for all other messages.

The resulting message should be in this format:

addEpodConsignment
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 
   xmlns:tem="http://tempuri.org/">
  <soap:Header/>
  <soap:Body>
     <tem:addEpodConsignment>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:Barcode>?</tem:Barcode>
        <tem:ConsignmentID>?</tem:ConsignmentID>
        <tem:CURN>?</tem:CURN>
        <tem:podDateTime>?</tem:podDateTime>
        <tem:poddesc>?</tem:poddesc>
        <tem:manualmpodscan>?</tem:manualmpodscan>
        <tem:PodSignature>?</tem:PodSignature>
        <tem:PODCode>?</tem:PODCode>
     </tem:addEpodConsignment>
  </soap:Body>
</soap:Envelope>


addMPodImage
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 
   xmlns:tem="http://tempuri.org/">
  <soap:Header/>
  <soap:Body>
     <tem:addMPodImage>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:ConsignmentBarcode>?</tem:ConsignmentBarcode>
        <tem:oImageData>cid:454165867125</tem:oImageData>
     </tem:addMPodImage>
  </soap:Body>
</soap:Envelope>

This will then be sent to the webservice through the standard mechanism in the system, and the resulting response returned to this function. Note Note: This is SOAP 1.2, not SOAP 1.0 - the latter is not supported.

This function will check the response and, if this is a failure, will mark the job as having failed export (exactly as it does in the existing SOAP code). The responses, if successful will follow the format of:

   Tag "whatevermethodResponse" containing tag "whatevermethodResult", containing at least the text "Success", as below for example:
<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>
     <addEpodConsignmentResponse xmlns="http://tempuri.org/">
        <addEpodConsignmentResult>Success: Epods Added</addEpodConsignmentResult>
     </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>
     <addMpodImageResponse xmlns="http://tempuri.org/">
        <addMpodImageResult>Success: Pod Image Added</addMpodImageResult>
     </addMpodImageResponse>
  </soap:Body>
</soap:Envelope>

As long as the result tag exists, and the text within contains "Success", this will be seen as a successful send. Anything else (i.e. no Result tag or "Success" not contained within will be seen as a failure.

Once this is complete, the job will be marked as having been exported for each successful export type (OPERATOR, OWNER and PALLET), based on the success of the send above. The new PALLEX export is seen as a PALLET export type.

When all exports have been successful, the job is marked as completely exported and will not be exported again.

The result (success or fail) and the response will be logged to the Audit table.


New Pall-Ex Auto-Export Process

Note 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
  • CALIDUS ePOD may not have the Pall-Ex pallet IDs or know the format
  • CALIDUS ePOD may not be sent the pallet information from Mandata.


Note 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.

The process will then make two calls to the TWINE webservice, the root of which will be defined in the transfer configuration:

  • AddEpodConsignment – One message sent per completed or cancelled consignment, to update the consignment. If cancelled, there will also be an appropriate reason code.
  • AddMPodImage – to upload the signature image from the delivery to the consignment. Only for successfully completed deliveries.


For the AddEpodConsignment message, this should be placed in within an AddEpodConsignment tag with the following tags:

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
Barcode The Consignment Barcode Nvarchar(18) EPOD_JOB.EPL_PF_TRACKING_NO. Note: Only one need be populated. It has not yet been confirmed which (this or ConsignmentID), but the assumption is this one.
ConsignmentID The Consignment ID Nvarchar(13) EPOD_JOB.EPL_PF_TRACKING_NO. Note: See above
CURN Not in Use
podDateTime The time the signature was captured Any Valid Date Time format EPOD_JOB.EPL_ACTUAL_END_DATE/TIME
Poddesc Any additional notes Nvarchar(250) EPOD_JOB.EPL_USER_NOTES
ManualMpodScan Please set to True for any electronic solution. True / False Hardcoded "True"
PodSignature A string representation of the Recipient signature Nvarchar(50) EPOD_JOB.EPL_CUST_SIGNATORY
PODCode Predefined list Nvarchar(2) See below.

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_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:

     <tem:addEpodConsignment>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:Barcode>?</tem:Barcode>
        <tem:podDateTime>?</tem:podDateTime>
        <tem:poddesc>?</tem:poddesc>
        <tem:manualmpodscan>?</tem:manualmpodscan>
        <tem:PodSignature>?</tem:PodSignature>
        <tem:PODCode>?</tem:PODCode>
     </tem:addEpodConsignment>


For the addMPodImage message, this should be placed in within an addMPodImage tag with the following tags:

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
consignmentbarcode The Consignment Barcode Nvarchar(16) EPOD_JOB.EPL_PF_TRACKING_NO.
oimagedata The Signature JPG image Bytes EPOD_JOB.EPL_JOB_SIGNATURE

Note Note: the image data content is the raw bytes of the JPEG image, not a base64-encoded string.

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:addMPodImage>
        <tem:UserName>?</tem:UserName>
        <tem:Password>?</tem:Password>
        <tem:ConsignmentBarcode>?</tem:ConsignmentBarcode>
        <tem:oImageData>cid:454165867125</tem:oImageData>
     </tem:addMPodImage>



Appendix A: TEST PLAN

Test Script / Scenario ReferencePall-Ex InterfaceCall Number(s): 324096
Test Script / Scenario DescriptionTesting Exports out to the Pall-Ex TWINE system from CALIDUS ePOD.PASS / ISSUES / FAIL
Menu AccessAdministration/Auto-Export 
Pre-requisitesA system configured as Partnerlink Test.Tested By:
 
Test ObjectiveTo test: Job and Detail-level Reason Codes may be selected from a sub-set, based on the job and job group attributes; Auto-Export may be configured for Pall-Ex exports and; Auto-Export exports the jobs correctly to the Pall-Ex TWINE system.Date:
 


Step Action Result Remarks P/F
1 Admin System      
       
1.01 Ensure that Pall-Ex exports may be configured through the Auto-Export screen New Export Configurations may be created of ID PALLEX, allowing selection of this through the drop-down grid and displayed on the table on the screen.    


Step Action Result Remarks P/F
2 Mobile Device      
  Set up as follows:
  • Set up Exclusive, Non-exclusive and generic reason codes at Job, Detail and Clause level.
  • Set up 3 jobs that are for a PALLEX export, with PALLEX-exclusive reason codes (referred below as PALLEX jobs).
  • Set up 3 jobs that are for a partner job group with non-exclusive reason codes, owned and operated by the same partner (referred below as OWNER OPERATED jobs).
  • Set up 3 jobs that are for a partner job group with non-exclusive reason codes, owned and operated by different partners (referred below as SHARED jobs).
     
2.01 Cancel a PALLEX job. Only exclusive reason codes are shown    
2.02 Cancel a container on a PALLEX job. Only exclusive reason codes are shown    
2.03 Clause a container on a PALLEX job. Only exclusive reason codes are shown    
2.04 Cancel a OWNER OPERATED job. All non-exclusive and generic reason codes are shown    
2.05 Cancel a container on a OWNER OPERATED job. All non-exclusive and generic reason codes are shown    
2.06 Clause a container on a OWNER OPERATED job. All non-exclusive and generic reason codes are shown    
2.07 Cancel a SHARED job. Only generic reason codes are shown    
2.08 Cancel a container on a SHARED job. Only generic reason codes are shown    
2.09 Clause a container on a SHARED job. Only generic reason codes are shown    


Step Action Result Remarks P/F
3 Auto-Export      
  Ensure that the job groups and sites are configured to export to the Pall-Ex TWINE test system.

Set up 5 jobs that are for a PALLEX export, with PALLEX-exclusive reason codes. Ensure that 3 of these PALLEX jobs have a value in EPL_PF_TRACKING_NO that matches one of the following, and 2 do not:

  • C201005267228
  • C201005267229
  • C201005267230
  • C201005267231
  • C201005267232
Start the Auto-Export process.
     
3.01 Successfully complete a job with a correct consignment number. The export should show as exported successfully. The consignment should be updated to Epod Confirmed with a signature in TWINE, with reason code "01".    
3.02 Cancel a job with a correct consignment number. The export should show as exported successfully. The consignment should be updated to Epod Confirmed with a signature in TWINE, with the correct reason code.    
3.03 Successfully complete a job with an incorrect consignment number. The export should show as an error when exported. The consignment should not be updated in TWINE.    
3.04 Cancel a job with an incorrect consignment number. The export should show as an error when exported. The consignment should not be updated in TWINE.    
3.05 Change the export configuration to point to an incorrect URL for the TWINE webservice. Successfully complete a job with a correct consignment number. The export should show as an error when exported. The consignment should not be updated in TWINE.    


Appendix B: Quote & Document References

Cost Details
Activity Estimate
No. of Days
No. of Days Rate per Day (£) Cost (£ Exc. VAT)
Requirements 0.00 0.00 650 £0.00
Change Request Evaluation 1.25 1.25 650 £812.50
Functional Specification 2.00 2.00 650 £1,300.00
Technical Specification 1.50 1.50 650 £975.00
Development 7.75 7.75 650 £5,037.50
Testing and Release 1.50 1.50 650 £975.00
Implementation 1.00 1.00 650 £650.00
Project Management 1.00 1.00 650 £650.00
 
TOTAL 16.00 16.00   £10,400.00
Estimate excludes training, release to live and go live support.

B.1 References

Ref NoDocument Title & IDVersionDate
1EST 324096 Pall-Ex Interface1.030/03/2015
2FS 318572 PART Job Group Level Clausing1.008/04/2015
3FS 326965 Partnerlink EPOD Interface1.022/05/2015
4Pall-Ex TWINE webservices v2.8.pdf2.804/02/2014


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


Matt Turner

OBSL Account Manager
_____________________________

John Davidson

Partnerlink Director
_____________________________