Vai al contenuto

Ciclo Produzione (B3)

Panoramica

Il ciclo di produzione gestisce il flusso dalla definizione della distinta base alla realizzazione del prodotto finito. I programmi principali sono:

Distinta base (COGE31) → Lancio produzione (COGP13)
                           → Scarico componenti (COGL23)
                           → Avanzamento lavorazione (COGL01)
                           → Assemblaggio automatico (COGG77)
Programma Righe Funzione
COGE31 4.638 Gestione distinta base (BOM)
COGP13 4.790 Lancio produzione / stampa lista prelievo
COGL01 1.891 Avanzamento lavorazione
COGL23 1.887 Scarico componenti posticipato

COGG77 (assemblaggio automatico) e' documentato separatamente in assemblaggio-automatico.md.


COGE31 — Gestione distinta base (BOM)

Identificazione

  • Programma: COGE31
  • Autore: Andrea Parmeggiani - Eurosystem (conv. GUI: Gianluca 01/12/2007)
  • Area: Produzione / Configurazione
  • Descrizione: Gestione distinta base — creazione, modifica, cancellazione dei componenti necessari per produrre un articolo
  • Righe: 4.638 (build 2024/0038, SCREENS 2.13.0)
  • Menu: Produzione > Distinta Base > Gestione

Funzionalita' principale

COGE31 gestisce la distinta base (BOM - Bill of Materials), cioe' l'archivio che definisce per ogni articolo padre:

  • Quali componenti servono
  • In quale quantita'
  • In quale ordine
  • Con quali caratteristiche (sostituti, note, coefficienti)

Operazioni: creazione, modifica, cancellazione, visualizzazione, gestione alternative, semilavorati (distinte annidate).

Flusso operativo

1. Inizializzazione (apri, riga 362)

  • Verifica abilitazioni utente (ctr-abil)
  • Lettura dati azienda (rd-azi)
  • Apertura file
  • Caricamento configurazione RNEWCONF (x99-confi) — 28 parametri

2. Input testata (articolo padre)

Campo Paragrafo Descrizione
tm-pf a-tm-pf (557) Codice articolo padre (GRU/SOT/COD)
tm-u-m a-tm-u-m (687) Modalita' prezzo: U=Ultimo, M=Medio
tm-currency a-tm-currency (727) Divisa di valorizzazione
tm-tipo-dist a-tm-tipo-dist (781) Tipo distinta: P=Produzione, D=Vendita, V=Temporanea, C=Con Opzioni
tm-unita-prod a-tm-unita-prod (829) Unita' produttiva

Validazione: articolo deve esistere in COGMERCI (x-controlla-chiave, riga 1831).

3. Caricamento distinta (a3-rd-dba, riga 2631)

  • START COGDBASE sulla chiave articolo padre
  • Loop RDNXT: per ogni componente, lettura prezzo da COGL61, inserimento in COGTRANS (file transito)
  • Calcolo spese generali
  • Popolazione griglia (max 900 righe)

4. Editing griglia (a-grid, riga 905)

Griglia interattiva via GRIDADMN con operazioni INS/MOD/DEL:

Campo Paragrafo Descrizione
tm-merce a-tm-merce (1217) Codice componente
tm-tipo-merce-a a-tm-tipo-merce-a (1270) Tipo: CA=Caratteristico, GE=Generico, CO=Consumo
tm-qta a-tm-qta (1332) Quantita' per unita' di distinta
tm-perc-valore a-tm-perc-valore (1365) Percentuale ricavo
tm-coef-x-carb-num a-tm-coef-x-carb-num (1409) Coefficiente conversione (consorzi)
tm-giorni-lotto a-tm-giorni-lotto (1464) Giorni lotto (pasticceria)

Tasti: F3=conferma, F4=cancella distinta, S-F7=sostituti, S-F8=semilavorati (ricorsivo), F9=situazione.

