Aller au contenu

ExecuteMove

Enregistre un mouvement d’un conteneur qui se trouve dans un parc à conteneurs, comme effectué maintenant : vers une zone et une position dans les piles, sur un camion, ou hors du parc. Un système de parc, comme un système de terminal ou de portail, l’utilise pour que l’inventaire du parc de TrakIT suive les conteneurs au fil de leurs mouvements. Pour vérifier d’abord où se trouve un conteneur, utilisez GetContainerPosition.

Le nouveau mouvement prend la suite du dernier mouvement du conteneur dans le parc : il reprend l’ordre de travail, le véhicule, le scellé et les autres détails de ce mouvement, avec le type de mouvement, la zone, la position, les remarques et le lieu que vous envoyez. Il apparaît ensuite dans Mouvements de parc comme tout autre mouvement, avec System comme utilisateur.

Comment envoyer la clé et lire la réponse : Clés d’API, Réponses.

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
}

Envoyez la clé dans un en-tête Authorization avec le schéma Bearer. La clé doit être autorisée à effectuer des mouvements de parc (yard.execute) ; le support TrakIT s’en charge. Sans cet en-tête, ou avec un autre schéma, TrakIT répond HTTP 401 sans corps.

Les noms des champs sont sensibles à la casse : écrivez-les exactement comme ci-dessous.

Champ Obligatoire Signification
WHKey Oui La clé du parc, que le support TrakIT vous donne avec la clé d’API.
Cont Oui Le numéro de conteneur. Les majuscules n’ont pas d’importance.
MoveType Oui Le mouvement, sous forme de nombre entier : voir Types de mouvement.
Zone Pour un mouvement In-Stack La zone où placer le conteneur : son code, son nom, ou les deux sous la forme CODE - Name. Lu uniquement pour les mouvements In-Stack.
Bay, Row, Tier Pour un mouvement In-Stack vers une zone avec des positions dans les piles La position dans les piles, sous forme de nombres entiers à partir de 1. Envoyez les trois ; omettez-les pour une zone avec No Positioning. Voir Positions.
Remarks Non Les remarques du mouvement, jusqu’à 500 caractères : les remarques plus longues sont tronquées.
Latitude, Longitude Non L’endroit où le mouvement a été effectué, en degrés décimaux : une latitude de -80 à 80 et une longitude de -180 à 180. Envoyez les deux ou aucune. TrakIT affiche l’endroit sur une carte : voir Lieu du mouvement.
MoveType Mouvement Ce qu’il enregistre
2 In-Stack Le conteneur est placé dans Zone, à la position dans les piles Bay, Row, Tier, ou dans la zone sans position si elle a No Positioning.
3 On-Truck Le conteneur est sorti de sa position dans les piles et chargé sur un camion. Il reste dans sa zone.
1 Gate-Out Le conteneur quitte le parc. Le mouvement reprend le numéro de véhicule du dernier mouvement du conteneur.

Ce point de terminaison enregistre les mouvements de conteneurs qui sont déjà dans le parc : utilisez-le pour ces trois types de mouvement. Les entrées au parc et les autres mouvements sont enregistrés dans TrakIT ou avec l’application pour appareils mobiles.

La façon dont un conteneur est placé dans une zone dépend de la configuration du parc et de la zone : voir Entrepôts et parcs pour Validate Position et Default Zone, et zones pour No Positioning.

  • Si la zone n’a pas cette position, ou si la position est désactivée, TrakIT enregistre quand même le mouvement, dans la zone sans position, et ajoute No such position in zone ... avec la position aux remarques du mouvement et à Info.
  • Si la position contient un autre conteneur et que le parc a une Default Zone, TrakIT sort l’autre conteneur de la position, en le laissant dans sa zone sans position, y place le vôtre et l’indique dans Info. Si l’autre conteneur ne peut pas être sorti, par exemple parce qu’un conteneur est empilé dessus, le vôtre va dans la zone sans position. Dans un parc sans zone par défaut, le mouvement est refusé avec Position already occupied.
  • Si le conteneur est déjà à cette position, rien n’est enregistré, et la réponse est un succès avec Info Container is already in position.
  • Si le parc a Validate Position réglé sur Yes, les règles d’empilement s’appliquent : par exemple, un conteneur de 20 pieds au-dessus du sol doit reposer sur un conteneur de 20 pieds. Voir les Règles pour les messages.
