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 dawo-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 inutil-g61e 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.