5. Aggiornamento permanente (agg-dis, riga ~3600)

  • DEL COGDBASE (cancella vecchia distinta)
  • Loop COGTRANS → WR COGDBASE (scrive nuova)
  • WR/RWR COGDBAGG (note, percentuali, coefficienti, sostituti)
  • RWR COGMERCI (flag padre = 'P')
  • RWR COGMERA3 (unita' produttiva)

6. Chiusura (fine, riga 1683)

  • Close file, DELETE COGTRANS e COGTRANS2

Ricorsivita'

COGE31 chiama se stesso (riga 1084) per gestire distinte annidate: un componente puo' essere a sua volta una distinta (semilavorato).

File principali

File Prefisso Operazioni Descrizione
COGDBASE dba- R/W/RW/D Distinta base permanente
COGDBAGG dbg- R/W/RW/D Dati aggiuntivi distinta (note, sostituti, allegati)
COGMERCI mer- R/RW Anagrafica merci
COGMERA3 ma3- R/W/RW Dati aggiuntivi merci (unita' produttiva)
COGGENER gen- R Configurazione spese generali produzione
COGDBSTT stt- R Storico aggiornamenti distinta
CAPMEADR cma- R Anagrafica clienti/fornitori
COGTABEL euta- R Tabelle di sistema
COGTRANS trs- RW/D Transito componenti in editing
COGTRANS2 trs2- RW Transito note di riga

Struttura chiave COGDBASE

Primaria: dba-merce (GRU+SOT+COD = articolo padre) + dba-prog (progressivo)
Alternata: dba-merce-f (componente figlio) + dba-chia (chiave completa)

Struttura chiave COGDBAGG

Primaria: dbg-tip + dbg-db + dbg-comp + dbg-prog
  dbg-tip: 'L'=Collegamento, 'N'=Note, 'n'=Note riga, 'P'=Pre-distinte,
           'S'=Sostitutivi, 'A'=Allegati, 'E'=Altri dati

Catena di chiamata

Programma Funzione
COGE31S Gestione sostituti componenti
COGE31D Gestione distinte (versioni, storico)
COGL61 Lettura prezzi acquisto da listino
COGS16A Calcolo prezzo semilavorati ricorsivo (nested BOM)
COGS07 Aggiornamento listino vendita distinta
COGU53 Creazione versione distinta
COGM72 Gestione caratteristiche merci
COGD62 Verifiche su merce (estensioni, dati speciali)
GRIDADMN Gestione griglia interattiva

Parametri RNEWCONF (28 parametri)

Chiave Campo Effetto
euta-c037-tip-val tm-cfg-tipval Tipo valorizzazione (U=Ultimo, M=Medio)
euta-c037-tip-agg tm-cfg-tip-agg Tipo aggiornamento
vers-distinta-base tm-cfg-versioni Gestione versioni distinta (S/N)
gestione-distinte-kit tm-cfg-gestione-kit Distinte kit (S/N)
euta-c029-ord tm-cfg-ord Ordine componenti: I=per indice, C=per codice
merce (1-10) tm-cfg-merce[xk] 10 slot merci speciali personalizzate
percentuale (1-10) tm-cfg-perc[xk] Percentuali per merci speciali
conferma-canc-riga tm-cfg-conferma-canc-riga Conferma cancellazione (S/N)
statistiche-con-ripartizione-db tm-cfg-statis-ripart-db Statistiche odontotecnici
gestione-pasticcerie tm-cfg-gest-pasticcerie Giorni lotto pasticceria

Note tecniche

Posizioni chiave


COGP13 — Lancio produzione / Stampa lista prelievo

Identificazione

  • Programma: COGP13
  • Autore: Andrea Parmeggiani - Eurosystem
  • Area: Produzione / Lancio
  • Descrizione: Stampa lista di prelievo; creazione movimenti c/lavorazione, scarico componenti da distinta base, creazione lavorazione
  • Righe: 4.790
  • Menu: Produzione > Lancio Produzione

Funzionalita' principale

COGP13 e' il programma di lancio della produzione. Per ogni riga ordine con commessa:

  1. Estrae i componenti dalla distinta base (COGDBASE)
  2. Crea la prima nota di scarico componenti (via COGP13A)
  3. Scarica giacenza e impegno sui componenti
  4. Crea il record di lavorazione (via COGP13B)
  5. Stampa la lista di prelievo per gli operatori

Flusso operativo

1. Inizializzazione (a000, riga 1129)

  • Apertura file (COGCONOR, COGMERCI, COGDBASE, COGLAVOR, COGMOVDB, ecc.)
  • Lettura azienda
  • Se produzione automatica (fl-prod-automatica = "S"): controllo distinta multilivello
  • Apertura file transito (COGTRANS, COGTRANS2, TRAN-W51)

2. Input parametri (a4, riga 1218)

Campo Descrizione
tm-data Data lancio (validata vs. data consolidamento)
tm-ordine Ordine di produzione (tipo/anno/numero/progressivo)
tm-consegna Consegna (magazzino/anno/tipo/numero)

3. Caricamento dati (righe 1436-1640)

  • Lettura testata ordine (COGTESOR)
  • Lettura magazzino (COGMAGAZ)
  • Lettura dati aziendali (COGGEANA)
  • Lettura data consolidamento (COGTABEL tipo 57)

4. Loop elaborazione righe (st-20-loop, riga 1726)

Per ogni riga consegna in COGCONOR:

1. rdnxt-cogconor → legge riga
2. Filtro: cor-fl-lav = "N" → skip (non lavorare)
3. rd-cogmerci → legge merce prodotta
4. controlla-movdb → verifica movimenti c/lavorazione in COGMOVDB
5. cerca-lotto → ricerca lotto/classamento in COGDBASE
6. SE necessario creare lavorazione:
   a. CALL COGS16 → inizializza file transito
   b. CALL COGP13A → crea prima nota scarico componenti
   c. CALL COGP13B → crea record lavorazione, assegna lotto
7. registra-temp → accumula dati per stampa
8. stampa-temp → output su file stampa (FLSTA)

5. Post-elaborazione (st-80)

  • Chiusura file stampa (COGS54)
  • Stampa allegati/matricole/schede tecniche (se configurato)
  • Ricostruzione impegno distinta (tratta-distinta, riga 3799):
  • Loop su COGTRANS2 → per ogni componente: CALL COGS18 (ricostruisce impegno)

6. Chiusura (fine)

  • DELETE file transito (TRAN-W51, COGTRANS, COGTRANS2)
  • Close file

Sottoprogrammi critici

Programma Funzione Parametro chiave
COGP13A Crea prima nota scarico componenti p13a-fun = "CL"
COGP13B Crea record lavorazione (COGLAVOR), assegna lotto p13b-merce, p13b-ordine, p13b-consegna
COGS18 Ricostruzione impegno distinta base Ciclo su COGTRANS2
COGS16 Inizializzazione file transito -
COGL14 Aggiornamento matricole lavorazione -
COGS17C Gestione movimenti warehouse/picking -

File principali

File Prefisso Operazioni Descrizione
COGCONOR cor- R Righe consegna di produzione
COGMERCI mer- R Anagrafica merci
COGDBASE dba- R Distinta base (componenti)
COGLAVOR cla- R Lavorazioni (record lavorazione)
COGMOVDB mdb- R Movimenti distinta base
COGTESOR teo- R Testata ordine
COGSLMAG slm- R Semilavorati magazzino (giacenze)
COGGENER gnr- R Riferimenti generici (tipo lotto)
COGDBAGG dba- R Dati aggiuntivi distinta
COGTRANS trs- RW Transito movimenti DB
COGTRANS2 trs2- W Transito componenti per ricostruzione impegno
TRAN-W51 w51- RW Transito lavorazioni
FLSTA riga W File output stampa lista prelievo

Parametri RNEWCONF

Chiave Campo Effetto
prod1-stampa-ord-not tm-cfg-ord-not Stampa ordine/nota (S/N)
prod1-stampa-bar tm-cfg-bar Stampa con barcode (S/N)
prod1-stampa-loc tm-cfg-loc Stampa locazione stoccaggio (S/N)
prod1-stampa-desag tm-cfg-desag Stampa disaggregazioni (S/N)
prod1-tip-det tm-cfg-tip-det Tipo dettaglio: E=Esteso, O=Ordinario
prod1-scarico-con-bdp tm-cfg-scarico-con-bdp Scarico con buoni di prelievo (S/N)
prod1-mag-stoc tm-cfg-mag-stoc Magazzino stock (S/N)
Check level tm-cfg-check-level Livello controlli lancio (0-3)

Modalita' di chiamata

  • Manuale: da menu operatore
  • Automatica: da COGD51 (gestione ordini produzione) con fl-prod-automatica = "S"
  • Parametri via linkage: up13-ordine, up13-caller

Note tecniche

Posizioni chiave

  • Riga 1129: a000 — inizializzazione
  • Riga 1726: st-20-loop — loop principale
  • Riga 1943: a-lavorazione — creazione lavorazione
  • Riga 1992: CALL COGP13A — prima nota scarico
  • Riga 2023: CALL COGP13B — crea lavorazione
  • Riga 3799: tratta-distinta — ricostruzione impegno

COGL01 — Avanzamento lavorazione

Identificazione

  • Programma: COGL01
  • Autore: Andrea Parmeggiani - Eurosystem (conv. GUI: Daniele)
  • Area: Produzione / Avanzamento
  • Descrizione: Avanzamento lavorazione — scarico componenti da magazzino c/lavoro, carico semilavorati e prodotto finito su magazzino destinazione
  • Righe: 1.891 (SCREENS 2.13.0)
  • Menu: Produzione > Avanzamento Lavorazione

Funzionalita' principale

COGL01 gestisce l'avanzamento dei lotti di produzione:

  1. Scarica componenti dal magazzino di c/lavoro
  2. Carica semilavorati sullo stesso magazzino
  3. Carica prodotto finito sul magazzino di destinazione
  4. Crea prime note di movimento

Flusso operativo

1. Inizializzazione (apri, riga 215)

  • Apertura file, lettura azienda
  • Configurazione RNEWCONF (x99-confi): parametro euta-c019-lot-ext (lotto esterno)
  • Lettura data consolidamento

2. Input dati (righe 286-707)

Campo Paragrafo Descrizione
tm-lot-ann a-tm-lot-ann (286) Anno lotto
tm-lot-num a-tm-lot-num (336) Numero lotto (lettura COGLAVOR)
tm-lot-ext a-tm-lot-ext (374) Lotto esterno (se configurato)
tm-mag a-tm-mag (413) Magazzino c/lavoro
tm-cli a-tm-cli (463) Cliente
tm-ord-aa/num/pro a-tm-ord-* (502-596) Ordine di riferimento
tm-data a-tm-data (746) Data movimento (>= data consolidamento)

3. Validazione lotto (controlla-lotto, riga 1532)

- cla-tip != "1" → Errore: non e' lotto di produzione
- cla-fas != 1 OR cla-pos != 1 → Errore: lotto intermedio
- cla-fl-cls = 'C' → Errore: consegna gia' avanzata
- Controllo buoni prelievo collegati (ctrl-buoni)
- Se cla-fl-rdy-cmp = 'N' → Avviso: non pronto, chiede conferma
- mer-padre != "P" → Errore: merce non definita come distinta base

4. Elaborazione (b-elabora, riga 897)

  • Creazione file transito TRAN-P13 e TRBN-S16
  • Ricerca lotto figlio con numero massimo (cerca-max-figlio, riga 983)
  • Loop: costruzione TRBN-S16 con dettagli lavorazione
  • Verifica tipo lotto da COGGENER tipo "LP" (c-determina-lotto, riga 1031)

5. Chiamate sottoprogrammi

CALL COGP13A (riga 826) → funzione "AV" (Avanzamento)
  - Input: TRAN-P13, TRBN-S16
  - Output: prime note scarico/carico

CALL COGL01A (riga 864) → aggiornamento dati lotto
  - Crea prime note per mag. c/lavoro e destinazione

6. Output e chiusura

  • Finestra riepilogativa (send-scr-doc, riga 867)
  • Se profilo produttivo: verifica merci critiche via COGU73
  • Chiusura file

File principali

File Prefisso Operazioni Descrizione
COGLAVOR cla- R Lavorazioni (dettagli lotto)
COGMAGAZ magz- R Magazzini
COGGEANA ana- R Anagrafe (dati cliente)
COGTESOR tor- R Ordini
COGGENER gnr- R Tipo lotto (codice "LP")
COGTABEL euta- R Data consolidamento (tipo 57)
COGMERCI mer- R Verifica se distinta base
COGTESBP tbp- R Buoni di prelievo (controllo blocchi)
TRAN-P13 p13- RW Transito per COGP13A
TRBN-S16 trs-s16b- RW Transito dettagli lavorazione
CLCDALAV dlv- R Lotti per lotto esterno

Catena di chiamata

Programma Funzione
COGP13A Elaborazione avanzamento (funzione "AV")
COGL01A Aggiornamento dati lotto
COGU73 Verifica merci critiche
WIN083 Selezione lotto (finestra modale)
COGS14 Selezione ordini
COGS65W Ricerca cliente
COGV94 Gestione matricole prodotto finito

Note tecniche

Posizioni chiave

  • Riga 215: apri — inizializzazione
  • Riga 826: CALL COGP13A — avanzamento
  • Riga 864: CALL COGL01A — aggiornamento lotto
  • Riga 897: b-elabora — creazione file transito
  • Riga 1532: controlla-lotto — validazione lotto

COGL23 — Scarico componenti

Identificazione

  • Programma: COGL23
  • Autore: Andrea Parmeggiani - Eurosystem (conv. GUI: Gianluca 20/12/2007)
  • Area: Produzione / Scarico
  • Descrizione: Scarico posticipato di componenti non scaricati durante la creazione lavorazione
  • Righe: 1.887 (SCREENS 2.13.0)
  • Menu: Produzione > Scarico Componenti

Funzionalita' principale

COGL23 consente lo scarico posticipato di componenti per una lavorazione gia' creata. Differenze rispetto a COGL01:

  • Scarica solo componenti (non fa avanzamento lavorazione)
  • Crea documenti di scarico dal magazzino di approvvigionamento
  • Crea documenti di carico sul magazzino di c/lavoro
  • Gestisce buoni di prelievo se configurato
  • Supporta lavorazioni esterne (az-lav-est = "S")

Flusso operativo

1. Inizializzazione (apri, riga 227)

  • Apertura file + file transito (COGTRANS2, TRAN-W51)
  • Configurazione RNEWCONF: 3 parametri
  • Lettura data consolidamento

2. Input dati (righe 349-752)

Stessa struttura di COGL01: anno/numero lotto, lotto esterno, magazzino, cliente, ordine.

3. Validazione lotto (controlla-lotto, riga 1224)

- cla-tip != "1" → Errore: non e' lotto di produzione
- cla-fas != 1 OR cla-pos != 1 → Errore: lotto intermedio
- Controllo modula: verifica liste appese (COGMDTES)
  - Se mdt-fl-ela = "N" e mdt-data != datasis → Errore: documento in attesa

4. Elaborazione (b-elabora, riga 1398)

  • Creazione file transito TRAN-P13 e TRBN-S16
  • Se lavorazioni esterne: caricamento in TRAN-W51
CALL COGP13A (riga 795) → funzione "SC" (Scarico)
  - Input: TRAN-P13, TRBN-S16
  - Output: prime note di scarico

CALL COGL23A (riga 815) → aggiornamento dati scarico

5. Post-elaborazione

  • Finestra riepilogativa (send-scr-doc, riga 829)
  • Ricostruzione impegno distinta (tratta-distinta, riga 1510):
  • Loop su COGTRANS2 → per ogni componente: CALL COGS18

6. Chiusura (righe 833-841)

  • Close e DELETE file transito (COGTRANS2, TRAN-W51)

Differenze chiave COGL01 vs. COGL23

Aspetto COGL01 COGL23
Scope Avanza lotto completo Scarica solo componenti
Aggiorna lavorazione Si' (cla-qta-lav) No
Crea semilavorati Si' No
Crea prodotto finito Si' No
Buoni di prelievo No Si' (opzionale)
Lavorazioni esterne No Si' (az-lav-est)
Distinte (COGS18) No Si'
Funzione COGP13A "AV" "SC"

File principali

File Prefisso Operazioni Descrizione
COGLAVOR cla- R Lavorazioni
COGMAGAZ magz- R Magazzini
COGGEANA ana- R Anagrafe
COGTESOR tor- R Ordini
COGGENER gnr- R Tipo lotto
COGTABEL euta- R Data consolidamento
COGMDTES mdt- R Moduli di test (liste appese)
COGLAVLA cll- R Lavorazioni esterne
TRAN-P13 p13- RW Transito per COGP13A
TRBN-S16 trs-s16b- RW Transito dettagli lavorazione
COGTRANS2 trs2- RW Transito componenti per COGS18
TRAN-W51 trs-w51- RW Transito lavorazioni esterne

Catena di chiamata

Programma Funzione
COGP13A Elaborazione scarico (funzione "SC")
COGL23A Aggiornamento dati scarico
COGS18 Ricostruzione impegno distinta
WIN083 Selezione lotto (finestra modale)
COGS14 Selezione ordini
COGS65W Ricerca cliente
COGV12 Stampa prime note
COGU65 Stampa lista prelievo supporti
COGP64 Stampa buoni di prelievo

Parametri RNEWCONF (3 parametri)

Chiave Campo Effetto
euta-c019-mag-stoc tm-cfg-mag-stoc Prime note stoccaggio automatiche
euta-c019-lot-ext tm-cfg-lotto-ext Abilita lotto esterno
prod1-scarico-con-bdp tm-cfg-scarico-con-bdp Scarico con buoni di prelievo (S/N)

Note tecniche

Posizioni chiave

  • Riga 227: apri — inizializzazione
  • Riga 795: CALL COGP13A — scarico componenti
  • Riga 815: CALL COGL23A — aggiornamento
  • Riga 1224: controlla-lotto — validazione
  • Riga 1398: b-elabora — creazione transiti
  • Riga 1510: tratta-distinta — ricostruzione impegno

Flusso complessivo del ciclo produttivo

┌──────────────────────────────────────────────────────────────┐
│  COGE31 — Gestione distinta base (4.638 righe)               │
│  Definisce: articolo padre → componenti (COGDBASE/COGDBAGG)  │
│  Max 900 componenti, supporto semilavorati annidati           │
└──────────────────────────┬───────────────────────────────────┘
                           │ COGDBASE
                           ▼
┌──────────────────────────────────────────────────────────────┐
│  COGP13 — Lancio produzione (4.790 righe)                    │
│  Per ogni consegna (COGCONOR):                               │
│  ├─ COGP13A: crea prima nota scarico (da COGDBASE)          │
│  ├─ COGP13B: crea lavorazione (COGLAVOR) + assegna lotto    │
│  ├─ COGS18: ricostruzione impegno distinta                  │
│  └─ Stampa lista prelievo (FLSTA)                            │
└──────────────────────────┬───────────────────────────────────┘
                           │ COGLAVOR
                    ┌──────┴──────┐
                    ▼             ▼
┌─────────────────────────┐ ┌─────────────────────────┐
│  COGL23 — Scarico       │ │  COGL01 — Avanzamento   │
│  componenti (1.887)     │ │  lavorazione (1.891)     │
│                         │ │                          │
│  Scarico posticipato:   │ │  Avanzamento lotto:      │
│  ├─ COGP13A fun="SC"   │ │  ├─ COGP13A fun="AV"    │
│  ├─ COGL23A             │ │  ├─ COGL01A              │
│  ├─ COGS18 (impegno)   │ │  Output:                 │
│  Output:                │ │  ├─ Scarico componenti   │
│  ├─ Scarico componenti │ │  ├─ Carico semilavorati  │
│  └─ Carico su c/lavoro │ │  └─ Carico prod. finito  │
└─────────────────────────┘ └─────────────────────────┘
                                      │
                    ┌─────────────────┘
                    ▼
┌──────────────────────────────────────────────────────────────┐
│  COGG77 — Assemblaggio automatico (doc. separata)            │
│  Produzione interna senza distinta formale                   │
└──────────────────────────────────────────────────────────────┘

Sottoprogramma condiviso: COGP13A

COGP13A e' il sottoprogramma centrale, chiamato sia da COGP13 che da COGL01 e COGL23 con funzioni diverse:

Programma Funzione Operazione
COGP13 "CL" Crea lista (lancio produzione)
COGL01 "AV" Avanzamento lavorazione
COGL23 "SC" Scarico componenti

File nuovi rispetto a documenti precedenti

File Prefisso Descrizione
COGDBASE dba- Distinta base (BOM)
COGDBAGG dbg- Dati aggiuntivi distinta
COGDBSTT stt- Storico distinte
COGSLMAG slm- Semilavorati magazzino (giacenze)
COGMDTES mdt- Moduli di test (liste appese)
CLCDALAV dlv- Lotti per lotto esterno