Vai al contenuto

CRM074 - Estrazione appuntamenti (gestione campagne)

Funzione

Estrazione e visualizzazione a griglia degli appuntamenti generati dalle campagne CRM (telemarketing). Il programma legge le attivita' di tipo "appuntamento" collegate ai dossier di campagna (CRMDOSAT), le arricchisce con i dati di nominativo, referente, recapiti (telefono/fax/email), ruolo e categoria letti dalle informazioni CRM, le materializza in un file di transito temporaneo (COGTRANS) e le mostra in una griglia paginata con possibilita' di ordinamento su qualsiasi colonna ed esportazione in Excel.

L'etichetta di menu e' "Report appuntamenti", ma il titolo maschera impostato dal programma e' "Estrazione appuntamenti": la funzione reale e' un'estrazione interattiva a griglia (con salvataggio/richiamo delle impostazioni predefinite), non la produzione di un report cartaceo.

  • CRM > Telemarketing > Report appuntamenti

Tabelle e file principali

Tabella/File Descrizione Accesso
FEURTAB Tabella file aziendali Lettura (rd-azi)
CRMDOSAT Attivita' collegate ai dossier di campagna Lettura sequenziale (st/rdnxt)
CRMDOSSR Testata dossier/campagna Lettura (chiave primaria e k02)
CRMATTIV Attivita' CRM Lettura (rd-crmattiv), filtro su tipo appuntamento e data esecuzione
CRMATTAN Nominativi interessati all'attivita' Lettura (st/rdnxt, k02)
CRMATTOP Operatori interessati all'attivita' Lettura (st/rdnxt, k02)
CRMATTNT Note attivita' Lettura (rd-crmattnt)
CRMANAGR Anagrafica nominativi CRM Lettura (rd-crmanagr)
PRNTOPER Anagrafica operatori Lettura (rd-prntoper)
COGTRANS File di transito temporaneo per la griglia Output/I-O, delete a fine programma

COGTRANS e' un file indicizzato temporaneo dichiarato manualmente nel sorgente (SELECT/FD espliciti), con nome dinamico #$trscrm074.<operatore> nella cartella temporanea (ext-tmp-dir). Chiave primaria trs-chia1, chiave alternata duplicata trs-chia2 (usata per l'ordinamento variabile). L'apertura in output con stato 93 segnala che la funzione e' gia' in uso dallo stesso operatore.

Copybook e sottoprogrammi

Elemento Tipo Ruolo
crm074.select / .fd / .wrk / .tm / .prc / .decla / -01.scr Screen Definizioni file, working, screen
crm074.imppredf-wrk / .imppredf Copybook Salvataggio/richiamo impostazioni predefinite
k-u10.cpy, k-tipi-cogtabel.cpy Copybook Costanti
wgrid.cpy, utilgdad.cpy, utilpggr.cpy, fscrol2.cpy Copybook Gestione griglia paginata
utils52.cpy, utils65.cpy Copybook Controlli data (calendario)
utilcrmk11.cpy Copybook Parametri selezione dossier/campagna (CRMK11)
utilcrms13.cpy, utilcrms06.cpy Copybook Servizi CRM (CRMS06: lettura informazioni nominativo)
utilwp04.cpy, sendwp04.cpy Copybook Selezione operatore (WP04)
utilncnf.cpy Copybook Lettura configurazioni RNEWCONF
utilimppredf.cpy Copybook Impostazioni predefinite
utilu10.cpy, dtab.cpy Copybook Utility comuni
cogtrans.k01/.k02, crmdossr.k02, crmattiv.k02, crmattop.k02, crmdosat.k03 Copybook chiavi Chiavi primarie/secondarie
CRMK11 Sottoprogramma Ricerca/selezione dossier di campagna
CRMS06 Sottoprogramma Lettura del valore di una informazione CRM per nominativo
GRIDADMN Sottoprogramma Gestione/personalizzazione griglia
RNEWCONF Sottoprogramma Lettura configurazioni
DTPRG / PRGDT Sottoprogrammi Conversione data/progressivo per calcolo periodi

