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 transfert

16 - Réception pour s-traitance

  6 - Réception

 

Réception pour s-traitance

18 - Retour livraison de prêt 

13 - Retour client

 

Retour livraison de prêt

19 - Réintégration de stock 

12 - Suivi matière

 

Réintégration de stock

21 - Refractionnement

29 - Changement stock

 Mvt +

Changement stock

22 - Plan de rangement

        Document origine

 

Document origine 

 33- Retour liv s-traitance

13- Retour client

 

Retour livraison

34- Demande d'analyse

29 - Changement stock

 

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