Vai al contenuto

CRM022 - Allineamento attivita' / destinatari CRM

Funzione

Utilita' di allineamento tra le attivita' CRM (CRMATTIV) e i relativi record di destinatario/operatore interessato (CRMATTOP). Il programma scorre tutte le attivita' presenti e, per ciascuna che non ha almeno un record destinatario collegato, ne crea uno derivandone i dati dalla testata dell'attivita'. Serve a riparare situazioni in cui esistono attivita' "orfane" prive del corrispondente operatore interessato.

  • CRM > Utilita' > All. Attivita'/Destinatari

Tabelle e file principali

Tabella/File Descrizione Accesso
FEURTAB Tabella file aziendali Lettura (rd-azi)
CRMATTIV Attivita' CRM (testata) Lettura sequenziale (st-crmattiv-notmin / rdnxt)
CRMATTOP Operatori/destinatari interessati all'attivita' Lettura (st/rdnxt) e scrittura (wr-crmattop)

Copybook e sottoprogrammi

Elemento Tipo Ruolo
crm022.select / .fd / .wrk / .prc / .decla / -01.scr Screen Definizioni file, working, screen
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy Copybook Working-storage standard
cogazien.cpy Copybook Dati azienda
stato / stato1 / winmsg / grave / opengen / mmmask Copybook Chiusura procedure division / utility maschera

Il programma non effettua CALL a sottoprogrammi esterni: tutta l'elaborazione e' locale su CRMATTIV/CRMATTOP.

Logica principale

  1. Apri: init, controllo abilitazione, lettura azienda, open files, titolo e maschera. Predispone il solo tasto F3 (conferma).
  2. Conferma (F3): azzera i contatori tm-a-l (attivita' lette) e tm-a-a (attivita' allineate/aggiunte), quindi apre la scansione di CRMATTIV con st-crmattiv-notmin e ciclo rdnxt-crmattiv.
  3. Per ogni attivita':
  4. incrementa tm-a-l e lo visualizza a video;
  5. cerca un destinatario con st-crmattop-notmin + rdnxt-crmattop: se esiste gia' un CRMATTOP con crp-num = crt-num, salta all'attivita' successiva;
  6. altrimenti crea un nuovo CRMATTOP valorizzando numero, operatore, tipo, data/ora, data/ora esecuzione, flag esecuzione dalla testata attivita', con flag allarme ed esito impostati a "N", e lo scrive (wr-crmattop);
  7. incrementa tm-a-a e lo visualizza.
  8. Gestione ESC durante l'elaborazione: ogni volta che il contatore delle aggiunte raggiunge un multiplo (unita' = 0) esegue un accept non bloccante (before time 1); se l'utente preme ESC chiede conferma di interruzione e, se confermata, mostra un messaggio informativo e termina.
  9. Fine ciclo (a-99): al termine della scansione chiude e ritorna al chiamante.

Note tecniche

  • Non esiste selezione per periodo o per nominativo: l'allineamento e' massivo su tutte le attivita' presenti in CRMATTIV.
  • Il criterio di "presenza destinatario" e' l'esistenza di almeno un CRMATTOP con lo stesso numero attivita'; non verifica la coerenza dei singoli campi dei destinatari gia' presenti.
  • I nuovi CRMATTOP creati ereditano l'operatore dalla testata attivita' (crt-ope), quindi rappresentano l'operatore che ha generato l'attivita'.
  • I contatori a video (attivita' lette / aggiunte) danno riscontro dell'avanzamento; l'operazione e' interrompibile con ESC.
  • L'operazione e' additiva (solo inserimenti, nessuna cancellazione), quindi ripetibile: una seconda esecuzione non ricrea destinatari gia' presenti.