Vai al contenuto

ASN02D - Copia scheda da CRM

Sorgente: cbl/asn02d.cbl (984 righe) | Tipo: Programma interattivo di importazione massiva (senza griglia), con file di transito

Menu: Assist 2.0 > Archivi > Strumenti > Copia scheda da CRM


Scopo

Copia una scheda/check-list configurata nel CRM (identificata da una tipologia CRM, CRMTIPCL/CRMSKPAG/CRMSKINF) su un modello di check-list Assist (ASNSKMOD/ASNSKPAG/ASNSKINF), rigenerandone pagine, informazioni e strutture collegate.

L'operatore indica il modello di destinazione, la tipologia CRM di origine e se collegare le informazioni al CRM (per il riporto/sincronizzazione). Alla conferma il programma cancella la configurazione esistente del modello e la ricrea a partire dalla scheda CRM, importando anche gruppi informazioni, tabelle, valori fissi e testi di help, con conversione dei testi tramite GESSTR.

Le informazioni di tipo Fascicolo ("F") e Nominativo ("M") non vengono duplicate; se presenti, a fine importazione viene mostrato un avviso.


Interfaccia (linkage)

procedure division using stringhe (aree standard wcont/wcont1). Programma standalone da menu.

File acceduti

Origine CRM (lettura)

File Copybook Uso
CRMTIPCL tcl-rec Tipologia CRM: validazione codice (tcl-cod) e descrizione (tcl-des)
CRMSKPAG skp-rec Pagine della scheda CRM: origine delle pagine da importare (chiave per skp-tcl)
CRMSKINF ski-rec Informazioni della scheda CRM: origine delle informazioni per pagina (chiave per ski-tcl)
CRMINFOR ipt-rec Anagrafica informazione CRM: tipo (ipt-tip), gruppo, tabella, lunghezze, descrizione
CRMINFGR igr-rec Gruppo informazioni CRM (per crearlo su Assist se mancante)
CRMINFTT itt-rec Testata tabella informazione (tipo "T")
CRMINFTR itr-rec Righe tabella informazione
CRMINFVF ivf-rec Valori fissi dell'informazione (tipo "V")
CRMINFDS ids-rec Testo di help/descrizione estesa dell'informazione (lingua "ITA")

Destinazione Assist (scrittura/aggiornamento)

File Copybook Scrittura
ASNSKMOD askm-rec Modello check-list di destinazione: sola validazione (askm-cod, askm-des)
ASNSKPAG askp-rec Pagine del modello: cancellazione preventiva e riscrittura da CRMSKPAG. Chiave secondaria asnskpag.k02
ASNSKINF aski-rec Informazioni del modello: cancellazione preventiva e riscrittura da CRMSKINF (escluse tipo F/M)
ASNINFOR ainf-rec Anagrafica informazioni Assist: nuova informazione creata quando non esiste corrispondenza. Chiave secondaria asninfor.k02
ASNINFGR aigr-rec Gruppo informazioni Assist (creato da CRMINFGR se assente)
ASNINFTT aitt-rec Testata tabella informazione Assist
ASNINFTR aitr-rec Righe tabella informazione Assist (cancellate e ricreate)
ASNINFVF aivf-rec Valori fissi Assist (cancellati e ricreati)
ASNINFDS aids-rec Help/descrizione estesa Assist

Transito

File Scopo
cogtrans (dichiarata manualmente nel sorgente) Mappa delle informazioni gia' esistenti sul modello prima della cancellazione: per ogni ASNSKINF con aski-ipt-num-sincro > 0 memorizza ipt-num-sincro, inf e fl-riporta. Serve a riassociare, in fase di reimportazione, il numero informazione Assist gia' presente (importazione-asninfor), evitando duplicazioni. File temporaneo #$asn02d.<oper>, cancellato in chiusura

Chiavi secondarie

  • asnskpag.k02
  • asninfor.k02
  • cogtrans.k01

Il record cogtrans e' dichiarato manualmente (trs-chia1 = trs-aski-ipt-num-sincro, piu' trs-aski-inf e trs-aski-fl-riporta), secondo la convenzione per le tabelle di transito.

Programmi chiamati

Programma Operazione Scopo
ASN029 (lookup modello) F8 sul campo modello: ricerca/selezione modello check-list (asn029-out-cod)
CRM010 CRM010-CALLED F8 sul campo tipologia: ricerca/selezione tipologia CRM (crm010-out-cod)
GESSTR CONV-TESTO-IMPORTATO Conversione dei testi importati dal CRM (descrizioni informazioni, righe tabella, valori fissi) tramite z-converti-w-testo-bis. E' presente anche CONV-TESTO-X-ESPORT (z-converti-w-testo, non usata nel flusso attivo)

