Ir al contenido

ExecuteMove

Registra un movimiento de un contenedor que está en un patio de contenedores, como realizado en ese momento: a una zona y una posición de pila, a un camión o fuera del patio. Un sistema de patio, como un sistema de terminal o de puerta, lo usa para que el inventario del patio de TrakIT siga a los contenedores a medida que se mueven. Para comprobar antes dónde está un contenedor, use GetContainerPosition.

El nuevo movimiento continúa a partir del último movimiento del contenedor en el patio: toma la orden de trabajo, el vehículo, el precinto y los demás datos de ese movimiento, con el tipo de movimiento, la zona, la posición, las observaciones y la ubicación que envíe. Después aparece en Movimientos de patio como cualquier otro movimiento, con System como usuario.

Cómo enviar la clave y leer la respuesta: Claves de API, Respuestas.

POST /api/public/ExecuteMove
Authorization: Bearer your-api-key
Content-Type: application/json
{
"WHKey": "your-yard-key",
"Cont": "ABCU1234560",
"MoveType": 2,
"Zone": "BLKA",
"Bay": 4,
"Row": 2,
"Tier": 1,
"Remarks": "Reach stacker RS-03",
"Latitude": 5.6312,
"Longitude": -0.0174
}

Envíe la clave en un encabezado Authorization con el esquema Bearer. La clave debe tener permiso para realizar movimientos de patio (yard.execute); el soporte de TrakIT lo configura. Sin el encabezado, o con otro esquema, TrakIT responde HTTP 401 sin cuerpo.

Los nombres de los campos distinguen entre mayúsculas y minúsculas: escríbalos exactamente como se indica a continuación.

Campo Obligatorio Significado
WHKey Sí La clave del patio, que el soporte de TrakIT le facilita con la clave de API.
Cont Sí El número de contenedor. Las mayúsculas no importan.
MoveType Sí El movimiento, como número entero: consulte Tipos de movimiento.
Zone Para un movimiento In-Stack La zona en la que se coloca el contenedor: su código, su nombre, o ambos como CODE - Name. Solo se lee en los movimientos In-Stack.
Bay, Row, Tier Para un movimiento In-Stack a una zona con posiciones de pila La posición de pila, como números enteros a partir de 1. Envíe los tres; omítalos para una zona con No Positioning. Consulte Posiciones.
Remarks No Observaciones sobre el movimiento, hasta 500 caracteres: las observaciones más largas se recortan.
Latitude, Longitude No Dónde se hizo el movimiento, en grados decimales: una latitud de -80 a 80 y una longitud de -180 a 180. Envíe ambas o ninguna. TrakIT muestra el lugar en un mapa: consulte Ubicación del movimiento.
MoveType Movimiento Qué registra
2 In-Stack El contenedor se coloca en Zone, en la posición de pila Bay, Row, Tier, o en la zona sin posición si esta tiene No Positioning.
3 On-Truck El contenedor se saca de su posición de pila y se pone en un camión. Permanece en su zona.
1 Gate-Out El contenedor sale del patio. El movimiento toma la matrícula del último movimiento del contenedor.

Este punto de conexión registra movimientos de contenedores que ya están en el patio: úselo para estos tres tipos de movimiento. Las entradas al patio y los demás movimientos se registran en TrakIT o con la aplicación para dispositivos móviles.

Cómo se coloca un contenedor en una zona depende de cómo estén configurados el patio y la zona: consulte Almacenes y patios para Validate Position y Default Zone, y zonas para No Positioning.

  • Si la zona no tiene esa posición, o la posición está deshabilitada, TrakIT registra igualmente el movimiento, en la zona sin posición, y añade No such position in zone ... con la posición a las observaciones del movimiento y a Info.
  • Si la posición contiene otro contenedor y el patio tiene una Default Zone, TrakIT saca el otro contenedor de la posición, dejándolo en su zona sin posición, coloca el suyo y lo indica en Info. Si el otro contenedor no se puede sacar, por ejemplo porque tiene otro encima, el suyo va a la zona sin posición. En un patio sin zona predeterminada, el movimiento se rechaza con Position already occupied.
  • Si el contenedor ya está en esa posición, no se registra nada, y la respuesta es un éxito con Info Container is already in position.
  • Si el patio tiene Validate Position en Yes, se aplican las reglas de apilamiento; por ejemplo, un contenedor de 20 pies por encima del suelo necesita un contenedor de 20 pies debajo. Consulte las Reglas para ver los mensajes.
