Strumenti Utente

Strumenti Sito


it:renameissue

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

it:renameissue [2017/09/29 12:22] (versione attuale)
Linea 1: Linea 1:
 +TitleTAG ​
 +
 +
 +
 +<​HTML><​H3>​Punti di attenzione sul RENAME</​H3></​HTML>​
 +
 +Per il caso di RENAME è stato riscontrato un comportamento particolare e che potrebbe causare la creazione di log di errori (falsi positivi): vi segnaliamo la casistica in attesa di trovare una soluzione.
 +
 +**Gestione dell'​integrità referenziale in caso di RENAME**
 +
 +La gestione del RENAME è particolare,​ in quanto oltre alla normale transazione NAV e dal codice presente nei trigger OnRename, che sono normalmente gestiti da Sprinkler, NAV esegue applicativaente anche tutte le operazioni di gestione dell'​integrità referenziale:​ per esempio, se viene effettuato il rename della chiave di un Cliente, vengono aggiornati applicativamente i campi referenziati degli ordini, delle fatture e così via.
 +
 +Purtroppo questa gestione ha un effetto collaterale per il metodo di rilevamento delle modifiche utilizzato da Sprinkler: in particolare,​ Sprinkler rileva e segnala al sistema remoto sia l'​operazione di RENAME (come prima transazione) sia tutte le conseguenti operazioni di MODIFY o RENAME sugli altri record, che non sono distinguibili dalle normali operazioni di MODIFY o RENAME, come ulteriori transazioni.
 +
 +Caso RENAME + MODIFY: il sistema di destinazione riceve una segnalazione di RENAME e la replica direttamente,​ scatenando già automaticamente la fase di gestione dell'​integrità referenziale:​ i successivi MODIFY saranno a questo punto inutili, ma non saranno comunque segnalati come errore.
 +
 +Caso RENAME + RENAME: si genera un problema quando il campo modificato è referenziato da una chiave. Pensiamo per esempio di avere in replica sia la tabella [Customer] che la tabella [Customer Bank Accont]: in questo caso, la chiave [No.] di [Customer] è referenziata dal campo [Customer No.] della chiave di [Customer Bank Account]. Se rinominiamo un Cliente, quando il sistema Target applicherà il primo RENAME effettuerà in automatico anche un RENAME delle righe della [Customer Bank Account] di quel Cliente.
 +
 +Sprinkler in questo caso segnalerà un RENAME del Cliente e un RENAME di un record corrispondente della [Customer Bank Account]. Il secondo RENAME però non troverà tramite la chiave il record cercato, perché __già rinominato__ direttamente da NAV durante l'​importazione del primo RENAME, e segnalerà un errore. Questo errore verrà inserito nella tabella [Data Distrib. Import Error] con la segnalazione del fatto che il record da rinominare non esiste: in realtà l'​operazione è stata portata a termine correttamente,​ ma potrà essere complicato riuscire a interpretare cosa sia successo.
 +
  
it/renameissue.txt · Ultima modifica: 2017/09/29 12:22 (modifica esterna)