Logica di importazione (a-richiesta-conferma)

Dopo conferma esplicita dell'operatore:

  1. Transito informazioni esistenti: scorre ASNSKINF del modello e memorizza in cogtrans le informazioni gia' collegate al CRM (aski-ipt-num-sincro > 0).
  2. Cancellazione (A): elimina tutte le pagine (ASNSKPAG) e le informazioni (ASNSKINF) esistenti del modello.
  3. Importazione pagine (B): scorre CRMSKPAG per la tipologia e crea le corrispondenti ASNSKPAG (numero pagina, descrizione, askp-seq = 1).
  4. Importazione informazioni (B): scorre CRMSKINF per la tipologia; per ciascuna:
  5. legge l'anagrafica informazione CRM (CRMINFOR);
  6. se tipo "F" (fascicolo) o "M" (nominativo): la salta e segnala la presenza (avviso finale);
  7. altrimenti crea la riga ASNSKINF copiando posizione, dimensioni, descrizione, progressivo padre, sequenza, obbligatorieta';
  8. se l'informazione appartiene a un gruppo (ipt-gruppo), crea il gruppo su ASNINFGR se assente (da CRMINFGR);
  9. imposta aski-fl-riporta/aski-ipt-num-sincro se richiesto il collegamento info CRM (tm-collego-info = "S");
  10. risolve il numero informazione Assist (importazione-asninfor) e valorizza aski-inf.

Risoluzione informazione (importazione-asninfor)

  • Se l'informazione era gia' presente sul modello (match in cogtrans su aski-inf), ne riusa il numero e ripristina ipt-num-sincro/fl-riporta.
  • Altrimenti, se non e' di tipo riquadro ("R") o etichetta ("E"), crea una nuova informazione su ASNINFOR (scrivi-asninfor, con progressivo calcolato e conversione descrizione via GESSTR).
  • Per i tipi riquadro/etichetta riusa la prima informazione esistente dello stesso tipo (w-ainf-num-r/w-ainf-num-e), senza mai duplicare.

Strutture collegate (scrivi-altri)

In base al tipo informazione:

  • tipo "T" (tabella): importa testata (ASNINFTT da CRMINFTT) e righe (ASNINFTR da CRMINFTR, cancellando le preesistenti);
  • tipo "V" (valori fissi): importa ASNINFVF da CRMINFVF (cancellando i preesistenti);
  • help/descrizione estesa: importa ASNINFDS da CRMINFDS (lingua "ITA").

Tutti i testi passano per z-converti-w-testo-bis (GESSTR CONV-TESTO-IMPORTATO).

Validazioni (x-imposta-conferma)

  • Modello check-list (x-controlla-tm-modello): obbligatorio e deve esistere in ASNSKMOD. Se il modello ha gia' pagine configurate, avviso che la versione attuale verra' sovrascritta.
  • Tipologia CRM (x-controlla-tm-tcl-cod): obbligatoria e deve esistere in CRMTIPCL.
  • Collego info CRM (tm-collego-info): flag S/N che attiva il riporto/sincronizzazione delle informazioni verso il CRM.

Messaggi principali

I messaggi di questo programma sono per lo piu' stringhe letterali inline (non da tabella m-...):

Testo (sintesi) Contesto
"Confermi che la scheda collegata alla Tipologia CRM venga copiata sul Modello check-list indicato ?" Conferma operazione
"Attendere, Prego ..." Clock durante l'importazione
"errore apertura cogtrans" Errore apertura file transito
"Indicare Modello check-list" / "Modello check-list inesistente" Validazione modello
"Attenzione modello check-list gia' configurata: la versione attuale verra' sovrascritta con la nuova" Modello gia' popolato
"Indicare Tipologia CRM" / "Tipologia CRM inesistente" Validazione tipologia
"Presenti informazioni di tipo fascicolo o di tipo nominativo che non verranno riportate nella Check-list" Avviso finale su info F/M scartate

Note implementative

  • L'operazione e' distruttiva sul modello di destinazione: cancella tutte le pagine e informazioni esistenti prima di ricrearle. Il transito cogtrans preserva i legami di sincronizzazione CRM delle informazioni gia' presenti, per non rigenerarle e non perdere l'associazione.
  • Le informazioni di tipo riquadro (R) ed etichetta (E) non vengono mai duplicate: si riusa la prima informazione esistente dello stesso tipo (le specifiche sono definite al momento del collocamento sulla scheda).
  • La struttura cogtrans di transito e' dichiarata manualmente (SELECT + FD + 01 trs-rec), non generata da Screens, secondo la convenzione per le tabelle temporanee.
  • Il progressivo delle nuove informazioni Assist (ASNINFOR) e delle pagine e' gestito con retry incrementale in caso di collisione (write-asninfor).