Vai al contenuto

CRM053 - Ricerca attivita' per stringa

Sorgente: cbl/crm053.cbl | Program-ID: CRM053 | Tipo: Programma interattivo (ricerca full-text attivita' CRM)

Menu: CRM > Operativo > Ricerca Attivita'


Scopo

Ricerca le attivita' CRM (CRMATTIV) che contengono una stringa nel testo dell'oggetto e/o delle note, con filtri accessori per nominativo, periodo, tipo attivita' e dossier/pratica. Il risultato e' mostrato in griglia con la stessa impostazione dell'agenda (CRM051), da cui questo programma e' anche richiamabile (crm053-called = "CRM053-CALLED") passando nominativo, periodo e dossier.

Il cuore della ricerca full-text e' delegato alla subroutine CRMS21, che riceve la stringa e i flag "tipo ricerca" (tutte le parole / ciascuna parola) e "dove cercare" (oggetto / note / entrambe) e produce un file di transito temporaneo (TRAN-CRMS21) con i numeri delle attivita' che soddisfano il criterio. CRM053 scorre poi questo transito e, per ciascuna attivita', applica i filtri residui (periodo, tipo, dossier, cancellate, abilitazioni) e la carica in tabella.

Come in CRM051, gestisce la visibilita' per tipo anagrafica (cli/for/pro/alt) in base al profilo operatore e supporta attivita' con piu' nominativi ("multiplo").

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
CRMATTIV ISAM (k02) Input Attivita' CRM (crt-num, crt-data, crt-data-ese, crt-tip, crt-ope, crt-fl-canc, crt-imp, crt-doc)
CRMATTAN ISAM Input Nominativi collegati all'attivita' (crn-num, crn-ana) - per conteggio nominativi/multiplo
CRMATTNT ISAM Input Note attivita' (cro-num, cro-note) - mostrate nel dettaglio
CRMANAGR ISAM Input Anagrafica nominativi CRM (cra-cod, cra-nome, cra-ana-tip, cra-ana, cra-tip)
CRMTPATT ISAM Input Tipi attivita' (tat-cod, tat-des, tat-fl-imp)
CRMUSERS ISAM Input Utenti CRM (cru-liv, cru-vis-*)
CRMUSRTA ISAM Input Abilitazione utente-tipo attivita'
CRMUSRTC ISAM Input Abilitazione utente-tipologia cliente
CRMDOSAT ISAM Input Attivita'-dossier (dsv-key-tdo, dsv-num, dsv-att)
CRMDOSSR ISAM Input Dossier (dsa-key-tdo, dsa-num, dsa-id)
CRMDOSTP ISAM Input Tipi dossier (dtp-cod, dtp-des)
PRNTOPER ISAM Input Operatori (ptop-cod, ptop-des, ptop-age)
COGGEANA ISAM Input Anagrafica clienti/fornitori (ana-chia, ana-nome)
TRAN-CRMS21 ISAM (k01) Input temp Transito prodotto da CRMS21 con le attivita' che matchano la stringa (trs-crms21-chia1, trs-crms21-att-num); nome file in nf-trs-crms21-name, cancellato in chiusura

Copybook utilizzate

Copybook Descrizione
crm053.select, crm053.fd, crm053.wrk, crm053-01.scr, crm053.prc, crm053.decla Screen Designer
tran-crms21.fd, tran-crms21.cpy, tran-crms21.k01 File di transito CRMS21 (dichiarato manualmente)
feurtab.fd, cogfiles.cpy FEURTAB
k-u10.cpy Costanti COGU10
wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy Working storage standard + griglia + azienda
utilcrms02.cpy, utilcrms12.cpy, utilcrms21.cpy Linkage CRMS02, CRMS12, CRMS21
utilcrm017.cpy, utilcrm060.cpy, utilcrm065.cpy, utilcrm069.cpy, utilcrmk01.cpy, utilcrmk11.cpy Linkage programmi CRM chiamati
utils52.cpy, utilu06.cpy, utilu10.cpy, utilgdad.cpy Linkage COGS52W, COGU06, COGU10W, GRIDADMN
utilncnf.cpy, utilrcnf.cpy Linkage RNEWCONF
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, dtab.cpy, utilgrid.cpy, getdcont.cpy Copybook di fine procedure
crmattiv.k02, tran-crms21.k01 Chiavi secondarie (aggiunte a fine procedure)

Logica

Struttura goto-driven.

  • apri: init, open-files, x99-confi; abilita i tasti (F1 nuova attivita'/configura, F3 conferma, F7 allegato, F8 aiuto/calendario, F9 ricerca avanzata, Sh+F4 griglia, Invio seleziona); gestisce i parametri di chiamata; z-costruisci-controlli; riposiziona i campi tipo/numero dossier se pratica-tipo-num = "T".
  • a4: reset maschera; carica operatore (x-carica-ope) e CRMS12 PREPARA; default tipo ricerca = "tutte le parole", dove = "entrambe"; se chiamato precarica nominativo/periodo/dossier con i relativi controlli visibilita'.
  • a-tm-ricerca-stringa / a-tm-ricerca-tipo / a-tm-ricerca-dove: accept della stringa (obbligatoria) e delle due combo (tipo ricerca T/C, dove E/O/N).
  • a-tm-nom ... a-tm-dsr-num: accept dei filtri opzionali: nominativo (CRMS02 + controlli), periodo (COGS52W), tipo attivita' (F8 = CRM017), tipo/numero dossier (F8 = CRMK01, F9 = CRMK11).
  • a-conferma: x-imposta-conferma valida tutti i campi (inclusa la stringa non vuota) ed esegue z-prepara-grid.
  • a-elabora: chiama a1-carica-attivita; se nessun risultato avvisa e torna al campo stringa; altrimenti costruisce la griglia.
  • z-crms21-ricerca: prepara util-crms21 (op "R", stringa, flag tipo/dove) e chiama CRMS21; se esito positivo salva in nf-trs-crms21-name il nome del transito prodotto.
  • a1-carica-attivita: se CRMS21 non ha prodotto risultati esce; altrimenti apre TRAN-CRMS21 e lo scorre (rdnxt). Per ogni attivita': se e' impostato un nominativo verifica CRMATTAN; rilegge CRMATTIV; applica i filtri periodo (su crt-data-ese), tipo, cancellate (canc-attivita), abilitazione tipo attivita', dossier (CRMDOSAT); se supera i controlli chiama a12-riempi-tm-ele e poi a11-cerca-nominativi per gestire visibilita' e casi multipli.
  • a11-cerca-nominativi: scorre CRMATTAN dell'attivita'; determina se e' "multipla" (piu' nominativi o nominativo diverso da quello filtrato), imposta descrizione nominativo e verifica l'abilitazione via CRMS12 CONTROLLA-NOM (OK se non c'e' nominativo o se ce n'e' almeno uno abilitato).
  • a12-riempi-tm-ele: popola la riga (operatore, date, tipo, descrizione, allegato, flag esecuzione/ritardo, importo se tat-fl-imp = "S").
  • a-accept-grid: F1 nuova attivita' (CRM060), Invio visualizza/modifica (CRM060), F7 allegato (COGU06 per doc "AT..." oppure CRM069), Sh+F4 admin griglia.
  • z-operazioni-accessorie-grid: al movimento cursore mostra le note dell'attivita' corrente (CRMATTNT) nel campo dettaglio.
  • fine / z-chiudi: z-close-files; se presente, chiude e cancella TRAN-CRMS21; exit program.

Configurazioni (RNEWCONF)

Pacchetto "C", gruppo clipot (6 chiavi in x99-confi):

Chiave Variabile Uso
ABILITAZIONE-TIPI-ATTIVITA tm-cfg-abi-tat Se "S" filtra i tipi attivita' abilitati (CRMUSRTA)
RICERCA-STRINGA-ATTIVITA tm-cfg-ricerca-stringa-att Abilitazione ricerca stringa
abilitazione-tipologia tm-cfg-abi-tipologia Se "S" filtra per tipologia cliente (CRMUSRTC)
canc-attivita tm-cfg-canc-att Se <> "D" esclude le attivita' cancellate
pratica-tipo-numerazione tm-cfg-pratica-tipo-num Se "T" abilita e riposiziona i campi tipo/numero dossier
clipot-pratiche (gruppo abilita) tm-cfg-clipot-pratiche Gestione pratiche

CALL

Programma Scopo
CRMS21 Ricerca full-text: produce il transito TRAN-CRMS21 delle attivita' che contengono la stringa
CRMS02 Ricerca/accept nominativo CRM
CRMS12 Prepara operatore / controllo abilitazione operatore-nominativo
CRM017 Aiuto tipo attivita'
CRMK01 Aiuto tipo dossier
CRMK11 Ricerca avanzata dossier
COGS52W Calendario / validazione data
CRM060 Gestione attivita' (inserimento, visualizza/modifica)
CRM069 Visualizzazione allegato attivita'
COGU06 Visualizzazione documento/allegato ("AT...")
COGU10W Formattazione importi/valute
GRIDADMN Gestione griglia
RNEWCONF Lettura configurazioni

Note

  • Uso di PERFORM ... THRU e GO TO (stile legacy).
  • Il transito TRAN-CRMS21 non e' creato da CRM053 ma da CRMS21; CRM053 ne riceve solo il nome (crms21-nf-trs -> nf-trs-crms21-name) e lo apre in input. In chiusura viene chiuso e cancellato solo se il nome e' valorizzato.
  • Il totale importi (tm-tot-imp) e' visibile solo se il tipo attivita' filtrato ha tat-fl-imp = "S"; la visibilita' del campo e' gestita dinamicamente in z-cambia-tm-tot-imp.
  • Programma "gemello" di CRM051 (stesso stile di griglia e stesse subroutine CRM060/CRM069); e' anche richiamato da CRM051 (F6) e CRM070 (F6) per la ricerca per stringa.
  • Il titolo della colonna nominativo in griglia cambia in "Utente"/"Nominativo" a seconda che il filtro nominativo sia impostato.