Files
mcp-wms-wiki/wiki_old_13-05-2026/sources/archives/LIM-74 LOT1.3 [AGV][JOB] MINI JOB - images de quai poste de travail (PK).md
2026-05-20 09:41:27 +02:00

154 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Ce job fait partie dun job principal décrit ici : [https://easywmsfrance.atlassian.net/browse/LIM-70](https://easywmsfrance.atlassian.net/browse/LIM-70)
# Contexte
Dans le flux de réception fournisseur/intersite/retour client, les palettes sont déchargées par un cariste sur une image de quai puis déclarées via le TRF. Elles doivent ensuite être acheminées par AGV vers un poste de travail (PK) pour y être traitées.
Ce job périodique est le mécanisme central qui orchestre l'envoi des palettes depuis les images de quai vers les postes de travail. Il est responsable de :
- Identifier les PK disponibles dont le mode actif est "réception"
- Trouver les réceptions en attente de traitement (supports fictifs sur image de quai, non encore assignés à un PK)
- Assigner une réception complète à un PK
- Créer les tâches de déplacement (statut "en attente") pour chaque support
Le passage du statut "en attente" à "généré" est géré par le WMS standard (Task_GenerateMovementJob_PR). Le module AGV process et GNA qui "l'écoute" (LIM-XXX) envoie ensuite les tâches à la flotte iGo qui gère la file d'attente des AGV.
> **Note** : Ce job ne concerne **pas** les réceptions de type Production. Celles-ci sont envoyées directement vers le PIE de l'ASRS via des supports virtuels, sans passer par un poste de travail.
Résumé du process complet de réception fournisseur/intersite/retour :
1. Déclaration sur l'image de quai : [https://easywmsfrance.atlassian.net/browse/LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64)
2. **[Déplacement AGV → Poste de travail] ← cette tâche**
3. Traitement au poste de travail : [https://easywmsfrance.atlassian.net/browse/LIM-67](https://easywmsfrance.atlassian.net/browse/LIM-67)
4. Déplacement AGV → Table d'entrée (+ filmage si demandé)
5. Passage PIE : [https://easywmsfrance.atlassian.net/browse/LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66)
6. Stockage ou rejet
7. Clôture de la réception
8. Libération quai / image de quai
---
# Développement
La partie 2.1 ELIGIBILITÉ DU PK est à faire à lentête du JOB, donc dans : [https://easywmsfrance.atlassian.net/browse/LIM-70](https://easywmsfrance.atlassian.net/browse/LIM-70)
### 1. Logique principale
Pas besoin de vérification du CstAtt04, les conteneurs virtuels de production nont pas de réception associée
`POUR CHAQUE PK (poste de travail) ├─ 1.1 RECHERCHE D'UNE RÉCEPTION À ASSIGNER │ ├─ Filtrer les réceptions ayant des supports fictifs (séquence 8000*) │ │ sur une image de quai dont le CstAtt06 est vide (pas de PK assigné) │ │ et CstAtt04 ≠ "ASN" (exclusion production) │ ├─ Filtre big-bag : si CstAtt01 du support = true (big-bag potentiel) │ │ → le PK doit figurer dans le paramètre PK_BIGBAG │ ├─ Trier par date de création de la réception (FIFO) │ └─ Prendre la PREMIÈRE réception éligible │ ├─ 1.2 ASSIGNATION DU PK │ └─ Setter CstAtt06 = code du PK sur TOUS les supports de cette réception │ └─ 1.3 CRÉATION DES TÂCHES ├─ Pour CHAQUE support fictif de la réception : │ créer 1 tâche : sous-emplacement image de quai → PK (station) ├─ Statut initial : "en attente" └─ Toutes les palettes d'une réception → même PK, en une seule passe`
### 3. Détails des étapes
#### 1.1 Recherche d'une réception
Le job cherche parmi toutes les réceptions non-production celles qui ont des supports fictifs (identifiés par leur séquence commençant par 8000) positionnés sur une image de quai, dont le **CstAtt06 est vide** (pas encore assignés à un PK) ~~et dont le~~ **~~CstAtt04 ne vaut pas "ASN"~~**~~.~~
**Filtre big-bag** : Si les supports de la réception ont le CstAtt01 = true (présence de big-bag déclarée lors de la déclaration image de quai), alors le PK doit figurer dans la liste du paramètre PK_BIGBAG. Si aucun PK compatible big-bag n'est libre, la réception attend.
**Ordre de priorité** : Ordres contenant des big-bags si le poste lautorise puis FIFO sur la date de création de la réception. La réception la plus ancienne est servie en premier.
#### 2.3 Assignation du PK
Une fois la réception trouvée, le **CstAtt06** de **tous les supports fictifs** de cette réception est mis à jour avec le code du PK assigné. Ce CstAtt sert également à identifier le poste d'origine en cas de notification de rejet au PIE.
#### 2.4 Création des tâches
Pour chaque support fictif de la réception sur l'image de quai, une tâche de déplacement est créée :
- **Origine** : sous-emplacement de l'image de quai où se trouve le support
- **Destination** : PK (station). Le WMS choisira automatiquement le sous-emplacement (TP) de destination au moment de la génération du mouvement : [https://easywmsfrance.atlassian.net/browse/LIM-60](https://easywmsfrance.atlassian.net/browse/LIM-60).
- **Statut** : "en attente"
Toutes les palettes d'une même réception sont créées vers le **même PK** en une seule passe du job. Le WMS gère ensuite le passage "en attente" → "généré" à la volée selon la capacité en temps réel du PK, et le module AGV les envoie à la flotte iGo.
Le paramètre PK_BIGBAG renseigne les postes de picking autorisant les big bags.
Les supports ayant le CstAtt1 à 1 ne pourront aller que vers postes qui seront renseignés dans ce paramètres.
Les supports ayant le CstAtt1 à 1 seront également prioritaires sur ces postes là.
---
## Paramètres
| | | |
|---|---|---|
|Paramètre|Description|Valeur par défaut|
|PK_BIGBAG|Liste des PK compatibles big-bag (séparés par ;)|_(vide)_|
---
# Cas de tests
### 2. Recherche et sélection de la réception
| | | | | | | |
|---|---|---|---|---|---|---|
|ID|Description|Préconditions|Actions|Résultat attendu|Dév|CDP|
|13|Réception FIFO — la plus ancienne est prise|2 réceptions en attente (R1 créée à 10h, R2 créée à 11h), 1 PK libre|Exécution du job|R1 est assignée au PK (date de création la plus ancienne)|||
|14|Réception déjà assignée ignorée|R1 avec CstAtt06 renseigné (PK déjà assigné), R2 avec CstAtt06 vide|Exécution du job|R1 est ignorée, R2 est assignée|||
|15|~~Réception production ignorée (CstAtt04 = ASN)~~|~~R1 avec supports ayant CstAtt04 = "ASN" (production), R2 fournisseur avec supports fictifs (CstAtt04 ≠ "ASN")~~|~~Exécution du job~~|~~R1 est ignorée grâce au filtre CstAtt04, R2 est assignée~~|Pas de réception crée pour la production||
|16|Aucune réception en attente|Aucun support fictif avec CstAtt06 vide sur une image de quai|Exécution du job|Le job ne fait rien, pas d'erreur|||
---
### 3. Filtre big-bag
| | | | | | | |
|---|---|---|---|---|---|---|
|ID|Description|Préconditions|Actions|Résultat attendu|Dév|CDP|
|17|Réception big-bag vers PK compatible|Réception avec CstAtt01=true, PK01 dans PK_BIGBAG, PK01 libre|Exécution du job|La réception est assignée à PK01|||
|18|Réception big-bag, PK compatible occupé, PK non compatible libre|Réception avec CstAtt01=true, PK01 (compatible) occupé, PK02 (non compatible) libre|Exécution du job|La réception n'est PAS assignée à PK02. Elle attend que PK01 se libère|||
|19|Réception big-bag, aucun PK compatible configuré|Réception avec CstAtt01=true, paramètre PK_BIGBAG vide|Exécution du job|La réception n'est assignée à aucun PK. Elle reste en attente|||
|20|Réception sans big-bag vers PK quelconque|Réception avec CstAtt01=false, PK02 (non compatible big-bag) libre|Exécution du job|La réception est assignée à PK02 normalement|||
|21|Réception sans big-bag, seul PK compatible big-bag est libre|Réception avec CstAtt01=false, PK01 (compatible big-bag) libre, PK02 occupé|Exécution du job|La réception est assignée à PK01 (un PK big-bag peut aussi traiter des réceptions normales)|||
---
### 4. Assignation du PK (CstAtt06)
| | | | | | | |
|---|---|---|---|---|---|---|
|ID|Description|Préconditions|Actions|Résultat attendu|Dév|CDP|
|22|CstAtt06 renseigné sur tous les supports|Réception avec 5 supports fictifs, PK03 libre|Exécution du job|Les 5 supports ont CstAtt06 = "POSTE03" en base|||
|23|Supports d'autres réceptions non impactés|R1 (3 supports) et R2 (4 supports) sur la même image de quai, 1 PK libre|Exécution du job|Seuls les 3 supports de R1 ont leur CstAtt06 mis à jour. Les 4 supports de R2 gardent CstAtt06 vide|||
---
### 5. Création des tâches
| | | | | | | |
|---|---|---|---|---|---|---|
|ID|Description|Préconditions|Actions|Résultat attendu|Dév|CDP|
|24|Nombre de tâches = nombre de supports|Réception avec 8 supports fictifs sur image de quai, PK libre|Exécution du job|8 tâches créées, ni plus ni moins|||
|25|Statut initial des tâches = "En attente"|Réception assignée à un PK|Exécution du job|Toutes les tâches créées sont en statut "En attente"|||
|26|Origine = sous-emplacement image de quai|Support fictif sur sous-emplacement 5 de l'image de quai|Exécution du job|La tâche a pour origine le sous-emplacement 5 de l'image de quai|||
|27|Destination = PK (station)|PK03 assigné|Exécution du job|La destination de la tâche est PK03 (station). Le sous-emplacement (TP) n'est pas précisé — géré par le WMS au moment de la génération du mouvement [https://easywmsfrance.atlassian.net/browse/LIM-60](https://easywmsfrance.atlassian.net/browse/LIM-60)|||
|28|Toutes les tâches vont vers le même PK|Réception avec 6 supports, PK02 assigné|Exécution du job|Les 6 tâches ont toutes PK02 comme destination|||
|29|Tâches créées même si le PK n'a que 3 TP|Réception avec 10 supports, PK avec 3 TP|Exécution du job|10 tâches créées en "En attente". Le WMS passera progressivement les tâches en "Créé" selon la capacité disponible du PK en temps réel|||
---
### 6. Exécutions successives du job
| | | | | | | |
| --- | -------------------------------- | ------------------------------------------- | ---------------- | -------------------------------------------------- | --- | --- |
| ID | Description | Préconditions | Actions | Résultat attendu | Dév | CDP |
| 30 | Même réception pas re-traitée | R1 déjà assignée (CstAtt06 renseigné) | Exécution du job | R1 est ignorée, pas de doublon de tâches | | |
| 31 | Job sans effet si rien à traiter | Aucune réception en attente, aucun PK libre | Exécution du job | Job s'exécute sans erreur, aucune action effectuée | | |