COGM102 - Caricamento Dati Commesse da Merlino¶
Sorgente: cbl/cogm102.cbl | Tipo: Programma batch interattivo | Program-ID: COGM102
Menu:
- Vendite > Commesse > Importazioni & Esportazioni > Caricamento Dati
Scopo¶
Importazione delle commesse, sottocommesse e tipologie di commessa dal programma esterno Merlino (Eurosystem2000). Legge tre file sequenziali configurati tramite RNEWCONF e aggiorna le tabelle COGTESCM (testate commesse), COGSOTCM (sottocommesse) e COGTABEL (tipologie).
Riservato alle aziende con az-commesse = "M" (modulo commesse Merlino).
Interfaccia utente¶
Maschera (tab-maschera)¶
| Campo | Tipo | Descrizione |
|---|---|---|
| tm-pac | X(01) | Tipo elaborazione (non utilizzato attivamente) |
| tm-rec-rd | 9(08) | Contatore record letti |
| tm-rec-da-canc | 9(08) | Contatore record da cancellare (non utilizzato) |
| tm-rec-wr | 9(08) | Contatore record scritti/aggiornati |
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F3 | Conferma e avvia elaborazione |
| ESC | Esce |
File e tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella parametri generali |
| COGTESCM | cogm102.fd | Testate commesse (tabella aggiornata) |
| COGSOTCM | cogm102.fd | Sottocommesse (tabella aggiornata) |
| COGTABEL | cogm102.fd | Tabelle generiche, tipo "A1" per tipologie commessa |
| INPFIL | -- | File sequenziale testate commesse |
| INPFIL2 | -- | File sequenziale sottocommesse |
| INPFIL3 | -- | File sequenziale tipologie commessa |
Struttura file di input¶
INPFIL (testate commesse):
| Campo | Tipo | Descrizione |
|---|---|---|
| seq-cod-com | 9(10) | Codice commessa |
| seq-dat-open | GG/MM/AAAA | Data apertura |
| seq-dat-close | GG/MM/AAAA | Data chiusura |
| seq-progetto | X(30) | Progetto (mappato su tsc-des-breve) |
| seq-des-com | X(60) | Descrizione commessa |
| seq-ana | X(01)+9(05) | Tipo anagrafica + codice (es. C12345) |
| seq-dat-acq | GG/MM/AAAA | Data acquisizione |
| seq-dat-cnt | GG/MM/AAAA | Data contratto |
| seq-stato | X(01) | Stato commessa |
| seq-tipo | X(01) | Tipo commessa |
INPFIL2 (sottocommesse):
| Campo | Tipo | Descrizione |
|---|---|---|
| seq2-sot-cod | 9(10) | Codice sottocommessa |
| seq2-des | X(50) | Descrizione |
INPFIL3 (tipologie):
| Campo | Tipo | Descrizione |
|---|---|---|
| seq3-tip-cod | X(01) | Codice tipologia |
| seq3-tip-des | X(40) | Descrizione tipologia |
Configurazione (RNEWCONF)¶
| Chiave | Descrizione |
|---|---|
| M102:FILE OUTPUT MERLINO | Percorso file testate commesse |
| M102:FILE OUTPUT2 MERLINO | Percorso file sottocommesse |
| M102:FILE OUTPUT3 MERLINO | Percorso file tipologie commessa |
File di configurazione: MERCI.CNF, pacchetto "C".
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazione percorsi file |
Copybook principali¶
cogm102.select,cogm102.fd,cogm102.wrk,cogm102.prc,cogm102.decla,cogm102-01.scr-- Screenscogazien.cpy-- Dati azienda (az-commesse per verifica modulo)utilncnf.cpy-- Interfaccia RNEWCONF
Logica di elaborazione¶
Flusso principale¶
- Verifica az-commesse = "M"; se diverso, messaggio di errore e uscita
- Lettura configurazione percorsi file via RNEWCONF
- Conferma utente
- Fase 1: caricamento testate commesse (
b-elabora) - Fase 2: caricamento sottocommesse (
b-elabora2) - Fase 3: caricamento tipologie (
b-elabora3)
Fase 1: Testate commesse (b-elabora)¶
Per ogni riga del file INPFIL:
- Legge COGTESCM per codice commessa
- Se non esiste: inizializza tsc-dati, popola con fill-dati, esegue WR
- Se esiste: popola con fill-dati, esegue RWR
fill-dati (mapping campi):
- Se seq-ana-cod != 0: imposta tsc-ana-tip = k-ana-tipo-cli, tsc-ana-cod = seq-ana-cod
- Date (apertura, chiusura, acquisizione, contratto): importate solo se anno numerico e > 0
- seq-des-com -> tsc-des-breve (solo se non vuoto)
- seq-stato -> tsc-stato (solo se non vuoto e stato attuale != "D")
- seq-tipo -> tsc-tipo (solo se presente nella tabella COGTABEL tipo "A1")
Fase 2: Sottocommesse (b-elabora2)¶
Per ogni riga del file INPFIL2:
- Legge COGSOTCM per codice
- Se esiste: aggiorna descrizione, RWR
- Se non esiste: imposta descrizione, stato = "A", flag chiamata = "N", WR
Fase 3: Tipologie (b-elabora3)¶
Per ogni riga del file INPFIL3:
- Legge COGTABEL con tipo = k-euta-tipo-x-commessa ("A1") e codice = seq3-tip-cod
- Se non esiste: WR con la descrizione
- Se esiste: aggiorna descrizione, RWR
Gestione errori¶
In tutte e tre le fasi, se la scrittura/riscrittura fallisce il programma mostra un messaggio di errore con stato e chiave, ma prosegue con il record successivo.
Note¶
- Le tabelle COGTESCM e COGSOTCM vengono riaperte in modalita' "U" (update) prima dell'elaborazione per garantire l'accesso esclusivo.
- La costante k-euta-tipo-x-commessa = "A1" identifica le tipologie commessa nella tabella generica COGTABEL.
- Lo stato "D" (dismessa) sulle commesse esistenti non viene sovrascritto dall'importazione.
- I file INPFIL/INPFIL2/INPFIL3 sono di tipo line sequential; i nomi sono letti dalla configurazione e assegnati direttamente alle variabili di ASSIGN.
Documentazione tecnica -- 2026-05-01