Ce point d'entrée permet d’intervenir sur certains paramètres de l’algorithme de détermination automatique du stock à allouer ou sortir.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme STOCKALG du traitement STKALL.
Les paramètres accessibles sont :
- [M :ALP]LOC Emplacement à traiter prioritairement
- [M :ALP]PECSCOLOC : Autoriser les emplacements sous-traitants (1=non / 2=oui)
Valeur par défaut = 1
- [M :ALP]PECPLFLOC : Autoriser les emplacements en attente de rangement (1=non / 2=oui)
Valeur par défaut = 2
- [M :ALP]PECCUNLOK : Autoriser les emplacements en cours d’inventaire (1=non / 2=oui)
Valeur par défaut = 2 (si commande ou OF) , 1 pour les autres pièces
- [M :ALP]PECQLYCTL : Autoriser les stocks faisant l’objet d’une demande d’analyse (1=non / 2=oui)
Valeur par défaut = 2 (si commande ou OF) , 1 pour les autres pièces
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMMVT | Oui | Mouvements articles |
ITMFACILIT | Oui | Articles sites |
ITMCATEG | Oui | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Oui si WTRUCOD<>’’ | Règles d’allocations / sorties |
TABSTORUL | Oui | Règles de gestion |
Ce point d'entrée concerne le filtrage du stock dans l’algorithme de détermination automatique du stock à allouer ou sortir.
Il permet de prendre la main après l’alimentation des filtres sur les tables LOT et STOCK afin de compléter éventuellement ceux-ci.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme STOCKALG du traitement STKALL.
Pour rajouter des filtres supplémentaires sur les lignes de stock à traiter, il suffit d’alimenter la zone écran [M :ALP]FILSTO (longueur = 100) en définissant des critères sur la table [F :STO1].
Exemple : ne prendre que les lignes de stock dont l’identifiant 1 est égal au contenu de la variable WIDENT.
à [M :ALP]FILSTO = ‘[F :STO1]PALNUM = WIDENT’
Pour rajouter des filtres supplémentaires sur les lots à traiter, il suffit de compléter l’alimentation de la variable WCRITLOT (longueur encore disponible = 60) en définissant des critères sur la table [F :STL1].
Exemple : ne prendre que les lots dont le champs utilisateur 1 est égal à « BANC1 »
à WCRITLOT += ‘&[F :STL1]USRFLD1 = “BANC1”’
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMMVT | Oui | Mouvements articles |
ITMFACILIT | Oui | Articles sites |
ITMCATEG | Oui | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Oui si WTRUCOD<>’’ | Règles d’allocations / sorties |
TABSTORUL | Oui | Règles de gestion |
Ce point d'entrée concerne la prise en compte des lignes de stock sélectionnées et classées par l’algorithme de détermination automatique du stock à allouer ou sortir.
Il permet de prendre la main afin de rejeter une ligne de stock normalement sélectionné par l’algorithme.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme STOCKALG du traitement STKALL.
Il est appelé lorsque l’on détermine automatiquement le stock à traiter pour effectuer une allocation, une sortie, une proposition d’allocation ou sortie.
Il permet de rejeter une ligne de stock ne respectant pas les conditions que vous aurez définies en positionnant la variable GOK à 0.
Les variables significatives sont les suivantes :
- Le bloc 1 du masque ALLPAR [ALP] contient les caractéristiques d’exécution de l’algorithme : types de mouvement et de pièce, site, article, règles d’allocation et de gestion, quantité à traiter …
- [M :ALP]TYPQTY indique avec quel type de quantité on travaille : 1 = quantités en unités physiques 2 = quantités en unités actives (cas standard)
- Le bloc tableau 4 du masque ALLPAR [ALP] contient les lignes de stock sélectionnées et classées par l’algorithme. La ligne en cours est indicée par J.
- Attention : dans la ligne les zones suivantes ne sont pas significatives : [M :ALP]WQTYSTU(J), [M :ALP]WQTYSTUACT(J), [M :ALP]WFLG(J), [M :ALP]WCOND(J)
Attention : en aucun cas, il ne faut modifier le contenu d’une zone de l’écran ALLPAR, la seule action à effectuer est de positionner GOK=0 pour rejeter une ligne de stock.
Complément : il permet également en positionnement GPE=1, de ne pas exécuter le code standard de traitement de la quantité. Il est dans ce cas nécessaire de le faire dans le point d'entrée.
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMMVT | Oui | Mouvements articles |
ITMFACILIT | Oui | Articles sites |
ITMCATEG | Oui | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Oui si WTRUCOD<>’’ | Règles d’allocations / sorties |
TABSTORUL | Oui | Règles de gestion |
Ce point d'entrée permet de modifier l’ordre dans lequel les lignes de stock sont traitées lors de la détermination automatique du stock à allouer ou sortir.
Cette modification ne concerne que les lignes de stock du lot qui est en cours de traitement, l’ordre des lots étant défini par la règle d’allocation / sortie.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme STOCKALG du traitement STKALL.
Il est appelé de la façon suivante lorsque l’on détermine automatiquement le stock à traiter pour effectuer une allocation, une sortie, une proposition d’allocation ou sortie.
$LEC_STOCK
GPE=0
GPOINT="SORTSTO"
Gosub ENTREE From EXEFNC
If GPE<>0 Return Endif
Il est nécessaire de réécrire en totalité la boucle de chargement des lignes de stock dans le tableau [M :ALP] (telle que c’est fait dans l’étiquette $LEC_STOCK du traitement STKALL) et de respecter strictement les consignes suivantes :
Le traitement réécrit doit respecter cette structure :
Filter [STO1] Where …
& & evalue(WCRITSTO1) & evalue(WCRITSTO2) & evalue(WCRITSTO3)
& & evalue([M:ALP]FILSTO)
& Order By …
For [STO1] …
# Chargement de la ligne de stock
Gosub TRAITE_STOCK
If WRET=1
GotoSTO1_SUI
Elsif WRET=2
Break
Endif
$STO1_SUI
Next
Filter [STO1]
Les éléments modifiables sont :
- Dans le ‘Filter’ : la table concernée qui peut être soit [F :STO1] soit le résultat d’un link entre [F :STO1] et une autre table ([F :STC] par exemple)
La sélection (‘Where’). Attention les évaluations de WCRITSTO1,WCRITSTO2,WCRITSTO3 et FLISTO doivent absolument être conservées
L’ordre (’Order by’)
- Dans le ‘For’ : la table concernée qui peut être soit [F :STO1] soit le résultat d’un link entre [F :STO1] et une autre table ([F :STC] par exemple)
Attention le contenu de la boucle ‘For’ doit être strictement conservé.
Attention : Il faut court-circuiter le traitement standard, en positionnant la variable GPE à 1
Le traitement standard est le suivant :
# Si article géré en série E/S, classement FIFO ou LIFO des no série
If [F:ITM]SERMGTCOD=3
Case [F:TRU]LOTMGT
When 1,3 : # Par no série
Filter [STO1] Where ITMREF=[M:ALP]ITMREF & STOFCY=[M:ALP]STOFCY
& &
& & evalue(WCRITSTO1) & evalue(WCRITSTO2) & evalue(WCRITSTO3)
& & evalue([M:ALP]FILSTO)
& Order By SERNUM
When 4 : # LIFO
Filter [STO1] Where ITMREF=[M:ALP]ITMREF & STOFCY=[M:ALP]STOFCY
& &
& & evalue(WCRITSTO1) & evalue(WCRITSTO2) & evalue(WCRITSTO3)
& & evalue([M:ALP]FILSTO)
& Order By RCPDAT Desc;SERNUMDesc
When Default: # FIFO
Filter [STO1] Where ITMREF=[M:ALP]ITMREF & STOFCY=[M:ALP]STOFCY
& &
& & evalue(WCRITSTO1) & evalue(WCRITSTO2) & evalue(WCRITSTO3)
& & evalue([M:ALP]FILSTO)
& Order By RCPDAT;SERNUM
Endcase
For [STO1] Hint Key STO3
# Chargement de la ligne de stock
Gosub TRAITE_STOCK
If WRET=1
GotoLEC_STOCK_SUI2
Elsif WRET=2
Break
Endif
$LEC_STOCK_SUI2
Next
Filter [STO1]
Else
Case [F:TRU]LOTMGT
When 4 : # LIFO
Filter [STO1] Where ITMREF=[M:ALP]ITMREF & STOFCY=[M:ALP]STOFCY
& &
& & evalue(WCRITSTO1) & evalue(WCRITSTO2) & evalue(WCRITSTO3)
& & evalue([M:ALP]FILSTO)
& Order By LOC Desc; STOCOU Desc
When Default: # FIFO
Filter [STO1] Where ITMREF=[M:ALP]ITMREF & STOFCY=[M:ALP]STOFCY
& &
& & evalue(WCRITSTO1) & evalue(WCRITSTO2) & evalue(WCRITSTO3)
& & evalue([M:ALP]FILSTO)
& Order By LOC; STOCOU
Endcase
For [STO1] Hint Key STO3
# Chargement de la ligne de stock
Gosub TRAITE_STOCK
If WRET=1
GotoLEC_STOCK_SUI
Elsif WRET=2
Break
Endif
$LEC_STOCK_SUI
Next
Filter [STO1]
Endif
Attention : Il faut court-circuiter le traitement standard, en positionnant la variable GPE à 1
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMMVT | Oui | Mouvements articles |
ITMFACILIT | Oui | Articles sites |
ITMCATEG | Oui | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Oui si WTRUCOD<>’’ | Règles d’allocations / sorties |
TABSTORUL | Oui | Règles de gestion |
Ce point d'entrée permet d’interdire la suppression d’une allocation dans le composant de suppression des allocations d’une ligne de document.
Il permet de prendre la main dans la boucle de lecture des allocations à supprimer afin décider ou non de la suppression de l’allocation lue.
Il y a une transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme DELALL du traitement STKALL.
Pour interdire la suppression de l’allocation il faut positionner la variable globale GOK à 0.
L’enregistrement allocation est dans [F :STA1]
L’enregistrement stock correspondant à l ‘allocation n’est pas en ligne
GFONCTION contient la fonction en cours d’éxécution : FUNDESALL = désallocation automatique des commandes
FUNMDESA = désallocation automatique des OF
Exemple :
Ne supprimer que les allocations en statut ‘R’ dans la désallocation automatique des commandes
If GFONCTION = ‘FUNDESALL’ : # Désallocation automatique des commandes
If [F:STA1]ALLTYP=2 : # Allocation détaillée
If clalev([F:STO]) = 0 : Local File STOCK [STO] : Endif
Read [STO]STO0=[F :STA1]STOFCY ;[F :STA1]STOCOU
If !fstat & left$([F:STO]STA,1)<>’R’ : # Lecture OK et statut différent de ‘R’
GOK=0 : # L’allocation n’est pas à supprimer
Endif
Endif
Endif
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
STOALL [STA1] | Oui | Allocations |
Ce point d'entrée concerne la désallocation automatique des commandes.
Il permet de prendre la main à la désallocation d’une ligne de commande, lors de la suppression des allocations pour ajouter des éléments dans le fichier trace.
Ce point d’entrée est situé dans le traitement STKALL.
Il y a une transaction en cours (transaction de mise à jour d'une allocation, avec mise à jour de la ligne de commande, suppression des allocations, de l'encours correspondant et de l'entête de commande).
La variable GOK est utilisée et testée. Elle est égale à 1. Elle peut être positionnée à 0 si on désire abandonner la transaction.
Il y a un fichier trace ouvert.
Il donne pour chaque ligne de commande traitée, la quantité désallouée (quantité allouée et/ou quantité rupture). Ce point d’entrée a justement pour but d’ajouter des lignes à cette trace.
Ce point d’entrée est appelé dans le traitement STKALL, dans le sous-programme SUPALL de suppression d’une allocation. Ce sous-programme est lui-même appelé par le sous-programme DELALL qui effectue la suppression de toutes les allocations pour une ligne de pièce.
Concernant la fonction de désallocation automatique des commandes, on se situe dans la transaction de suppression de l'allocation sur une ligne de commande :
. Un verrou a été positionné sur l ‘entête de commande.
. La ligne détail commande [F:SOQ] a été lue.
. Le sous-programme DELALL est appelé. On se situe dans la boucle de lecture de toutes les lignes d’allocation. Pour chaque ligne d’allocation à supprimer :
. La ligne d’allocation a été lue. Le buffer [F :STA] est chargé.
. La ligne de stock correspondante a été lue, et mise à jour (Décrémentation du Cumul qté allouée). Le buffer [F :STO] est chargé:
[F :STO]LOT : Contient le Numéro de lot
[F:STO]LOC : Contient l’emplacement
La date de péremption du lot peut être connue aisément par lecture du Numéro de lot dans le fichier correspondant STOLOT. Cette lecture nécessite l’ouverture du fichier.
. On se situe juste avant la suppression de la ligne d‘allocation.
. On se situe juste avant la mise à jour de la ligne détail commande.
Le point d’entrée n’est appelé que si une trace est ouverte (GTRACE est différent de blanc). L’ajout d’une nouvelle ligne dans cette trace se fait simplement avec l’instruction suivante :
Call ECR_TRACE(« Libellé du message à ajouter », 0 ou 1) From GESECRAN.
(Si 1, la ligne apparaîtra en rouge).
NB: Sachant que ce point d’entrée se situe dans le sous-programme SUPALL, il peut-être utilisé par toutes les fonctions qui effectuent par ce biais des suppressions d’allocations. L’utilisation de GFONCTION peut permettre de connaître la fonction d’origine.
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Ce tableau est valable pour la fonction de désallocation automatique des commandes.
Table | Contenu significatif | Intitulé Table |
SORDER | Oui | Commandes entête |
SORDERQ | Oui | Commandes ligne quantité |
SORDERP | Oui | Commandes ligne prix |
SORDERC | Oui | Commandes article / client (cdes ouvertes) |
ITMMASTER | Oui | Articles |
ITMMVT | Non | Mouvements articles |
ITMFACILIT | Oui | Articles sites |
FACILITY | Non | Sites |
STOALL | Oui | Allocations |
STOCK | Oui | Stocks |
Ce point d’entrée permet d’exploiter les données stock d’une allocation détaillée lors de la mise à jour de l’allocation.
Il y a une transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans l’étiquette $TRT_STO du traitement STKALL qui est utilisée dans les sous-programmes CREALL, MODALL et SUPALL du traitement STKALL.
Il est appelé lors de chaque création, modification ou suppression d’une allocation détaillée avant la mise à jour de celle-ci.
[F :STA]VCRTYP contient le type de pièce qui est à l’origine de l’allocation.
[L]WQTA contient la quantité à allouer/désallouer
cette quantité est positive s’il s’agit d’une création ou d’une augmention
cette quantité est négative s’il s’agit d’une suppression ou d’une diminution
Les informations stock associées (no série, lot, sous-lot, emplacement, …) à cette allocation sont dans la classe fichier [F :STO]
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
STOCK [STO] | Oui | Stocks |
STOALL [STA] | Non | Allocations |
Ce point d’entrée permet suppression de lexécution du traitement de resynchronisation des quantités en cours de traitement lors de l'appel au traitement de détermination du stock à sortir.
Il y a une transaction en cours.
Il ni a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous programme STOCKALG du traitement STKALL . (détermination du stock à sortir)
Pour ne pas éxécuter la resynchronisation; probleme de performance si gros volume), positionner la variable locale [L]WSTOWIPW = 0 dans le point d'entrée STOWIPW du traitement STKALL.
Table | Contenu significatif | Intitulé Table |
Ce point d’entrée permet d'autoriser le réapprovisionnement automatique de besoins de réappro à partir d'emplacements eux-mêmes réapprovisionnables.
Il n'y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans l'étiquette $TRAITE_STOCK appelé dans le sous programme STOCKALG du traitement STKALL . (détermination du stock à sortir)
Lorsque cette détermination automatique du stock à traiter est utilisé dans le cadre du plan de réapprovisionnement, les emplacements eux-même réapprovisionnables ne sont pas pris en compte.
Pour les prendre en compte, il faut positionner la variable GPE=1
Ce point d'entrée concerne la prise en compte des lignes de stock sélectionnées et classées par l’algorithme de détermination automatique du stock à allouer ou sortir.
Il permet de retrier les lignes de stock sélectionnées et classées par l’algorithme.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme STOCKALG du traitement STKALL.
Il est appelé lorsque l’on détermine automatiquement le stock à traiter pour effectuer une allocation, une sortie, une proposition d’allocation ou sortie.
Il permet de retrier les lignes de stock sélectionnées et classées par l'algorithme.
Les variables significatives sont les suivantes :
- Le bloc 1 du masque ALLPAR [ALP] contient les caractéristiques d’exécution de l’algorithme : types de mouvement et de pièce, site, article, règles d’allocation et de gestion, quantité à traiter …
- [M :ALP]TYPQTY indique avec quel type de quantité on travaille : 1=quantités en unités physiques, et 2=quantités en unités actives (cas standard)
- Le bloc tableau 4 du masque ALLPAR [ALP] contient les lignes de stock sélectionnées et classées par l’algorithme.
Attention : Le tableau a été trié uniquement sur les 2 colonnes [M :ALP]WCOND et [M:ALP]NLIG, les autres colonnes n'ayant pas été déplacées --> lorsque l'on effectue une boucle de 0 à [M:ALP]NBLIG, on accède aux valeurs de ces colonnes en utilisant l'indice [M:ALP]NLIG.
Attention : en aucun cas, il ne faut modifier le contenu d’une zone de l’écran ALLPAR.
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMMVT | Oui | Mouvements articles |
ITMFACILIT | Oui | Articles sites |
ITMCATEG | Oui | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Oui si WTRUCOD<>’’ | Règles d’allocations / sorties |
TABSTORUL | Oui | Règles de gestion |
Ce point d'entrée permet d’intervenir sur certains paramètres de l’allocation automatique et notamment sur la quantité à allouer.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé au début du sous-programme GENSTOALL du traitement STKALL.
Il permet par exemple d'intervenir sur la quantité à allouer.
Les paramètres accessibles sont :
- [M:ALP]QTY : Quantité à allouer (en unité de stock active)
- Les champs du bloc 1 de l'écran de paramétrage ALLPAR sont renseignés et accessibles. Attention toute modification de ces champs ne doit être faite qu'en connaissance de cause.
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMFACILIT | Non | Articles sites |
ITMCATEG | Non | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Non | Règles d’allocations / sorties |
TABSTORUL | Non | Règles de gestion |
Ce point d'entrée permet de changer la règle d’allocation/sortie utilisée lors de la détermination automatique du stock à allouer/sortir.
Il n’y a pas de transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans l'étiquette $APPEL_ALGO du traitement STKALL après alimentation de la règle d'allocation/sortie à utiliser.
Il permet de changer la règle à utiliser en modifiant la variable locale WTRUCOD.
Les paramètres accessibles sont :
- [M:ALP]VCRTYP : Type de pièce (menu local 701)
- [M:ALP]PECSCOLOC : Prise en compte des emplacements sous-traitant (1=non, 2=oui)
Par exemple pour changer la règle d'allocation d'un OF de sous-traitance il faut changer la valeur de WTRUCOD en écrivant ceci :
If [M:ALP]VCRTYP=10 & [M:ALP]PECSCOLOC=2 : WTRUCOD="xxx" : Endif
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMMASTER | Oui | Articles |
ITMFACILIT | Non | Articles sites |
ITMCATEG | Non | Catégories articles |
STOLOT [STL1] | Non | Lots |
STOCK [STO1] | Non | Stocks |
STOALL [STA1] | Non | Allocations |
TABALLRUL | Non | Règles d’allocations / sorties |
TABSTORUL | Non | Règles de gestion |
Ce point d'entrée est positionné dans la boucle de traitement des lignes du masque de travail STOSORW.
Il permet de prendre la main lors de l'allocation d'une ligne document (avec éventuellement désallocation d'une pièce d'origine).
Il y a une transaction en cours.
Il n’y a pas de fichier trace ouvert.
Ce point d’entrée est situé dans le sous-programme ENRSTOALL du traitement STKALL.
La variable LTRT permet de connaître le contexte d'appel :
0 : allocation seule
1 : Allocation + Désallocation ligne origine.
L'écran STOSORW [SOW] est chargé.
La variable I correspond à l'indice de la ligne du masque STOSORW en cours de traitement (de 0 à NBLIG-1).
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
STOALL [STA1] | Non | Allocations |