CRM051 - Agenda attivita' per nominativo¶
Sorgente: cbl/crm051.cbl | Program-ID: CRM051 | Tipo: Programma interattivo (agenda / griglia attivita' CRM)
Menu: CRM > Operativo > Agenda Nominativo
Scopo¶
E' l'agenda operativa CRM: mostra in griglia le attivita' (CRMATTIV) di un nominativo/anagrafica nel periodo selezionato, con filtri per tipo attivita', operatore, dossier/pratica, divisione e stato workflow. Da qui l'operatore inserisce nuove attivita', le visualizza/modifica, le esegue, le cancella, apre allegati e (se attivo il modulo assistenza) apre la chiamata collegata.
Il programma e' fortemente multi-uso: puo' essere lanciato da menu oppure richiamato da altri programmi (crm051-called = "CRM051-CALLED") passando nominativo, periodo, dossier, operatore filtro e flag di selezione. In modalita' "chiamato con selezione" (w-dc-fl-sel) restituisce al chiamante il numero di attivita' scelto in crm051-o-att senza aprire CRM060. Se il chiamante e' CRMK11 (crm051-caller valorizzato) il codice nominativo viene azzerato per la ricerca ma conservato in w-dc-nom-sav per l'inserimento.
Le attivita' selezionate vengono materializzate in un file di transito indicizzato locale (COGTRANS con tracciato ad hoc, 5 chiavi) per poter essere riordinate e paginate in griglia secondo l'ordinamento scelto (data attivita', data esecuzione, ecc.).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| CRMANAGR | ISAM | Input | Anagrafica nominativi CRM (cra-cod, cra-ana-tip, cra-ana, cra-tip, cra-age) |
| CRMATTIV | ISAM (k02/k04) | Input | Attivita' CRM (crt-num, crt-data, crt-data-ese, crt-tip, crt-ope, crt-fl-ese, crt-fl-canc, crt-imp, crt-doc) - k04 per scansione per tipo |
| CRMATTAN | ISAM (k02) | Input | Nominativi collegati all'attivita' (crn-num, crn-ana, crn-cnd-cod) - k02 per scansione per nominativo/data esecuzione |
| CRMTPATT | ISAM | Input | Tipi attivita' (tat-cod, tat-des, tat-fl-imp) |
| CRMUSERS | ISAM | Input | Utenti CRM: livello e visibilita' cli/for/pro/alt (cru-liv, cru-vis-*) |
| CRMUSRTA | ISAM | Input | Abilitazione utente-tipo attivita' |
| CRMUSRTC | ISAM | Input | Abilitazione utente-tipologia cliente |
| CRMDOSAT | ISAM (k03) | Input | Attivita' collegate a dossier (dsv-key-tdo, dsv-num, dsv-att, dsv-dossier) |
| CRMDOSSR | ISAM | Input | Dossier/pratiche (dsa-*, dsa-importo, dsa-stato, dsa-wkf-id) |
| CRMDOSTP | ISAM | Input | Tipi dossier (dtp-cod, dtp-des) |
| CRMDOSST | ISAM | Input | Stati dossier (dds-stato, dds-stato-part) |
| CRMATTDV | ISAM | Input | Attivita'-divisione (adv-num, adv-div) |
| CRMAGAPP | ISAM | Input | Appuntamenti agenda collegati all'attivita' (agp-att) |
| CRMWKFMV | ISAM (k05) | Input | Movimenti workflow attivita' (wkm-att, wkm-tdo, wkm-cod, wkm-step) |
| CRMWKFST | ISAM | Input | Step workflow (wks-*, wks-ese-autom) |
| CRMATTNT / analoghi | ISAM | Input | Note attivita' (via gestori tabella generati) |
| PRNTOPER | ISAM | Input | Operatori (ptop-cod, ptop-des, ptop-age) |
| COGGEANA | ISAM | Input | Anagrafica clienti/fornitori (ana-chia, ana-nome) |
| COGRIFER | ISAM | Input | Riferimenti/condizioni (rif-tip, rif-cod, rif-nome) |
| ASNINTES | ISAM (k04) | Input | Testate chiamate assistenza (acit-num-att, acit-id-chiamata) - aperto solo se az-assist = "S" |
| COGTRANS (locale) | ISAM (5 chiavi) | I-O temp | File di transito attivita' per ordinamento/paginazione; nome in w-trs-name (dir temp + PID + operatore); cancellato in chiusura |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
crm051.select, crm051.fd, crm051.wrk, crm051-01.scr, crm051.prc, crm051.decla |
Screen Designer |
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 + dati azienda |
utilcrms02.cpy, utilcrms12.cpy |
Linkage CRMS02 (ricerca nominativo), CRMS12 (prepara/controllo operatore-nominativo) |
utilcrm017.cpy, utilcrm053.cpy, utilcrm060.cpy, utilcrm065.cpy, utilcrm068.cpy, utilcrm069.cpy, utilcrmk01.cpy, utilcrmk11.cpy |
Linkage programmi CRM chiamati |
utild34.cpy, utils52.cpy, utilu06.cpy, utilu10.cpy, utilasn110.cpy, utilwp04.cpy |
Linkage COGD34, COGS52W, COGU06, COGU10W, ASN110, WP04 |
utilgdad.cpy, utilgrid.cpy |
Gestione griglia (GRIDADMN) |
utilncnf.cpy, utilrcnf.cpy |
Linkage RNEWCONF |
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, dtab.cpy, getdcont.cpy, sendwp04.cpy |
Copybook di fine procedure |
crmdosat.k03, crmattiv.k02, crmattan.k02, crmwkfmv.k05, crmattiv.k04, cogtrans.k01..k05, asnintes.k04 |
Chiavi secondarie (aggiunte a fine procedure) |
Logica¶
Struttura goto-driven con accept per campo.
- apri: init,
open-files; seaz-assist = "S"apre anche ASNINTES; legge configurazioni (x99-confi); abilita i tasti funzione (F1 nuova attivita'/configura, F3 conferma/aggiorna/modifica, F4 cancella, F6 ricerca stringa, F7 allegato, F8 aiuto/calendario, F9 stampa/ricerca avanzata, Sh+F4 griglia); gestisce i parametri di chiamata (w-dati-called, ricalcolo periodo di default in base aANNI-VISIBILI-DEFAULT); compone il nome del file di transito con dir temp + PID + operatore; carica bitmapclipote crea il pulsante custom "Chiamata (F2)". - a4: (ri)crea il transito COGTRANS (open output + open i-o); inizializza la maschera con default (ordinamento "D", flag attivita'/workflow/sospese); carica operatore (
x-carica-ope: livello, visibilita', divisione),CRMS12 PREPARA; propone come filtro divisione dell'operatore; se chiamato precarica nominativo/periodo/dossier/operatore-filtro e salta aa-elabora. - a-tm-nom ... a-tm-fl-att-wkf-sosp: sequenza di accept dei filtri: nominativo (via CRMS02, con controlli visibilita' tipo anagrafica e
CRMS12 CONTROLLA-NOM), periodo da/a (COGS52W calendario), tipo attivita' (F8 = CRM017), tipo/numero dossier (F8 = CRMK01, F9 = CRMK11), divisione (F8 = COGD34), operatore filtro, ordinamento, flag "attivita'/attivita' workflow/attivita' workflow sospese". F1 su piu' campi richiama RNEWCONF in modifica. - a-conferma:
x-imposta-confermavalida tutti i campi; se OK eseguea-elabora. - a-elabora: azzera i totali, ricrea il transito e chiama
a1-carica-attivita; poiz-carica-vari,z-costruisci-grid. - a1-carica-attivita: sceglie la strategia di scansione:
- nominativo=0 e dossier valorizzato ->
carica-dossr(scansione CRMDOSAT del dossier); - nominativo=0 e nessun dossier ->
carica-tipo-attivita(scansione CRMATTIV per tipo, k04); - nominativo valorizzato -> scansione CRMATTAN (k02) all'indietro (
rdprv) su nominativo/data esecuzione, con eventuale filtro dossier via CRMDOSAT. Ogni attivita' candidata passa percarica-attivita. - carica-attivita: applica i filtri (tipo, operatore, cancellate, periodo su
crt-data-ese, abilitazione tipo attivita', workflow viactrl-wkf/ctrl-wkf-att/ctrl-stato, divisione via CRMATTDV) e, se supera tutti, scrive il record nel transito COGTRANS calcolando i campi "rovesciati" (99999999 - data, ecc.) per gli ordinamenti discendenti. - a1-30 / ciclo-trs: riscorre COGTRANS secondo la chiave scelta da
tm-ord(chia2..chia5) e, per ogni record, rilegge CRMATTIV e chiamaa12-riempi-tm-eleper popolare l'elemento di tabella; poia11-cerca-nominativigestisce i casi di attivita' con piu' nominativi. - a12-riempi-tm-ele: popola la riga (operatore, date, tipo, descrizione, allegato, flag ritardo confrontando con data/ora di sistema, importo se
tat-fl-imp = "S", presenza appuntamento agenda viacerca-se-agenda, dossier/workflow viacerca-dossier, nominativo/condizione, ID chiamata assistenza da ASNINTES seaz-assist = "S"). - a-accept-grid: gestione tasti sulla griglia: F1 nuova attivita' (CRM060), Invio visualizza/modifica (CRM060, o ritorno a chiamante se selezione), F7/Sh+F7 allegato (COGU06 per doc "AT..." oppure CRM069), F6 ricerca stringa (CRM053), F4 cancella (CRM060 op "Cancella" + rimozione dalla tabella), Sh+F4 admin griglia, F9 (CRM068), F2 apri chiamata assistenza (ASN110), F3 aggiorna/esegui (CRM065 se gia' eseguita, altrimenti CRM060 op "Aggiorna", con Modify-Record in griglia).
- fine / z-chiudi:
z-close-files, chiude ASNINTES se aperto, chiude e cancella il transito COGTRANS,exit program.
Configurazioni (RNEWCONF)¶
Pacchetto "C" (9 chiavi in x99-confi):
| Gruppo | Chiave | Variabile | Uso |
|---|---|---|---|
| clipot | ABILITAZIONE-TIPI-ATTIVITA | tm-cfg-abi-tat |
Se "S" filtra i tipi attivita' abilitati all'operatore (CRMUSRTA) |
| clipot | RICERCA-STRINGA-ATTIVITA | tm-cfg-ricerca-stringa-att |
Abilita il tasto F6 = ricerca per stringa (CRM053) |
| clipot | abilitazione-tipologia | tm-cfg-abi-tipologia |
Se "S" filtra per tipologia cliente abilitata (CRMUSRTC) |
| clipot | canc-attivita | tm-cfg-canc-att |
Se <> "D" esclude le attivita' cancellate |
| clipot | pratica-tipo-numerazione | tm-cfg-pratica-tipo-num |
Se "T" abilita e riposiziona i campi tipo/numero dossier |
| abilita | clipot-pratiche | tm-cfg-clipot-pratiche |
Abilita gestione pratiche in ricerca nominativo (CRMS02 i-exit) |
| abilita | clipot-workflow | tm-cfg-clipot-workflow |
Gestione workflow |
| CLIPOT | GESTIONE-DIVISIONE | tm-cfg-gest-divisione |
Se "S" abilita il filtro per divisione (CRMATTDV) |
| PROGCRM051 | ANNI-VISIBILI-DEFAULT | tm-cfg-anni-visibili |
Anni indietro proposti come periodo di default |
CALL¶
| Programma | Scopo |
|---|---|
CRMS02 |
Ricerca/accept nominativo CRM |
CRMS12 |
Prepara contesto operatore e controllo abilitazione operatore-nominativo (PREPARA / CONTROLLA-NOM) |
CRM017 |
Aiuto tipo attivita' |
CRMK01 |
Aiuto tipo dossier |
CRMK11 |
Ricerca avanzata dossier/pratiche |
COGD34 |
Aiuto/ricerca divisione |
COGS52W |
Calendario / validazione data |
CRM060 |
Gestione attivita' (inserimento, visualizza/modifica, aggiorna, cancella) |
CRM065 |
Esecuzione attivita' gia' eseguita |
CRM068 |
Funzione su attivita' (F9) |
CRM069 |
Visualizzazione allegato attivita' |
COGU06 |
Visualizzazione documento/allegato ("AT...") |
ASN110 |
Apertura chiamata assistenza collegata (F2) |
COGU10W |
Formattazione importi/valute |
GRIDADMN |
Gestione griglia |
RNEWCONF |
Lettura configurazioni |
Note¶
- Uso estensivo di
PERFORM ... THRUeGO TO(stile legacy pre-convenzioni attuali). - Il file di transito e' un COGTRANS con tracciato locale ridefinito nel SELECT/FD del programma (non la COGTRANS standard di magazzino): 5 chiavi con campi "rovesciati" per ordinare in senso discendente. Nome univoco per operatore/PID nella dir temporanea; viene ricreato ad ogni
a4/a-elaborae cancellato in chiusura. - Le date "rovesciate" (
trs-data-rov = 99999999 - trs-data, ecc.) servono a ottenere ordinamenti discendenti sfruttando chiavi ISAM ascendenti. - Il flag ritardo (
tm-fl-ritardo) marca in rosso in griglia le attivita' non eseguite con data/ora anteriore all'orologio di sistema. - La visibilita' delle attivita' dipende dal livello operatore e dai flag
cru-vis-for/cli/pro/alt: un'attivita' con nominativo non visibile all'operatore viene scartata; il controllo e' replicato incontrolla-nom(scansione dei nominativi collegati) e in fase di accept del filtro nominativo. - L'integrazione con l'assistenza (ASNINTES/ASN110) e' condizionata a
az-assist = "S"; il pulsante "Chiamata (F2)" e' visibile solo quando la riga ha un ID chiamata.