Strumenti Utente

Strumenti Sito


it:ondemandreplication

Differenze

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

Link a questa pagina di confronto

it:ondemandreplication [2018/05/14 14:25] (versione attuale)
Linea 1: Linea 1:
 +TitleTAG ​
  
 +
 +
 +<​HTML><​H3>​Replica "On Demand"​ via codice</​H3></​HTML>​
 +
 +Per la versione SprinklerTAG eeLiteTAG è stata resa disponibile una funzionalità di replica "On Demand"​ di un record, richiamabile direttamente da codice.
 +
 +Questa funzionalità permetterà di gestire per esempio i seguenti scenari:
 +  * L'​esportazione dati automatica non è attiva, ma si vogliono replicare semplicemente uno o più record in un database di destinazione.
 +  * Prima di attivare l'​esportazione automatica, si vogliono alimentare tutte le tabelle con i dati attuali (questa operazione era comunque già possibile tramite le [[AdvancedReplication|Funzionalità di Replica Avanzata]] manuali)
 +  * Si vuole costruire uno scenario di test con una serie di dati predeterminata;​ l'​operazione deve poter essere ripetuta.
 +  * Si vogliono archiviare su un database storico i dati di una o più tabelle, per esempio i documenti di vendita e di acquisto con le tabelle correlate, aventi [Data di registrazione] inferiore ad una data stabilita.
 +
 +La funzione public della codeunit [Spk Management] da utilizzare in questi scenari è:
 +
 +<​code>​Replicate_Record(parmRecord : Variant, PeerID : GUID)</​code>​
 +
 +//​parmRecord//:​ può essere una variabile di tipo Record oppure RecordRef.
 +
 +**Esempio** - È necessario replicare in un database remoto di storicizzazione i dati della tabella [Sales Invoice Header], le relative [Sales Invoice Line] e i record di [G/L Entry] in modo da poter navigare correttamente i documenti. Devono essere copiate tutte le fatture fino alla data del 31/12/2016.
 +
 +Prima di iniziare, nel Target Peer è necessario creare i setup per l'​importazione delle tabelle [Sales Invoice Header], [Sales Invoice Line] e [G/L Entry]: questo setup sarà attivo in 1 minuto. Non sono necessari setup specifici per il Source Peer, perché questa funzione replicherà incondizionatamente tutti i campi dei record indicati.
 +
 +**Soluzione** - Create le seguenti variabili:
 +
 +
 +^Name ^DataType ^SubType ^
 +|SpkMgt |Codeunit |Spk Management |
 +|Peer |Record |Data Distrib. Peer |
 +|SalesInvHdr |Record |Sales Invoice Header |
 +|SalesInvLine |Record |Sales Invoice Line |
 +|GLEntry |Record |G/L Entry |
 +
 +Il codice per effettuare l'​operazione richiesta è il seguente:
 +
 +<​code>​
 +LastDate := 311216D;
 +Peer.GET('​{60632e40-a50d-11e7-9598-0800200c9a66}'​); ​   //Remote Peer ID
 +
 +SalesInvHdr.SETFILTER("​Posting Date",'<​=%1',​LastDate);​
 +IF SalesInvHdr.FINDSET THEN REPEAT
 +  SpkMgt.Replicate_Record(SalesInvHdr,​Peer."​Server ID");
 +
 +  SalesInvLine.SETRANGE("​Document No.",​SalesInvHdr."​No."​);​
 +  IF SalesInvLine.FINDSET THEN REPEAT
 +    SpkMgt.Replicate_Record(SalesInvLine,​Peer."​Server ID");
 +  UNTIL SalesInvLine.NEXT = 0;
 +
 +  GLEntry.SETRANGE("​Document Type",​GLEntry."​Document Type"::​Invoice);​
 +  GLEntry.SETRANGE("​Document No.",​SalesInvHdr."​No."​);​
 +  IF GLEntry.FINDSET THEN REPEAT
 +    SpkMgt.Replicate_Record(GLEntry,​Peer."​Server ID");
 +  UNTIL GLEntry.NEXT = 0;
 +
 +UNTIL SalesInvHdr.NEXT = 0;
 +
 +</​code>​
it/ondemandreplication.txt · Ultima modifica: 2018/05/14 14:25 (modifica esterna)