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/ExecuteMoveAuthorization: Bearer your-api-keyContent-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. |
Types de mouvement
Section intitulée « Types de 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.
Positions
Section intitulée « Positions »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é avecPosition already occupied. - Si le conteneur est déjà à cette position, rien n’est enregistré, et la réponse est un succès avec
InfoContainer 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
GetContainerPositionavant de le renvoyer.