Règle Info en cas d’échec
Le corps est du JSON. Incorrect Json syntax or move missing
La requête a un en-tête Authorization: Bearer. Pas d’Info : HTTP 401 sans corps.
La clé est active et autorisée à effectuer des mouvements de parc. Key is disabled, not recognized or permission denied
WHKey est la clé d’un parc. WHKey is missing or invalid
Cont est indiqué. Cont is required
TrakIT connaît le conteneur : il figure dans la liste des conteneurs. Container not found
Le conteneur est dans un parc. Container not in yard
Le conteneur est dans ce parc. Container is in another yard: ..., avec le nom du parc
Le conteneur a un mouvement effectué dans ce parc. Could not retrieve last executed move
In-Stack : Zone est indiqué. Zone is required
In-Stack : Zone est une zone de ce parc, et une seule. Invalid Zone: ..., More than one records found for Zone: ...
In-Stack sans Bay, Row ni Tier : la zone a No Positioning. Zone ... requires a position.
Latitude et Longitude sont envoyées ensemble. Both Latitude and Longitude must be provided together
Elles sont dans les limites. Latitude must be between -80.0 and +80.0, Longitude must be between -180.0 and +180.0
Les validations propres à votre société pour les mouvements de parc effectués, s’il y en a. Leurs propres messages
Gate-Out : le dernier mouvement du conteneur a un numéro de véhicule. Vehicle Number is required
Le dernier mouvement du conteneur n’est pas une sortie du parc, ou le conteneur a une position dans les piles. Container not found in yard
Gate-Out : le conteneur n’est pas bloqué. Container is blocked: ..., avec le motif
Sur certaines installations, In-Stack et On-Truck : la zone accepte l’état, plein ou vide, du conteneur. 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.
Avec Validate Position réglé sur Yes : aucun conteneur n’est empilé sur celui que vous sortez de sa position. Cannot remove container under another
In-Stack : la position est libre, ou le parc a une Default Zone. Position already occupied
In-Stack avec Validate Position réglé sur Yes : le conteneur peut être empilé à la position. 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

En cas de succès, Code vaut 1. Info est vide, ou contient une note :

  • Move executed successfully. suivi de ce que TrakIT a changé : la position n’existait pas (No such position in zone ...), ou un autre conteneur en a été sorti (... was occupied by ..., which was moved to zone ... without a position.) ;
  • Container is already in position : aucun mouvement n’a été enregistré.

La réponse ne donne pas l’identifiant du nouveau mouvement : Identity vaut 0.

{
"Code": 1,
"Info": "",
"RetInfo": null,
"RowsAffected": 1,
"Scalar": null,
"Identity": 0
}
  • Le mouvement est enregistré comme effectué au moment où TrakIT reçoit la requête.
  • La requête que vous avez envoyée est conservée dans l’onglet Action Log du nouveau mouvement, sous API Payload - ExecuteMove.
  • Le mouvement est traité comme un mouvement enregistré dans TrakIT : les actions de votre société pour les mouvements de parc effectués s’exécutent et, lorsque le mouvement est lié à un ordre de travail, les déclencheurs de mouvement de parc du workflow renseignent ses événements.
  • Chaque appel réussi enregistre un nouveau mouvement, sauf un mouvement In-Stack vers la position où se trouve déjà le conteneur. Si un appel a expiré, contrôlez le conteneur avec GetContainerPosition avant de le renvoyer.