GPA
- Provider Information:
Id |
gpa |
Type |
terminal |
Trace Type |
API |
Credentials |
user and password and it is customer based |
Limits |
Maximum number of containers per request is 100 |
Status |
completed |
Doc Status |
draft |
Doc Version |
1 |
- URLs:
Type |
URL |
Environment |
---|---|---|
Request |
gpasftp.gaports.com |
DEV/STG/PRD |
- Sites:
Name |
Site Id |
Description |
---|---|---|
name |
ern |
the description |
Important
Gpa is considered a Request/Delayed Retrieve Workflow which means it traces containers through three main processes:
Publishing Requests: Container tracking requests are sent to the provider system, ensuring that the provider is aware of the containers to be tracked, this is done by pushing a file with the containers number into the gpa server.
Scheduled Retrieval: A cron job runs every 30 minutes to check for pending requests, groups them by customer, and then calls the third process which fetches the latest status from the provider system.
Processing Responses: Fetches the latest status of the container info from the server, Retrieved data is normalized and stored. Successfully retrieved containers are marked as successful result, while missing containers are re-published for another attempt in the next cycle.
Publish Request Payload Function Example
{
"orgId": "3b42ff39-d731-43f6-a8a2-1b257f87469e",
"svcId": "7cd437c3-f25a-4e22-b221-47b6485f140d",
"type": "CONTAINER",
"action": "TRACE_REQUESTED",
"origin": "profit-tools-web-services-trace-requested",
"payload": {
"providerId": "gpa",
"siteId": "",
"containers": [{
"id": "CONT-123456",
"normalizedId": "CONT123456"
}],
"data": {
"companyName": "COMPANY"
}
}
}
Note
The above request will create a file with the container number and push it to the gpa server, the file will be picked up by the gpa server and the container will be traced and the result will be sent back to the system. Publishing requests above only pushing a file with the container number into the gpa server.
Scheduled retrieval process Function Example
{}
Important
This process is runnning without any required payload attributes.
Note
Scheduled retrieval process runs every configurable amount of time, currently it is configured to run every 30 minutes to check for pending requests, groups them by customer, and fetches the latest status from the provider system by calling the third process to retrieve results.
Processing Response Payload Function Example
{
"orgId": "3b42ff39-d731-43f6-a8a2-1b257f87469e",
"svcId": "7cd437c3-f25a-4e22-b221-47b6485f140d",
"type": "CONTAINER",
"action": "TRACE_REQUESTED",
"origin": "profit-tools-web-services-trace-requested",
"payload": {
"providerId": "gpa",
"siteId": "",
"containers": [{
"id": "CONT-123456",
"normalizedId": "CONT123456"
}],
"data": {
"companyName": "COMPANY"
}
}
}
Note
Gpa push a response as a file into the a directoy on thier system “data/out”, the file will be picked up by the our function and the result will be from the file will be normalized to be sent to the tms application later.
Responses
Grounded Response
TTGP1000005,N,,,40/DR/96,C,N,RELEASED,RELEASED,,142353692555,N,20-JAN-2024 07:00,,,EVE,,GCT-EVER FORE
Hold Response
TTGP0000007,N,,,40/DR/96,V,N,HOLD,HOLD,HOLD,142353692555,N,,,,EVE,,GCT-EVER FORE
Outgated Response
TTGP4000008,N,,,40/DR/96,V,N,RELEASED,RELEASED,,142353692555,N,,,19-FEB-2024 07:00,EVE,,GCT-EVER FORE
Not found /Not traced containers Response
TTGP1000009,Y,,,40/DR/96,V,N,RELEASED,RELEASED,,142353692555,N,,25-FEB-2024 07:00,,EVE,,GCT-EVER FORE
TTGP4000007,N,,,40/DR/96,V,N,RELEASED,RELEASED,,142353692555,N,,,19-FEB-2024 07:00,EVE,,GCT-EVER FORE
- Data Mapping:
Property |
Source Property |
Description |
---|---|---|
containerNumber |
row[0] |
The container reference number |
length |
row[4] |
The container length |
carrier.steamshipLine |
row[15] |
Carrier scac. |
carrier.vessel |
row[17] |
Represents the carrier vessel |
carrier.voyage |
TRCVOYAGE |
Carrier voyage number |
event[n].code |
row[5] |
Grounded event is created if row[5] == ‘C’ |
event[n].code |
row[7], row[8], row[9] |
Outgated event is created if row[7] and row[8] == ‘RELEASED’ and row[9] is empty |
event[n].data.holdType |
row[7] |
Hold event is created with hold type as Line Hold if it has value |
event[n].data.holdType |
row[8] |
Hold event is created with hold type as Customs Hold if it has value |
event[n].data.holdType |
row[9] |
Hold event is created with hold type as USDA Hold if it has value |
event[n].date |
row[14] |
Represents the date of the event |
event[n].location.type |
Default |
Default value is Terminal. |