Entry Points > Modulo Produzione > Script standard OPTLIB 

SBBWST: Distinzione degli esemplari di centro di lavoro

Questo entry point serve ad effettuare una distinzione degli esemplari di centro di lavoro principale nella schedulazione (nozione dei sotto-centri).

Per realizzarla si interviene:

-        all'estrazione dei dati centro (Frazionamento dei centri interessati in tanti esemplari quanti necessari)

-        all'estrazione delle operazioni (Assegnazione dell'operazione al giusto esemplare di centro secondo un criterio parametrizzabile)

-       all'aggiornamento in uscita di schedulazione (aggiornamento del criterio) - programma OPTLIBA.

Esempio:

Per una distinzione basata sulla strumentazione, il centro P1 verrebbe scomposto come segue:

P1           - 00

P1           - 01 Strumento1

P1           - 02 Strumento2

Si dispone sempre di un esemplare 00 per le operazioni non assegnate secondo il criterio.          

Contesto e modalità di funzionamento

Transazione

Non ci sono transazioni in corso.

File traccia

Può esserci un file traccia aperto (a seconda del parametro di lancio della schedulazione).

Vari casi di chiamata

L'entry point è chiamato due volte, ogni chiamata è identificabile mediante la variabile globale GSBBWST:

GSBBWST  = « LOADWST »                       

Estrazione dei centri di lavoro, l'entry point deve alimentare la lista dei criteri di rottura del centro.

Per fare ciò, il riquadro XSBBT(15)(100) deve essere alimentato prendendosi cura di lasciare il primo indice (0) a blank. La variabile NBSBB deve contenere il numero di righe alimentate. La variable globale GPE deve essere posizionata ad 1 per indicare che il centro è soggetto a distinzione

Esempio:

XSBBT(0) = ""

XSBBT(1) = "OUTIL1"

XSBBT(2) = "OUTIL2"

NBSBB    = 3

GPE = 1

 

GSBBWST  = « LOADOPE »                        

Estrazione delle operazioni, l'entry point deve fornire il criterio di distinzione sotto forma di un campo della tabella MFGOPE, per effettuare ciò bisogna alimentare la variabile alfanumerica XSCHSBB (lunghezza 15).

Il riquadro XSBBT deve essere nuovamente ricaricato se necessario.

Esempio:

XSCHSBB = "EQUNUM"     # Campo standard strumentazione

If [F:MWS]WST <> XWST

XSBBT(0) = ""

XSBBT(1) = "OUTIL1"

XSBBT(2) = "OUTIL2"

NBSBB    = 3

Endif

GPE = 1

 

Importante:                  

Siccome può essere necessario scorrere la tabella MFGOPE per ritrovare i criteri utilizzati, una classe [F :MFO2] è stata aperta apposta per tale utilizzo (la classe [F :MFO] è in linea e non deve essere modificata

 

 

Variabili e videate disponibili

Durante la prima chiamata (GSBBWST = « LOADWST »), la classe [F :MWS] è in linea.

Durante la seconda chiamata (GSBBWST = « LOADOPE »), le classi [F :MWS] e [F :MFO] sono in linea.

Tabelle aperte 

Nel riquadro sottostante, il flag contenuto significativo indica che il contenuto è allineato al contesto.

Tabella

Contenuto significativo

Descrizione Tabella

MFGHEAD

No

Testata OP

MFGITM

No

Articoli lanciati

MFGMAT

No

Materiali

MFGOPE

No

Operazioni (MFO + MFO2)

SCHEDULING

No

Dati di schedulazione

WORKSTATIO

No

Centri di lavoro

TABWEEDIA

No

Schemi settimanali

ITMMASTER

No

Articolo

ITMFACILIT

No

Articolo/Sito

 

OPE_FOCUS: Evidenziare operazioni al lancio della schedulazione

 

Questo entry point permette di realizzare la definizione di un elenco di operazioni che devono essere evidenziate alla visualizzazione iniziale del gantt.

Permette anche di sostituire il contenuto del tooltip collegato all'operazione.

Contesto e modalità di funzionamento

Transazione

Non ci sono transazioni in corso.

File traccia

Può esserci un file traccia aperto (a seconda del parametro di lancio della schedulazione).

Vari casi di chiamata

L'entry point è chiamato all'estrazione di ogni operazione.

La videata [M :OPTK] è in linea al momento della chiamata.

Le classi [F :MFG], [F :MFO] e [F :SCH] sono in linea con un contenuto significativo.

L'evidenziazione una operazione avviene mediante una chiamata al sotto programma WRITE_FOCUS del programma OPTLIBB.          

Subprog WRITE_FOCUS(LFCY, LCOD, LOK, LMESS)

Con:

Char     LFCY  : sito di produzione

Char     LCOD  : codice risposta

"000" = azione di tipo focus (valore costante)

Integer  LOK   : Flag focus

0 = nessun focus (solo sostituzione testo tooltip)

1 = focus attivo

Char     LMESS : Messaggio da visualizzare nel tooltip

L’identificazione dell'operazione deve essere alimentata nella videata [M :OPW1] (MFGNUM, OPENUM, OPESPLNUM). 

Esempio di implementazione

###########################################################################

$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

 

# per test, si evidenziano le operazioni che implicano uno strumento come se fosse da evidenziare

If [F:MFO]EQUNUM = "" : Return: Endif

# quando si scrive una stringa, assicurarsi sempre che questa non contenga virgola, punto e virgola ...

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

 

# quando si scrive una stringa, assicurarsi sempre che questa non contenga virgola, punta e virgola, ...

WCHAIN     = [M:OPTK]ITMDES1

WSPECHAR   = ","

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMDES1 = WCHAIN

 

# quando si scrive una stringa, assicurarsi sempre che questa non contenga virgola, punta e virgola, ...

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 posizionato su questa operazione ...)    "

 

