Vai al contenuto

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; se az-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 a ANNI-VISIBILI-DEFAULT); compone il nome del file di transito con dir temp + PID + operatore; carica bitmap clipot e 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 a a-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-conferma valida tutti i campi; se OK esegue a-elabora.
  • a-elabora: azzera i totali, ricrea il transito e chiama a1-carica-attivita; poi z-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 per carica-attivita.
  • carica-attivita: applica i filtri (tipo, operatore, cancellate, periodo su crt-data-ese, abilitazione tipo attivita', workflow via ctrl-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 chiama a12-riempi-tm-ele per popolare l'elemento di tabella; poi a11-cerca-nominativi gestisce 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 via cerca-se-agenda, dossier/workflow via cerca-dossier, nominativo/condizione, ID chiamata assistenza da ASNINTES se az-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 ... THRU e GO 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-elabora e 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 in controlla-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.