Générer des fiches d'outillages
La fonction Outillage_Generer de GMPMMAT permet de créer en automatique une fiche matériel par outillage. Ce dernier sera référencé par un numéro de série présent dans une liste. Le code genre qui lui sera associé est 'OUTIL'. La fonction demandera alors de saisir son type (à partir des types du genre 'OUTIL') et de saisir sa localisation. Le code du matériel créé sera le numéro de série, la désignation sera celle transmise par paramètre, ainsi que la référence article associée (Attention, l'article doit être géré en numéro de série). Ces dernières données pourront être modifiées par surcharge dans la procédure « Ouillage_Creation_av » en modifiant la chaîne HMP « Param » transmise par « pinglocal ("gmpmmat_param",Param) »
Prototype de la fonction
Outillage_Generer (GrRef,Des,&IdlSerie)
GrRef : référence article associé
Des : Désignation de l'outillage
IdlSerie : Liste contenant les différents numéros de série
Param
Chaine HMP décrivant le contexte de l'utilisation.
< LOCACOD> Localisation de l'outillage
< DESRM> Désignation
< SERIE> Numéro série (devient code matériel)
< GRREF> Référence article associé
Retour de la fonction
1 : Liste vide, Référence article inconnu, Article non géré en numéro de série
0 : Outillages créés
Exemple d'utilisation de la fonction en automatique
Cet exemple permet la création en automatique des outillages lors de la création d'un BL fournisseur
Contraintes liées à la création : les articles ont une compétence qui appartient au domaine de compétence 'outillage' paramétré dans GRM
Le code suivant est dans le GTUTPCE000 (surcharge de GTTPCE000)
overwrite 'gtttpce000.dhop'
include "gttc000.dhsp"
module "gmpmfic.dhop"
module "gmpmmat.dhop"
extern record gtfdd.dhsd G1T1
extern record gtfdd.dhsd G1T2
public record gtfdd.dhsd ART
public record gtfdd.dhsd MOUV
public record gmfdd.dhsd GMSOC
1IdlSerieL
1IdlOutilsL
structure Outillage;structure élément de la liste des outillages à créer
1Grref>gtfdd.dhsd Grref
1serie>gtfdd.dhsd serie
1 EnrNoV >gtfdd.dhsd EnrNoV
EndStructure
;
procedure Programme_Debut
; en début de programme après l'ouverture des fichiers et avant la lecture du dossier
beginp
Standard.Programme_debut
;recherche des paramètres GRM et création des listes
Seek_GmSoc (Mz.Dos)
IdlOutils = ListCreate
IdlSerie = ListCreate
Endp
Procedure G1T2_LecturePourMaj_Ap
; après la lecture d'un élément de la liste ventilation en phase de mise à jour de GTFAM
;il faut pouvoir distinguer les articles de type outillages. Pour cela, on peut utiliser la nature de produit ou comme l'exemple suivant, le domaine de compétence paramétré dans GRM
1competcod>gtfdd.dhsd CompetCod
6CompetDomCod>gtfdd.dhsd CompetDomCod
6CompetCod2>gtfdd.dhsd CompetCod2
1MatNb8,0;Nombre de matériels à créer
recorddiva Outillage
BeginP
standard.G1T2_LecturePourMaj_Ap
if g1t2.Picod = '3' and g1t2.Ticod = 'F' ;BL fournisseur
if recherche_article (G1t1.ref) = 0
CompetCod = Art.CompetCod
if CompetDomCod = GmSoc.competDomCod (4) ; outillages
MatNb = G1T2.Qte
; on suppose que les outillages sont gérés dans une unité entière
Loop MatNb > 0
; insertion nouvel outillage
init Outillage = ' '
Outillage.GrRef = G1T1.grref
Outillage.Serie = G1t2.Serie
Outillage.EnrNoV = G1T2.EnrNoV
ListAddEnd (IdlOutils,Outillage)
MatNb --
Endloop
endif
endif
endif
EndP
Procedure Ent_Write_Av
; avant écriture du mouvement
1ParamS
BeginP
standard.Ent_Write_Av
;réinitialisation de la liste des numéros série par référence
ListErase (IdlOutils)
EndP
Procedure MOUV_Write_Av
; avant écriture du mouvement
1ParamS
BeginP
standard.MOUV_Write_Av
;constitution des outillages à créer ()
ListErase (IdlSerie)
ListBegin (IdlOutils)
do while ListNext (IdlOutils, Enreg) not in (0,-1)
if Outillage.EnrNoV = G1T1.EnrNoV ; g1t1 est en ligne quand on crée les mouv
Mat_A_Creer.RmCod = ' '
;il est possible ici de remplir le code matériel sinon utilise
;la numérotation automatique du genre
Mat_A_Creer.Serie = Outillage.Serie
ListAddEnd (IdlSerie,Mat_A_Creer)
ListDelete (IdlOutils)
Endif
wend
if ListCount (IdlSerie) > 0
;appel de la fonction GRM de génération
Outillage_Generer (Mouv.GrRef,art.Des,IdlSerie)
endif
EndP
Le code suivant est dans le GTTMMAT (surchargeable par GTUMMAT)
Function char Outillage_GenreCod
; pour choisir le code genre si différent de OUTIL
1GenreCod>gmfdd.dhsdGenreCod
BeginF
; definir le code genre
GenreCod = 'OUTIL'
Freturn (GenreCod)
EndF