[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

 

 

 

 

 
Tabelle aperte 

Nel riquadro sottostante, il flag contenuto significativo indica che il contenuto è allineato al contesto.

Tabella

Contenuto significativo

Descrizione Tabella

MFGHEAD

Si

Testata OP

MFGOPE

Si

Operazioni

SCHEDULING

Si

Dati di schedulazione

INIT_JAL: Inizializzazione della schedulazione

Questo entry point permette di intervenire su tutte le operazioni caricate in memoria prima dell'estrazione delle operazioni verso la schedulazione per intervenire su alcuni valori.

Contesto e modalità di funzionamento

si tratta qui di intervenire sull'elenco delle operazioni caricate in memoria.

Le variabili disponibili per ogni operazione sono:

Local Shortint WOPENUM (NBOPMX)           : # numero oper
Local Shortint WOPESPLNUM (NBOPMX)        : # fraz. oper
Local Char    WWST    (GLONWST) (NBOPMX) : # centro
Local Char    WLAB    (GLONWST) (NBOPMX) : # manodopera
Local Decimal WSETLABC(NBOPMXX)            : # coeff setup MO
Local Decimal WOPELABC(NBOPMX)            : # coeff oper MO
Local Integer WOPESTA (NBOPMX)            : # stato operazione
Local Date    WOPESTR (NBOPMX)            : # data inizio
Local Date    WOPESTR (NBOPMX)            : # data fine
Local Date    WOPESTR (NBOPMX)            : # n° di centri
Local Integer WLABN   (NBOPMX)            : # n° di persone
Local Integer WLABN   (NBOPMX)            : # tempo preparazione
Local Decimal WSETTIM (NBOPMX)            : # tempo setup per 1 ex
Local Decimal WOPETIM (NBOPMX)            : # tempo operativo per 1 ex
Local Decimal WOPETIM (NBOPMX)            : # tempo attesa
Local Decimal WSETTIM (NBOPMX)            : # tempo post oper
Local Decimal WQTY (NBOPMX)             : # quantità residua
Local Date    WOPESTR (NBOPMX)            : # data inizio forzato
Local Decimal WFRCSTRH (NBOPMX)            : # Ora inizio forzato
Local Char    WFRCHOU(5)(NBOPMX)            # Ora forzata nel formato hh:mm          
Local Decimal WFRCSTRF(NBOPMX)            : # Frazione di giorno inizio forzato
Local Integer WFRCFLG (NBOPMX)            : # Flag oper inizio forzato
Local Integer WWSTTYP (NBOPMX)            : # codice conto lavoro
Local Decimal WSCOLTI (NBOPMX)            : # lead time conto lavoro
Local Char    WWIPNUM (GLONVCR)(NBOPMX)   : # n° incorso conto lavoro
Local Char   WSCOITMREF(GLONITM)(NBOPMX) : # articolo conto lavoro
Local Integer WSCDCOD (NBOPMX)            : # codice schedulazione
Local Integer WNEXOPEN (NBOPMX)            : # n° op successiva
Local Integer WNEXSPLN (NBOPMX)            : # fraz. op successiva (creata in PG)
Local Integer WOPERG (NBOPMX)             : # posizione op
Local Integer WOPETRT (NBOPMX)            : # ope programmata in ordinamento
Local Decimal WSCDPCT (NBOPMX)            : # % sovr

Utilizzo

Esempio di codice per sostituire il lead time di acquisto articolo di un servizio di conto lavoro con il lead time articolo/sito:

$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