TitleTAG
Replicate_Record(parmRecord : Variant, PeerID : GUID)
//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), nonché attribuire i permessi Insert e Modify sulle tabelle di destinazione per l'utente che nel Peer remoto è indicato come Data Distribution Service User. Non sono necessari setup specifici per il Source Peer, perché questa funzione replicherà incondizionatamente tutti i campi dei record indicati.\\
Si noti che l'utente che effettuerà l'operazione deve avere i permessi indicati dal Permission Set EERIS SPK USER, oltre ai permessi di lettura sulla tabella interessata.
**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:
LastDate := 311220D;
Peer.GET('{60632e40-a50d-11e7-9598-0800200c9a66}'); //esempio di 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;