Questo entry point situato nel programma TRTACHMGT1 presa in considerazione dei fabbisogni partendo dai piani di lavoro (planning globale, piano di lavoro e raggruppamento), genera un'azione "PECBESOINS".
Lo scopo di tale azione è dare la possibilità di convertire in unità fisica la quantità del fabbisogno preso in considerazione.
Ciò avviene in funzione della denominazione di default dell'articolo ma solo per i fabbisogni non generati da un documento di acquisto.
Non c'è transazione in corso.
C'è un file traccia aperto.
La chiamata si effettua per ciascuna riga di fabbisogno considerato nel piano di lavoro.
Le variabili seguenti sono caricate al momento della chiamata dell'azione "PECBESOINS".
TRAIT
Tipo di elaborazione dei fabbisogni considerata:
- 4 = Per creazione di richieste di acquisto
- 5 = Per creazione di ordini classici
- 6 = Per creazione di richieste di consegna (ordini aperti)
ABREV
Abbreviazione della videata utilizzata ("PMG")
La videata [M:PMG] è utilizzabile, la variabile I indica la riga del riquadro in corso di elaborazione
[M:PMG]WIPTYP(I)
Tipo d'ordine:
- 2 = « PO » Ordine fornitore
- 4 = « SC » Servizio conto lavoro
- 7 = « TR » Trasferimento riapprovvigionamento
[M:PMG]WIPSTA(I)
Stato dell'ordine:
- 1 = « F » Confermato
- 2 = « P » Pianificato
- 7 = « S » Suggerito
Le variabili e classi precedenti non devono essere modificate.
La seguente variabile deve essere modificata per influenzare il programma della presa in considerazione dei fabbisogni.
RMNQTY
Quantità del fabbisogno considerato espressa in:
- unità di magazzino fisica se il fabbisogno proviene da un documento di acquisto (« POP », « POF », « TRP », « TRF »
-o in unità di magazzino attiva se il fabbisogno non proviene da un documento di acquisto (« POS », « TRS », « SCF » … ecc …)
-
Esempio di un programma specifico attivato dall'entry point PECBESOINS:
$ACTION
Case ACTION
When "PECBESOINS" : Gosub PECBESOINS
When "ORDLEC" : Gosub ORDLEC
When "ORDMAJ" : Gosub ORDMAJ
Endcase
Return
#----- Conversione della quantità del fabbisogno considerato in unità fisica -----#
$PECBESOINS
If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)
If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)
Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT
Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV
Endif
Endif
Return
#----- Conversione delle quantità in unità fisica dopo lettura [F:ORD] -----#
$ORDLEC
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
#----- Conversione delle quantità in unità attiva se fabbisogni generati dagli acquisti -----#
$ORDMAJ
If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
Nel riquadro qui sotto, il flag contenuto significativo significa che il contenuto è allineato con il contesto.
Tabella | Contenuto significativo | Descrizione Tabella |
ORDERS | No | Incorso |
ITMMASTER | No | Articoli |
ITMBPS | No | Articoli - Fornitori |
PREQUIS | Se TRAIT = 4 | Richieste d'acquisto testate |
PREQUISD | Se TRAIT = 4 | Richieste d'acquisto righe |
PORDER | Se TRAIT = 5 o 6 | Ordini d'acquisto testate |
PORDERC | Se TRAIT = 6 | Righe articoli contratti |
PORDERP | Se TRAIT = 5 o 6 | Righe ordini d'acquisto prezzo |
PORDERQ | Se TRAIT = 5 o 6 | Righe ordini d'acquisto quantità |
Questo entry point deve essere utilizzato obbligatoriamente con altri due entry point ORDMAJ e ORDLEC al fine di elaborare opportunamente il problema degli articoli denominati (quantità in unità attive per gli incorso e in unità fisiche per i documenti acquisto).
Questo entry point situato nel programma TRTACHMGT1 presa in considerazione dei fabbisogni partendo dai piani di lavoro (planning globale, piano di lavoro e raggruppamento), genera un'azione "ORDLEC".
Lo scopo di tale azione è dare la possibilità di convertire in unità fisica le quantità dell'incorso appena letto.
Ciò avviene in funzione della denominazione di default dell'articolo, essendo le quantità dell'incorso sempre espresse in unità attiva.
La chiamata si effettua dopo la lettura di un record della tabella ORDERS nei programmi del modulo acquisti.
La classe [F :ORD] è caricata al momento della chiamata dell'azione "ORDLEC".
Le seguenti quantità devono essere convertite in unità fisica se l'articolo è « denominato »:
[F :ORD]EXTQTY
Quantità prevista
[F :ORD]CPLQTY
Quantità realizzata
[F :ORD]RMNEXTQTY
Quantità restante
Esempio di un programma specifico attivato dall'entry point ORDLEC:
$ACTION
Case ACTION
When "PECBESOINS" : Gosub PECBESOINS
When "ORDLEC" : Gosub ORDLEC
When "ORDMAJ" : Gosub ORDMAJ
Endcase
Return
#----- Conversione della quantità del fabbisogno considerato in unità fisica -----#
$PECBESOINS
If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)
If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)
Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT
Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV
Endif
Endif
Return
#----- Conversione delle quantità in unità fisica dopo lettura [F:ORD] -----#
$ORDLEC
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
#----- Conversione delle quantità in unità attiva se fabbisogno generato dagli acquisti -----#
$ORDMAJ
If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
Nel riquadro qui sotto, il flag contenuto significativo significa che il contenuto è allineato con il contesto.
Tabella | Contenuto significativo | Descrizione Tabella |
ORDERS | Sì | Incorso |
ITMMASTER | No | Articoli |
Questo entry point deve essere utilizzato obbligatoriamente con altri due entry point PECBESOINS e ORDMAJ al fine di elaborare opportunamente il problema degli articoli denominati (quantità in unità attive per gli incorso e in unità fisiche per i documenti acquisto).