Stock 150
Généralités
Ce document est une aide destinée à l’utilisation des stocks dans les flux de production et de négoce.
Il présente les liens entre les documents, mouvements et règles (d’allocation/sortie et de gestion).
Il décrit les éléments nécessaires à la saisie des stocks à partir d’un document :
- Les champs écrans à définir
- Les actions sur champs à utiliser
- Les actions objets à renseigner
- Les sous programmes de la bibliothèque stock
Il décrit les éléments nécessaires à la mise à jour des stocks à partir d’un document :
- Paramètres de l’interface entre la saisie et la mise à jour
- Paramètres de la mise à jour
Il contient également quelques documentations utiles à la compréhension de certaines fonctionnalités.
Paramétrage
Allocations
Document Condition Règle d'allocation Règle de gestion 2 - Commande Autres commandes Commande Livraison Commande de prêt Commande Livraison de prêt 10 - Ordre de fabrication Autres opérations Ordre de fabrication Sortie OF Opération de sous-traitance Conso sous-traitance Sortie ordre sous-traitance 36 - Ordre de sous-traitance Conso sous-traitance Sortie ordre sous-traitance
Remarque
La règle de gestion n'est utilisée que pour déterminer les emplacements à utiliser.
Entrées
Mouvement Document Condition Règle de gestion 1 - Entrée diverse 19 - Entrée diverse Entrée diverse 1 - Entrée diverse 31 - Assemblage Composé Entrée diverse 1 - Entrée diverse 32 - Désassemblage Composant Entrée diverse 3 - Réception 6 - Réception Réception 5 - Entrée OF 15 - Déclaration production Entrée OF 7 - Changt d'emplacement 29 - Changement stock Emp sous-traitant & mvt + Entrée transfert Autres emp & mvt + Changement stock 8 - Contrôle qualité 28 - Contrôle qualité Contrôle qualité 9 - Changt de statut 29 - Changement stock Mvt + Changement stock 12 - Retour livraison 13 - Retour client Retour livraison 12 - Retour livraison 18 - Avoir client Retour livraison 13 - Inventaire 19 - Entrée diverse 14 - Transfert inter-sites 29 - Changement stock Mvt + Entrée transfert16 - Réception pour s-traitance
34- Demande d'analyse
29 - Changement stock
33- Retour liv s-traitance
13- Retour client
Retour livraison
22 - Plan de rangement
Document origine
Document origine
21 - Refractionnement
29 - Changement stock
Mvt +
Changement stock
19 - Réintégration de stock
12 - Suivi matière
Réintégration de stock
18 - Retour livraison de prêt
13 - Retour client
Retour livraison de prêt
Réception pour s-traitance
6 - Réception
Sorties
Mouvement | Document | Condition | Règle de sortie | Règle de gestion |
2 - Sortie diverse | 20 - Sortie diverse |
| Mvt interne | Sortie diverse |
2 - Sortie diverse | 31 - Assemblage | Composant | Mvt interne | Sortie diverse |
2 - Sortie diverse | 32 - Désassemblage | Composé | Mvt interne | Sortie diverse |
4 - Livraison | 4 - Livraison |
| Expédition | Livraison |
4 - Livraison | 5 - Facture |
| Expédition | Livraison |
6 - Sortie OF | 12 - Suivi matière | Opération s-trait | Conso s-trait | Sortie ordre s-traitance |
Autres opé | Conso matière | Sortie OF | ||
7 - Chgt d'emplacement | 29 - Changement stock | Emp s-traitant & mvt - |
| Sortie transfert interne |
Autres emp & mvt - |
|
| ||
9 - Chgt de statut | 29 - Changement stock | Mvt - |
|
|
11 - Retour réception | 8 - Retour fournisseur |
| Expédition | Retour réception |
13 - Inventaire | 20 - Sortie diverse |
|
|
|
14 - Transfert inter-site | 29 - Changement stock | Mvt - |
| Sortie transfert interne |
17 - Livraison de prêt | 4 - Livraison |
| Expédition | Livraison de prêt |
20 - Livraison pour s-trait | 4 - Livraison |
| Expédition s-trait | Livraison pour s-trait |
21 - Refractionnement | 29 - Changement stock | Mvt - |
|
|
24 - Demande service | 33 - Demande service |
| Mvt interne | Demande service |
25 - Réappro | 34 - Plan de réappro | Emp s-traitant | Expédition s-trait | Réappro |
Autres emp | Mvt interne | Réappro | ||
29 - Sortie s-traitance | 6 - Réception |
| Conso s-trait | Sortie ordre s-traitance |
32 - Retour rec pour s-trait | 8 - Retour fournisseur |
| Retour rec pour s-trait |
Allocations
Traitements de type 'Objet'
Pré-requis
Dans l’écran des lignes de document définir (en invisible) les champs permettant de gérer le filtre allocation dans la ligne avec les noms suivants :
- LOT Filtre lot (type de donnée : LOT)
- LOC Filtre emplacement (type de donnée : EMP)
- STA Filtre statut (type : Char(12))
Actions champs
-
Variable de bas de tableau (NBLIG)
Déclencheur |
Action |
Désignation |
Bouton |
SAISTOALL |
Saisie des allocations |
- sur une ligne déjà créée |
||
- doit être appelée sur une situation stable |
- Quantité
Déclencheur |
Action |
Désignation |
Bouton |
SAIALLFIL |
Saisie du filtre d'allocations |
Echanges entre une ligne de document et le détail allocations
Traitement TRTSTOALLA (complément de TRTSTOALL : Saisie des allocations)
Il permet de gérer l’interaction entre une ligne de document et la saisie manuelle des allocations.
La mise à jour de ce traitement est à la charge du développeur de la fonction origine. La reconnaissance de celle-ci est effectuée avec l’abréviation du masque (LABR) passé en paramètre à l’action SAISTOALL (Saisie des allocations)
Il permet :
- d'alimenter le masque de saisie STOALL : CHARG_PARAM
- d'effectuer des contrôles avant enregistrement de la saisie : AVANT_ENR
- d'effectuer des mises à jour suite à enregistrement de la saisie : APRES_ENR
Autres traitements
Composants disponibles
Les composants à utiliser se trouvent dans le traitement STKALL
- Pour générer une allocation globale GENSTOALL
- Pour supprimer une allocation d'une ligne de document DELALL
- Pour diminuer la quantité d'une allocation DIMALL
- Pour transférer l'allocation d'une pièce vers une autre CHGALL
- Pour créer une allocation CREALL
- Pour supprimer une allocation SUPALL
- Pour modifier une allocation MODALL
- Pour consommer des réservations client CSOALL
Flux d'entrées
Traitements de type 'Objet'
Pré-requis
Dans les tables ‘entêtes de document'
- Définir une zone TRSCOD (Code mouvement) contrôlée par la table diverse 14.
Lors de la création d’un document, il faut stocker le code mouvement de la transaction dans ce champ afin de le réutiliser lors d’une modification/suppression (indépendamment de la transaction choisie) - Définir une zone ENTCOD (Code pièce auto stock).
- Définir une zone TRSFAM (Famille de mouvement) contrôlée par la table diverse 9.
Dans les transactions effectuant des entrées
- Définir une zone TRSCOD (Code mouvement) contrôlée par la table diverse 14 et permettant d’affiner la détermination de la règle d'entrée à utiliser.
- Définir une zone ENTCOD (Code pièce auto stock).
- Définir une zone TRSFAMDEF (Famille de mouvement) contrôlée par la table diverse 9.
Dans l’écran des lignes de document
- Champs visibles (ordre et description)
Les champs marqués en souligné sont obligatoirement renseignés dans le document. Les autres, mêmes saisissables et nécessitant une valeur suivant l'article, ne seront obligatoires que dans la fenêtre 'Détail'
Les champs marqués en gras sont saisissables mais peuvent être rendus invisibles par transaction
Les champs marqués en italique sont affichés et peuvent être rendus invisibles par transaction
- ITMREF : Référence de l'article
- PCU ou UOM : Unité de conditionnement
- QTYPCU ou QTYUOM : Quantité à entrer
- PCUSTUCOE : Rapport entre l'unité de conditionnement et l'unité de stock
- STU : Unité de stock définie au niveau de la catégorie article
- QTYSTU : Quantité en unité de stock
- STA : Statut qualité
- LOCTYP : Type d'emplacement
- LOC : Numéro d'emplacement
- BPSLOT : Lot fournisseur
- LOT : Numéro de lot
- NBSLO : Nombre de sous lots
- SLO : Premier numéro de sous lot
- SLOF : Dernier numéro de s/lot
- SERNUM : Premier numéro de série
- SERNUMF : Dernier numéro de série
- PRIORD : Valeur de l'ordre (équiv. Prix réel)
- MVTDES : Description du mouvement
- Champs invisibles
- GESLOT : Origine lot = "B" si lot blanc, = "C" si lot géré par compteur, = "" si lot saisi. Mis à jour sur contrôle du lot. Valeur par défaut : "" sauf si compteur sur lot ("C").
- WSTOSEQ : Numéro lien entre les lignes de détail et une ligne de document.
- WLOCSEQ : Numéro lien entre les lignes de détail et une réservation d'emplacement.
- WSTOFLG : Indicateur permettant de savoir, aussi bien pour le document que pour le moteur de stock, si la ligne est complète ou non vis à vis des champs stock (0=incomplète, 1=complète).
- WSRUFLG : Flag servant à savoir à quel niveau est définie la règle de gestion de l'article de la ligne.
-
WSTOSAI : Indicateur des champs stock à saisir.
Actions champs
- Emplacement 'en attente de rangement' par défaut (SRGLOCDEF)
Déclencheur |
Action |
Désignation |
Sélection |
STKSELQUA |
Sélection d'un emplacement de type 'en attente de rangement' |
Contrôle |
STKCTRSRG |
Contrôle l'existence et le type de l'emplacement |
Après-Modif |
STKMODSRG |
Propose le remplacement des emplacements détail par celui saisi |
- Variable de bas de tableau (NBLIG)
Déclencheur |
Action |
Appel traitement / Désignation |
Init-Bouton |
STD |
Call STKINIBTN From STKENT |
pour affichage selon le cas des boutons |
||
- détail ou modification |
||
- infos lot |
||
- complément lot |
||
Contrôle |
STD |
Call STKCTRNBLIG From STKENT |
pour gérer la suppression de lignes |
||
Avant-Ligne |
LECFICENT |
Lecture des tables stock |
Après-Ligne |
SAISTOENT |
Ouverture de la fenêtre 'détail stock' |
SAIENTLOT |
Ouverture de la fenêtre 'complément lot' |
|
Bouton 2 |
ENTRCLI |
Autorisation ouverture fenêtre détail : GOUVENT = 16384 |
SAISTOENT |
Ouverture de la fenêtre 'détail stock' |
|
Bouton 3 |
STKINFLOT |
Informations lots |
Bouton 4 |
STD |
GOUVLOT = GOUVLOT-mod(GOUVLOT,2) |
GOUVENT = 1 |
||
SAIENTLOT |
Ouverture de la fenêtre 'complément lot' |
|
Bouton5 |
SAISTOENTM |
Ouverture de la fenêtre 'modification stock' |
Voir l'action objet 'Avant-Bouton' $AB5_NBLIG |
Déclencheur |
Action |
Désignation |
Après-Modif |
INIZONENT |
- Lecture des tables article et stock |
- Affectation des valeurs par défaut |
||
- Désactivation des champs non significatifs |
Déclencheur |
Action |
Désignation |
Sélection |
STKSELUOM |
Sélection de l'unité |
Après-Modif |
STD |
- Maj du coef UC/US |
- Maj de la quantité US |
||
- Dégrisage coef PCUSTUCOE si modifiable |
Déclencheur |
Action |
Désignation |
Après-Modif |
STD |
- Maj de la quantité en US |
Déclencheur |
Action |
Désignation |
Après-Modif |
STD |
- Maj de la quantité en US |
Déclencheur |
Action |
Désignation |
Sélection |
STKSELSTA |
- Sélection du statut |
Contrôle |
STKCTRSTA |
- Contrôle du statut |
Déclencheur |
Action |
Désignation |
Avant-Saisie |
STKSUGTLO |
- Suggestion d'un type d'emplacement |
Le paramètre LOCSEQ = [M]WLOCSEQ(nolign-1) |
||
Sélection |
STKSELTLO1 |
- Sélection d'un type d'emplacement |
Contrôle |
STKCTRTLO |
- Contrôle du type d'emplacement |
Après-Modif |
RAZLOC |
- Efface le contenu du champs LOC |
Déclencheur |
Action |
Désignation |
Avant-Saisie |
STKSUGEMP |
- Suggestion d'un emplacement |
Le paramètre LOCSEQ = [M]WLOCSEQ(nolign-1) |
||
Sélection |
SAIEMPLIB |
- Sélection d'un emplacement |
Contrôle |
STKCTREMP |
- Contrôle de l'emplacement |
Déclencheur |
Action |
Désignation |
Sélection |
STKSELBPLN |
- Sélection lot fournisseur |
Après-Modif |
STKAMLOF |
- Affectation du lot si reprise lot fournisseur |
Déclencheur |
Action |
Désignation |
Init-Bouton |
STKIBLOT |
Selon conditions, ajout des boutons |
- Lot blanc |
||
- Infos lot |
||
Contrôle |
STKCTRLOT |
- Vérifie si le lot blanc est autorisé |
- Vérifie si l'unicité du lot est obligatoire |
||
Après-Modif |
STKAMLOT |
- Recalcule le sous-lot |
Bouton 1 |
STKSELLOT |
- Sélection d'un lot |
Bouton 2 |
LOTNUMCPT |
- Numéro lot (compteur) suivant |
Bouton 3 |
LOTBLANC |
- Lot blanc : affecte le champ 'GESLOT' avec "B" |
Bouton 4 |
STKINFLOT |
- Info lot ('Lot blanc', 'Compteur', 'No pièce') |
Déclencheur |
Action |
Appel traitement |
Contrôle |
STD |
- Call STKCTRNBSLO From STKACT |
Contrôle la validité du nombre de sous-lot |
Déclencheur |
Action |
Appel traitement |
Bouton 2 |
STD |
- Call RECLASTLO From STKLIB |
Calcul du dernier numéro de sous-lot |
||
Contrôle |
STD |
- Call STKCTRSLO From STKACT |
Contrôle et affectation du sous-lot fin |
Déclencheur |
Action |
Désignation |
Contrôle |
STKCTRSER |
- Contrôle numéro de série |
Sélection |
STKSELSERN |
- Sélection numéro de série |
Actions objets
- $OUVRE
- Ouvrir le masque STOENTW
If !clalev[ENTW] Local Mask STOENTW [ENTW]
- Affecter les noms des zones ‘unité’ et ‘quantité’ dans les champs correspondants.
[M:ENTW]WZONPCU = "PCU"
[M:ENTW]WZONQUC = "QTYPCU"
[M:ENTW]WZONCCS = "PCUSTUCOE"
[M:ENTW]WZONQUS = "QTYSTU"
Ne pas faire " Raz [ENTW] ". En effet, les documents d'entrée sont susceptibles d'être ouverts par tunnel à partir du plan de rangement, qui peut déjà avoir des informations dans STOENTW.
- Ouvrir le masque STOWORK
If !clalev[STW] Local Mask STOWORK [STW]
- Initialisation des masques et fichiers pour la gestion d'emplacements:
Gosub STK_INILOC From STKLOC
- $SETBOUT
- Quand il y a des lignes dans le document, griser le bouton "Supprimer":
Call VIREBOUT(CHAINE,"A") From GOBJET
- $LIENS
- Remise à zéro du masque STOENTW
Call DELSTOENTW (-1,-1,"XXX",1) From STKENT
- Griser toutes les colonnes suivantes en laissant active la dernière ligne (vierge)
Call STKDISCOL From STKECR
- $LIENS_LIG
- Au chargement de la ligne de document, il faut savoir si toutes les données peuvent être affichées ou non.
Call RECSTO_F From STKECR
Si une donnée n'est pas significative pour la ligne de document, elle est remplacée par le caractère '$'
- $FIN_PICK
- Si le picking est OK :
Call STJSTOENTW From STKENT
- $RAZCRE
- Remise à zéro du masque STOENTW
Call DELSTOENTW(-1, -1, "XXX", 1) From STKENT
- $RAZDUP
- Remise à zéro du masque STOENTW:
Call DELSTOENTW(-1, -1, "XXX", 1) From STKENT
- Remettre à zéro les champs stocks:
STA, LOCTYP, LOC, BPSLOT, LOT, NBSLO, SLO, SLOF, GESLOT, SERNUM, SERNUMF, PALNUM, CTRNUM, PRIORD, MVTDES, WSTOSEQ
et les réinitialiser.
- Ouverture automatique de la fenêtre "Détails" si nécessaire
Call OUVENT From STKENT
- $AAPRES_NBLIG
- Ouverture automatique de la fenêtre "Détails" si nécessaire
Call OUVENT From STKENT
- $ABn_NBLIG
n = numéro du bouton "Modification du détail"
- Indiquer que l'ouverture du détail est demandée:
GOUVENT=2
- $BBn_NBLIG
n = numéro du bouton "Modification du détail"
- Si la ligne a été modifiée
mkstat = 4
- Contrôle que toutes les lignes peuvent être enregistrées.
Call CTLSTOENT From STKECR
- $VERIF_MOD
- Contrôle que toutes les lignes peuvent être enregistrées.
Call CTLSTOENT From STKECR
- $VALLIG
- Si création de ligne, alimenter l'écran STOWORK, puis appeler mise à jour Stock:
If SIGN=1
Call ALISTOWORK(2,[M:XXX]WSTOSEQ(NOL),LQTA,LSHT,LRET) From STKINT
Call MAJ_STOCK From STKMAJ
Endif
- $APRES_CRE
- Si l'impression des étiquettes est demandé par la transaction ( PRNCOD>1 )
Local Char PARAM(GLONVCR)(1..4) , VALEUR(10)
PARAM(1) = [M:XXX]STOFCY
PARAM(2) = num$([M:XXX]VCRTYP)
PARAM(3) = [M:XXX]VCRNUM
PARAM(4) = [M:XXX]VCRNUM2
Call TRAITE_CHAR(VALEUR,PARAM,"ISTOLBE","SUBSLP","",4,"SPESLP") From GTRAITE
- Lancement de la régularisation des manquants
Call REGFROMENT (0,"XXX","[M:XXX]CREFLG(I)=0","ITMREF",[M:XXX]STOFCY) From TRTSHTCOM
- $APRES_MOD
- Si l'impression des étiquettes est demandé par la transaction ( PRNCOD>1 )
Local Char PARAM(GLONVCR)(1..4) , VALEUR(10)
PARAM(1) = [M:XXX]STOFCY
PARAM(2) = num$([M:XXX]VCRTYP)
PARAM(3) = [M:XXX]VCRNUM
PARAM(4) = [M:XXX]VCRNUM2
Call TRAITE_CHAR(VALEUR,PARAM,"ISTOLBE","SUBSLP","",4,"SPESLP") From GTRAITE
- Lancement de la régularisation des manquants
Call REGFROMENT (0,"XXX","[M:XXX]CREFLG(I)=0","ITMREF",[M:XXX]STOFCY) From TRTSHTCOM
- $ABANDON
- Remise à zéro de l'écran STOENTW
Call DELSTOENTW (-1,-1,"XXX",1) From STKECR
Echanges entre une ligne de document et le détail stocks
Traitement TRTSTOENTA (complément de TRTSTOENT : Saisie des entrées)
Il permet de gérer l’interaction entre une ligne de document et la saisie détaillée des entrées.
La mise à jour de ce traitement est à la charge du développeur de la fonction origine. La reconnaissance de celle-ci est effectuée avec le type de mouvement (LTYP) et l’abréviation du masque (LABR) passés en paramètre à l’action SAISTOENT (Saisie des entrées)
Il permet :
- D'alimenter le masque de saisie STOENT dans l'étiquette $CHARG_PARAM_STOENT
- D'effectuer des mises à jour suite à enregistrement de la saisie dans l'étiquette $MAJ_LIGNE_DOCUMENT
Compléments
Variables globales
- GOUVENT
Variable construite ainsi dans le sous programme CTR_COHERENCE_LIG
- bit 1 (1) = complément lot non OK
- bit 2 (2) = numéro de lot à renseigner
- bit 3 (4) = numéro de sous-lot à renseigner
- bit 4 (8) = numéro de série à renseigner
- bit 5 (16) = emplacement à renseigner
- bit 6 (32) = statut à renseigner
- bit 7 (64) = quantités détails à confirmer suite à modif quantité document
- bit 8 (128) = étiquette absente à tord
- bit 9 (256) = nombre de sous lots
- bit 10 (512) = unité <> UC et US
- bit 15 (16384) = ouverture par clic droit
Si la valeur de GOUVENT est > à 2, la ligne n'est pas complète, dans le document cela se traduit par l'ouverture de la fenêtre détail.
Si la valeur de GOUVENT est = à 1, le complément lot doit être ouvert, car les informations nécessaires ne sont pas renseignées.
- GOUVLOT
Variable construite ainsi dans le sous programme INIT_GOUVLOT
- bit 1 (1) = ouverture : 0=clic droit, 1=auto
- bit 2 (2) = rubrique utilisateur 1 à saisir
- bit 3 (4) = rubrique utilisateur 2 à saisir
- bit 4 (8) = rubrique utilisateur 3 à saisir
- bit 5 (16) = rubrique utilisateur 4 à saisir
- bit 6 (32) = titre à saisir
- bit 7 (64) = inutilisé
- bit 8 (128) = date de péremption à saisir
Si le bit1 = 0, cela veut dire que l'ouverture du complément lot est forcée, et donc la fenêtre est ouverte, sauf si aucune rubrique du complément lot n'est saisissable.
Si le bit1 = 1, la fenêtre complément lot ne sera ouverte que si cela est nécessaire: lot inexistant ou complément non renseigné.
Flux de sorties
Traitements de type 'Objet'
Pré-requis
Dans les tables ‘entêtes de document’
- Définir une zone TRSCOD (Code mouvement) contrôlée par la table diverse 14.
Lors de la création d’un document, il faut stocker le code mouvement de la transaction dans ce champ afin de le réutiliser lors d’une modification/suppression (indépendamment de la transaction choisie) - Définir une zone ENTCOD (Code pièce auto stock).
- Définir une zone TRSFAM (Famille de mouvement) contrôlée par la table diverse 9.
Dans les transactions effectuant des sorties
- Définir un paramètre STKFLG (Détermination automatique des lignes de stock à sortir).
- Définir une zone TRSCOD (Code mouvement) contrôlée par la table diverse 14 et permettant d’affiner la détermination de la règle de sortie à utiliser.
- Définir une zone ENTCOD (Code pièce auto stock).
- Définir une zone TRSFAM (Famille de mouvement) contrôlée par la table diverse 9.
Dans l’objet appelant
Dans l’action OUVRE
- Ouvrir la table des règles d’allocations TABALLRUL [TRU]
- Ouvrir la table des règles de gestion TABSTORUL [SRU]
- Ouvrir la table des quantités en cours de traitement STOWIPW [SWW]
- Ouvrir l’écran de paramétrage ALLPAR [ALP] et le remettre à zéro avant chaque appel d’un composant stock où il est utilisé
- Ouvrir l’écran de stockage STOSORW [SOW]
- Ouvrir l’écran d’interface stock STOWORK [STW]
Dans l’écran des lignes de document
- Définir un champs WSTOSEQ (entier long) afin de gérer le lien entre la ligne de document et les lignes de stock de l’écran de stockage (STOSORW)
- Définir le champs STOMGTCOD (menu local 215 ) spécifiant la gestion en stock de l’article
- Définir les champs stock saisissables dans la ligne avec les noms suivants :
LOT, SLO, LOC, STA, SERNUM, SERNUMF, MVTDES
Ces champs devront être désactivés (avec un grizo, voire un mkstat=2) en fonction des caractéristiques de l’article
Rappel
Ligne saisie mais non créée : [M]CREFLG(nolign-1)=0
Ligne déjà créée : [M]CREFLG(nolign-1)<>0
Attention
Dés qu’une ligne de pièce a été saisie (on est passé par la fin de ligne), les champs lot, sous-lot, série, emplacement, statut, … ne sont plus accessibles. Seule la quantité l’est.
Actions champ
- Variable de bas de tableau (NBLIG)
Déclencheur |
Action |
Appel traitement / Désignation |
Avant-Ligne |
STD |
Call INIZONSOR From STKECR |
Contrôle |
STD |
Call DELSTOSORW From STKSOR |
|
|
- si suppression d'une ligne en cours de création |
Init-Bouton |
STD |
GOUVSOR=1 |
Bouton |
SAISTOSOR |
Saisie des sorties |
|
|
- sur ligne saisie mais non créée |
|
|
- sur ligne déjà créée si pièce avec validation, non validée |
Bouton |
SAISTOSORM |
Modification des sorties |
|
|
- sur ligne déjà créée si pièce sans validation |
|
|
- sur ligne déjà créée si pièce avec validation, validée |
|
|
Cette action ne doit être appelée que sur une situation stable |
Après-Ligne |
SAISTOSOR |
Saisie des sorties |
|
|
Voir l'action objet 'Avant-Zone' $AAPRES_NBLIG |
- Article (ITMREF)
Déclencheur |
Action |
Appel traitement |
Après-Modif |
STD |
Call INIZONSOR From STKECR |
|
|
Call STKINIEMPS From STKLOC |
- Statut qualité (STA)
Déclencheur |
Action |
Désignation |
Sélection |
STKSELSTA |
Sélection statut |
Contrôle |
STKCTRSTA |
Contrôle statut |
- Emplacement (LOC)
Déclencheur |
Action |
Désignation |
Sélection |
STKSELEMP |
Sélection emplacement |
Contrôle |
STKCTREMPS |
Contrôle emplacement |
- Lot (LOT)
Déclencheur |
Action |
Désignation |
Sélection |
STKSELLOT |
Sélection lot |
Contrôle |
STKCTRLOTS |
Contrôle lot |
- Sous-Lot (SLO)
Déclencheur |
Action |
Désignation |
Contrôle |
STKCTRSLOS |
Contrôle sous-lot |
- Numéro de série (SER)
Déclencheur |
Action |
Appel traitement / Désignation |
Après-Modif |
STD |
Call CTLSORSER From STKSOR |
|
|
Contrôle no série et calcul no série fin |
Actions objet
- $OUVRE
- Ouvrir le masque ALLPAR
If !clalev[ALP] Local Mask ALLPAR [ALP]
- Ouvrir le masque STOSORW
If !clalev[SOW] Local Mask STOSORW [SOW]
- Ouvrir le masque STOWORK
If !clalev[STW] Local Mask STOWORK [STW]
- $LIENS
Avant Gosub LIENS From TABLEAUX
- Remise à zéro du masque de travail STOSORW
Call RAZSTOSORW From STKSOR
Après Gosub LIENS From TABLEAUX
- Grisage des champs stock
Call ETAZONSOR From STKECR
- $LIENS_LIG
- Au chargement de la ligne de document, il faut savoir si toutes les données peuvent être affichées ou non. Si une donnée n'est pas significative pour la ligne de document, elle est remplacée par le caractère '$'
Call RECSTOSOR From STKECR
- $RAZCRE
- Remise à zéro du masque de travail STOSORW
Call RAZSTOSORW From STKSOR
- $RAZDUP
- Remise à zéro du masque de travail STOSORW
Call RAZSTOSORW From STKSOR
- $AAPRES_NBLIG
- Détermine l’action à effectuer pour identifier le stock à sortir
si ligne saisie mais non créée ou si ligne déjà créée (pièce avec validation, non validée)
Call OUVSOR From STKSOR
- Cela déclenche
- l'écriture dans STOSORW
- ou le lancement du sous-programme GENSTOSORW
- ou l'exécution de l’action SAISTOSOR
- $VERIF_CRE
- Contrôle que toutes les lignes peuvent être enregistrées.
Call CTLSTOSOR From STKECR
- $VERIF_MOD
- Contrôle que toutes les lignes peuvent être enregistrées.
Call CTLSTOSOR From STKECR
- $VALLIG
- Document avec validation et non validé :
- si nouvelle ligne : TRTLIG=‘C‘
- ou ligne modifiée (avant transclasse [M]-->[F]) : TRTLIG=‘M‘ & SIGN=-1
- ou ligne supprimée : TRTLIG=‘A‘
Call ENRSTOALL From STKALL
- Document sans validation:
- si nouvelle ligne : TRTLIG=‘C‘
Call ALISTOWORK From STKINT (origine = écran STOSORW)
- $ABANDON
- Remise à zéro de l'écran STOSORW
Call DELSTOSORW From STKECR (avec no ligne =-1)
Picking
- Picking de commande ou d'OF
- Sous-programme CTLALL From STKALL pour contrôler la quantité à sortir (au moment du contrôle de ce qui est pické)
- Sous-programme ALISTOSORW From STKSOR si le picking est OK
- Sous-programme OUVSOR From STKSOR pour déterminer automatiquement les lignes à sortir ou dire qu’il faudra les choisir (dans ce cas LRET=1, il faudra mettre en rouge l’article dans la ligne de pièce)
- Picking de réception (depuis les retours fournisseurs)
- Sous-programme STJSTOSORW From STKSOR si le picking est OK
- Sous-programme OUVSOR From STKSOR pour déterminer automatiquement les lignes à sortir ou dire qu’il faudra les choisir (dans ce cas LRET=1, il faudra mettre en rouge l’article dans la ligne de pièce)
- Dépicking
- Sous-programme DELSTOSORW From STKSOR avec no de la ligne dépické pour supprimer de l’écran de travail les lignes de stocks qui avaient été sélectionnées
Echanges entre une ligne de document et le détail stocks
Traitement TRTSTOSORA ( complément de TRTSTOSOR : Saisie des sorties )
Il permet de gérer l’interaction entre une ligne de document et la saisie détaillée des stocks.
La mise à jour de ce traitement est à la charge du développeur de la fonction origine. La reconnaissance de celle-ci est effectuée avec l’abréviation du masque (LABR) passé en paramètre à l’action SAISTOSOR (Saisie des sorties)
Il permet :
- D'alimenter le masque de saisie STOSOR dans l'étiquette $CHARGE_PARAM
- D'effectuer des mises à jour suite à enregistrement de la saisie dans l'étiquette $APRES_ENR
Autres traitements
Document de sortie généré automatiquement (traitement GTRAITE)
Document avec validation et non validé
- Document origine avec allocation globale
Pour supprimer les allocations de la ligne de la pièce origine : DELALL From STKALL
Pour diminuer les allocations de la ligne de la pièce origine : DIMALL From STKALL
Pour générer les allocations de la ligne de la pièce destination : GENSTOALL From STKALL
- Document origine avec allocation détaillée
Pour contrôler la quantité à sortir : CTLALL From STKALL
Pour transférer les allocations de la ligne de pièce : CHGALL From STKALL
Document sans validation
- Document origine avec allocation globale
Pour supprimer les allocations de la ligne de la pièce origine : DELALL From STKALL
Pour diminuer les allocations de la ligne de la pièce origine : DIMALL From STKALL
Pour générer les allocations de la ligne de la pièce destination : GENSTOALL From STKALL
Pour alimenter l’écran d’interface de mise à jour des stocks : ALISTOWORK From STKINT
Pour mettre à jour les stocks : MAJ_STOCK From STKMAJ
- Document origine avec allocation détaillée
Pour contrôler la quantité à sortir : CTLALL From STKALL
Pour transférer les allocations de la ligne de pièce : CHGALL From STKALL
Pour alimenter l’écran d’interface de mise à jour des stocks : ALISTOWORK From STKINT
Pour mettre à jour les stocks : MAJ_STOCK From STKMAJ
Validation
Validation des sorties
La validation d'un document peut être réalisée à partir d'un bouton sur le document de sortie, ou automatiquement par un traitement.
Pour cela il suffit d'appeler les sous-programmes suivants :
- Alimentation de l’écran d’interface pour la mise à jour des stocks
Call ALISTOWORK From STKINT (origine = table STOALL)
- Mise à jour des stocks
Call MAJ_STOCK From STKMAJ
Mise à jour des stocks
Interface entre saisie et mise à jour
Interface entre saisie et mise à jour
La mise à jour des stocks est effectuée à partir d' un écran de stockage unique STOWORK [STW]. Elle nécessite par conséquent, de passer par une interface d’alimentation de cet écran.
Les différentes origines de données exploitées dans ce traitement d'interface sont les suivantes :
- Table STOALL (Allocations)
- Ecran STOENTW (Ecran stockage des entrées)
- Ecran STOSORW (Ecran stockage des sorties)
- Ecran STOENTM (Ecran modification des entrées)
- Ecran STOSORM (Ecran modification des sorties)
- Ecran STKSHTREG (Ecran régularisation des sorties)
- Ecran STOCHGW (Ecran changement de stock)
- Table CUNLISDET (Inventaires)
- Table STOJOU (Mouvements de stock)
Les informations nécessaires à la mise à jour des stocks sont alimentées dans l’écran STOWORK.
- Alimentation de l’écran d’interface pour la mise à jour des stocks
Call ALISTOWORK From STKINT
Mise à jour
Mise à jour des stocks
- La mise à jour est réalisée pour une ligne de document à partir de l’écran STOWORK [STW]
Call MAJ_STOCK From STKMAJ
Contenu de l’écran STOWORK selon les différents flux
- FLUX D'ENTREE
Entrées
- Entrée diverse
- Réception
- Réception sous-traitance
- Déclaration production
Sorties négatives
- Retour client
- Réintégration en stock
Changements d'emplacements
- Retour de prêt
- Retour de livraison sous-traitance
- Création
Mouvement |
MAJTYP |
MAJCOD |
Quantité |
STOCOU |
LOC |
LOCDES |
Autres zones |
Entrée |
E |
C |
+ |
|
Entrée |
|
Entrée |
Sortie - |
S |
C |
- |
|
Entrée |
|
Entrée |
Changement emp |
C |
C |
+ |
Sortie |
Sortie |
Entrée |
Entrée |
Changement d'emplacement --> mouvement négatif sur LOC et positif sur LOCDES
- Annulation
On parle des mouvements d’origine
Mouvement |
MAJTYP |
MAJCOD |
Quantité |
STOCOU |
LOC |
LOCDES |
Autres zones |
Entrée |
E |
A |
+ |
|
Entrée |
|
Entrée |
Sortie - |
S |
A |
- |
|
Entrée |
|
Entrée |
Changement emp |
C |
A |
+ |
Entrée |
Sortie |
|
Sortie |
Changement d'emplacement --> mouvement positif sur LOC et négatif sur l'emplacement trouvé à partir du stock entrée
- FLUX DE SORTIE
Sorties
- Sortie diverse
- Livraison
- Sortie OF
- Sortie ordre de sous-traitance
- Demande de service
Entrées négatives
- Retour réception
- Retour réception de sous-traitance
Changements d'emplacements
- Livraison de prêt
- Livraison de sous-traitance
- Création
Mouvement |
MAJTYP |
MAJCOD |
Quantité |
STOCOU |
LOC |
LOCDES |
Autres zones |
Sortie |
S |
C |
+ |
Sortie |
Sortie |
|
Sortie |
Entrée - |
E |
C |
- |
Sortie |
Sortie |
|
Sortie |
Changement emp |
C |
C |
+ |
Sortie |
Sortie |
Entrée |
Entrée |
Changement d'emplacement --> mouvement négatif sur LOC et positif sur LOCDES
- Annulation
On parle des mouvements d'origine
Mouvement |
MAJTYP |
MAJCOD |
Quantité |
STOCOU |
LOC |
LOCDES |
Autres zones |
Sortie |
S |
A |
+ |
|
Sortie |
|
Sortie |
Entrée - |
E |
A |
- |
|
Sortie |
|
Sortie |
Changement emp |
C |
A |
+ |
Entrée |
Sortie |
|
Sortie |
Changement d’emplacement --> mouvement positif sur LOC et négatif sur emplacement trouvé à partir du stock entrée
- REGULARISATION DE STOCK
Ce sont les mêmes types de mouvements que dans les flux de sorties.
WAIFLG = 1
Mouvement |
MAJTYP |
MAJCOD |
Quantité |
Sortie |
S |
A |
+ |
Entrée - |
E |
A |
+ |
Changement emp |
C |
A |
- |
Puis traitement de façon classique avec WAIFLG = 0 (Régularisation des mouvements en attente)
Documentations diverses
Algorithme d'allocations et sorties
Algorithme d’allocation et sortie de stock
Caractéristiques techniques
Sous-programme STOCKALG du traitement STKALL
Le résultat est stocké dans l’écran de travail ALLPAR sous la forme d’un tableau contenant les lignes de stock à allouer ou sortir.
Contexte
Cet algorithme exploite de façon complémentaire les règles d’allocation et les règles de gestion.
Il existe des différences concernant les statuts entre les document n’effectuant que de l’allocation (Commandes, OF et Ordres de sous-traitance) et les autres :
- Commande, OF et Ordre de sous-traitance
Les statuts autorisés sont ceux définis dans la règle d’allocation, en cas d’absence de règle, seul les statuts ‘A’ sont pris en compte
- Autres documents
Les statuts/sous-statuts autorisés sont ceux définis dans la règle de gestion
Règle d’allocation et sortie
La règle d’allocation ou sortie utilisée est celle qui est définie dans la catégorie-site ou catégorie de l’article selon les correspondances définies dans les documentations 'Paramétrage allocations' et 'Paramétrage sorties'
S’il n’y a pas de règle d’allocation pour le couple article-document, les principes suivants seront appliqués
- Classement FIFO
- Statut 'A'
- Toutes unités sans restrictions
Règle de gestion
La règle de gestion utilisée est celle qui est définie dans la catégorie-site ou catégorie de l’article pour le type de mouvement à traiter et le code mouvement renseigné (s’il y en a un).
S’il n’y a pas de règle de gestion particulière, on utilisera la règle de gestion standard pour le type de mouvement à traiter.
Il n’y a pas de règle de gestion pour les documents n’effectuant pas de sortie, ceux-ci seront donc assimilés à un type de mouvement selon la correspondance définie dans la documentation 'Paramétrage allocations'
Unités exploitées
Les unités des lignes de stock utilisées sont les suivantes :
- Unité de stock
- Unités de conditionnement de l’article
Si commande, livraison ou facture :
- Unité de vente
- Unité de vente de l’article client
- Unités de conditionnement de l’article client
Si retour fournisseur :
- Unité d’achat
- Unité d’achat de l’article fournisseur
- Unité de conditionnement de l’article fournisseur
Fonctionnement
Le principe est le suivant
On charge dans le tableau de l’écran ALLPAR toutes les lignes de stock éligibles selon la règle d’allocation et la règle de gestion.
On exécute le traitement généré associé à la règle d’allocation. Celui-ci sélectionne et classe les lignes de stock du tableau de ALLPAR
On consomme la quantité les lignes de stock du tableau à concurrence de la quantité à allouer ou sortir
Chargement des lignes de stock éligibles
- Alimentation des filtres
- Lot
Si lot renseigné dans le filtre allocation, filtre exclusif sur celui-ci ou sur son préfixe (si *) et stockage comme lot de rupture.
Filtre sur lots non périmés à la date du besoin en prenant en compte la marge d’alerte pour la péremption, sauf si lot périmé autorisé par la règle de gestion.
- Statut
Si statuts renseignés dans le filtre allocation, filtre exclusif sur ceux-ci ou sur leurs préfixes (si *)
Sinon si document autre que commande, OF ou ordre sous-traitance, filtre sur les sous-statuts autorisés par la règle de gestion.
A ce niveau, s’il n’y a pas encore de filtre sur les statuts,
Si commande, OF ou ordre sous-traitance et règle d’allocation, filtre sur les statuts autorisés par celle-ci
Sinon si commande, OF ou ordre sous-traitance sans règle d’allocation, filtre sur les statuts ‘A’
- Unité
Si règle d’allocation, filtre sur les unités et coefficients autorisées par la règle d’allocation
Sinon pas de filtre.
- Emplacements
Filtre sur les emplacements internes
Selon paramètres de l’algorithme, prise en compte des emplacements en attente de rangement et des emplacements sous-traitants.
Si emplacement renseigné dans le filtre allocation, filtre sur celui-ci ou sur son préfixe (si *)
Si règle d’allocation
Si dans celle-ci, il y a toujours un filtre sur l’emplacement
Si OF ou suivi d’OF et emplacement poste de charge, on le rajoute dans le filtre et si cet emplacement est exclusif, on le stocke dans l’emplacement de rupture
Si emplacement article, on le rajoute dans le filtre et si cet emplacement est exclusif, on le stocke dans l’emplacement de rupture
Sinon suppression du filtre
Sinon suppression du filtre.
Selon paramètre de l’algorithme, prise en compte des emplacements en cours d’inventaire.
- Chargement des lignes de stock
Si règle d’allocation, lecture des lots selon l’ordre défini dans celle-ci (par lot, FIFO, FEFO, LIFO)
Sinon lecture des lots en FIFO.
Pour chaque lot, ayant du stock disponible dans les statuts autorisés, lecture des lignes de stock en exploitant les filtres statuts, unités et emplacements.
Pour chaque ligne de stock ayant du disponible, alimentation des caractéristiques de la ligne dans le tableau des lignes éligibles.
Sélection et classement des lignes de stock éligibles
Si règle d’allocation, exécution du traitement généré associé à celle-ci
Sinon exécution du traitement standard défini dans l’algorithme lui-même.
Ce traitement vérifie l’adéquation de chaque ligne de stock éligible avec les lignes de règles d’allocation et affecte à la ligne un code classement en conséquence.
Ces lignes sont ensuite ordonnées selon ce code classement.
Consommation de ces lignes de stock
On consomme la quantité les lignes de stock du tableau à concurrence de la quantité à allouer ou sortir
Gestion de champs supplémentaires
Gestion de nouvelles zones dans les tables STOJOU et STOCK
Ce document est une aide pour l’implémentation de zones supplémentaires dans les tables STOJOU et/ou STOCK, depuis leur saisie dans les différents écrans jusqu’à leur stockage dans les tables.
Les points d’entrée associés à un flux d’entrée permettent la gestion de nouvelles zones dans les tables STOJOU et STOCK.
Les points d’entrée associés aux autres flux (sortie, changement de stock) permettent la gestion de nouvelles zones dans la table STOJOU.
Flux d'entrée
Les écrans concernés sont :
- Ligne de document ([SMR1] pour les entrées diverses, [PTH1] pour les réceptions, …)
- Saisie détail entrée (pour une ligne de document) : STOENT [ENT]
- Modification détail entrée (pour une ligne de document) : STOENTM [ENM]
- Stockage détail entrée : STOENTW [ENTW]
- Stockage pour mise à jour des entrées : STOWORK [STW]
Les nouvelles zones doivent être ajoutées dans ces différents écrans, ainsi que dans les tables STOJOU et/ou STOCK (avec le même nom).
Les points d’entrée à utiliser sont :
- Dans le traitement STKENT (si saisie de la zone dans la ligne de document)
DOC_ENTW = Ecran ligne document --> Ecran STOENTW
- Dans le traitement TRTSTOENMA (si accès à la zone dans la modification des mouvements)
STJ_ENM = Table STOJOU --> Ecran STOENTM
- Dans le traitement TRTSTOENTA (si saisie de la zone dans le détail entrée)
ENTW_ENT = Ecran STOENTW --> Ecran STOENT
ENT_ENTW = Ecran STOENT --> Ecran STOENTW
- Dans le traitement STKINT (pour mise à jour de la zone dans les tables)
ENTW_STW = Ecran STOENTW --> Ecran STOWORK
et Ecran STOENTM --> Ecran STOWORK
Flux de sortie
Les écrans concernés sont :
- Ligne de document ([SMO1] pour les sorties diverses, [SDH1] pour les livraisons, …)
- Saisie détail sortie (pour une ligne de document) : STOSOR [SOR]
- Modification détail sortie (pour une ligne de document) : STOSORM [SOM]
- Stockage détail sortie : STOSORW [SOW]
- Stockage pour mise à jour des sorties : STOWORK [STW]
Les nouvelles zones doivent être ajoutées dans ces différents écrans, ainsi que dans la table STOJOU (avec le même nom).
Les points d’entrée à utiliser sont :
- Dans le traitement STKSOR (si saisie de la zone dans la ligne de document)
DOC_SOW = Ecran ligne document --> Ecran STOSORW
- Dans le traitement TRTSTOSOR (si saisie de la zone dans le détail entrée)
SOW_SOR = Ecran STOSORW --> Ecran STOSOR
SOR_SOW = Ecran STOSOR --> Ecran STOSORW
- Dans le traitement STKINT (pour mise à jour de la zone dans les tables)
SOW_STW = Ecran STOSORW --> Ecran STOWORK
et Ecran STOSORM --> Ecran STOWORK
Changement de stock
Les écrans concernés sont :
- Saisie détail changement de stock (pour une ligne de document) : STOCHG [SCD]
- Saisie détail contrôle qualité (pour une ligne de document) : STOQUA [SQD]
- Stockage détail changement de stock : STOCHGW [SGW]
- Stockage pour mise à jour des changements de stock : STOWORK [STW]
Les nouvelles zones doivent être ajoutées dans ces différents écrans, ainsi que dans la table STOJOU (avec le même nom).
Les points d’entrée à utiliser sont :
- Dans le traitement SUBSCSB (si saisie de la zone dans les détails changement de stock ou contrôle qualité)
SCDSQD_SGW = Ecran STOCHG --> Ecran STOCHGW
et Ecran STOQUA --> Ecran STOCHGW
- Dans le traitement TRTSTOCHGB (si saisie de la zone dans le détail changement de stock)
SGW_SCD = Ecran STOCHGW --> Ecran STOCHG
- Dans le traitement TRTSTOQUAB (si saisie de la zone dans le détail contrôle qualité)
SGW_SQD = Ecran STOCHGW --> Ecran STOQUA
- Dans le traitement STKINT (pour mise à jour de la zone dans les tables)
SGW_STW = Ecran STOCHGW --> Ecran STOWORK