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 sepratica-tipo-num = "T". - a4: reset maschera; carica operatore (
x-carica-ope) eCRMS12 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-confermavalida tutti i campi (inclusa la stringa non vuota) ed eseguez-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 innf-trs-crms21-nameil 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 (sucrt-data-ese), tipo, cancellate (canc-attivita), abilitazione tipo attivita', dossier (CRMDOSAT); se supera i controlli chiamaa12-riempi-tm-elee poia11-cerca-nominativiper 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 ... THRUeGO 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 hatat-fl-imp = "S"; la visibilita' del campo e' gestita dinamicamente inz-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.