0% found this document useful (0 votes)
65 views

N4 3.4 Gate - Api.specification

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

N4 3.4 Gate - Api.specification

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

Navis N4

Gate API Specification


3.4

Confidential -- Proprietary Navis N4: Gate API Specification 3.4 i


CONFIDENTIAL INFORMATION OF Navis LLC
UNAUTHORIZED USE IS STRICTLY PROHIBITED.
Navis N4 is a trademark of Navis LLC.
© Navis LLC 1988 - 2017. All rights reserved.
This document has been made available as part of the license that has been granted to an authorized user
of Navis LLC software. Use of this documentation is subject to the terms and limitations of that license
agreement. This documentation describes all functionality that can be licensed for this product. Not all
functionality described in this documentation may be available to you depending on your license
agreement. If you are not aware of the relevant terms of your license agreement, contact sales at Navis
LLC. This document is protected by copyright and by the licensee’s agreement to maintain the
confidentiality of the content of this document as provided in the license agreement for the software.
Liability Disclaimer
Navis LLC takes steps to ensure that its published documentation is correct; however, errors do occur.
Navis LLC reserves the right to correct any such errors and disclaims liability resulting therefrom.
Limitation of Liability
In no event shall Navis LLC or any of their licensors be liable to You for any of the following (collectively
referred to as "Injuries"): injuries (including death) or damages to persons or to property, or damages of
any other kind, direct, indirect, special, exemplary, incidental or consequential, including, but not limited
to, loss of use, lost profits, lost revenues, loss of data, replacement costs, debt service or rental payments,
or damages owing by You to others, whether arising out of contract, tort, strict liability or otherwise,
arising from or relating to the design, use or operation of these online materials, the Software,
Documentation, Hardware, or from any Services provided by Navis LLC (whether or not Navis LLC or its
licensors knew or should have known of the possibility of any such Injuries) even if a remedy set forth
herein is found to have failed of its essential purpose.
Navis LLC
55 Harrison Street, Suite 600
Oakland CA 94607 USA
www.navis.com
Tel: +1 510 267 5000
Fax: +1 510 267 5100

ii Navis N4: Gate API Specification 3.4 Confidential -- Proprietary


Contents
1. Gate API Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 Gate Appointment and Truckvisit Appointment Webservice API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2 Support for general cargo fields for the GATE API requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Confidential -- Proprietary
1
Gate API Specification
Description
1 Levels of Gate Automation
1.1 Total Automation
1.2 Semi-automation
1.3 Data Entry Assist
2 General Process Flow
2.1 Automated Gates
2.2 Self-help Gates
3 General API Structure
3.1 Common Webservice API
3.2 Accessing the Common Webservice API
3.3 XML Payload Formats
3.4 XML Request Format
3.5 XML Response Payload Format
3.6 XML Response Format Configuration
3.6.1 Response Format Configuration Settings
3.6.1.2 Element <truck-visit>
3.6.2 Response Format Parameters
4 Process API's Provided by Sparcs N4
4.1 read-preadvise
4.2 record-scan
4.3 process-truck
4.4 create-truck-visit
4.5 notify-arrival
4.6 request-pickup-appointments
4.7 submit-transaction
4.8 submit-multiple-transactions
4.9 stage-done
4.10 cancel-transaction
4.11 cancel-truck-visit
4.12 need-assistance
4.13 create-appointment
4.14 update-appointment
4.15 cancel-appointment
5 Process API's Provided by Other Systems
5.1 notify-resume
5.2 open-gate-arm
5.3 print-ticket
5.4 truck-arrival
5.5 truck-departure
6 Driver Interaction
6.1 Pickup Selection
6.2 Dropoff Details
7 Process Truck API Workflow
7.1 Basic Scan Validation
7.2 Process Pre-lodged Dropoffs
7.3 Fail Unexpected Container
7.4 Solicit Further Details
7.5 Process Pre-lodged Pickups
7.6 Solicit Appointment Selection
7.7 Solicit Pickup Selection

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 2


7.8 Trouble Processing
8 Gate Lane Monitor

Description
This document describes the implementation details for how various technologies can be leveraged to automate gate processing and
the formal API's defined in N4 to interact with the gate operating system (GOS) that is physically controlling these devices.

1 Levels of Gate Automation


The degree to which gate processing can be automated depends on the technology present and also on prior information available.
The mixture of these elements varies widely by installation, and it is this variation that dictates the level of automation possible.

1.1 Total Automation


Using technology which identifies each container and the truck, if all drop-offs are pre-advised (or have appointments) and
appointments are created for all pickups planned for the truck, the gate process upon the truck's arrival at the terminal can be entirely
automated. Usually, for subsequent gate stages, just the technology alone is sufficient to entirely automate the processing.

1.2 Semi-automation
Even with this technology, if pre-advised dropoffs or appointments and pickup appointments are not consistently provided, it is not
possible to entirely automate the in-gate. Some intervention may be required, by either the driver or a clerk to provide any missing
information.

1.3 Data Entry Assist


Some of this technology might be present with little prior information and therefore a clerk is always required to process the truck. At
best, the technology is only used to assist in the clerk's data entry.

2 General Process Flow


2.1 Automated Gates
For gates that are entirely automated, the general interaction simply requires that the GOS send the scanned information to N4 via
the process-truck API. Using the scanned information, and pre-lodged information may be sufficient to do entire processing for the
truck.
However, even for a highly automated gate, determining the pickups may require some interaction from the driver to select the
pickups. Ideally this will just be a simple matter of the driver selecting from a list of outstanding pickup appointments or entering
specific container numbers. The N4 auto-gate workflow will be configured if appointments are used. Furthermore, N4 can be
configured to automatically process any and all of the trucks pickup appointments if all the appointments can be reasonably
preformed on one truck visit based on the max TEU parameter discussed later in this section.
If pickup appointments are supported, N4 will return a list of the possible pickup appointments in the response to the process-truck cal
l. The GOS is expected to display this list to the driver and either call N4 with the driver's selection using the submit-transaction API
or possibly the stage-done API if the driver has no further selections.
After each pickup appointment is performed, N4 will evaluate the remaining pickup appointments, and if so configured, N4 will
automatically assume the pickup processing is complete. Also, a max TEU parameter can be set to indicate the pickup process is
complete if selecting any further pickups would exceed this max TEU value. For example, assume max TEU is set to 2, and the
driver has two 20' and one 40' appointment. If a 20' appointment is selected, only the remaining 20' pickup will be proposed to the
driver as a possible second pickup, since choosing the remaining 40' pickup would exceed the max TEU setting.
If the work flow is configured to solicit containers numbers from the driver, N4 will not assume the pickup process is complete if there

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 3


are no remaining pickup appointments. This way the GOS can solicit container numbers from the driver beyond any appointments
and send these to N4 via the submit-transaction API. However, N4, if so configured, N4 will still enforce the max TEU setting
regardless if the pickups where from an appointment or a specific container number entry.

2.2 Self-help Gates


For this style of gate, it is expected the driver will enter the information that would normally be provided by a dropoff appointment or
pre-advised container. For this situation an entirely different workflow is provided. Instead of sending all the scans in one call, the
GOS needs to construct the workflow from lower level APIs and stitch together the workflow and deal with unannounced drop-offs.
For each scanned container, the GOS should call the N4 read-preadvise API. N4 will return what is known about the container from
its master equipment inventory, pre-advised containers or a possible drop-off appointment. The GOS can then present this
information to the driver to review and change present to N4 using the submit-transaction API.
Once the drop-offs have been processed, the GOS can request the pickups from the driver and send each selected container by
calling the submit-transaction API. Finally, when the driver is finished the GOS notifies N4 using the stage-done API.
If pickup appointments are supported the GOS can optionally call the request-pickup-appointments API. Depending on the N4
auto-gate configuration as discussed in section 4.1, N4 might automatically process the trucks appointment or just return a list of the
trucks outstanding pickup appointments. This way, the use of appointments can be encouraged even though the normal practice is
for the driver to specify the container numbers for the pickups.

3 General API Structure


Web Services are used since they are widely accepted and supported by most platforms and programming environments. Each Web
Service is defined using the Web Service Definition Language XML document referred to as a WSDL. A WSDL describes a set of
API's including the calling arguments and expected response. In addition, the elements and attributes embedded in a WSDL can be
further specified by including additional schemas to specify their structure.
To achieve a consistent process flow it is necessary at some points for N4 to initiate an action which is managed by the GOS. For
instance the opening of a gate arm could happen from the GOS if all transactions completed successfully when it received a
successful response, however if the clerk has to intervene using the N4 user interface then a call has to be made out from N4 to the
GOS when the clerk completes the processing. To achieve this, the list of API's specified also include API's to be implemented on the
GOS that N4 will call out to.

3.1 Common Webservice API


