Panoramica
COGNA2 stampa il modello documentale (reclamo / non conformita' / azione correttiva) di una richiesta di non conformita'. E' un programma con maschera GUI minimale (richiesta di un solo campo, l'ID richiesta/reclamo) e produzione del documento tramite modello Word (WORDMDL): a partire dall'ID richiesta legge la testata e il dettaglio della non conformita' e i dati collegati (controparte, documento di origine, scheda CRM), genera un file XML dei dati, lo fonde con il modello risolto da COGPA3 producendo un PDF, che viene poi archiviato nel dossier reclamo (ed eventualmente collegato al dossier ordine) tramite CRMS10. Puo' essere avviato interattivamente dal menu oppure richiamato da un altro programma tramite il copybook di linkage utilcogna2.cpy (con cogna2-called = "COGNA2-CALLED" e cogna2-id-richiesta), nel qual caso stampa direttamente l'ID ricevuto e termina.
| Menu |
Percorso |
| Vendite |
Non conformita' > Stampa modelli |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
| COGNCTES |
Indexed |
Testata richiesta non conformita' / reclamo (chiave nct-id): dossier, controparte, documento collegato, causale, esito, importi |
| COGNCDET |
Indexed |
Dettaglio righe non conformita' (scansione per ncd-id) |
| COGGEANA |
Indexed |
Anagrafica controparte (cliente/fornitore) per ragione sociale e indirizzo |
| COGMERCI |
Indexed |
Anagrafica merci (descrizione, codici) per le righe di dettaglio |
| COGTESOR / COGRIGOR |
Indexed |
Testata/righe ordine collegato (tor/ror) per numero documento controparte e quantita' ordinata |
| COGTABEL / FEURTAB |
Indexed |
Tabelle generiche: causali (tipo 15) e altre codifiche |
| COGRACMC |
Indexed |
Raggruppamento merceologico avanzato (codice CMA), letto per chiave secondaria (cogracmc.k02) |
| TGLDISEG |
Indexed |
Associazione merce/disegno, letta per chiave terziaria (tgldiseg.k03) |
| CRM* (CRMDOSAT, CRMATTIV, CRMSKINF, CRMINFOR, CRMANANN, CRMANANF, CRMINFTR) |
Indexed |
Dossier/attivita'/scheda informazioni CRM del reclamo, per azioni intraprese e note |
| PRNTOPER |
Indexed |
Anagrafica operatori (descrizione operatore) |
Copybook principali
| Copybook |
Descrizione |
| cogna2.select/.fd/.wrk/.prc/.decla/cogna2-01.scr |
Definizioni generate da Screens |
| utilcogna2.cpy |
Area di linkage per l'invocazione da altro programma (called/caller/id-richiesta) |
| utilcogpa3.cpy |
Interfaccia a COGPA3 per la risoluzione del modello e delle tabelle (TAB-DET) |
| utilwordmdl.cpy |
Interfaccia a WORDMDL per generazione XML/esecuzione modello e salvataggio PDF |
| utilcrms10.cpy / utilcrms06.cpy |
Interfacce a CRMS10 (archiviazione/collegamento documenti a dossier) e CRMS06 (formattazione informazioni scheda) |
| utilcogna1.cpy |
Interfaccia a COGNA1 (ricerca avanzata reclamo, tasto F9) |
| costanti-assist.cpy / costanti-tipi-documento.cpy |
Costanti tipi informazione CRM e tipi documento |
| utilgesstr.cpy / utilopenfile.cpy / l-copiaf.cpy / u-copiaf.cpy |
Interfacce a GESSTR (trim), OPENFILE (apertura file), COPIAF (cancellazione file) |
| utilncnf.cpy |
Lettura configurazioni RNEWCONF |
| utilu10.cpy / utilu20.cpy |
Edit numerici (COGU10W / COGU20W) |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
| RNEWCONF |
Lettura configurazioni: tipo attivita' risposta e tipo scheda reclamo (gruppo nonconf), path apri file (gruppo ARC-OTT) |
| COGPA3 |
Risoluzione del modello Word "COGNA2" e delle tabelle di composizione (TAB-DET) |
| WORDMDL |
Apertura/scrittura/chiusura file XML, fusione con il modello ed esecuzione (produzione PDF) |
| CRMS10 |
Archiviazione del PDF prodotto nel dossier reclamo ("ALLEGA-DOC") ed eventuale collegamento al dossier ordine ("COLLEGA-DOC") |
| CRMS06 |
Formattazione dei valori delle informazioni scheda CRM di tipo check |
| COGNA1 |
Ricerca avanzata del reclamo (attivata con F9 sul campo ID) |
| COGU20W |
Edit dei valori numerici delle informazioni scheda |
| GESSTR |
Trim-left dell'ID reclamo per la descrizione documento |
| OPENFILE |
Apertura sincrona del documento archiviato |
| COPIAF |
Cancellazione del file temporaneo dopo l'archiviazione |
Logica di elaborazione
apri / main - Inizializzazione: ctr-abil, z-99-init-program, open-files, rd-azi, lettura configurazioni (x99-load-config). Rileva l'invocazione da altro programma (cogna2-called = "COGNA2-CALLED"): in tal caso imposta w-dc-called = "S", copia cogna2-id-richiesta in tm-id, verifica la testata (rd-cognctes) e salta a a-avanti.
a4 - In modalita' interattiva prepara la maschera "Stampa modelli non conformita'" e i controlli.
a-tm-id - Accept dell'ID richiesta/reclamo con controlli. Sono disponibili F1 (modifica configurazioni), F9 (ricerca avanzata via COGNA1 che restituisce cogna1-id-reclamo) e F8 (aiuto). x-controlla-tm-id verifica l'esistenza della testata su COGNCTES.
a-fine-chiave / a-avanti - Valida la chiave ed esegue stampa; al termine, se richiamato esce, altrimenti torna a a4.
stampa - Chiama COGS54 per la stampante/emulazione, poi COGPA3 per risolvere il modello Word "COGNA2" e gli indici delle tabelle (TAB-DET). Apre il file XML (WORDMDL "Apri-XML") in ext-mod-dir. Rilegge testata (COGNCTES) e anagrafica controparte (COGGEANA), poi emette una lunga serie di tag XML (via scrivi-tag): ID e date reclamo/NC/azione correttiva, tipo e chiave documento collegato, dati controparte, operatore inseritore (PRNTOPER), azioni intraprese (scansione CRMDOSAT/CRMATTIV filtrata sul tipo attivita' risposta configurato), esito, causale (COGTABEL tipo 15), importo addebitato, riferimento documento di rifacimento.
- Sezione scheda CRM (
stampa-sk-inf / stampa-sk-inf-note) - Se configurato un tipo scheda reclamo, scandisce CRMSKINF e per ogni informazione emette il relativo tag; le note provengono da CRMANANN, gli altri valori da CRMANANF con formattazione per tipo (alfa, data, check via CRMS06, tabella via CRMINFTR, numero via COGU20W).
b5-estrai-tab-det / b5-riga-standard - Estrae il dettaglio delle non conformita' da COGNCDET (loop su ncd-id); per ogni riga legge merce (COGMERCI), CMA (COGRACMC), disegno (TGLDISEG) e quantita' ordinata (COGRIGOR), ed emette la riga della tabella TAB-DET con colonne configurabili (RIGA, DIS, MI, MA, MD, QORD, QREC, QRIF, QRIP).
- Chiusura XML ed esecuzione modello - WORDMDL "Chiudi-XML" e poi "Esegui" con
wordmdl-save-as che compone il nome del PDF (COGNA2_<data>_<ora>.pdf) nel path configurato; il PDF non viene stampato ma prodotto in background (wordmdl-fl-stampa = "N").
- Archiviazione - Determina il tipo documento per l'archiviazione (
w-all-id = RC/NC/AC in base al contenuto della descrizione modello, altrimenti "GEN" con avviso). Chiama CRMS10 "ALLEGA-DOC" per archiviare il PDF nel dossier reclamo (nct-dossier-nc) e, se presente un documento collegato (nct-dd-num > 0), CRMS10 "COLLEGA-DOC" verso il dossier ordine (nct-dossier-doc). Infine apre il documento archiviato (OPENFILE) e cancella il file temporaneo (COPIAF "delete").
fine / z-chiudi - Chiude i file, cancel di CRMS10, chiude la finestra ed esce.
Note tecniche
- Configurazioni RNEWCONF (pacchetto "C", gruppo
nonconf): tip-att-risposta (tipo attivita' considerata "risposta/mail" per la sezione azioni), tipo-scheda-reclamo (tipo scheda CRM da cui estrarre le informazioni); gruppo ARC-OTT: PATH-APRI-FILE (cartella lato client dove salvare il PDF).
- Il documento e' prodotto sempre in formato PDF via modello Word (WORDMDL): non esiste ramo di stampa testuale.
- L'ID del "tipo documento" per l'archiviazione (RC/NC/AC/GEN) e' dedotto euristicamente dal testo della descrizione modello (
cogpa3-des-modello), cercando le stringhe "RECLAMO", "NON C", "AZIONE".
- Il file XML intermedio viene generato in
ext-mod-dir con nome per operatore (cogna2_<wo-oper>.txt).
- Il programma usa numerose chiavi secondarie/terziarie incluse manualmente in coda (
cogracmc.k02, tgldiseg.k03).
- Discrepanza etichetta/funzione: nessuna. L'etichetta "Stampa modelli" corrisponde alla produzione e archiviazione del modello documentale della non conformita'/reclamo.