Configurazioni RNEWCONF (gruppo crm-camp)

Il paragrafo x99-confi legge in un'unica chiamata a RNEWCONF le chiavi del gruppo crm-camp:

  • gestione-campagne: se diverso da "S" il programma si blocca (abilitato solo a gestione campagne).
  • tip-att-appuntamento: tipologia attivita' considerata "appuntamento" (filtro su crt-tip).
  • inf-telefono, inf-fax, inf-email, inf-categoria: id informazione CRM per recapiti e categoria.
  • inf-ref-imp-cognome/nome/ruolo, inf-ref-acc-cognome/nome/ruolo: id informazione per il referente (implicito e accompagnatore).

Logica principale

  1. Apri: init, controllo abilitazione, lettura azienda, open files. Verifica tm-cfg-gestione-campagne = "S", altrimenti box di errore e fine.
  2. Impostazioni predefinite: carica i default (z-imppredf-carica-default); pulsanti custom CTRL-S (salva impostazione) e CTRL-F (cerca impostazione).
  3. Pagina 1 - filtri: accept di ID dossier/campagna (con lookup CRMDOSSR e ricerca via CRMK11 su F9), periodo di esecuzione (radio con calcolo automatico di intervalli relativi tramite DTPRG/PRGDT), date "dal/al". Controllo di coerenza date (da <= a).
  4. Elaborazione (F7 / F3): carica-file -> tratta-altri-casi scorre CRMDOSAT (filtrato per dossier se indicato). Per ogni attivita':
  5. legge CRMATTIV e filtra per tipo appuntamento e periodo di esecuzione;
  6. legge testata dossier (CRMDOSSR), nominativo interessato (CRMATTAN -> CRMANAGR), operatore/note (CRMATTOP -> CRMATTNT, PRNTOPER);
  7. via CRMS06 legge telefono, fax, email, categoria e i dati del referente (prima accompagnatore, poi implicito come fallback);
  8. scrive il record in COGTRANS (scrivi-cogtrans). Se e' attivo un ordinamento (w-ordinamento), valorizza filler-x della chiave alternata con la colonna scelta, cosi' che la rilettura per chia2 produca l'ordine.
  9. Pagina 2 - griglia: carica-tab riempie la griglia paginata leggendo COGTRANS per chiave alternata (spaginamento avanti/indietro con PgUp/PgDn). Menu contestuale "Ordina sulla colonna..." (evento 151): rileggendo la cella selezionata reimposta w-ordinamento e rilancia l'elaborazione.
  10. Esportazione: SF5 esporta la griglia in Excel (z-esporta-paged-grid); SF4 apre l'amministrazione griglia (GRIDADMN).
  11. Chiusura: chiude e cancella il file di transito COGTRANS.

Note tecniche

  • Il file di transito e' per-operatore: il nome include wo-oper, e l'apertura in output con stato 93 impedisce l'uso concorrente dalla stessa utenza.
  • Il programma usa PERFORM ... THRU e diversi GO TO (stile legacy del modulo, ripreso da COGV39): non conforme alle convenzioni attuali del codebase, da non usare come modello per nuovi sviluppi.
  • La colonna "Campagna descrizione" (grd-campagna-des) e' in realta' valorizzata con operatore di inserimento + data di inserimento dell'attivita' (il codice che leggeva la descrizione dossier e' commentato).
  • L'ordinamento non e' un sort in memoria ma una riscrittura del transito con chiave alternata pilotata dalla colonna scelta.
  • Il periodo di esecuzione supporta valori relativi (oggi, ultima settimana, ultimo mese, mese/anno corrente, ultimo anno, prossimi 7/30 giorni, mese in corso) calcolati con DTPRG/PRGDT.