Regla Info si no se cumple
El cuerpo es JSON. Incorrect Json syntax or move missing
La solicitud tiene un encabezado Authorization: Bearer. Sin Info: HTTP 401 sin cuerpo.
La clave está activa y tiene permiso para realizar movimientos de patio. Key is disabled, not recognized or permission denied
WHKey es la clave de un patio. WHKey is missing or invalid
Se indica Cont. Cont is required
TrakIT conoce el contenedor: está en la Lista de contenedores. Container not found
El contenedor está en un patio. Container not in yard
El contenedor está en este patio. Container is in another yard: ..., con el nombre del patio
El contenedor tiene un movimiento realizado en este patio. Could not retrieve last executed move
In-Stack: se indica Zone. Zone is required
In-Stack: Zone es una zona de este patio, y solo una. Invalid Zone: ..., More than one records found for Zone: ...
In-Stack sin Bay, Row ni Tier: la zona tiene No Positioning. Zone ... requires a position.
Latitude y Longitude se envían juntas. Both Latitude and Longitude must be provided together
Están dentro del intervalo. Latitude must be between -80.0 and +80.0, Longitude must be between -180.0 and +180.0
Las validaciones propias de su empresa para los movimientos de patio realizados, si las tiene. Sus propios mensajes
Gate-Out: el último movimiento del contenedor tiene una matrícula. Vehicle Number is required
El último movimiento del contenedor no es una salida del patio, o el contenedor tiene una posición de pila. Container not found in yard
Gate-Out: el contenedor no está bloqueado. Container is blocked: ..., con el motivo
En algunas instalaciones, In-Stack y On-Truck: la zona admite el estado lleno o vacío del contenedor. Zone ... accepts empty containers only. A full container cannot be placed in it., Zone ... accepts full containers only. An empty container cannot be placed in it.
Con Validate Position en Yes: no hay ningún contenedor apilado sobre el que saca de su posición. Cannot remove container under another
In-Stack: la posición está libre, o el patio tiene una Default Zone. Position already occupied
In-Stack con Validate Position en Yes: el contenedor se puede apilar en la posición. Position blocked by 40', Position blocked by 40' under, Requires 20' container under, Require 2x20' under, Position under empty or disabled, Cannot stack on unknown container size, Adjacent Position is occupied, Adjacent Position is disabled, Cannot place 40' here

Si tiene éxito, Code es 1. Info está vacío o contiene una nota:

  • Move executed successfully. seguido de lo que TrakIT ha cambiado: la posición no existía (No such position in zone ...), o se ha sacado otro contenedor de ella (... was occupied by ..., which was moved to zone ... without a position.);
  • Container is already in position: no se ha registrado ningún movimiento.

La respuesta no da el identificador del nuevo movimiento: Identity es 0.

{
"Code": 1,
"Info": "",
"RetInfo": null,
"RowsAffected": 1,
"Scalar": null,
"Identity": 0
}
  • El movimiento se registra como realizado en el momento en que TrakIT recibe la solicitud.
  • La solicitud que envió se conserva en la pestaña Action Log del nuevo movimiento, como API Payload - ExecuteMove.
  • El movimiento se trata como uno registrado en TrakIT: se ejecutan las acciones de su empresa para los movimientos de patio realizados y, cuando el movimiento está vinculado a una orden de trabajo, los disparadores de movimiento de patio del flujo de trabajo rellenan sus eventos.
  • Cada llamada correcta registra un nuevo movimiento, salvo un movimiento In-Stack a la posición en la que ya está el contenedor. Si una llamada agotó el tiempo de espera, compruebe el contenedor con GetContainerPosition antes de volver a enviarla.