Due to the variety of interfaces required to support the numerous gate operations, a common WSDL with just one general purpose
API is used to cover all these variations. The common WSDL API has a header structure that provides for the elements and
attributes that are usually present in any request. Details that are specific to each individual process are carried in a common
payload argument that is an XML document specific to the request. Outbound [ARGO:from N4's perspective] web-services, i.e. those
which are implemented by the GOS or tracking systems are specified with the same WSDL.
Using this approach not only prevents the proliferations of WSDL definitions, but also has the flexibility to provide downward
compatibility as the process details evolve. Otherwise, if all the specific arguments were explicitly defined in numerous special
purpose WSDL API definitions, the WSDL could not be modified independently by either party. Most Web Service interfaces do not
support even the slightest change in a WSDL definition.
Since the details are only in the payload of the API call and response, extensive enhancements can be made to the schema of the
payload document without causing backward compatibility issues. Typically attributes and elements can be added to the payload
schema without effecting callers that are not providing or expecting these new document entries. When retrieving data from the
payload the reader should anticipate that some values may not even be present if the caller is using a previous version of the payload
schema.

3.2 Accessing the Common Webservice API


The specification and instructions for accessing the common web-service API are detailed under SPARCS N4 Web Services availabl
e in the N4 SDK.
All calls to the common Web Service API have the same general form:
- The scope of the request, i.e. the terminal operator, complex and facility.
- User credentials
- Preferred language for returned messages
- XML payload for the specific operation
The response also has a common format:

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 4


- Any messages that have been generated during the call (info, warning or severe)
- A single status code indicating the worst level of any of the messages
- Results from the specific operation
Note: Callers are strongly discouraged from acting upon any specific error message as the errors are subject to change. Instead, the
caller should only be concerned if the API failed or succeeded and treat the messages as free format text to display and/or log.

3.3 XML Payload Formats


Whereas the interaction with the common Web Service is the same for a number of Sparcs N4 modules, the contents of the xml
payload and the results are specific to the application API being invoked. The formats of the XML payloads for the gate Web Service
are covered later in this document. The process API's are described in the next section. The individual data elements are defined in
the respective xsd's.

3.4 XML Request Format


The format of the xml request payload is defined in GateWebserviceRequest.xsd for calls to N4 and GosWebserviceRequest.xsd for
calls to the GOS.
A sample message is shown below. The <gate> tag identifies that the payload is for the gate Web Service (GOS implemented Web
Service have a <gos> tag). <record-scan> indicates the name of the process API that is being invoked and within that is the data
required for the action.
<gate>

<record-scan scan-status="0">
<gate-id>MAIN</gate-id>
<stage-id>SECURITY</stage-id>
<truck id="A56874" trucking-co-id="TC1"/>
<truck-visit gos-tv-key="624093573762"/>
<timestamp>2007-07-28T13:45:12</timestamp>
</record-scan>
</gate>

3.5 XML Response Payload Format


N4 responds with payloads specified in GateWebserviceResponse.xsd, the GOS responses have no payload, only a status as there
is no other information to return. The XML content is returned as the first query result within the common response of the common
Web Service API response (see SPARCS N4 Web Services in N4 SDK). For successful calls the details of the transaction, ticket or
appointments are returned. The subsequent call from the GOS to N4 submit-transaction should contain only the field ID and the
value pairs.

3.6 XML Response Format Configuration


In order to support conflicting requirements some response message configuration has been introduced.Configuration can be by
application setting or by parameters in the request message. Setting based configuration is primarily used to maintain compatibility
across application releases whereas parameterized configuration is used to tailor responses to a customer's specific requirement.

3.6.1 Response Format Configuration Settings

3.6.1.2 Element <truck-visit>


Prior to the 2.0 release all API calls that returned truck visits only returned a single truck visit. As of the 2.0 release API's were
introduced that required the returning of multiple truck visits. The previous format of <truck-visit> and <truck-transactions> elements,
each at the same level within the response does not handle multiple visits well as it requires the caller to work out which transactions
are associated with which visit.

An alternative format for <truck-visit> has been introduced whereby the <truck-transactions> element is contained within the
<truck-visit> element so the response indicates the relationship between truck-visit and transactions.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 5


The configuration setting ROADAPI001 TRUCK_TRANSACTION_RESPONSE_ATTACHMENT controls the format with the follow
values:

TRUCK_TRANSACTION_RESPONSE_ATTACHMENT_RESPONSE

The <truck-visit> and <truck-transactions> elements are at the same level in the response. This is the default setting and is
compatible with pre-2.0 releases.

Example:

<request-visit-details-response> <truck-visit tv-key="9043651" gos-tv-key="521" next-stage-id="IngateInsp" status="OK">


<documents /> </truck-visit> <truck-transactions tv-key="9043651"> <truck-transaction tran-key="9043654" tran-nbr="4594"
tran-type="DOM" category="STRGE" freight-kind="MTY" next-stage-id="Ingate" status="OK"> <container
eqid="MHRU521.1" type="2200" line-id="UNK" has-documents="false" /> <documents /> </truck-transaction>
</truck-transactions> </request-visit-details-response>

TRUCK_TRANSACTION_RESPONSE_ATTACHMENT_TRUCK_VISIT

The <truck-transactions> element is contained within the <truck-visit> element.

<request-visit-details-response> <truck-visit tv-key="9043651" gos-tv-key="521" next-stage-id="IngateInsp" status="OK">


<documents /> <truck-transactions tv-key="9043651"> <truck-transaction tran-key="9043654" tran-nbr="4594"
tran-type="DOM" category="STRGE" freight-kind="MTY" next-stage-id="Ingate" status="OK"> <container
eqid="MHRU521.1" type="2200" line-id="UNK" has-documents="false" /> <documents /> </truck-transaction>
</truck-transactions> </truck-visit> </request-visit-details-response>

Notes:

1. The configuration setting applies to all API's that return a <truck-visit> and transactions. This enables the customer to use the
same interpretation for all <truck-visit> responses.

2. The attribute tv-key has also been added to the <truck-transactions> element. This allows a programmatic association between
truck-visits and transactions if the pre-2.0 format is used.

3.6.2 Response Format Parameters

4 Process API's Provided by Sparcs N4


This section describes each API as named in the XSD's. API's implemented by the GOS are indicated as "(outbound)".

4.1 read-preadvise
Using this API for a self-help gate, the GOS container read the possible existing details for a drop that is either pre-advised or has an
existing appointment.
Context Attributes: gate Id, stage id, lane id
Data Attributes: container id
Response: a detailed payload is returned containing the container type, export booking, gross weight, seal numbers, etc.

4.2 record-scan
Using this API information detected at the gate can be passed to Sparcs N4. Each piece of information can be passed individually,
thus resulting in several API calls as information becomes available, or the information can be bundled together into one single API
call. Sparcs N4 will persist this information for later use when the truck is processed. Typically this API is used for a gate where a
clerk will do the actual processing and the scanned data will only be used to assist the data entry, so it is beneficial to make the
information available to Sparcs N4 as soon as it is known. scan-set-id must be unique for all requests, except in cases where the
intent is to update the existing scan information that was previously sent with a scan-set-id.
Context Attributes: gate Id, stage id, lane id, scan-set-id

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 6


Data Attributes: container ids, container types, accessory ids, chassis Id, seals, scale weight, truck Identifier (or license nbr),
bat nbr
Response: other than the common response, no payload is returned.

4.3 process-truck
Using this API the processing of a truck can be initiated in Sparcs N4. This API can include all the information scanned in the lane.
So calling the "Record Scan" API prior to this call is not necessary. However the information from prior calls of "Record Scan" will be
used to supplement the information sent in the "process truck" call.
Normally for a highly automated gate with appointments, the entire processing of the truck at the in-gate can be performed with this
one call. Without appointment/pre-advise information, some further interaction with the driver or the assistance of a clerk may be
required. This situation is discussed separately in a later section.
For other gate stages, such as the out-gate, or a straddle exchange lane, the entire processing can almost always be performed
entirely from this one API call.
Context Attributes: gate Id, stage id, lane id
Data Attributes: Truck details, Chassis Profile details, Driver information details, Images, Scale weight information, Truck visit
appointment number or Gate transaction appointment numbers, Equipment Scan information consisting of container scan,
Accessory scan and Chassis scan, Image Details and scan set related details. Container scan has container accessory details,
container damages details, container placard details, container VGM details (VGM weight, VGM weight unit and VGM entity) and
container bundle(payload) details. Accessory scan has accessory damage details in addition to basic accessory info. Chassis
scan has chassis accessory details, chassis damages details, chassis placard details and chassis bundle(payload) details.

Sample request and response message formats for process-truck gate api are shown below.

Request:

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 7


Sample Process Truck Message
<gate>
<process-truck scan-status="0" scan-set-id="33333318"
no-content="false">
<gate-id>GEN_GATE</gate-id>
<stage-id>ingate</stage-id>
<lane-id>IGL1</lane-id>
<truck license-nbr="SMPTL1755"/>
<truck-visit gos-tv-key="12352" appointment-nbr="1314"/>
<equipment>
<container eqid="SMP01090115" type="2200"
on-chassis-id="SMPC01090115" vgm-weight="15000"
vgm-weight-unit="lb">
<accessory eqid="SMPA01090115" type="A01"
owner-id="APL" operator-id="APL"/>
<damages>
<damage severity="Major" type="DENT"
component-id="DOOR"/>
</damages>
<bundles>
<bundle bundle-nbr="SMP01090215" eq-type="2200">
<damages>
<damage severity="Major" type="RUST"
component-id="ROOF"/>
</damages>
</bundle>
</bundles>
</container>
<chassis eqid="SMPC01090115" type="C20" is-owners="false"/>
</equipment>
<timestamp>2007-07-28T13:45:12</timestamp>
</process-truck>
</gate>

Response: for completely automated gates the ticket information is returned from a successful call. For less automated
gates, information describing what additional data is required from the driver is returned.

Process-Truck API response


<?xml version="1.0" encoding="UTF-8"?>
<argo-response status="0" status-id="OK">
<argo:gate-response xmlns:argo="http://www.navis.com/argo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.navis.com/argo
GateWebserviceResponse.xsd">
<process-truck-response>
<truck-visit tv-key="8841" gos-tv-key="12352"

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 8


appointment-nbr="1314" next-stage-id="outgate" status="OK"
gate-id="GEN_GATE" entered="2015-01-09T13:59:32">
<trucking-co id="SPTC1" />
<chassis-profile id="40" />
<driver card-id="SMPDC001" driver-name="SATISH PAI" />
<documents>
<document doc-key="9213" type="ROUTE" no-of-copies="0">
<content><![CDATA[<argo:Document
xmlns:argo="http://www.navis.com/argo"><argo:docDescription><docNam
e>ROUTE</docName><docType>55</docType></argo:docDescription><argo:d
ocBody><argo:truckVisit><tvdtlsLicNbr>SMPTL1755</tvdtlsLicNbr><tvdt
lsTruckId>SMPTID001</tvdtlsTruckId><tvdtlsDriverCardId>SMPDC001</tv
dtlsDriverCardId><tvdtlsDriverName>SATISH
PAI</tvdtlsDriverName><tvdtlsDriverLicenseNbr>DL10131101</tvdtlsDri
verLicenseNbr><tvdtlsTrkCompany>SPTC1</tvdtlsTrkCompany><tvdtlsTrkC
ompanyName>SATISH PAI TRUCK
CO1</tvdtlsTrkCompanyName><tvdtlsTrkId>SMPTID001</tvdtlsTrkId><tvdt
lsBatNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tvdtlsTvKey
>8841</tvdtlsTvKey><tvdtlsGosTvKey>12352</tvdtlsGosTvKey><tvdtlsTrk
StartTime>2015-01-09
13:59:32</tvdtlsTrkStartTime><tvdtlsEntryLane><laneId>IGL1</laneId>
</tvdtlsEntryLane><tvdtlsFlexString01 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tvdtlsFlexS
tring02 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tvdtlsFlexS
tring03 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><argo:tvdtls
RequiredStages><stageId>ingate</stageId><stageOrder>1</stageOrder><
stageDescription>ingate</stageDescription></argo:tvdtlsRequiredStag
es><tvdtlsAppointmentNbr>1314</tvdtlsAppointmentNbr><tvdtlsAppointm
entState>CREATED</tvdtlsAppointmentState><argo:tvdtlsAnnouncements/
></argo:truckVisit><argo:trkTransaction><argo:tranCtrOperator><bizu
Id>APL</bizuId></argo:tranCtrOperator><argo:tranUnit><unitId>SMP010
90115</unitId></argo:tranUnit><argo:tranFacility><fcyId>PORTELIZABE
TH</fcyId></argo:tranFacility><argo:tranComplex><cpxId>USNWK</cpxId
></argo:tranComplex><argo:tranOperator><oprId>MAH</oprId></argo:tra
nOperator><argo:tranCtrPosition><posLocId>Y-MAIN-FLD</posLocId></ar
go:tranCtrPosition><argo:tranChsPosition><posLocId>MAIN</posLocId><
/argo:tranChsPosition><tranNbr>4012</tranNbr><tranExchangeAreaId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranSubType
>RM</tranSubType><tranTruckerFriendlySubType>DOM</tranTruckerFriend
lySubType><tranStatus>COMPLETE</tranStatus><tranCreated>Jan 9, 2015
1:59
PM</tranCreated><tranCreator>admin</tranCreator><tranStageId>ingate
</tranStageId><tranNextStageId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTrouble
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTrouble

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 9


Status xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranHadTrou
ble>false</tranHadTrouble><tranCancelCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranNotes
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranHandled
>2015-01-09 13:59:48.0</tranHandled><tranTerminalId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranExportR
eleaseNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranImportR
eleaseNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranAppoint
mentNbr>1313</tranAppointmentNbr><tranPinNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTrkcId>
SPTC1</tranTrkcId><tranCtrTruckPosition xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrDoor
Direction xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrNbr>
SMP01090115</tranCtrNbr><tranCtrOwnerId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrFrei
ghtKind>MTY</tranCtrFreightKind><tranCtrTypeId>2200</tranCtrTypeId>
<tranCtrIsDamaged>true</tranCtrIsDamaged><tranCtrSafeWeight>9000.0<
/tranCtrSafeWeight><tranCtrTareWeight>1900.0</tranCtrTareWeight><tr
anCtrGrossWeight>1900.0</tranCtrGrossWeight><tranCtrNbrAssigned
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrTick
etPosId>FLD</tranCtrTicketPosId><tranCtrAccNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrAccT
ypeId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrAccF
uelLevel xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsNbr>
SMPC01090115</tranChsNbr><tranChsOwnerId>APL</tranChsOwnerId><tranC
hsIsOwners>false</tranChsIsOwners><tranChsTypeId>C20</tranChsTypeId
><tranChsIsDamaged>false</tranChsIsDamaged><tranChsTareWeight>1900.
0</tranChsTareWeight><tranChsSafeWeight>2700.0</tranChsSafeWeight><
tranChsLicenseNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsNbrA
ssigned>SMPC01090115</tranChsNbrAssigned><tranChsAccNbr
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsAccT
ypeId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsAccF
uelLevel xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTradeId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranOrigin
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranDestina
tion xsi:nil="true"

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 10


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranLineId>
APL</tranLineId><tranShipper xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranConsign
ee xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranScAgent
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranEqoEqIs
oGroup>GP</tranEqoEqIsoGroup><tranEqoEqLength>NOM20</tranEqoEqLengt
h><tranEqoEqHeight>NOM86</tranEqoEqHeight><tranEqoNbr
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranMilitar
yVNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranMilitar
yTcn xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranMateria
l>UNKNOWN</tranMaterial><tranShandId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranShandId
2 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranShandId
3 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranGroupId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranIdoId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCommodi
tyCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCommodi
tyDescription xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranVentReq
uired>null</tranVentRequired><tranVentSetting>null</tranVentSetting
><tranIsHazard>false</tranIsHazard><tranIsPlacarded>false</tranIsPl
acarded><tranIsPlacardedOk>false</tranIsPlacardedOk><tranIsOog>fals
e</tranIsOog><tranCtrIsSealed>false</tranCtrIsSealed><tranIsXrayReq
uired>false</tranIsXrayRequired><argo:tranCtrDmg><dmgitemLocation
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><dmgitemSeve
rity>MAJOR</dmgitemSeverity><dmgitemReported>2015-01-09T13:59:47.00
0-08:00</dmgitemReported><dmgitemDescription xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><dmgitemType
>DENT</dmgitemType><dmgitemTypeDescription>DEnt in
Body</dmgitemTypeDescription><dmgitemComponentId>DOOR</dmgitemCompo
nentId><dmgitemComponentDescription>DOOR</dmgitemComponentDescripti
on></argo:tranCtrDmg><tranCscDate xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranUnitCat
egory>UnitCategoryEnum[STRGE]</tranUnitCategory><argo:tranRequiredS
tages><stageId>ingate</stageId><stageSequence>1</stageSequence><sta
geDescription>ingate</stageDescription></argo:tranRequiredStages><t
ranStartTime>2015-01-09
13:59:47</tranStartTime><tranEndTime>2015-01-09
13:59:48</tranEndTime><tranAppointmentState>CREATED</tranAppointmen

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 11


tState><argo:Messages
locale="en_US"/></argo:trkTransaction></argo:docBody><argo:Messages
locale="en_US"/></argo:Document>]]></content>
</document>
</documents>
</truck-visit>
<truck-transactions>
<truck-transaction tran-key="12935" tran-nbr="4012"
tv-key="8841" tran-type="DOM" category="STRGE" freight-kind="MTY"
mission="FLD" block-id="FLD" gate-id="GEN_GATE"
appointment-nbr="1313" status="OK" is-hazard="false">
<container eqid="SMP01090115" type="2200"
on-chassis-id="SMPC01090115" chs-is-owners="false"
is-sealed="false" gross-weight="1900.0" safe-weight="9000.0"
tare-weight="1900.0" line-id="APL" has-documents="false"
planned-slot="FLD " block-id="FLD" owner-id="APL"
operator-id="APL">
<accessory />
<damages>
<damage severity="MAJOR"
reported="2015-01-09T13:59:47" type="DENT" type-description="DEnt
in Body" component-id="DOOR" component-description="DOOR" />
</damages>
<routing />
</container>
<chassis eqid="SMPC01090115" is-owners="false" type="C20"
safe-weight="2700.0" tare-weight="1900.0" owner-id="APL"
operator-id="APL">
<accessory />
</chassis>
<documents>
<document doc-key="9210" type="DROPOFF"
no-of-copies="0">
<content><![CDATA[<argo:Document
xmlns:argo="http://www.navis.com/argo"><argo:docDescription><docNam
e>DROPOFF</docName><docType>5</docType></argo:docDescription><argo:
docBody><argo:truckVisit><tvdtlsLicNbr>SMPTL1755</tvdtlsLicNbr><tvd
tlsTruckId>SMPTID001</tvdtlsTruckId><tvdtlsDriverCardId>SMPDC001</t
vdtlsDriverCardId><tvdtlsDriverName>SATISH
PAI</tvdtlsDriverName><tvdtlsDriverLicenseNbr>DL10131101</tvdtlsDri
verLicenseNbr><tvdtlsTrkCompany>SPTC1</tvdtlsTrkCompany><tvdtlsTrkC
ompanyName>SATISH PAI TRUCK
CO1</tvdtlsTrkCompanyName><tvdtlsTrkId>SMPTID001</tvdtlsTrkId><tvdt
lsBatNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tvdtlsTvKey
>8841</tvdtlsTvKey><tvdtlsGosTvKey>12352</tvdtlsGosTvKey><tvdtlsTrk
StartTime>2015-01-09
13:59:32</tvdtlsTrkStartTime><tvdtlsEntryLane><laneId>IGL1</laneId>
</tvdtlsEntryLane><tvdtlsFlexString01 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tvdtlsFlexS

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 12


tring02 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tvdtlsFlexS
tring03 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><argo:tvdtls
RequiredStages><stageId>ingate</stageId><stageOrder>1</stageOrder><
stageDescription>ingate</stageDescription></argo:tvdtlsRequiredStag
es><tvdtlsAppointmentNbr>1314</tvdtlsAppointmentNbr><tvdtlsAppointm
entState>CREATED</tvdtlsAppointmentState><argo:tvdtlsAnnouncements/
></argo:truckVisit><argo:trkTransaction><argo:tranCtrOperator><bizu
Id>APL</bizuId></argo:tranCtrOperator><argo:tranUnit><unitId>SMP010
90115</unitId></argo:tranUnit><argo:tranFacility><fcyId>PORTELIZABE
TH</fcyId></argo:tranFacility><argo:tranComplex><cpxId>USNWK</cpxId
></argo:tranComplex><argo:tranOperator><oprId>MAH</oprId></argo:tra
nOperator><argo:tranCtrPosition><posLocId>Y-MAIN-FLD</posLocId></ar
go:tranCtrPosition><argo:tranChsPosition><posLocId>MAIN</posLocId><
/argo:tranChsPosition><tranNbr>4012</tranNbr><tranExchangeAreaId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranSubType
>RM</tranSubType><tranTruckerFriendlySubType>DOM</tranTruckerFriend
lySubType><tranStatus>COMPLETE</tranStatus><tranCreated>Jan 9, 2015
1:59
PM</tranCreated><tranCreator>admin</tranCreator><tranStageId>ingate
</tranStageId><tranNextStageId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTrouble
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTrouble
Status xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranHadTrou
ble>false</tranHadTrouble><tranCancelCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranNotes
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTermina
lId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranExportR
eleaseNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranImportR
eleaseNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranAppoint
mentNbr>1313</tranAppointmentNbr><tranPinNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTrkcId>
SPTC1</tranTrkcId><tranCtrTruckPosition xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrDoor
Direction xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrNbr>
SMP01090115</tranCtrNbr><tranCtrOwnerId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrFrei
ghtKind>MTY</tranCtrFreightKind><tranCtrTypeId>2200</tranCtrTypeId>
<tranCtrIsDamaged>true</tranCtrIsDamaged><tranCtrSafeWeight>9000.0<
/tranCtrSafeWeight><tranCtrTareWeight>1900.0</tranCtrTareWeight><tr
anCtrGrossWeight>1900.0</tranCtrGrossWeight><tranCtrNbrAssigned

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 13


xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrTick
etPosId>FLD</tranCtrTicketPosId><tranCtrAccNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrAccT
ypeId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCtrAccF
uelLevel xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsNbr>
SMPC01090115</tranChsNbr><tranChsOwnerId>APL</tranChsOwnerId><tranC
hsIsOwners>false</tranChsIsOwners><tranChsTypeId>C20</tranChsTypeId
><tranChsIsDamaged>false</tranChsIsDamaged><tranChsTareWeight>1900.
0</tranChsTareWeight><tranChsSafeWeight>2700.0</tranChsSafeWeight><
tranChsLicenseNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsNbrA
ssigned>SMPC01090115</tranChsNbrAssigned><tranChsAccNbr
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsAccT
ypeId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranChsAccF
uelLevel xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranTradeId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranOrigin
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranDestina
tion xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranLineId>
APL</tranLineId><tranShipper xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranConsign
ee xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranScAgent
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranEqoEqIs
oGroup>GP</tranEqoEqIsoGroup><tranEqoEqLength>NOM20</tranEqoEqLengt
h><tranEqoEqHeight>NOM86</tranEqoEqHeight><tranEqoNbr
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranMilitar
yVNbr xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranMilitar
yTcn xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranMateria
l>UNKNOWN</tranMaterial><tranShandId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranShandId
2 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranShandId
3 xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranGroupId
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranIdoId
xsi:nil="true"

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 14


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCommodi
tyCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranCommodi
tyDescription xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranVentReq
uired>null</tranVentRequired><tranVentSetting>null</tranVentSetting
><tranIsHazard>false</tranIsHazard><tranIsPlacarded>false</tranIsPl
acarded><tranIsPlacardedOk>false</tranIsPlacardedOk><tranIsOog>fals
e</tranIsOog><tranCtrIsSealed>false</tranCtrIsSealed><tranIsXrayReq
uired>false</tranIsXrayRequired><argo:tranCtrDmg><dmgitemLocation
xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><dmgitemSeve
rity>MAJOR</dmgitemSeverity><dmgitemReported>2015-01-09T13:59:47.00
0-08:00</dmgitemReported><dmgitemDescription xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><dmgitemType
>DENT</dmgitemType><dmgitemTypeDescription>DEnt in
Body</dmgitemTypeDescription><dmgitemComponentId>DOOR</dmgitemCompo
nentId><dmgitemComponentDescription>DOOR</dmgitemComponentDescripti
on></argo:tranCtrDmg><tranCscDate xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/><tranUnitCat
egory>UnitCategoryEnum[STRGE]</tranUnitCategory><argo:tranRequiredS
tages><stageId>ingate</stageId><stageSequence>1</stageSequence><sta
geDescription>ingate</stageDescription></argo:tranRequiredStages><t
ranStartTime>2015-01-09
13:59:47</tranStartTime><tranEndTime>2015-01-09
13:59:48</tranEndTime><tranAppointmentState>CREATED</tranAppointmen
tState></argo:trkTransaction></argo:docBody><argo:Messages
locale="en_US"/></argo:Document>]]></content>
</document>
</documents>
</truck-transaction>
</truck-transactions>
</process-truck-response>
</argo:gate-response>

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 15


</argo-response>

4.4 create-truck-visit
This API can be called to create the truck visit only. In an environment where pickups are configured to be automatically assigned, a
call to process-truck with no drop-off data would create the truck visit but would also continue to assign the pickups.
Context Attributes: gate Id, stage id, lane id
Data Attributes: truck license nbr, truck id, bat nbr
Response: no specific response

4.5 notify-arrival
This API is called to notify N4 that a truck has arrived at a certain stage and that N4 should initiate processing of that stage. Typically
this is used to notify arrival at an exchange area. N4 activates the work instructions and the stage will be completed once the moves
have occurred.
Context Attributes: gate Id, stage id, exchange area id, lane id
Data Attributes: truck license nbr, truck id, bat nbr
Response: no specific response

4.6 request-pickup-appointments
The GOS can call this API to initiate the automatic processing of a truck's pickup appointments. If the work flow is so configured, N4
will automatically process the truck's appointments if they do not exceed the maximum TEU's configured. Otherwise, if there are two
many appointments, this API will just return a list of outstanding appointments.
Context Attributes: truck visit identifier
Data Attributes: none
Response: list of containers for pickup

4.7 submit-transaction
For semi-automated gates, information may be required from the truck driver to proceed. Typically for pickups this is often required
where the driver must specify something to determine what pickup should be performed.
Context Attributes: gate Id, stage id, lane id
Data Attributes: truck visit identifier, transaction type, optional truck transaction identifier along with either an appointment id,
container id, pin number, container VGM details (VGM weight, VGM weight unit and VGM entity), order number (if selecting empty by
booking/EDO) or equipment order item (previous call was select empty by booking/EDO and a list of order items was returned for
driver selection).
Response: Normally the standard response with no payload. If an appointment number was submitted, a list of possible
remaining appointments will be returned.

4.8 submit-multiple-transactions
For truck visits with multiple transactions a new API is required to submit multiple transactions from a given gate stage, gate stage
permitting. This new API will submit multiple transactions for the truck visit after the the truck visit is created using create-truck-visit
API in the first gate stage and before the stage-done API for all remaining stages
Context Attributes: gate Id, stage id, lane id
Data Attributes: truck visit identifier, and multiple transactions element truck-transactions consisting of individual
truck-transaction elements.
Response: Response for submit-multiple-transactions API consist of truck visit element followed by truck-transactions
elements which contains individual truck-transaction response from each individual submit-transaction API.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 16


4.9 stage-done
Further selections may be provided to the driver, especially for pickups. The GOS will use this API to indicate the driver has no
further selections.
Context Attributes: gate Id, stage id, lane id
Data Attributes: truck visit identifier
Response: ticket details for all transactions

4.10 cancel-transaction
GOS will call this API to request N4 cancel a gate transaction. Typically this is used for a failing pickup transaction that the driver has
decided to forego. User can specify either the transaction gkey directly or the container number in which case the latest transaction
associated with this container-nbr will be cancelled.
Context Attributes: gate Id, stage id, lane id
Data Attributes: transaction key (returned in submit-transaction API response) or container number
Response: other than the common response no payload is returned.

4.11 cancel-truck-visit
GOS will call this API to request N4 cancel a gate truck visit. This is a new API required to cancel a bare truck visit with no
transactions or all canceled transactions.
Context Attributes: gate Id, stage id, lane id
Data Attributes: truck visit key or gos truck visit key(returned in create-truck-visit API response)
Response: For bare truck visits or truck visits with canceled transactions response consists of truck-visit element
containing truck visit gkey, gos truck visit gkey and truck visit status. For truck visits with active transactions, response consists of
truck-visit element followed by truck-transactions element containing individual active truck-transaction elements.

4.12 need-assistance
GOS will call this API to request N4 to mark this lane as requiring assistance.
Context Attributes: gate Id, stage id, lane id
Data Attributes: none
Response: other than the common response no payload is returned.

4.13 create-appointment
A third party system can call this API to create a container appointment in N4.

Context Arguments: gate Id

Data Attributes: appointment-date, appointment-time, truck trucking-co-id, tran-type, container, pin-nbr, Driver and Truck
information, Booking information, Container information, appointment validation-only attribute, etc.

Response: Includes appointment number, that was generated by N4, along with appointment details.

Variation: The <appointment> element of the create-appointment API has a Boolean attribute, validation-only, that specifies
whether the appointment request is for validation purpose only or for creating and saving an appointment. When a third party system
uses the Boolean attribute to indicate that the appointment request is for validation purposes only, N4 does not save any appointment
data; however, N4 does process the appointment stage workflow and if any errors are generated, N4 returns the same in the
response.

For backward compatibility, the default value for the validation-only attribute is false. This means that if the validation-only attribute
is missing OR the whole <appointment> element is missing then the appointment is always created (if no rules fail), as before.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 17


Important points about the validation-only attribute:

1. Default setting of this attribute is false.


2. When you do not add the validation-only attribute, or, specify the validation-only attribute as false, or, do not specify the <
appointment> element; N4 creates the appointment (if no rules fail), as before.
3. When the validation-only attribute is set to true, N4 does not create an appointment.

4.14 update-appointment
A third party system can call this API to update an existing container appointment in N4.

Context Arguments: gate Id

Data Attributes: appointment-date, appointment-time, truck trucking-co-id, tran-type, container, pin-nbr, Driver and Truck
information, Booking information, Container information etc.

Response: Appointment details.

4.15 cancel-appointment
A third party system can call this API to cancel one or more existing container appointments in N4.

Context Arguments: None

Data Attributes: appointment-nbr, external-ref-nbr.

Response: Returns the same list of appointment-nbr and/or external-ref-nbr for each appointment along with the appointment state
(Cancel).

5 Process API's Provided by Other Systems


This section describes API's to be implemented on the systems with which N4 communicates. N4 requires that API's be implemented
in other systems (the GOS primarily) when it needs to initiate an action in the system as a result of a situation that only N4 knows
about. An example of this is the completion of manual intervention in the gate process on a N4 screen by a clerk. The requirement to
implement these services depends upon the particular installation.
In order to reduce the interface work and make use of the testing facilities in N4, the same WSDL is used for these services. No
responses are required other than a status code and any error messages that N4 should display.

5.1 notify-resume
Sparcs N4 can call this API to indicate that a manual step has been completed the GOS can continue. This can be used to pass
control back to the GOS after a clerk has intervened. For example a truck arrives and goes into trouble status because of some error.
The response to the GOS indicates trouble but the GOS cannot continue as the truck is waiting for a trouble clerk to intervene. Once
the trouble clerk has fixed the issue or has done all that he intends with it then control can be passed back to the GOS. The call will
either be as a result of the stage being submitted successfully or the clerk selecting via a button on the gate screen.
Context Attributes: gate Id, stage Id, lane Id
Data Attributes: truck visit identifier, truck transactions, appointments
Response: status code and optionally error messages

5.2 open-gate-arm
Sparcs N4 will call this API to request that the GOS open the gate arm. If the clerk has to manually process a gate stage in N4, then
N4 needs to call out to open the gate arm when it detects that the clerk has finished.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 18


Context Attributes: gate Id, stage id, lane id
Data Attributes: none
Response: status code and optionally error messages

5.3 print-ticket
Sparcs N4 will call this API to request that the GOS print the specified ticket. Normally, the GOS can produce the ticket directly from
the response to the process-truck API call. However, in some environments a clerk always intercedes and manually processes the
truck entirely using the SPARCS N4 Gate User Interface. Also, in some more automated environments, the clerk will sometimes
intercede and manually process a truck with serious problems. In both these cases, the intercession can occur several minutes after
the process-truck API call. The trigger for printing the ticket is the successful completion of a transaction and this event is in this case
caused by an action in N4.
Context Attributes: gate Id, stage id, printer id
Data Attributes: ticket type, document data XML
Response: status code and optionally error messages

5.4 truck-arrival
This API is used to notify tracking systems of a truck arrival into the scope of coverage of the tracking system.
Context Attributes: gate Id, stage id, lane id
Data Attributes: container ids, container types, accessory ids, chassis Id, truck license nbr, truck id, tracking tag identifier
Response: status code and optionally error messages

5.5 truck-departure
This API is used to notify tracking systems of a truck departure from the scope of coverage of the tracking system.
Context Attributes: gate Id, stage id, lane id
Data Attributes: truck license nbr, truck id, tracking tag identifier
Response: status code and optionally error messages

6 Driver Interaction
6.1 Pickup Selection
Even in a highly automated gate, some interaction with the driver may be required. Typically this is needed to specify pickups. There
are several variations for this interaction with the driver. The actual container id could be provided or a pin number might be used as
an alias. Or, the driver could provide a group, bill of lading number, or even an export booking number for dray-offs. These entries
would indicate any container within that group/BL/Booking is acceptable.
For picking up empties, a specific container could be entered, but it is more common to provide a booking or EDO number. If the
booking/EDO has multiple types of equipment, just the number is not sufficient and Sparcs N4 must respond with a list of order items
for the driver to select from.
Since the interaction for empty pickups is somewhat different involving several different combinations of fields it may be necessary to
initiate the entire interaction by first asking the driver the basic transaction type (pickup up an empty, bare chassis or full container).
Where the term "full container" is sort of a misnomer here because the container could be a revenue empty container (empty import,
empty export or transship drayoff). Once this determination is made the driver enters
- Pickup Full - appointment number or (container and/or pin) or (group or BL or booking)
- Pickup Empty - appointment number or container or order number
For the pickup Empty, if an order number is entered, when it is submitted N4 will return a list of order items from which the driver must
select.

6.2 Dropoff Details


Normally in an automated gate just the OCR read alone is sufficient to process the gate transaction provided the container is

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 19


pre-advised or an appointment has been lodged. However in the absence of this information, Sparcs N4 has no idea what to do with
the container.
To start with, the driver must indicate if the container is a storage empty or an export. For an empty storage the equipment type (if
not scanned) and the controlling line operator must be provided. For an export container, the equipment type (if not scanned) and
minimally the booking number must be provide by the driver. Beyond this information, for an export container the seal numbers and
gross weight will probably also be needed.
- Dropoff Full - equipment type and booking number and possibly seals and gross weight
- Dropoff Empty - equipment type and line operator

7 Process Truck API Workflow


As the API at the in-gate invokes a complex process and varying process, a workflow must be specified that is constructed from a set
of process steps appropriate for the individual customer's environment. Despite the variation between sites the steps, which may or
may not be present are always in the same order. There is thus an underlying master workflow that can be configured by inclusion or
exclusion of tasks.

7.1 Basic Scan Validation


Before any attempt is made to do the complex business processing, basic validation can be configured to ensure and hopefully
correct scan failures. This consists the following;
1. The RFID or OCR reader detected the presence of a value (e.g. a container number), but was unable to read the value. This is
indicated by sending a value of "ERROR".
2. A value was returned but it seems suspicious. The validation here is verify specific and each validation can be configured to
conform to the site's requirements
a. Truck ID or Truck License
i. Truck ID is null
ii. Truck is unknown (not in the N4 truck database)
iii. Truck has no appointments
b. Container ID
i. Container check digit validation fails
ii. Container is not pre-advised or has no appointment
c. Container Type
i. Container type is unknown (not in the N4 container ISO code database)
When scan validation fails, no attempt is made to perform any further processing. The Gate Lane list view in N4 will indicate a
problem has occurred in the lane. Gate clerks should monitor this list view. To intervene, the clerk can double click on the lane. A
form will appear where the clerk can correct the data. Only then will the gate processing continue, but now using the corrected
values.

7.2 Process Pre-lodged Dropoffs


This step processes possible pre-advised containers or appointments for each OCR container number scanned. This process is
always performed even at facilities where pre-lodged information is seldom provided to encourage the use of appointments and/or
pre-advised containers.

7.3 Fail Unexpected Container


This optional step can be configured if it is expected that all container drop-offs must be pre-advised.

7.4 Solicit Further Details


With this optional step, for each container that was scanned that cannot be processed, the lack of key details is analyzed. If details
are missing a dialog is initiated with the driver requesting the missing details.
To achieve this, the container number is returned along with the unique truck visit key and a list of missing attributes. The GOS is
then expected to solicit the missing information and call back the submit transaction API with the container number, truck visit key, the
transaction type and other attributes discussed in section 5.2.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 20


The required fields are configured within this step. A specific transaction type can be configured if the gate only supports empty
storage or only export drop-offs thus eliminating from the driver solicitation the transaction type and fields only appropriate for the
other transaction type.

7.5 Process Pre-lodged Pickups


This step processes possible pickup appointments based on OCR truck identifier scanned. This process is always performed even at
facilities where pre-lodged information is seldom provided to encourage the use of appointments.
If a truck visit appointment exists (not currently supported by N4) then only the trucks appointments for this truck visit are processed.
Otherwise, all unfulfilled pickup appointments for the truck for that day are analyzed. Based on a list of valid combinations of
appointments that can be automatically processed a determination is made if we can assume the driver will do his remaining
appointments on this trip. For example the list might indicate one 40' or two 20' containers. If this list is empty, no assumption is
made. If all the appointments can be handled on this trip they are automatically processed.

7.6 Solicit Appointment Selection


This optional step either returns an appointment selection to the driver or assumes the driver is done if there are no further pickup
appointments for the truck. In a manner similar to the other solicitation responses, the GOS is expected to obtain the selection from
the driver and call the submit-transaction API with the appointment selection. The driver can also indicate he is done and the GOS
should call the submit-done API.

7.7 Solicit Pickup Selection


With this optional step, the GOS solicits this information from the driver and calls the submit-transaction API. When the submit-transa
ction API is called, either the transaction will succeed or Sparcs N4 will detect fields are still missing from the input. When the driver
has finished selecting pickups, he indicates so to the GOS and it calls the submit-done API.

7.8 Trouble Processing


When a transaction is submitted the absence of key fields will be noted in the error messages returned. Once all the required
information is provided the transaction might still fail for business reasons beyond the control of the driver. Depending on the
combination of transactions processed a failure will usually terminate the interaction with the driver and mark the truck visit in trouble
status.
If a business problem occurs for a dropoff, the processing for the remaining container OCR reads continues. Once they have all been
processed, if a problem occurred on any one drop-off, the truck visit is marked in error and trouble processing is initiated. No attempt
is made to solicit the driver's pickups.
If a problem occurs for a pickup transaction the interaction with the driver terminates immediately and the trouble processing is
initiated.
Trouble processing can be configured in two ways. Either the driver is given a trouble ticket for each failing transaction and the driver
is directed to the trouble desk, or the driver remains in the lane for clerk assistance. The clerk can choose to direct the driver to the
trouble desk.

8 Gate Lane Monitor


To monitor the processing of trucks a live gate lane view is available. The view can be filtered by gate and lane class (e.g. outgate
lanes only). The view is periodically refreshed and using a colored status field the gate clerk can easily see lanes that are occupied
and lanes requiring assistance. The refresh frequency As mentioned earlier, by double clicking on the lane the clerk can hot link to a
form to intervene. If the data scan validation failed the clerk will simply correct the scanned data and the business processing will be
initiated. However, the failure occurred doing the full business validation and the truck was not sent directly to the trouble desk,
double clicking will instead hot link the clerk to the to gate processing form for the truck currently in the lane. From this form the clerk
can assist the driver and manually perform the gate processing.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 21


Gate Appointment and Truckvisit Appointment Webservice API

Container Appointment Web Service API


Creating, Updating or Canceling an existing Container Appointment:

Traceability NFRM-485 (Jira Issue)

Introduction
1. Time Slot in Create Appointment Webservice Request
Success Scenario
Failure Scenario
2. Cancel Gate Appointment Webservice Request
2.1 Cancel Appointment By Appointment Number
2.2 Cancel Appointment By Reference Number
2.3 Canceling Multiple Appointments(Using Both Appointment and External Reference Number)
2.4 Cancel Appointment Associated to TruckVisit Appointment
3. Update Gate Appointment Webservice Request
3.1 Update Appointment Not Associated To A Truck Visit Appointment
3.2 Update Appointment Associated To A Truck Visit Appointment

Introduction

This enhancement involves enhancing the existing create-appointment api to request appointment for a specific time via a web
service call. Existing behavior was that SPARCS N4 would respond with the next availabe timeslot appointment for the requested
date. Also ability to update an existing appointment and cancelling appointments are dealt as a part of this enhancement. The
requirements for this enhancements is tracked using NFRM-485.

1. Time Slot in Create Appointment Webservice Request

<create-appointment> webservice request is enhanced to accept time for an appointment (this element is an optional element). User
can request appointment for a particular time of day. appointment-time should be strictly in the format "HH:mm:ss". If slots are
available then an appointment will be created in the requested slot. Please refer the schema definition for request format.

Success Scenario

A gate appointment is requested for a specific time of a day, if all conditions are met SPARCSN4 creates an appointment for the
requested time.

Sample Request

Sample Response

Gate appointment will be created for the requested date and the appropriate time slot.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 22


Failure Scenario

If time slot is not available for the requested time or all available quota is completely full, the error message would be sent in the
response and in addition a list of available slots for that day will be sent in the response. User can choose to make the appointment
for the available time slots.

Sample Request

Sample Response

The response will contain the error message and a list of available slots for the respective date.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 23


2. Cancel Gate Appointment Webservice Request

A new webservice request <cancel-appointment> is introduced to cancel one or more gate appointments. An appointment can be
canceled only when its present state is CREATED. An appointment can be canceled by using either the appointment number or by
the external reference number.

A gate appointment cannot be canceled if it is associated to a truck visit, any attempts to cancel will throw error.

2.1 Cancel Appointment By Appointment Number

A gate appointment can be canceled by specifying the appointment number in the request.

This screen shot shows an appointment in created state.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 24


Sample Request

Sample Response

The appointment state is updated to CANCEL

2.2 Cancel Appointment By Reference Number

Similarly an appointment can be canceled by specifying a reference number instead of the appointment number. While canceling an
appointment using reference number, system tries to find appointments only in CREATED state. If no appointments are found, sytem

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 25


throws the error "No appointment with id <Reference Number> exists for the facility" even if appointments exists in CANCEL or USED
state for the given reference number.

Sample Request

Sample Response

2.3 Canceling Multiple Appointments(Using Both Appointment and External Reference Number)

In the below figure 2 Appointments are in CREATED state and one is in CANCELED state, user can close multiple appointments
using cancel-appointment api. If error is encountered while canceling any one of the appointment, system adds the error in the
response and cancels the other appointments sucessfully.

Sample Request

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 26


Sample Response

2.4 Cancel Appointment Associated to TruckVisit Appointment

Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 27


3. Update Gate Appointment Webservice Request

A new webservice request <update-appointment> is introduced to update gate appointments. An appointment can be updated only
when its present state is CREATED.

3.1 Update Appointment Not Associated To A Truck Visit Appointment

When a gate appointment is not associated to a truck visit all fields of an appointment can be updated. Any attempts to cancel date
and time of an appointment will cancel the current appointment and will create a new appointment with the available data.

3.1.1 Update All Fields Except Date And Time

Update to other fields except date and time of a gate appointment when it is not associated to a truck visit can be updated using the
<update-appointment> api. User can specify appointment-nbr or the external-ref-nbr to identify the appointment( priority would be
given to the appointment number and then the external reference number). System updates all the values changed to the
appointment.

Existing appointment

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 28


Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 29


Updated Appointment

3.1.2 Update Date And Time Of An Appointment

When a gate appointment is not associated to any truck visit appointment and any attempt to update the date and time of the
appointment will cancel the current appointment and creates a new appointment with the available data.

The below gate appointment is requested for 2010-03-12 and for the time 10:00 to 10:30 AM, and the gate appointment is not
associated to a truck visit appointment.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 30


Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 31


The gate appointment 2717 is canceled and in the event the notes would be set as "Date/ Time changed new appointment created
2,728".

3.2 Update Appointment Associated To A Truck Visit Appointment

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 32


When a gate appointment is associated to a truck visit user can update any data except date and time. System would throw an error if
user tries to update date and time of an appointment when it is associated to a truck visit.

3.2.1 Update All Fields Except Date And Time

The behaviour would same as explained in section 3.1.1 Update All Fields Except Date And Time.

3.2.1 Update Date And Time Of An Appointment

When we try to update the date or time of an appointment which is already associated to a truck visit,system will throw the error
"Cannot update appointment 2,699 date and time,it is already associated to a truck visit appointment."

Gate Appointment Associated To a Truck Visit Appointment

Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 33


Truck Visit Appointment Web Service API
Creating, Updating or Canceling an existing Truck Visit Appointment:

Traceability NFRM-485 (Jira Issue)

1. Introduction
2. Truck Visit Appointment API
2.1 Create Truck Visit Appointment
2.2 Update Truck Visit Appointment
2.3 Cancel Truck Visit Appointment

1. Introduction

NFRM-485 also deals with creation of new webservice APIs to handle i.e Create, Update and Cancel truck visit appointments. This
document explains about the APIs which is introduced as a part of NFRM - 485.

2. Truck Visit Appointment API

2.1 Create Truck Visit Appointment

<create-truck-visit-appointment> API can be used by the third party systems to create a Truck Visit Appointment in SparcsN4. Please
refer the schema document for the request format. Explained below the usage for create-truck-visit-appointment request.

2.1.1 Create Truck Visit Appointment With Date And Time Element

A truck visit appointment can be requested for a specific time of day by specifying the appointment time in the request and if
requested the truck visit appointment will be created for that particular time, provided slots are available. Also a truck visit
appointment can be created with gate appointments associated to it, by specifying a list of appointments. All the gate appointments
should be in CREATED state, and these gate appointments if already associated to a truck visit appointment will be be disassociated.
Then they would be associated to the created truck visit appointment. System would throw error if all the appointments are not for the
same gate.

In the below figure there are 2 gate appointments, one associated to truck visit appointment and the other not associated to any truck
visit appointment. User can associate the appointment by specifying either the appointment number or the external reference number.

Sample Request

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 34


Sample Response

A truck visit appointment is created for the specific time of the day and the two gate appointments are associated to this truck visit
appointment

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 35


Also the appointment 2648 which was associated to a different truck visit appointment 2650 is disassociated from the truck visit
appointment and associated with the newly created truck visit appointment.

Failure Scenario

If the user requests for a time for which either there are no available quota or if the time slots are not available, system returns in
response the list of available slots, user can select a different time of the day.

Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 36


2.1.2 Create Truck Visit Appointment Without Time Element

When create-truck-visit-appointment request is sent without appointment-time element system creates appointment for the next
available time slot.

Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 37


2.2 Update Truck Visit Appointment

<update-truck-visit-appointment> API can be used by the third party systems to update a Truck Visit Appointment in SparcsN4.
Please refer the schema document for the request format. Explained below the usage for update-truck-visit-appointment request.
Only Truck Visit Appointments in created state can be updated.

2.2.1 Updating a Truck Visit Appointment with Gate Appointments

Truck visit appointment can be updated using the appointment number, system updates the appointment only when the appointment
is in CREATED state, throws error when appointment is not found or if the appointment is in a state other than CREATED. System
while updating checks the list of gate appointments as a part of current API, associates new gate appointments and disassociates the
gate appointment which are not part of the current API. While associating if the gate appointments are associated to a different truck
visit, system disassociates and associates the gate appointment with this truck visit appointment.

The following scenario demonstrates updating the attributes of a truck visit appointment. A truck visit appointment is created with
transaction appointments 4741, 4742 and 4743 (external reference number 18862).

Sample Request

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 38


<update-truck-visit-appointment> api is sent and system updates the attributes of a truck visit appointment and retains the gate
appointment 4741, adds gate appointment 4744 but removes the appointments 4742 and 4743 from truck visit appointment. In this
request appointment number is specified to update the truck visit appointment.

Sample Request

Truck Visit Appointment Inspector after appointment updation

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 39


2.2.2 Updating Date and Time of a Truck Visit Appointment

When date and time of a truck visit appointment is updated, system cancels this appointment and creates a new truck visit
appointment. All the transaction appointments will be associated to the new truck visit appointment. Please note the truck visit
appointment is updated by specifying the external reference number.

Sample Request

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 40


Update the truck visit appointment by sending the request with a modified date and time.

Sample Request

The truck visit appointment is canceled and a new truck visit appointment is created and the gate appointments are associated to the
newly created truck visit appointment.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 41


2.2.3 Updating a Truck Visit Appointment (When no appointments exists for the external reference number or
appointment number)

In case when we update a truck visit appointment by specifying external reference number or appointment number for which no truck
visit appointment exists, system rejects the request by sending the error message. In the following case user tries to update a truck
visit appointment using external-reference-number for which no truck visit appointments exists in the system.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 42


No truck visit appointment exists for external reference number 17555

Sample Request

Sample Response

2.3 Cancel Truck Visit Appointment

<cancel-truck-visit-appointment> API can be used by third party systems to cancel a Truck Visit Appointment in SparcsN4. Please
refer the schema document for the request format. Truck Visit Appointment can be canceled only when its present state is
CREATED. Canceling truck visit appointment will disassociate all gate appointments before canceling.

2.3.1 Canceling a Truck Visit Appointment By Appointment Number

An appointment can be canceled by specifying the appointment number in the request.In the following figure, the truckvisit
appointment has one gate appointment associated to it, upon canceling the truck visit appointment, the gate appointment will be
dissociated from the truck visit before cancelation and the truck visit state will be marked as CANCELED.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 43


Sample Request

Sample Response

The gate appointment is disassociated and the truck visit appointment state is updated to CANCEL

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 44


2.3.2 Canceling a Truck Visit Appointment By Reference Number

An appointment can also be canceled by specifying the external reference number.

Sample Request

Sample Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 45


2.3.3 Canceling Multiple Truck Visit Appointments

In the below figure one Appointment is in CREATED state, one is in CANCELED state and the other is in USED state. User can close
multiple appointments using cancel-truck-visit-appointment api. If error is encountered while canceling any one of the appointment,
system adds the error in the response and cancels the other appointments sucessfully.

Sample Request

Sample Response

Processing Appointments at the Gate


A Trucker can come to the gate with a Container Appointment or a Truck Visit Appointment. Both the gate UI and the Gate APIs can

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 46


use the appointment information to process the truck efficiently, with minimal data entry.

Traceability NFRM-485 (Jira Issue)

1. Introduction
2. Processing of Truck Visit Appointments
2.1 Gate Configuration Changes
2.1.1 Steps to create a filter and configure it against the gate stage.
2.2 Manual Processing of Trucks with Truck Visit Appointments
2.2.1 User enters Truck Visit Appointment Number / Truck Visit Appointment Reference Number.
2.2.2 User Enters Truck id, Truck License, Driver card id
2.2.3 Entering Truck Visit Appointment Reference Number
2.3. Processing Using the Gate API's
2.3.1 System Finds Truck Visit Appointment
2.3.1.1 Appointment with Earliest Start Time
2.3.1.2 Appointment with Lowest Run Number
2.3.1.3 Multiple Appointments with Same or No Run Number
2.3.2. GOS Sends in Truck Visit Appointment Number/Reference Number
2.3.2.1 Truck Visit Appointment Does Not Exist
2.3.2.2 Truck Visit Appointment Exists and Gate Appointments Are Associated
Debug Info

1. Introduction

This page describes the features implemented for NFRM-485 for processing the trucks with truck visit appointments. Both manual
processing and processing the trucks using web service API is described in this document.

2. Processing of Truck Visit Appointments

This section describes the changes made for NFRM-485, to process the truck with truck visit appointments using gate screens.

2.1 Gate Configuration Changes

Earlier when the appointments tab was introduced for gate screens, users were able to filter the appointments only based on the
transaction types and the appointments tab was populated only based on the entered driver card id. Now users can create a simple
parameterized filter in the Gate Appointments Table View and set it against the particular stage. This enables users to configure how
appointments tab of a gate stage should be populated. For example in a gate stage if the appointments tab is to be populated based
on the entered driver card id and pickup transaction types, a filter can be created in the Appointments table view and that filter can be
set against this stage.

Presently parameter support is available for the following fields

Driver Card Id, Truck Id, Truck License Number, Trucking Company and Truck Visit Appointment Number.

2.1.1 Steps to create a filter and configure it against the gate stage.

The requirement is to populate only appointment associated to the entered truck visit appointment number and only pick ups.

Login to N4 and navigate to Operations -- Gate -- Appointments table view.


Click the Filter button and select the appropriate field to be included in the filter, here Truck Visit Appointment Number is
selected
Select the criteria and enter a value and add the criteria. And after adding the criteria, parameterize the filter

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 47


Add the second criteria, i.e the transaction types should be only pickups.

Apply the criteria, system would prompt a value for the truck visit appointment number, enter a value and save the table view
as a filter.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 48


Set the created filter against the stage where appointments tab is to be filtered based on truck visit appointment number.
Navigate to Configurations -- Gate -- Gate Configuration -- Add/Edit Gate Stage, when user selects the Include Appointments
Tab as editable or viewonly, the field - Filters for Appointments Tab will be enabled, and the list of values will list all the
available filters from the Appointments Table View.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 49


Select the TVAPPTFILTER and save.

So whenever user enters the truck visit appointment number at the respective stage, where the filter is configured, the entered
appointment number would be used for the parameter set in the filter and system populates all gate appointments which are within
the late tolerance and associated to the truck visit appointment.

Please note it is not required to set the field Gate id, Appointment state in the filter as the stage will always populate appointments
matching the gate stage and appointments in CREATED state only.

There may be cases where the filter for the appointments tab is not set or the set filter was deleted, in both these cases system would
populate all appointments within the late tolerance for the entered trucking company. Also when a filter is parameterized and if the
value for the parameter is not entered in the gate screen system would not populate the appointments tab.

Truck Visit Appointment Number and Truck Visit Appointment Reference number is now available for configuration at truck visit level.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 50


When configured, these fields will be a part of the truck panel of the gate screens.

2.2 Manual Processing of Trucks with Truck Visit Appointments

2.2.1 User enters Truck Visit Appointment Number / Truck Visit Appointment Reference Number.

When the truck arrives at the gate, user can enter the truck visit appointment number or the reference number. System finds a valid
truck visit appointment for the entered number and if found system populates all relevant details on the screen, and also populates
the appointment tab based on the filter criteria set.

In this case the truck visit appointment 6708 has one gate appointment 6707 associated to it, and when user enters the truck visit
appointment number, system fills in all the details, creates the truck visit and transactions based on the data from the associated

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 51


appointment. Gate Clerk can double click on the appointment or the transaction can add further details and submit the transaction.

Appointment tab populated with gate appointment associated with the truck visit appointment.

All transactions tab populated with the transaction created with the details from the gate appointment.

2.2.2 User Enters Truck id, Truck License, Driver card id

When the truck arrives at the gate, user can enter the truck id, truck license, and driver card id and only if truck visit appointment
number widget is available on the screen, system finds the earliest truck visit appointment for the entered details. If found system
populates all relevant details on the screen, and also populates the appointment tab based on the filter criteria set. In case if multiple
truck visit appointments are found for the entered details with the same start time, system selects the appointment based on the run
number field. Selection of truck visit appointment based on run number is described in the later part of this document. When system

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 52


finds a truck visit appointment all relevant details are populated and Appointments tab is populated if filter criteria is met and
transactions and truck visit is created with the data from the gate appointment and truck visit appointment respectively.

There are 2 truck visit appointments for Truck License 18816 and Trucking Company 18816 i.e. 6710 for 19-04-2010 and 6711 for
20-04-2010. When truck license 18816 is entered system finds the earliest appointment 6710 and populates the data on the screen.

In case if more than one truck visit appointment matches the given criteria, system would neither fetch the truck visit
appointment on the screen nor would show the error. User would be required to enter the right truck visit appointment
number to proceed.

2.2.3 Entering Truck Visit Appointment Reference Number

The behaviour would be same if user enters truck visit appointment reference number in place of truck visit appointment number.
System finds matching truck visit appointment in created state and if found populates all relevant details on the screen.

Entering truck visit appointment reference number instead of truck visit appointment number.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 53


2.3. Processing Using the Gate API's

Process truck API can be used to process a truck with truck visit appointments. <process-truck> API is modified to accept both truck
visit appointment number and external reference number.

2.3.1 System Finds Truck Visit Appointment

When GOS sends in atleast one of the following Truck ID, Truck License, Driver Card in the <process-truck> API, system finds all
appointments matching the data submitted and chooses the most valid truck visit appointment based on the appointment time.

Truck visit appointment is valid if its state is CREATED, current time is after the early tolerance and appointment late tolerance has
not passed. If multiple appointments are found, appointment with the earliest start time is selected. If multiple appointments exist for
the same start time, system will select the appointment with the lowest run number. Run Number 0 or blank will be considered after
any other values.

2.3.1.1 Appointment with Earliest Start Time

Lets assume we have two truck visit appointments for the Driver Card Id18816, Appointment 6891 for 2010-04-21 10:00 and
Appointment 6895 for 2010-04-21 14:00, when truck arrives at the gate GOS sends in the Driver Card Id in the <process-truck> API.
System selects the earliest truck visit appointment i.e 6891and creates truck visit and transactions based on the data from truck visit
appointment and gate appointments respectively.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 54


Two truck visit appointment for the driver card id 18816

<process-truck> API with Driver Card Id

Response

2.3.1.2 Appointment with Lowest Run Number

In case if there are multiple appointments with same earliest start time, system selects the appointment with lowest run number.
Appointments with 0 run number will be considered after any valid run numbers and appointments with blank run number will be
considered after appointments with 0 run number.

Lets assume there are 2 appointments for Driver Card Id 18818 and same start time 2010-04-20 09:00:00, Appointment 6896 with run
number 10 and 6897 with run number 1252. When truck arrives at the gate, GOS sends in the Driver Card Id in the <process-truck>
API. System selects the earliest truck visit appointment, and as there are multiple appointments with same earliest start time, system
selects the appointment 6896 which has the lowest run number and creates truck visit and transactions based on the data from truck
visit appointment and gate appointments respectively.

Two truck visit appointment for the driver card id 18818 for the same start time 2010-04-20 09:00:00

<process-truck> API with Driver Card Id 18818

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 55


Response

Take the case where there are 2 appointments for Driver Card Id 18819 and same start time 2010-04-20 10:00:00, Appointment 6900
with run number 0 and 6901 with run number 777. When truck arrives at the gate, GOS sends in the Driver Card Id in the
<process-truck> API. System selects the earliest truck visit appointment, and as there are multiple appointments with same earliest
start time, system selects the appointment 6901 which has 777 as run number and creates truck visit and transactions based on the
data from truck visit appointment and gate appointments respectively.

Two truck visit appointment for the driver card id 18819 for the same start time 2010-04-20 10:00:00

<process-truck> API with Driver Card Id 18819

Response

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 56


Take the case where there are 2 appointments for Driver Card Id 18820 with same start time 2010-04-20 10:00:00, Appointment 6904
with run number null and 6905 with run number 1608. When truck arrives at the gate, GOS sends in the Driver Card Id in the
<process-truck> API. System selects the earliest truck visit appointment, and as there are multiple appointments with same earliest
start time, system selects the appointment 6905 which has 1608 as run number and creates truck visit and transactions based on the
data from truck visit appointment and gate appointments respectively.

Two truck visit appointment for the driver card id 18820 for the same start time 2010-04-20 10:00:00

<process-truck> API with Driver Card Id 18820

Response

Take the case where there are 2 appointments for Driver Card Id 18821 with same start time 2010-04-20 10:00:00, Appointment 6904

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 57


with run number null and 6905 with run number 0. When truck arrives at the gate, GOS sends in the Driver Card Id in the
<process-truck> API. System selects the earliest truck visit appointment, and as there are multiple appointments with same earliest
start time, system selects the appointment 6905 which has 0 as run number and creates truck visit and transactions based on the
data from truck visit appointment and gate appointments respectively.

Two truck visit appointment for the driver card id 18821 for the same start time 2010-04-20 10:00:00

<process-truck> API with Driver Card Id 18821

Response

2.3.1.3 Multiple Appointments with Same or No Run Number

In case if multiple appointments exists with same run number (valid run number or zero or null) system throws the error and sends all
the truck visit appointments in the response. In the following case there are 2 appointments for Driver Card Id 18822 with same start
time 2010-04-20 10:00:00, Appointment 6912 and 6913 with same run number 14875. When truck arrives at the gate, GOS sends in
the Driver Card Id in the <process-truck> API. As there multiple appointments with the same start time and same run number, system
throws an error message and sends back the truck visit appointment in the repsonse.

Two truck visit appointment for the driver card id 18822 for the same start time 2010-04-20 10:00:00 and same run number 14875

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 58


<process-truck> API with Driver Card Id 18822

Response

2.3.2. GOS Sends in Truck Visit Appointment Number/Reference Number

GOS can send in the truck visit appointment number or the external reference number in the process truck request in the <truck-visit>
element.

Sample Request

Sending Truck Visit Appointment Number

Sending Truck Visit Appointment Reference Number

System can send both gate appointment numbers and truck visit appointment number in the process truck API, in which case system

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 59


creates transactions only based on the gate appointments. So if in case truck visit appointments are used in a terminal, they can send
in only truck visit appointment where system finds associated gate appointments and creates transactions based on those gate
appointments.

In all these cases described let us assume that we have gate appointments created and associated to the truck visit appointments.

2.3.2.1 Truck Visit Appointment Does Not Exist

When user sends in a truck visit appointment number or reference number in the <process-truck> API which is not available in the
system, SPARCSN4 throws an error only if the stage is configured with the task RejectTVAppointmentUnknown and creates the truck
visit in trouble status, else system would create a normal truck visit with the values from the process-truck API.

No truck visit appointment exists for appointment number 18805

Send a process truck with appointment number 18805

As the task RejectTVAppointmentUnknown was included, system rejects the truck visit, creates the truck visit in trouble.

2.3.2.2 Truck Visit Appointment Exists and Gate Appointments Are Associated

When truck visit appointment exists and have gate appointments associated to it, system creates the truck visit and transaction for the
associated gate appointments. The truck visit appointment 6666 us created with one gate appointment 6665.

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 60


Send process truck-api with external reference number.

Truck visit is created with the data from truck visit appointment and transaction created from the data from gate appointments.

Debug Info

In case if the appointments tab is not populated with data, please enable logging by navigating to Administration -- Settings -- Logging
and add the com.navis.road.business.appointment.model in the Package field and set the Log Level to Debug. This will print the
predicate which can be used to find what the predicate was for the appointments tab.

Support for general cargo fields for the GATE API requests
N4 supports the general cargo fields for the Gate API requests:

Bill Of Lading with BL Item


Cargo Delivery Order with Delivery Order Item
Cargo Move quantity
Cargo Quantity

The following is the sample syntax for submit-transaction-request:

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 61


<?xml version="1.0" encoding="UTF-8"?>
<gate>
<submit-transaction xps="false">
<gate-id>MG</gate-id>
<stage-id>office</stage-id>
<lane-id>L1</lane-id>
<truck-visit tv-key="2139" />
<truck-transaction tran-type="DOB" category="EXPRT">
<cargo item-quantity="1300" item-move-quantity="300">
<bill-of-lading nbr="BIL97494" line-id="POPEYE" carrier-visit-id="BLCV7494" bl-item-seq="2" bl-item-nbr="ITNB7494" />
<cargo-delivery-order nbr="207" do-item-seq="2" />
</cargo>
</truck-transaction>
</submit-transaction>
</gate>
submit-transaction-response: sample syntax
<argo:gate-responsexmlns:argo="http://www.navis.com/argo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema
Location="http://www.navis.com/argo GateWebserviceResponse.xsd">
<submit-transaction-response>
<truck-visit tv-key="2137" next-stage-id="office" status="TROUBLE" action="TROUBLE_LANE" gate-id="MG">
<trucking-co id="GTK91581" />
</truck-visit>
<truck-transactions>
<truck-transaction tran-key="680" tran-nbr="600" tv-key="2137" tran-type="DOB" category="EXPRT" next-stage-id="office"
gate-id="MG" status="TROUBLE" action="TROUBLE_LANE" is-hazard="false">
<cargo>
<bill-of-lading nbr="BIL92126" bl-item-nbr="ITNB2126" bl-item-seq="1" bl-item-commodity-id="CMDY2140"
bl-item-is-bulk="false" />
<cargo-delivery-order />
</cargo>
<actions overall-id="TROUBLE_LANE">
<action id="TROUBLE_LANE" />
</actions>
</truck-transaction>
</truck-transactions>
</submit-transaction-response>
</argo:gate-response>

Copyright © 2017 Navis LLC - Confidential Confidential -- Proprietary 62

You might also like