Vai al contenuto

COGG61 - Centro di Controllo posizioni CA/RMA

Panoramica

Programma "centro di controllo" (dispatcher) per la gestione delle posizioni RMA (Reso Merce Autorizzato, resi/riparazioni clienti e fornitori) e CA (Conto Anticipo). Non gestisce direttamente i dati: presenta una maschera unificata di ricerca (delegata alla finestra WIN107) attraverso cui l'operatore individua una posizione RMA/CA e sceglie un'operazione, quindi COGG61 instrada la chiamata al programma applicativo specializzato (creazione, entrata/gestione, evasione, cancellazione, situazione).

E' il punto di ingresso unico da menu ("Centro di Controllo") della procedura RMA/CA, e funge anche da lancio generalizzato richiamabile da altri programmi tramite il parametro util-g61.

Posizione nel menu

Menu Percorso
Magazzino Posizioni CA/RMA > Centro di Controllo

Struttura del programma

File e tabelle utilizzati

Il programma non dichiara file propri (nessuna SELECT/FD): tutta la persistenza e' delegata ai sottoprogrammi chiamati. La sezione file e' vuota; l'unico stato applicativo e' in working-storage e nelle aree di linkage. La maschera video e' costruita da un testo interno (mm-1, riquadro carattere) e non da una screen di Screens.

Copybook principali

Copybook Descrizione
k-w107.cpy Costanti operazione ritornate da WIN107 (k-w107-ope-new, -creazione, -evasione, -cancellazione, -situazione)
utilw107.cpy Interfaccia della finestra di ricerca WIN107 (util-w107), inclusi chiave RMA e flag operazione
utilw109.cpy / utilw110.cpy Interfacce accessorie (aree WIN109/WIN110)
wstato.cpy / wgrave.cpy / wopenf.cpy / wnscr.cpy Working storage standard (stato verbi, grave, open-files, no-scr)
cogazien.cpy Dati azienda
wcont.cpy / wcont1.cpy Aree di linkage comuni (stringhe)
utilg36.cpy / utilg38.cpy / utilg41.cpy / utilg42.cpy Interfacce dei programmi applicativi RMA/CA chiamati (COGG36/38/41/42)
utilg61.cpy Parametri di chiamata del programma (util-g61, chiave RMA in ingresso)
stato.cpy / stato1.cpy / winmsg.cpy / grave.cpy / util1.cpy / mmmask.cpy Copybook finali di procedura

Chiamate a sottoprogrammi (CALL)

Programma Scopo
WIN107 Finestra di ricerca/selezione posizione RMA/CA; restituisce la chiave individuata e il flag operazione (w107-fl-ope)
COGG36 Creazione (new) o gestione remota (remote-gest) di una posizione RMA/CA
COGG38 Evasione della posizione RMA/CA
COGG41 Situazione della posizione RMA/CA (COGG41-CALLED)
COGG42 Cancellazione della posizione RMA/CA

Parametri di chiamata (util-g61)

Campo Uso Descrizione
g61-caller / g61-called Input Programma chiamante / chiamato (COGG61 per lancio da altro programma)
g61-rma-tip Input Tipo posizione: A = Conto Anticipo, altrimenti cliente
g61-rma-key Input Chiave RMA (testata/riga/dettaglio) da aprire direttamente

Logica di elaborazione

1. Inizializzazione (a000)

Imposta nome programma per errori e help. Se richiamato come COGG61 con tipo A, compone un nome help dedicato (COGG61A). Esegue il controllo abilitazione (ctr-abil) e legge l'azienda (rd-azi). Determina il tipo posizione tm-rmt-tip: se il parametro globale wo-parametro = "A" (o g61-rma-tip = "A") e' Conto Anticipo ("A"), altrimenti cliente (k-ana-tipo-cli). Se chiamato da altro programma (g61-called = COGG61), recupera la chiave RMA da util-g61 per l'apertura diretta.

2. Ricerca posizione (a4 / a-5-ricerche / call-w107)

Inizializza la maschera e la finestra di ricerca (init-w107, tipo cliente di default). Chiama WIN107 (call-w107) passando il flag di continuazione e l'eccezione corrente; WIN107 gestisce l'intera interazione di ricerca (per S/N, per reso, per numero) e restituisce: - la chiave RMA individuata (w107-rma-key); - il flag operazione scelto dall'operatore (w107-fl-ope, es. NC/EC/VC/CC/SC e varianti F/A).

Se l'operatore esce (wesc), il programma termina. Se e' arrivata una chiave in ingresso da chiamante, salta la ricerca e va diretto al dispatch (a-5-go).

3. Dispatch operazione (a-5-go)

In base al primo carattere del flag operazione (wfo-ope) instrada la chiamata:

Operazione (wfo-ope) Costante Programma chiamato
N (nuovo) k-w107-ope-new COGG36 (g36-fun = "new")
E (entrata/creazione) k-w107-ope-creazione COGG36 (g36-fun = "remote-gest")
V (evasione) k-w107-ope-evasione COGG38
C (cancellazione) k-w107-ope-cancellazione COGG42
S (situazione) k-w107-ope-situazione COGG41
altro - messaggio "Operazione non valida!"

Per la creazione nuova (call-g36-new) il secondo carattere del flag (wfo-tip) discrimina il tipo: A = Conto Anticipo, altrimenti cliente. Ogni chiamata passa la chiave RMA (w107-rma-key) e l'anagrafica (w107-ana) al programma specializzato tramite la rispettiva area di linkage (util-g36/g38/g41/g42), e al ritorno esegue cancel del sottoprogramma. Terminata l'operazione, il flusso ritorna in a4 per una nuova ricerca (con fl-continue = "S").

4. Chiusura (fine / z-chiudi)

Esegue cancel "WIN107", chiude la finestra, esegue z-99-exit-program ed esce.

Note tecniche

  • Ruolo di dispatcher: COGG61 non legge/scrive tabelle RMA/CA direttamente; e' un orchestratore che delega la ricerca a WIN107 e le operazioni ai programmi COGG36/COGG38/COGG41/COGG42. La logica applicativa vera risiede in quei moduli.
  • RMA vs CA: lo stesso programma copre resi/riparazioni (RMA clienti/fornitori) e Conto Anticipo (CA); la discriminante e' il tipo A (Conto Anticipo) veicolato da wo-parametro / g61-rma-tip, che si propaga a WIN107 e ai chiamati.
  • Doppio uso: da menu ("Centro di Controllo") parte in ricerca interattiva; come sottoprogramma (g61-called = COGG61) puo' ricevere una chiave RMA gia' pronta in util-g61 e aprirla direttamente, saltando la ricerca.
  • Maschera testuale: a differenza degli altri programmi giri, COGG61 non usa una screen di Screens ma un riquadro carattere interno (mm-1, 22 righe) per la cornice; l'interazione principale e' comunque nella finestra WIN107.
  • Etichetta di menu vs funzione: la voce di menu e' "Centro di Controllo" (Posizioni CA/RMA); la funzione effettiva letta nel sorgente e' il lancio generalizzato/dispatcher della procedura RMA e Conto Anticipo descritto sopra.