Extraction des postes de charge, le point d’entrée doit renseigner la liste des critères de rupture du poste.
Pour ce faire, le tableau XSBBT(15)(100) doit être alimenté en prenant soin de laisser le premier indice (0) à blanc. La variable NBSBB doit contenir le nombre de lignes renseignées. La variable globale GPE doit être positionnée à 1 pour signifier que le poste est sujet à distinction.
Exemple :
XSBBT(0) = ""
XSBBT(1) = "OUTIL1"
XSBBT(2) = "OUTIL2"
NBSBB = 3
GPE = 1
GSBBWST = « LOADOPE »
Extraction des opérations, le point d’entrée doit fournir le critère de distinction sous la forme d’un champ de la table MFGOPE, pour cela il faut renseigner la variable alphanumérique XSCHSBB (longueur 15).
Le tableau XSBBT doit être chargé à nouveau si nécessaire.
Exemple :
XSCHSBB = "EQUNUM" # Champ standard outillage
If [F:MWS]WST <> XWST
XSBBT(0) = ""
XSBBT(1) = "OUTIL1"
XSBBT(2) = "OUTIL2"
NBSBB = 3
Endif
GPE = 1
Important :
Comme il peut être nécessaire de parcourir la table MFGOPE pour retrouver les critères utilisés, une classe [F :MFO2] a été spécialement ouverte à cet usage (la classe [F :MFO] est en ligne et ne doit pas être modifiée
Lors du premier appel (GSBBWST = « LOADWST »), la classe [F :MWS] est en ligne.
Lors du second appel (GSBBWST = « LOADOPE »), les classes [F :MWS] et [F :MFO] sont en ligne.
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte.
Table | Contenu significatif | Intitulé Table |
MFGHEAD | Non | Entête OF |
MFGITM | Non | Articles lancés |
MFGMAT | Non | Matières |
MFGOPE | Non | Opérations (MFO + MFO2) |
SCHEDULING | Non | Données de jalonnement |
WORKSTATIO | Non | Postes de charge |
TABWEEDIA | Non | Schémas hebdomadaires |
ITMMASTER | Non | Article |
ITMFACILIT | Non | Article/Site |
Ce point d'entrée permet de mettre en œuvre la définition d’une liste d’opérations devant être mises en évidences à l’afichage initial du gantt. Il permet également de remplacer le contenu de l’infobulle liée à l’opération.
Il n’y a pas de transaction en cours.
Il peut y avoir un fichier trace ouvert (suivant paramètre de lancement de l’ordonnancement).
Le point d’entrée est appelé à l’extraction de chaque opération.
Le masque [M :OPTK] est en ligne au moment de l’appel.
Les classes [F :MFG], [F :MFO] et [F :SCH] sont en ligne avec un contenu significatif.
La mise en évidence d’une opération est formulée par un appel au sous-programme WRITE_FOCUS du traitement OPTLIBB.
Subprog WRITE_FOCUS(LFCY, LCOD, LOK, LMESS)
Avec:
Char LFCY : site de production
Char LCOD : code réponse
"000" = action de type focus (valeur constante)
Integer LOK : Indicateur focus
0 = pas de focus (seulement substitution texte infobulle)
1 = focus actif
Char LMESS : Message à afficher dans l'infobulle
L’identification de l’opération doit être renseignée dans le masque [M :OPW1] (MFGNUM, OPENUM, OPESPLNUM).
###########################################################################
$ACTION
Case ACTION
When "OPE_FOCUS" : Gosub OPE_FOCUS
Endcase
Return
$OPE_FOCUS
Local Integer IOK : IOK = 0
Local Char XMESS(250)
Local Char WCHAIN, WSPECHAR
# pour test, on marque les opérations comportant un outil comme étant à mettre én évidence
If [F:MFO]EQUNUM = "" : Return : Endif
# quand on écrit une chaine, toujours s'assurer qu'elle ne contient pas de virgule, point-virgule ...
WCHAIN = [M:OPTK]ITMREF
WSPECHAR = ","
Gosub REMOVE_CHAR From OPTLIB
[M:OPTK]ITMREF = WCHAIN
WCHAIN = [M:OPTK]ITMREF
WSPECHAR = ";"
Gosub REMOVE_CHAR From OPTLIB
[M:OPTK]ITMREF = WCHAIN
# quand on écrit une chaine, toujours s'assurer qu'elle ne contient pas de virgule, point-virgule ...
WCHAIN = [M:OPTK]ITMDES1
WSPECHAR = ","
Gosub REMOVE_CHAR From OPTLIB
[M:OPTK]ITMDES1 = WCHAIN
# quand on écrit une chaine, toujours s'assurer qu'elle ne contient pas de virgule, point-virgule ...
WCHAIN = [M:OPTK]ITMDES1
WSPECHAR = ";"
Gosub REMOVE_CHAR From OPTLIB
[M:OPTK]ITMDES1 = WCHAIN
XMESS = [F:MFO]MFGNUM+"/"+num$([F:MFO]OPENUM)-[M:OPTK]ITMREF-[M:OPTK]ITMDES1-"____(Focus positionné sur cette sur cette opération ...) "
[M:OPW1]MFGNUM = [F:MFO]MFGNUM
[M:OPW1]OPENUM = [F:MFO]OPENUM
[M:OPW1]OPESPLNUM = [F:MFO]OPESPLNUM
Call WRITE_FOCUS([F:MFO]MFGFCY, "000", IOK, XMESS) From OPTLIBB
Return
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte.
Table | Contenu significatif | Intitulé Table |
MFGHEAD | Oui | Entête OF |
MFGOPE | Oui | Opérations |
SCHEDULING | Oui | Données de jalonnement |
Ce point d’entrée permet d’intervenir sur l'ensemble des opérations chargées en mémoire avant l'extraction des opérations vers l'ordonnancement afin d'intervenir sur certaines valeurs.
il s'agit ici d'intervenir sur la liste des opérations chargées en mémoire.
Les variables disponibles pour chaque opération sont:
Local Shortint WOPENUM (NBOPMX) : # numéro oper
Local Shortint WOPESPLNUM (NBOPMX) : # fract. oper
Local Char WWST (GLONWST) (NBOPMX) : # poste
Local Char WLAB (GLONWST) (NBOPMX) : # main d'oeuvre
Local Decimal WSETLABC(NBOPMX) : # coeff réglage MO
Local Decimal WOPELABC(NBOPMX) : # coeff oper MO
Local Integer WOPESTA (NBOPMX) : # état opération
Local Date WOPESTR (NBOPMX) : # date début
Local Date WOPEEND (NBOPMX) : # date fin
Local Integer WWSTN (NBOPMX) : # nb de postes
Local Integer WLABN (NBOPMX) : # nb de personnes
Local Integer WPRPTIM (NBOPMX) : # temps préparation
Local Decimal WSETTIM (NBOPMX) : # temps réglage pour 1 ex
Local Decimal WOPETIM (NBOPMX) : # temps opératoire pour 1 ex
Local Decimal WWAITIM (NBOPMX) : # temps attente
Local Decimal WPSPTIM (NBOPMX) : # temps post oper
Local Decimal WQTY (NBOPMX) : # quantité restante
Local Date WFRCSTRD (NBOPMX) : # date début forcé
Local Decimal WFRCSTRH (NBOPMX) : # Heure début forcé
Local Char WFRCHOU(5)(NBOPMX) # Heure forcée au format hh:mm
Local Decimal WFRCSTRF(NBOPMX) : # Fraction de jour début forcé
Local Integer WFRCFLG (NBOPMX) : # Flag oper début forcé
Local Integer WWSTTYP (NBOPMX) : # code sous-traitance
Local Decimal WSCOLTI (NBOPMX) : # délai sous-traitance
Local Char WWIPNUM (GLONVCR)(NBOPMX) : # n° encours sous-traitance
Local Char WSCOITMREF(GLONITM)(NBOPMX) : # article sous-traitance
Local Integer WSCDCOD (NBOPMX) : # code jalonnement
Local Integer WNEXOPEN (NBOPMX) : # no op suivante
Local Integer WNEXSPLN (NBOPMX) : # fract. op suivante (créé dans PG)
Local Integer WOPERG (NBOPMX) : # rang op
Local Integer WOPETRT (NBOPMX) : # ope traitée en classement
Local Decimal WSCDPCT (NBOPMX) : # % chev
Exemple de code pour remplacer le délai d'achat articl d'un service de sous-traitance par le délai article/site:
$ACTION
Case ACTION
When "INIT_JAL" : Gosub INIT_JAL
Endcase
Return
$INIT_JAL
For I = 0 To NBOP-1
If WWSTTYP(I) = 3
Read [ITF]ITF0=WSCOITMREF(I);WMFGFCY
If !fstat : WSCOLTI(I)= [F:ITF]OFS : Endif
Endif
Next I
Return