COGG77 - Assemblaggio componenti¶
Descrizione¶
COGG77 e' un sotto-programma richiamabile (non presente a menu) che gestisce l'assemblaggio interno automatico di prodotti finiti a partire dalla distinta base. E' stato progettato specificamente per il flusso Artic SEALS.
Il programma riceve in input un codice articolo assemblato, una quantita' da produrre e un riferimento alla riga consegna da evadere (tramite la linkage utilcogg77.cpy). Esegue quindi le seguenti operazioni principali:
- Verifica che l'articolo sia un assemblato (fase di lavorazione = assemblaggio nella distinta base
CLCDISEG) - Cerca gli ordini di lavorazione disponibili per la consegna (
COGCONOR) - Carica la distinta base dei componenti necessari (
COGDBASE) escludendo i servizi - Gestisce la selezione dei lotti merce dei componenti, con supporto per accantonamenti (BDP), magazzino logistico e prelievo Modula
- Prepara i lotti di produzione accoppiando componenti/lotti agli ordini di lavorazione
- Esegue gli aggiornamenti: sdoppia consegne, crea commesse di lavorazione (
COGLAVOR,CLCCCTES,CLCCCRIG,CLCCCCNS), genera movimenti di magazzino per avanzamento prodotto finito e scarico componenti
Il programma supporta due modalita': standard e "Blue Seals" (cogg77-modo-blue-seals = "S"), dove la maggior parte dei componenti viene selezionata automaticamente in base alla famiglia merce.
L'esito viene restituito al chiamante tramite cogg77-esito: "S" = produzione effettuata, "N" = non effettuata, "A" = accantonamento materiale, "C" = cancellazione BDP.
Tabelle e file utilizzati¶
Tabelle principali (da cogg77.select)¶
| Tabella | Descrizione | Accesso | Chiavi secondarie |
|---|---|---|---|
CLCDISEG |
Disegno/ciclo di lavorazione (distinta base) | Lettura | - |
CLCCCTES |
Testata commessa di lavorazione | Scrittura | - |
CLCCCRIG |
Righe fasi commessa | Scrittura | - |
CLCCCDAY |
Dettaglio giornaliero consuntivo | Scrittura | - |
CLCCCCNS |
Consuntivo fase commessa | Scrittura | - |
CLCCCDET |
Dettaglio consuntivo | Scrittura | - |
COGMERCI |
Anagrafica merci | Lettura (mer-chia, mer-classe, mer-lotti, mer-padre, mer-modula) |
- |
COGGEANA |
Anagrafica generale (clienti/fornitori) | Lettura (ana-tipo, ana-cod, ana-nome) |
- |
COGSLMAG |
Saldi magazzino | Lettura (msal-merce, msal-mag1, msal-qta) |
- |
COGTESOR |
Testata ordini | Lettura (tor-chia, tor-chiu, tor-clifor) |
- |
COGDBASE |
Distinta base componenti | Lettura (dba-merce, dba-merce-f, dba-qta) |
- |
COGLAVOR |
Commesse di lavorazione | Lettura/Scrittura | chia5 (ordine+consegna) |
COGCONOR |
Consegne ordini | Lettura/Scrittura (cor-chia1, cor-merce, cor-qta, cor-qtacons, cor-fl-lav, cor-o-testa) |
chia3 (merce) |
COGMOVDB |
Movimenti distinta base (impegni) | Lettura/Cancellazione (mdb-tip-mov, mdb-rif-mov, mdb-comp, mdb-qta) |
- |
COGRACMC |
Raccordo merce-codice avanzamento | Lettura (rcm-cod-ava) |
chia2 |
COGRACMT |
Raccordo merce-tabella (famiglie) | Lettura (rtm-merce, rtm-tab-tip, rtm-tab-cod) |
chia2 |
COGGENER |
Tabella generica raccordo | Lettura/Scrittura/Cancellazione (gnr-tip, gnr-parte-1, gnr-parte-2) |
- |
COGTESBP |
Testata buoni di prelievo | Lettura (tbp-chia1, tbp-fl-cls, tbp-cli) |
- |
COGRIGBP |
Righe buoni di prelievo | Lettura (rbp-testa, rbp-merce, rbp-lotto, rbp-qta, rbp-mag, rbp-consegna) |
chia4 (consegna), chia5 (merce) |
COGMERLT |
Lotti merce | Lettura (mlt-merce, mlt-mag, mlt-prog, mlt-lotto, mlt-stato, mlt-qta) |
chia2 (lotto+merce+mag), chia3 (stato+lotto+merce+mag) |
COGMDTES |
Testata liste Modula | Lettura (mdt-id-lista, mdt-doc, mdt-stato) |
chia2 (doc) |
COGMDRIG |
Righe liste Modula | Lettura (mdr-id-lista, mdr-merce, mdr-mlt-lotto, mdr-qta-evasa) |
- |
COGGCDOC |
(incluso nel select, non usato direttamente nel sorgente visibile) | - | - |
COGPRENO |
Prenotazioni materiale | Lettura (prn-tip, prn-chiave-oggetto, prn-bdp) |
chia2 |
File di transito¶
| File | Descrizione | COPY |
|---|---|---|
TRAN-S26 |
Transito righe per COGS26 (movimenti magazzino) | tran-s26.cpy, tran-s26.fd, tran-s26.k01 |
TRAN-G77 |
Transito lotti creati (restituiti al chiamante) | tran-g77.cpy, tran-g77.fd, tran-g77.k01 |
FEURTAB |
File tabelle generali (cogfiles.cpy) |
feurtab.fd |
Chiamate a sottoprogrammi¶
| Programma | Scopo | Copybook interfaccia |
|---|---|---|
COGSA0 |
Gestione BDP: creazione (CREA-BDP-SINGOLO, AGGIUNGI-A-BDP), prenotazione (PRENOTA), cancellazione (CANCELLA) |
utilcogsa0.cpy |
COGD53 |
Invio liste di prelievo al magazzino automatico Modula (DOC-PRECEDENTE, DOC-ATTUALE, DOC-ESEGUI) |
utild53.cpy |
COGS16 |
Gestione impegni componenti su consegna (tipo CC) |
utils16.cpy |
COGS25 |
Numerazione progressiva (consegne: cod 4; commesse: cod 13) | utils25.cpy |
COGS26 |
Creazione documenti di magazzino (avanzamento prodotto finito + scarico componenti) | utils26.cpy |
COGU12 |
Aggiornamento giacenza articoli (tipo I, entrata/uscita) |
utilu12.cpy |
COGPA0 |
Gestione stampa packing list raggruppata | utilcogpa0.cpy |
COGP78 |
Stampa etichette (sovrappacco e scarico componenti) | utilp78.cpy |
DIALOGS |
Dialog box di conferma/scelta | utildlg.cpy |
WIN097 |
Ricerca lotti merce (aiuto F8) | utilw97.cpy |
GRIDADMN |
Gestione griglie (preparazione, amministrazione) | utilgdad.cpy |
RNEWCONF |
Lettura configurazioni (PRODUZIONE / MAG-LOGISTICO) |
utilncnf.cpy |
C$SLEEP |
Pausa nel polling Modula (1 secondo) | - |
Flusso di controllo¶
Paragrafi principali¶
| Paragrafo | Funzione |
|---|---|
apri |
Inizializzazione: apertura file, caricamento configurazioni (x99-confi), preparazione griglie, lettura parametri da linkage |
a4 |
Reset griglie e caricamento dati maschera dalla chiamata |
a-tm-merce |
Accept articolo da assemblare (con aiuto COGS68W) |
a-tm-qta-ric |
Accept quantita' da evadere |
a-richiesta-conferma |
Validazione globale e conferma utente |
a-elabora |
Avvio elaborazione: verifica assemblato, cerca ordini di lavorazione, carica distinta base, gestisce accantonamenti e prelievo Modula |
a-grid-comp |
Accept griglia componenti (F10 = accantona, F4 = cancella BDP, F3 = conferma/aggiorna) |
a-grid-lav |
Accept griglia lavorazioni |
fine / z-chiudi |
Chiusura file, cancellazione programmi caricati, uscita |
Ricerca e selezione componenti¶
| Paragrafo | Funzione |
|---|---|
b-cerca-componenti |
Legge COGDBASE per l'articolo, esclude classe servizio, popola tab-componenti, propaga mer-modula in tc-fl-modula |
b-cerca-caratteristiche-componente |
Legge famiglia merce da COGRACMT |
b-cerca-comp-auto |
In modalita' Blue Seals, marca automatici i componenti non-KDS per famiglie KDSB/KDSA |
Ricerca ordini di lavorazione¶
| Paragrafo | Funzione |
|---|---|
c-cerca-ordini-lav |
Cerca la consegna associata e verifica disponibilita' residua (dedotti BDP aperti) |
c1-cerca-produzione |
Lettura COGCONOR per la consegna, calcolo tl-qta-dsp al netto di BDP e quantita' evasa |
c-cerca-prenotato-lotto |
Calcola quantita' prenotata per un lotto sommando le righe BDP aperte su COGRIGBP (chia5) |
Gestione accantonamenti e BDP¶
| Paragrafo | Funzione |
|---|---|
a4-cerca-acc-mag-log |
Cerca BDP su magazzino logistico per i componenti non ancora assegnati |
a4-cerca-bdp-per-merce |
Scorre COGRIGBP (chia5) per merce, filtra su mag logistico e stesso cliente |
a4-cerca-componenti-accantonati |
Cerca prenotazioni COGPRENO tipo M per la consegna, risale ai BDP |
a4-analisi-prenotato |
Da una prenotazione, legge la riga BDP per ottenere merce, lotto e quantita' |
a4-seleziona-lotto |
Simula la selezione di un lotto nella griglia: legge COGMERLT, posiziona sulla prima riga libera, calcola disponibilita', gestisce split riga se necessario |
a4-seleziona-comp-automatici |
Per ogni riga con flag automatico, cerca lotti disponibili e li seleziona |
a4-cerca-lotti-disponibili |
Scorre COGMERLT per merce/magazzino, verifica stato aperto, quantita' e prenotazioni |
a4-accantona |
Crea BDP provvisori (tipo M) per ogni riga con quantita' usata, via COGSA0 |
a4-cancella-accantonamento |
Cancella un BDP via COGSA0 operazione CANCELLA |
a4-verifica-residuo-merce |
Verifica se il fabbisogno della merce corrente e' stato interamente coperto. Confronta la qta totale usata in griglia (somma tm-c-qta-usata per tutte le righe della merce) con il fabbisogno totale tc-qta-tot. Se coperto, segnala a4-fl-residuo = "N" per uscire dal loop dei BDP |
Flusso prelievo Modula (m1-*)¶
| Paragrafo | Funzione |
|---|---|
m1-verifica-lista-modula |
Punto di ingresso: attivo solo quando w-flusso-modula-ant = "S" (nuovo flusso anticipato). Verifica raccordo COGGENER tipo MA, gestisce ripresa o nuovo invio |
m1-cerca-lista-da-bdp |
Cerca la lista Modula in COGMDTES (chia2 per mdt-doc) collegata al BDP |
m1-crea-bdp-modula |
Crea BDP senza lotti su mag Modula per i componenti con fabbisogno residuo, via COGSA0 |
m1-invia-lista-modula |
Invia lista prelievo a Modula via COGD53 (tipo doc B, causale BP, stato A) |
m1-polling-rientro |
Polling su COGMDTES.mdt-stato: A = attesa (riprova), E o EC = evasa completa, EP = evasa parziale |
m1-elabora-rientro |
Legge COGMDRIG, salta righe placeholder (mdr-fl-fonte = "P" → EXIT PERFORM CYCLE), per ogni riga evasa risale al lotto ERP via COGMERLT (chia2) e assegna in griglia |
m1-chiudi-bdp-modula |
Cancella il BDP Modula via COGSA0 |
m1-scrivi-raccordo |
Scrive raccordo COGGENER tipo MA (chiave = cliente+merce, valore = bdp-testa) |
m1-cancella-raccordo |
Cancella tutti i record COGGENER tipo MA per la chiave cliente+merce |
Preparazione lotti (d-*)¶
| Paragrafo | Funzione |
|---|---|
d-prepara |
Scorre gli ordini di lavorazione, per ciascuno determina il lotto minimo producibile in base ai componenti disponibili, accoppia componenti/lotti |
d1-accorpa-lotti |
In modalita' Blue Seals, accorpa i lotti provvisori che differiscono solo per componenti automatici |
m-refresh-grid-lav |
Ricostruisce la visualizzazione della griglia lavorazioni |
Aggiornamenti (e-*)¶
| Paragrafo | Funzione |
|---|---|
e-aggiorna |
Scorre i lotti provvisori, per ciascuno esegue: sdoppia consegna, crea commessa, scarica componenti. Cancella le prenotazioni e gestisce residuo BDP mag logistico |
e1-sdoppia-consegna |
Se la quantita' da produrre differisce dalla disponibile, sdoppia la consegna COGCONOR |
e1-numero-consegna |
Assegna nuovo numero consegna via COGS25 (cod 4) |
e11-cancello-impegno |
Cancella impegni COGMOVDB e aggiorna giacenza via COGU12 |
e2-crea-commessa |
Crea testata COGLAVOR, CLCCCTES, fasi CLCCCRIG, consuntivi CLCCCCNS, dettagli CLCCCDAY/CLCCCDET. Genera documento avanzamento via COGS26 |
e3-scarica-materiale |
Prepara una riga di transito TRAN-S26 per lo scarico di un componente |
e4-crea-scarichi-per-mag |
Separa lo scarico in due passate: magazzino principale e magazzino logistico. Per ciascuno chiama e4-crea-doc-mag |
e4-crea-doc-mag |
Chiama COGS26 per creare il documento di scarico componenti. Imposta s26-fl-modula a "S" o "N" in base a w-flusso-modula-ant |
e4-invia-lista-modula |
Se w-flusso-modula-ant = "S": EXIT PARAGRAPH (la lista e' gia' stata inviata nella fase m1-*). Se "N": invia lista a consuntivo via COGD53 tipo "P" |
e-stampa-packing |
Se rimane una consegna residua non collegata a commessa, propone la ristampa della packing list via COGPA0 |
Logica di elaborazione¶
Flusso principale¶
All'apertura, il programma legge i parametri dalla linkage (utilcogg77.cpy). Se invocato come sub-programma (cogg77-called = "COGG77"), recupera merce, quantita', cliente e consegna dal chiamante (tipicamente COGG69).
L'elaborazione (a-elabora) segue queste fasi:
- Verifica assemblato: legge
CLCDISEGper verificare che l'articolo abbia la fase di assemblaggio. - Cerca ordini di lavorazione: legge
COGCONORper la consegna richiesta, verifica che non sia gia' collegata a una commessa (COGLAVORchia5), calcola la quantita' disponibile al netto di BDP aperti e quantita' gia' evasa. - Carica distinta base: legge
COGDBASE, esclude componenti servizio (classeS), calcola le quantita' totali necessarie (dba-qta * tm-qta-ric). Per ogni componente propaga il flagmer-moduladalla tabellaCOGMERCInella strutturatc-fl-modula. - Cerca accantonamenti magazzino logistico: se configurato (
PRODUZIONE / MAG-LOGISTICO), cerca BDP gia' presenti sul magazzino logistico per lo stesso cliente. - Flusso Modula: se il magazzino logistico e' configurato e non si e' in modalita' Blue Seals, attiva il flusso di prelievo Modula (vedi sezione dedicata).
- Cerca prenotazioni: se non trovati accantonamenti su mag logistico, cerca in
COGPRENOtipoMe simula la selezione. - Selezione automatica: in modalita' Blue Seals, seleziona automaticamente i lotti dei componenti non-KDS per le famiglie KDSB/KDSA.
Preparazione e aggiornamento¶
Quando l'utente conferma (F3), il programma:
- Prepara (
d-prepara): per ogni ordine di lavorazione, determina la quantita' producibile massima per lotti omogenei. Se un componente ha meno disponibilita' degli altri, la quantita' minima determina il lotto. Crea le righe nella griglia lavorazioni con l'accoppiamento lotto provvisorio/componente. - Accorpa (
d1-accorpa-lotti): in Blue Seals, unifica i lotti dove i componenti diversi sono tutti automatici. - Aggiorna (
e-aggiorna): per ogni lotto provvisorio:- Sdoppia la consegna se la quantita' prodotta e' inferiore alla disponibile
- Crea la commessa
COGLAVORcon stato chiuso (C), le fasi daCLCDISEG, i consuntivi - Genera il documento di avanzamento prodotto finito via
COGS26(con lotto merce in entrata) - Crea i documenti di scarico componenti separati per magazzino (principale e logistico)
- Cancella le prenotazioni BDP; se un BDP da magazzino logistico e' stato usato solo parzialmente, crea un nuovo BDP con il residuo
Flusso prelievo Modula¶
Il flusso Modula (~400 righe, paragrafi m1-*) gestisce il prelievo automatico dei componenti dal magazzino verticale Modula. Viene attivato solo quando lo switch w-flusso-modula-ant = "S" (flusso anticipato abilitato), il magazzino logistico e' configurato e non si e' in Blue Seals. Il default e' "N" (legacy): in questo caso la lista viene inviata a Modula dopo la conferma F3, nel vecchio flusso e4-invia-lista-modula. Attualmente w-flusso-modula-ant viene impostato a "S" solo per l'operatore 777 (testing).
Raccordo persistente: il programma usa la tabella COGGENER con tipo "MA" come raccordo tra assemblaggio e lista Modula. La chiave e' composta da cliente (m1-gnr-cli) e merce prodotto finito (m1-gnr-merce), il valore e' la testata BDP (m1-bdp-testa). Questo consente la ripresa in caso di interruzione.
Flusso di creazione (m1-verifica-lista-modula):
- Cerca un raccordo
COGGENERtipo"MA"per la coppia cliente+merce. - Se non esiste, verifica che ci siano componenti con fabbisogno residuo (
tc-qta-dsp < tc-qta-tot). - Chiede conferma all'utente per l'invio della lista.
- Crea un BDP provvisorio su magazzino Modula (
az-mag-modula) senza lotti, con una riga per ogni componente con fabbisogno residuo, tramiteCOGSA0(CREA-BDP-SINGOLOper la prima riga,AGGIUNGI-A-BDPper le successive). - Scrive il raccordo in
COGGENER. - Invia la lista a Modula via
COGD53: operazioneDOC-ESEGUIcon tipo documento"B", causale"BP", stato"A".
Flusso di polling (m1-polling-rientro):
- Cerca la lista Modula in
COGMDTEStramite chiave secondaria chia2 (mdt-doc = m1-bdp-testa). - Legge ciclicamente
mdt-stato:"A"= in attesa: chiede all'utente se riprovare o uscire (pausa 1s viaC$SLEEP)"E"o"EC"= evasa completamente: procede all'elaborazione"EP"= evasa parzialmente: segnala e procede comunque
Flusso di ripresa: se il raccordo COGGENER esiste gia', il programma segnala che l'assemblaggio e' in attesa. Verifica che il BDP sia ancora aperto; se chiuso o mancante, cancella il raccordo e chiede se generare una nuova lista.
Elaborazione rientro (m1-elabora-rientro):
- Legge
COGMDRIGper la lista. Salta le righe placeholder (mdr-fl-fonte = "P"): su liste fonte"S", la quantita' evasa e' gia' contabilizzata sulle righe storage con lotto effettivo e le righe placeholder andrebbero a duplicarla. Salta inoltre le righe con quantita' evasa = 0. - Per ogni riga evasa, risale al lotto ERP leggendo
COGMERLTcon chiave secondaria chia2 (mlt-lotto = mdr-mlt-lotto,mlt-merce = mdr-merce,mlt-mag = az-mag-modula). - Assegna il lotto alla griglia componenti tramite
a4-seleziona-lotto. - Chiude il BDP Modula via
COGSA0e cancella il raccordoCOGGENER.
Cancellazione raccordo in uscita: al termine dell'aggiornamento (e-aggiorna, dopo e-stampa-packing), se il magazzino logistico e' configurato, cancella eventuali raccordi residui.
Invio lista Modula post-scarico (e4-invia-lista-modula)¶
In e4-crea-doc-mag, dopo la creazione del documento di scarico componenti, il comportamento dipende da w-flusso-modula-ant:
- Se
"N"(legacy):s26-fl-modula = "S"(COGS26 popola la lista D53); poi viene chiamatoe4-invia-lista-modulache invia la lista a Modula viaCOGD53con tipo documento"P". - Se
"S"(nuovo flusso anticipato):s26-fl-modula = "N"(COGS26 non popola la lista D53 perche' la lista e' gia' stata inviata nella fasem1-*); la chiamata ae4-invia-lista-modulaviene saltata.
Il paragrafo e4-invia-lista-modula esegue in ogni caso EXIT PARAGRAPH immediatamente se w-flusso-modula-ant = "S" (doppia protezione).
Configurazioni¶
| Gruppo | Chiave | Uso |
|---|---|---|
| PRODUZIONE | MAG-LOGISTICO | Codice magazzino logistico; se valorizzato abilita la gestione BDP su mag logistico e il flusso Modula |
Strutture dati interne¶
tab-componenti (tc-*)¶
Tabella dei componenti della distinta base (max k-max-ele-grid-comp elementi):
tc-merce: codice merce componentetc-fl-modula: flag Modula propagato daCOGMERCI.mer-modulatc-qta-uni: quantita' unitaria per 1 prodotto finitotc-qta-tot: quantita' totale necessaria (qta-uni * qta-richiesta)tc-qta-dsp: quantita' gia' assegnata da lotti selezionatitc-idx-comp: indice prima riga griglia con questo componentetc-idx-lotto-min: indice del lotto che limita la produzione
tab-ordini-lav (tl-*)¶
Tabella ordini di lavorazione disponibili:
tl-ordine: riferimento ordine (tipo+anno+numero+progressivo)tl-consegna: riferimento consegnatl-qta-cor: quantita' in consegnatl-qta-cla: quantita' gia' collegata a lavorazionitl-qta-dsp: quantita' disponibiletl-qta-uso: quantita' usata nell'elaborazionetl-qta-acc: quantita' accoppiata a lotti durante la preparazione
m1-dati (flusso Modula)¶
m1-gnr-cli+m1-gnr-merce: chiave raccordoCOGGENERtipoMAm1-bdp-testa: testata BDP Modulam1-id-lista: identificativo listaCOGMDTESm1-fl-lista-trovata: raccordo esistente trovato (S/N)m1-fl-rientrata: lista rientrata da Modula (S/N)m1-fl-invio-ok: invio lista riuscito (S/N)
Interfaccia di chiamata¶
Definita in utilcogg77.cpy:
PROCEDURE DIVISION USING stringhe util-cogg77
| Campo | Tipo | Descrizione |
|---|---|---|
cogg77-caller |
X(08) | Programma chiamante |
cogg77-called |
X(08) | Deve essere "COGG77" per attivare la modalita' chiamata |
cogg77-merce |
X(09) | Codice articolo da assemblare |
cogg77-qta |
9(06) | Quantita' da produrre |
cogg77-cliente |
9(05) | Codice cliente |
cogg77-cor-chia1 |
X(16) | Chiave consegna (mag+anno+tipo+numero+riga) |
cogg77-modo-blue-seals |
X(01) | "S" per modalita' Blue Seals |
cogg77-esito |
X(01) | Output: S=produzione, N=non effettuata, A=accantonamento, C=cancellazione BDP |
Storico modifiche¶
| Data | Descrizione |
|---|---|
| 2026/0501 | Switch w-flusso-modula-ant per nuovo flusso prelievo Modula a lista anticipata (attivo solo per operatore 777 in test). Aggiunto a4-verifica-residuo-merce per fermare il loop BDP quando il fabbisogno e' coperto. Status "E" aggiunto in polling rientro. Skip righe placeholder (mdr-fl-fonte = "P") in elaborazione rientro. s26-fl-modula e chiamata a e4-invia-lista-modula ora condizionati da w-flusso-modula-ant: nel flusso anticipato COGS26 non popola la lista D53 e l'invio post-scarico viene saltato. Avviso di conferma alla cancellazione di un BDP collegato a lista Modula gia' evasa. Check consolidamento S-F8: segnala se esistono BDP con qta evasa Modula maggiore della qta consolidata, per evitare spedizioni con DDT incompleto |
Correzioni flusso Modula e prelievo anticipato (marzo 2026)¶
-
Correzione ordine operazioni BDP: la cancellazione del BDP (
COGSA0 CANCELLA) e' stata spostata dopo la creazione del residuo per BDP da magazzino logistico con uso parziale. In precedenza la cancellazione avveniva prima, causando potenziali inconsistenze sul BDP residuo. -
Filtro BDP vuoti: aggiunto controllo
tm-c-bdp (e-k) <> " "nella condizione di scansione BDP ine-aggiorna, per saltare le righe griglia senza BDP assegnato. -
Disabilitazione invio lista post-scarico: il paragrafo
e4-invia-lista-modulaora esce immediatamente (EXIT PARAGRAPH) perche' nel flusso con prelievo anticipato la lista Modula e' gia' stata inviata nella fasem1-*. La chiamata ae4-invia-lista-modulaine4-crea-doc-mage' stata commentata. -
Flag
s26-fl-modula: ine2-crea-commessae ine4-crea-doc-mag, il flags26-fl-modulaviene impostato a"N"prima della chiamata aCOGS26per impedire il reinvio della lista a Modula (gia' gestito dal flussom1-*). -
Cancellazione BDP/raccordo in uscita: al termine dell'aggiornamento, dopo
e-stampa-packing, se il magazzino logistico e' configurato, il programma cerca e cancella il BDP Modula residuo (m1-chiudi-bdp-modula) e il raccordoCOGGENER(m1-cancella-raccordo). Questo garantisce la pulizia anche in caso di interruzione.
Integrazione Modula (marzo 2026)¶
Aggiunta integrazione con magazzino automatico Modula per il prelievo dei componenti durante l'assemblaggio. La modifica comprende circa 400 righe nuove (paragrafi m1-*) e le seguenti modifiche strutturali:
- Working storage: aggiunte variabili
m1-datiper il flusso Modula, campotc-fl-modulanella tabella componenti, copybookcostanti-modula.cpy - Flusso principale (
a-elabora): inserita chiamata am1-verifica-lista-moduladopo la ricerca accantonamenti su magazzino logistico - Distinta base (
b-cerca-componenti): propagazione del flagmer-moduladaCOGMERCIatc-fl-modula, e datc-fl-modulaatm-c-fl-modulanella griglia - Chiusura (
e-aggiorna): aggiunta cancellazione raccordo Modula in uscita - Nuove COPY:
cogmdtes.k02(chiave secondaria per lista Modula per documento),cogmerlt.k02(chiave secondaria per lotto+merce+mag) - Nuovi paragrafi:
m1-verifica-lista-modula,m1-cerca-lista-da-bdp,m1-crea-bdp-modula,m1-invia-lista-modula,m1-polling-rientro,m1-elabora-rientro,m1-chiudi-bdp-modula,m1-scrivi-raccordo,m1-cancella-raccordo
Switch flusso Modula anticipata (aprile 2026)¶
Introdotto un flag w-flusso-modula-ant che abilita un flusso alternativo di prelievo Modula "a lista anticipata": la lista viene inviata prima dell'assemblaggio, anziche' dopo.
- Flag di switch:
w-flusso-modula-ant("S"= anticipata attiva,"N"= legacy). Attualmente il default e'"N", attivabile dall'operatore 777. Il valore si cambia modificando un singoloVALUEnel sorgente. - Impatto su COGS26: quando il flusso anticipato e' attivo, COGS26 non popola la lista d53 perche' la lista e' gia' stata inviata in anticipo.
- Controllo residuo merce (
a4-verifica-residuo-merce): nuovo paragrafo che interrompe la ricerca BDP quando il fabbisogno totale per una merce e' stato completamente coperto, evitando la sovra-selezione. - Nuove variabili:
a4-fl-residuo,a4-qta-fabbisogno,a4-qta-usata-totaleper il tracciamento dei residui. - Righe placeholder: il programma salta le righe con fonte
"P"(placeholder) durante la scansione dei risultati della lista. - Punti di switch nel codice controllati da
w-flusso-modula-ant:a-elabora: attivazione del flussom1-*(solo se"S")e4-crea-doc:s26-fl-modulacondizionato (se"S", COGS26 NON popola la lista d53)e4-invia-lista-modula: skip se nuovo flusso attivo ("S")
- Attivazione: il valore viene impostato a
"S"solo per operatore 777 (testing). Il default e'"N".