<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?action=history&amp;feed=atom&amp;title=FS_342131_EPOD_HazChem_Integration</id>
	<title>FS 342131 EPOD HazChem Integration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?action=history&amp;feed=atom&amp;title=FS_342131_EPOD_HazChem_Integration"/>
	<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_342131_EPOD_HazChem_Integration&amp;action=history"/>
	<updated>2026-07-02T06:18:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_342131_EPOD_HazChem_Integration&amp;diff=5376&amp;oldid=prev</id>
		<title>Anw: v1.0 - Release after review by PJH</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_342131_EPOD_HazChem_Integration&amp;diff=5376&amp;oldid=prev"/>
		<updated>2017-12-18T14:41:54Z</updated>

		<summary type="html">&lt;p&gt;v1.0 - Release after review by PJH&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:41, 18 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:System|''CALIDUS'' ePOD}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:System|''CALIDUS'' ePOD}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Doc_Title|HazChem Interface}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Doc_Title|HazChem Interface}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Version|0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.1&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Version|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1.&lt;/ins&gt;0}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Date|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;15th &lt;/del&gt;December 2017}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Date|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;18th &lt;/ins&gt;December 2017}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Reference|342131}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Reference|342131}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Year|2017}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#vardefine:Year|2017}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Anw</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_342131_EPOD_HazChem_Integration&amp;diff=5367&amp;oldid=prev</id>
		<title>Anw: v0.1 - Initial Draft</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/OBS/index.php?title=FS_342131_EPOD_HazChem_Integration&amp;diff=5367&amp;oldid=prev"/>
		<updated>2017-12-15T15:57:18Z</updated>

		<summary type="html">&lt;p&gt;v0.1 - Initial Draft&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
{{#vardefine:Client|PART}}&lt;br /&gt;
{{#vardefine:ClientName|Partnerlink}}&lt;br /&gt;
{{#vardefine:System|''CALIDUS'' ePOD}}&lt;br /&gt;
{{#vardefine:Doc_Title|HazChem Interface}}&lt;br /&gt;
{{#vardefine:Version|0.1}}&lt;br /&gt;
{{#vardefine:Date|15th December 2017}}&lt;br /&gt;
{{#vardefine:Reference|342131}}&lt;br /&gt;
{{#vardefine:Year|2017}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Doc_Title&lt;br /&gt;
|Client={{#var:ClientName}}&lt;br /&gt;
|System={{#var:System}}&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Reference=FS {{#var:Reference}}&lt;br /&gt;
|Version={{#var:Version}}&lt;br /&gt;
|Date={{#var:Date}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TOC --&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
= Functional Overview  =&lt;br /&gt;
&lt;br /&gt;
== Client Requirement  ==&lt;br /&gt;
Colin Vickers advises that Knights of Old transport are completing work for the HazChem network and require the POD debrief information to be sent from Calidus ePOD to HazChem's HazchemOnline system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solution Overview  ==&lt;br /&gt;
The process will be as follows:&lt;br /&gt;
*	Hazchem-specific reason codes will be set up within ''CALIDUS'' ePOD, conforming to the list of delivery codes used by Hazchem. These reason codes will be exclusive to the Hazchem job group, and the Hazchem job group will be configured so that only those codes can be used on Hazchem jobs.&lt;br /&gt;
*	New Hazchem Jobs will be sent to Partnerlink through the existing JobShare format, or directly to the back-end TMSs. &lt;br /&gt;
*	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. HAZCHEM. The Pallet Depot will be set to the Hazchem depot code provided to the carrier, to be advised by the customer. The Pallet Consignment will be sent in as the Hazchem ID. {{Note}} This will require change to the sending process from the TMS system to accommodate these new values for every partner that wishes to join the Hazchem network.&lt;br /&gt;
*	The jobs will be completed like any other normal delivery.&lt;br /&gt;
*	When jobs are completed, the existing AutoExport functionality will update the Partners (identified through their Partner Codes) using a flat-file export of the job details in OBS Logistics' XML format, as it does now.&lt;br /&gt;
*	The AutoExport process will also export the files to Hazchem HazchemOnline system, identified through the Job's Group and the configuration attached to it.&lt;br /&gt;
*	The AutoExport functionality will store the success or failure of the export, along with any of the returned reasons from the export.&lt;br /&gt;
&lt;br /&gt;
The development required will be as follows:&lt;br /&gt;
&lt;br /&gt;
The mobile device application will be modified to capture the signature in vector format as well as the standard mechanism of an image format. The application will be configured to store this and use it for the Hazchem export process.&lt;br /&gt;
&lt;br /&gt;
The Admin Export Configuration screen will be changed to allow Hazchem export types to be configured in it.&lt;br /&gt;
&lt;br /&gt;
The Partnerlink Import process will be modified to identify the Hazchem job group (e.g. &amp;quot;HAZCHEM&amp;quot;). This will then generate Pallet Ids in the normal way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The ''CALIDUS'' ePOD AutoExport function will be modified to recognise jobs with the Hazchem job group and export a file in the Hazchem format.&lt;br /&gt;
&lt;br /&gt;
This format will identify the pallets delivered and any reason codes against them, including claused and cancelled pallets. This will also identify the signatory and signature (if delivered), the GPS coordinates (if available) and the status (EDC - Item Delivered - for pallets that were delivered, the selected reason code for clauses and cancellations).&lt;br /&gt;
&lt;br /&gt;
The format will be in XML and will be named following the conventions specified by Hazchem. A single file will be created per job completed or cancelled.&lt;br /&gt;
&lt;br /&gt;
{{Note}} It is as yet undecided what mechanism will be used to send this file to Hazchem. It will however be one of the following:&lt;br /&gt;
* Create the file locally to the ''CALIDUS'' ePOD server and host an FTP service so that Hazchem can pick up the file.&lt;br /&gt;
* Create the file and send immediately through FTP to the Hazchem FTP server.&lt;br /&gt;
The process will support either case as standard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scope  ==&lt;br /&gt;
Assumptions:&lt;br /&gt;
*	Jobs will be sent to Partnerlink and through to ''CALIDUS'' ePOD using the existing JobShare interfaces.&lt;br /&gt;
*	Pallets for the Hazchem network will be labelled with their own network's pallet labels, and not Partnerlink labels. It is expected that pallet IDs 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.&lt;br /&gt;
*	Hazchem's HazchemOnline system will be updated separately to the partner's TMS systems. This will require a modification to identify consignments as being completed for Hazchem.&lt;br /&gt;
*	The Consignment will already exist within the Hazchem HazchemOnline system, ready for updating with POD information from ''CALIDUS'' ePOD.&lt;br /&gt;
&lt;br /&gt;
{{Warning}} If this process requires the files to be sent to an FTP destination, the FTP server, username and password for this remote server must be provided.&lt;br /&gt;
&lt;br /&gt;
{{Warning}} The configuration and the development below assumes that the files created for the HazChemOnline system will always be placed in the same folder or FTP destination for the depot. If this requires to be identified through different sub-folders for each owning (rather than executing) depot, then this will require additional development.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes will be made to latest version of {{#var:System}} only, and will require an update to all application components and full system and user acceptance testing.&lt;br /&gt;
&lt;br /&gt;
{{Note}} This development is dependent on the HazChem interface developed within ''CALIDUS'' ePOD - see [[FS 341168 Palletline Integration]] for details. This change applies only to Customer and Driver signatures at Job Confirmation. Other signatures (for example, Vehicle Checks, Pre-job signatures, etc) are not affected and will not produce SVG signatures. They are not required for this functionality.&lt;br /&gt;
&lt;br /&gt;
It is assumed that modifications to this HazChem interface since this was developed are equally valid to the HazChem system, and this specification will note those differences. These are specified here: [[FS 344795 Palletline Integration Arrival Info]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Warning}} The reason codes used by HazChem are currently used in the Partnerlink system for partner site L26 (Nelson Distribution) only. Any partner other that L26 may set up and use the required HazChem reason codes and complete HazChem jobs with no issues. Due to restrictions on the uniqueness of reason codes in the system, partner L26 may not be able to be set up to complete HazChem jobs - the reason codes would require removing from Job Group L26 and either make them general reason codes or specific to the HAZCHEM job group.&lt;br /&gt;
It is ''not'' assumed that this will cause a problem to the partners, and ''no'' development costs are included in this specification for resolution to problems relating to this. If this is required to be included, this change must be respecified with this work included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Set-up  =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites  ==&lt;br /&gt;
&lt;br /&gt;
== Menu Structure  ==&lt;br /&gt;
&lt;br /&gt;
== Data  ==&lt;br /&gt;
A new Auto-Export configuration will be created for each partner that requires it, linked to the job group HAZCHEM:&lt;br /&gt;
* EPL_XF_CONFIG_ID - As required. For example, for Knights of Old, this may be &amp;quot;HAZCHEM_L03&amp;quot;.&lt;br /&gt;
* EPL_XF_ID - HAZCHEM&lt;br /&gt;
* EPL_XF_TYPE - FILE&lt;br /&gt;
* EPL_XF_DIRECTION - O&lt;br /&gt;
* EPL_XF_DESTINATION - E:\ftpserver\PartnerLink\HAZCHEM_TST\L03\OUT&lt;br /&gt;
* EPL_EXPORT_JOB_TYPES - D&lt;br /&gt;
{{Note}} This configuration is for the test system and assumes that the folder will be created.&lt;br /&gt;
&lt;br /&gt;
{{Warning}} This configuration above assumes that the files will be placed in the {{#var:System}} local file system - in this case, an FTP service, username and password must be provided to the HazChemOnline system to collect the files from this location only. Alternatively, if this process requires the files to be sent to an FTP destination, the FTP server, username and password for this remote server must be provided.&lt;br /&gt;
&lt;br /&gt;
{{Warning}} Further to this, the configuration and the development below assumes that the files created for the HazChemOnline system will always be placed in the same folder or FTP destination for the depot. If this requires to be identified through different sub-folders for each owning (rather than executing) depot, then this will require additional development.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new Job Group &amp;quot;HAZCHEM&amp;quot; will be set up for HazChem jobs. This will initially be a copy of the Palletforce job group &amp;quot;PALLET&amp;quot;. The Export Config ID will be set to the Export Configuration created above (e.g. &amp;quot;HAZCHEM_L03&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HazChem Reason Codes will be added for all sites that require the ability to complete HazChem jobs, as follows:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;silver&amp;quot;&lt;br /&gt;
!Code	!!Description	!!Type	!!Note&lt;br /&gt;
|-&lt;br /&gt;
|EDC ||Item Delivered  ||&amp;amp;nbsp;    ||Normal item delivered status&lt;br /&gt;
|-&lt;br /&gt;
|RFS ||Refused  ||JOB, DET    ||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|RTS ||Return to Sender  ||JOB    ||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|CRD ||Carded  ||JOB    ||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|CLS ||Closed  ||JOB    ||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|DAC ||Damaged at Consignee  ||CLA    ||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|UNC ||Un-Checked  ||CLA    ||&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|OTH ||Other  ||JOB    ||&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Warning}} This will not be possible for existing partner L26, as this partner already uses these reason codes.&lt;br /&gt;
Due to restrictions on the uniqueness of reason codes in the system, partner L26 may not be able to be set up to complete HazChem jobs - the reason codes would require removing from Job Group L26 and either make them general reason codes or specific to the HAZCHEM job group.&lt;br /&gt;
It is ''not'' assumed that this will cause a problem to the partners, and ''no'' development costs are included in this specification for resolution to problems relating to this. If this is required to be included, this change must be respecified with this work included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The interface of job data from the host TMS systems will be modified to identify the Pallet System in use and the Consignment ID. For HazChem jobs, this will be:&lt;br /&gt;
*	PF Tracking Number	- the unique HazChem consignment ID, TrackingCode&lt;br /&gt;
*	Tracking System	- &amp;quot;HAZCHEM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NEW PAGE --&amp;gt; &lt;br /&gt;
= Functional Description  =&lt;br /&gt;
== Database &amp;amp; Data Access Layer ==&lt;br /&gt;
Stored Procedure EPOD_SETUP_LISTS will be modified to add HAZCHEM to EPOD_LIST_ITEMS for Export Types (List 38 - EXPORTS_CLIENT_TYPE). {{Note}} This meta-data needs to be added to the system upon implementation by OBSL staff to ensure that HazChem jobs trigger messages to the HazChem HazChemOnline system. No code modifications are required to the trigger to write the control records, as adding this record will then handle that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The existing trigger TRG_EPOD_USER_AUDIT_INSERT on table EPOD_USER_AUDIT will be modified for this change. This will trigger writing of a control record for the HAZCHEM interface for action &amp;quot;ARRI&amp;quot;, if the job is arrived via the mobile device, and the job arrived is configured for the HAZCHEM interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The value of EPL_MESSAGE TYPE will be checked. If this is set to &amp;quot;JOB_ARRIVAL&amp;quot;, the process will check to see if the job associated to the job arrival (on EPOD_JOB, through EPL_SITE_ID and EPL_JOB_ID on EPOD_USER_AUDIT) has a &amp;quot;HAZCHEM&amp;quot; Export configuration. This will be checked by retrieving all EPOD_XF_CONFIG records associated to the Site (EPOD_SITE) and Job Group (EPOD_JOB_GROUP) of the job.&lt;br /&gt;
&lt;br /&gt;
{{Note}} As this is an extension to the existing Palletline functionality and the SQL should include both the PLINE and HAZCHEM Config IDs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;PLINE&amp;quot; or &amp;quot;HAZCHEM&amp;quot; export configuration is found, write an EPOD_XF_CONTROL record with EXC_TYPE &amp;quot;PLINE&amp;quot; or &amp;quot;HAZCHEM&amp;quot;, EXC_ACTION &amp;quot;ARRI&amp;quot;. &lt;br /&gt;
The record created will be populated as follows:&lt;br /&gt;
    C.EPL_XF_CONFIG_ID AS EXC_EXTERNAL_SYSTEM, &lt;br /&gt;
    'ARRI' AS EXC_ACTION, &lt;br /&gt;
    'P' AS EXC_STATUS, &lt;br /&gt;
    C.EPL_XF_ID AS EXC_TYPE,&lt;br /&gt;
    I.EPL_SITE_ID AS EXC_SITE_ID, &lt;br /&gt;
    I.EPL_LOAD_ID AS EXC_LOAD_ID, &lt;br /&gt;
    I.EPL_JOB_ID AS EXC_JOB_ID, &lt;br /&gt;
    I.EPL_JOB_TYPE AS EXC_JOB_TYPE,&lt;br /&gt;
    I.EPL_CUSTOMER_CODE AS EXC_CUSTOMER_CODE, &lt;br /&gt;
    '' AS EXC_VEHICLE_ID, &lt;br /&gt;
    @iCurrentDate AS EXC_CREATED_DATE, &lt;br /&gt;
    @iCurrentTime AS EXC_CREATED_TIME,&lt;br /&gt;
    C.EPL_XF_CONFIG_UID AS EXC_XF_CONFIG_UID&lt;br /&gt;
&lt;br /&gt;
{{Note}} The process should only insert a record to EPOD_XF_CONTROL if there is not a record already on the table for this Site, Job Type, Config UID with action 'ARRI' at Status &amp;quot;P&amp;quot;, e.g.&lt;br /&gt;
&lt;br /&gt;
    NOT EXISTS (SELECT 1 FROM dbo.EPOD_XF_CONTROL WHERE EXC_SITE_ID = I.EPL_SITE_ID AND EXC_JOB_ID = I.EPL_JOB_ID AND EXC_JOB_TYPE = I.EPL_JOB_TYPE '''AND EXC_ACTION = 'ARRI'''' AND EXC_XF_CONFIG_UID = c.EPL_XF_CONFIG_UID AND EXC_STATUS = 'P')&lt;br /&gt;
&lt;br /&gt;
SQL examples can be taken from the existing trigger TRG_EPOD_JOB_UPDATE, as in the following example:&lt;br /&gt;
&lt;br /&gt;
    SELECT C.EPL_XF_CONFIG_ID AS EXC_EXTERNAL_SYSTEM, 'ARRI' AS EXC_ACTION, 'P' AS EXC_STATUS, C.EPL_XF_ID AS EXC_TYPE,&lt;br /&gt;
       I.EPL_SITE_ID AS EXC_SITE_ID, I.EPL_LOAD_ID AS EXC_LOAD_ID, I.EPL_JOB_ID AS EXC_JOB_ID, I.EPL_JOB_TYPE AS EXC_JOB_TYPE,&lt;br /&gt;
        I.EPL_CUSTOMER_CODE AS EXC_CUSTOMER_CODE, el.EPL_VEHICLE_ID AS EXC_VEHICLE_ID, @iCurrentDate AS EXC_CREATED_DATE, @iCurrentTime AS EXC_CREATED_TIME,&lt;br /&gt;
        C.EPL_XF_CONFIG_UID AS EXC_XF_CONFIG_UID&lt;br /&gt;
        FROM Inserted I       &lt;br /&gt;
        INNER JOIN dbo.EPOD_JOB_GROUPS jg ON jg.EPL_SITE_ID = I.EPL_SITE_ID AND jg.EPL_JOB_GROUP = I.EPL_JOB_GROUP&lt;br /&gt;
        INNER JOIN dbo.EPOD_LOAD el ON el.EPL_SITE_ID=I.EPL_SITE_ID and EL.EPL_LOAD_ID = I.EPL_LOAD_ID&lt;br /&gt;
        INNER JOIN dbo.EPOD_XF_CONFIG C ON C.EPL_XF_CONFIG_ID = jg.EPL_XF_CONFIG&lt;br /&gt;
             AND CHARINDEX(I.EPL_JOB_TYPE, C.EPL_EXPORT_JOB_TYPES) &amp;gt; 0&lt;br /&gt;
             AND C.EPL_XF_DIRECTION = 'O'&lt;br /&gt;
             AND C.EPL_XF_ID '''IN ('PLINE', 'HAZCHEM')'''&lt;br /&gt;
        INNER JOIN #tmpTblEpodList AS tblEpodList ON C.EPL_XF_ID = tblEpodList.VALUE&lt;br /&gt;
        WHERE (c.EPL_XF_ID NOT IN (SELECT XF_ID FROM @tblExportOnlyComplete) OR (c.EPL_XF_ID IN (SELECT XF_ID FROM @tblExportOnlyComplete) AND i.EPL_STATUS = 'C'))&lt;br /&gt;
        AND NOT EXISTS (SELECT 1 FROM dbo.EPOD_XF_CONTROL WHERE EXC_SITE_ID = I.EPL_SITE_ID AND EXC_JOB_ID = I.EPL_JOB_ID AND EXC_JOB_TYPE = I.EPL_JOB_TYPE AND EXC_ACTION = 'ARRI'&lt;br /&gt;
        AND EXC_XF_CONFIG_UID = c.EPL_XF_CONFIG_UID AND EXC_STATUS = 'P')&lt;br /&gt;
&lt;br /&gt;
The existing trigger TRG_EPOD_JOB_UPDATE on table EPOD_JOB will be modified to check against the action when looking for XF Control records that already exist. This occurs multiple times in the package, and should be changed as in the following example&lt;br /&gt;
        AND NOT EXISTS (SELECT 1 FROM dbo.EPOD_XF_CONTROL WHERE EXC_SITE_ID = I.EPL_SITE_ID AND EXC_JOB_ID = I.EPL_JOB_ID AND EXC_JOB_TYPE = I.EPL_JOB_TYPE '''AND EXC_ACTION = 'A''''&lt;br /&gt;
        AND EXC_XF_CONFIG_UID = c.EPL_XF_CONFIG_UID AND EXC_STATUS = 'P')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Admin ==&lt;br /&gt;
=== Export Configuration Screen ===&lt;br /&gt;
The Admin Export Configuration screen will be changed to allow the parameters for the new HazChem extract to be specified against it.&lt;br /&gt;
&lt;br /&gt;
[[File:FS_342131_ExportConfig1.PNG|border|600px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;''Export Configuration Maintenance''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ID drop-down list will be modified to allow the new values below when entering a new configuration:&lt;br /&gt;
* HAZCHEM, description &amp;quot;HazChem&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note}} When complete, the standard interface configuration documentation must be modified to add the new HazChem interface. This is referenced in [[#Appendix B: Quote &amp;amp; Document References|Appendix B]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto-Export ==&lt;br /&gt;
The auto-export process retrieves all completed jobs that have not yet been transferred out of the system, and checks whether they require transfer.&lt;br /&gt;
&lt;br /&gt;
Any that do not require transfer will be marked as transferred.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
This function (EPOD_SYS_EXPORT.ExportXFControl) will be modified when checking dalEPOD_XF_CONFIG.EPL_XF_ID, adding another case:&lt;br /&gt;
* HAZCHEM - for HazChem exports (see next section) - This will call the existing function EPOD_SYS_EXPORT.GeneratePlineContent.&lt;br /&gt;
&lt;br /&gt;
The Filename will be defined in the Export Configuration as (EPL_PF_DEPOT)-(DATE)-(TIME)-(UID).xml &lt;br /&gt;
Where:&lt;br /&gt;
* EPL_PF_DEPOT - the PF Depot for the job.&lt;br /&gt;
* DATE - date sent in YYYYMMDD format.&lt;br /&gt;
* TIME - time sent in HHMMSS format.&lt;br /&gt;
* UID - a 2-digit unique sequence for every file sent.&lt;br /&gt;
The file will always be &amp;quot;xml&amp;quot; extension.&lt;br /&gt;
&lt;br /&gt;
Once all the data is created, the function then sends the message in the format specified on the transfer configuration record, as now. &lt;br /&gt;
&lt;br /&gt;
=== PalletLine Auto-Export Process ===&lt;br /&gt;
The existing PalletLine Auto-Export process will:&lt;br /&gt;
* Send Arrival messages (type &amp;quot;ARRI&amp;quot;)&lt;br /&gt;
* Send POD messages (type &amp;quot;EDC&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
This process will be changed to recognise that this is a HazChem export and not a Palletline export (by the Config Id) and will make the following changes to the export format:&lt;br /&gt;
* write EDC reasons instead of EPOD reasons for successfully delivered pallets&lt;br /&gt;
* write ARR reasons instead of ARRI for arrived pallets&lt;br /&gt;
* substitute TrackingCode instead of Id for the tracking ID tag name.&lt;br /&gt;
&lt;br /&gt;
The full definition of these processes as they were written can be found in the following specifications:&lt;br /&gt;
* [[FS 341168 Palletline Integration]]&lt;br /&gt;
* [[FS 344795 Palletline Integration Arrival Info]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE YES --&amp;gt; &lt;br /&gt;
= Appendix A: TEST PLAN  =&lt;br /&gt;
{{TestPlan_Header&lt;br /&gt;
|Title={{#var:Doc_Title}}&lt;br /&gt;
|Log={{#var:Reference}}&lt;br /&gt;
|Description=Testing Exports out to the HazChem HazChemOnline system from {{#var:System}}.&lt;br /&gt;
|MenuAccess=Administration/Auto-Export&lt;br /&gt;
|Prerequisites=A system configured as Partnerlink Test.&lt;br /&gt;
|Objective=To test: Auto-Export may be configured for HazChem exports and; Auto-Export exports the jobs correctly to the HazChem HazChemOnline system.&lt;br /&gt;
}} {{ #vardefine: Cycle | 0 }}{{ #vardefine: SubCycle | 0 }}&lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=Admin System&lt;br /&gt;
|Notes=&lt;br /&gt;
}} &amp;lt;!--INSERT TESTS HERE --&amp;gt; {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Ensure that HazChem exports may be configured through the Auto-Export screen.&lt;br /&gt;
|Result=New Export Configurations may be created of ID HAZCHEM, allowing selection of this through the drop-down grid and displayed on the table on the screen.&lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}}{{TestPlan_CycleFooter}} &lt;br /&gt;
{{TestPlan_CycleHeader&lt;br /&gt;
|Cycle={{ #vardefineecho: Cycle | {{ #expr: {{ #var: Cycle }} + 1 }} }}{{ #vardefine: SubCycle | {{ #var: Cycle }} }}&lt;br /&gt;
|Title=Auto-Export&lt;br /&gt;
|Notes=&lt;br /&gt;
}} &amp;lt;!--INSERT TESTS HERE --&amp;gt; {{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Cancel a job. Complete a job up to arrival. Check the export directory.&lt;br /&gt;
|Result=The Job has a Palletline export files created for it, with the correct name. The file is populated correctly. The GPS is set correctly. The Signature and PodName is present but has no value. The containers are included in the file - all arrived containers are marked with status ARR.&lt;br /&gt;
&lt;br /&gt;
The Job requiring export that was cancelled has a Palletline export file created for it, with the correct name and contents as before, but all pallets are cancelled with correct job cancellation reason code, and no signature is included. &lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}}{{TestPlan_Test&lt;br /&gt;
|Test={{ #vardefineecho: SubCycle | {{ #expr: {{ #var: SubCycle }} + 0.01 }} }}&lt;br /&gt;
|Action=Complete this job, cancelling and clausing some containers. Cancel another job completely. Check the export directory.&lt;br /&gt;
|Result=The Job has a Palletline export files created for it, with the correct name. The file is populated correctly. The GPS is set correctly. The Signature is converted correctly. The PodName is populated correctly. The containers are included in the file - all normally delivered containers are marked with status EDC, while all others have the correct reasons. The claused container has the correct clause code and notes against it. &lt;br /&gt;
|Remarks=&lt;br /&gt;
|PassFail=&lt;br /&gt;
}}{{TestPlan_CycleFooter}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MEDIA LANDSCAPE NO --&amp;gt; &lt;br /&gt;
{{Doc_Appendix&lt;br /&gt;
|Appendix=B&lt;br /&gt;
|Estimate=Y&lt;br /&gt;
|Glossary=EPOD&lt;br /&gt;
|Ref1=[[EST 342131 EPOD HazChem Integration]]&lt;br /&gt;
|RefV1=0.1&lt;br /&gt;
|RefDate1=09/03/2017&lt;br /&gt;
|Ref2=[[FS 326965 Partnerlink EPOD Interface]]&lt;br /&gt;
|RefV2=1.0&lt;br /&gt;
|RefDate2=22/05/2015&lt;br /&gt;
|Ref3=EDC File Spec.pdf&lt;br /&gt;
|RefV3=4&lt;br /&gt;
|RefDate3=01/01/2016&lt;br /&gt;
|Ref4=[http://172.198.45.54/calidus-assist/EPOD/index.php/Standard_Interface_Configuration Standard Interface Configuration (''CALIDUS'' Assist)]&lt;br /&gt;
|RefV4=&amp;amp;nbsp;&lt;br /&gt;
|RefDate4=&amp;amp;nbsp;&lt;br /&gt;
|EREQ=0&lt;br /&gt;
|EEST=0.25&lt;br /&gt;
|EFS=1.25&lt;br /&gt;
|ETS=0&lt;br /&gt;
|EDEV=5&lt;br /&gt;
|ESTT=1.00&lt;br /&gt;
|EIMP=0.25&lt;br /&gt;
|EPM=0.50&lt;br /&gt;
|REQ=0&lt;br /&gt;
|EST=0.25&lt;br /&gt;
|FS=1.25&lt;br /&gt;
|TS=0&lt;br /&gt;
|DEV=5&lt;br /&gt;
|ST=1.00&lt;br /&gt;
|IMP=0.25&lt;br /&gt;
|PM=0.50&lt;br /&gt;
|Client={{#var:Client}}&lt;br /&gt;
|Year={{#var:Year}}&lt;br /&gt;
|FSEST=Y&lt;br /&gt;
|FOC=N&lt;br /&gt;
|Rev1=Matt Turner&lt;br /&gt;
|Rev1Title=OBSL Account Manager&lt;br /&gt;
|Rev2=Colin Vickers&lt;br /&gt;
|Rev2Title=Customer Representative&lt;br /&gt;
}}&amp;lt;/div&amp;gt; &lt;br /&gt;
[[Category:{{#var:Client}} FS]]&lt;/div&gt;</summary>
		<author><name>Anw</name></author>
	</entry>
</feed>