Table of Contents

Replikacja na poziomie rekordu

Replikacja na poziomie rekordu umożliwia replikację wybranych podzestawów rekordów do określonych odbiorców. Proces replikacji jest kontrolowany poprzez konfigurację odbiorców rekordów. Jeśli tabelę skonfigurowano tak, aby była replikowana replikacji na poziomie rekordu, to po zmodyfikowaniu i wstawieniu nowego rekordu, replikacja jest wykonywana tylko wtedy, gdy przypisano odbiorców rekordów. Jeśli nie przypisano odbiorców, nie są tworzone żadne zapisy dziennika śledzenia i żadne dane nie są replikowane do firm odbiorców. Takie zasady gwarantują, że replikowane są tylko niezbędne dane, co pozawala zoptymalizować wydajność i wykorzystanie zasobów.

Konfigurowanie replikacji na poziomie rekordu

Aby skonfigurować funkcjonalność na poziomie rekordu dla danej tabeli:

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Tabele aktywne dla replikacji z poziomu rekordu, a następnie wybierz powiązane łącze.

  2. Dodaj nowy rekord. Możliwe jest skonfigurowanie pól wymienionych poniżej:

    • Nr tabeli - Określa numer użytej tabeli.
    • Filtrowanie na poziomie rekordu - Określa, czy filtrowanie na poziomie rekordu jest jedynym wykorzystywanym sposobem filtrowania. Aby skrócić całkowity czas przetwarzania replikacji, inne filtry nie zostaną zastosowane.
    • Uwzględnij podrzędne wiersze przy subskrypcji - Określa, czy należy uwzględnić wszystkie podrzędne zestawy danych zawierające subskrybowany rekord.
    • Sprawdź uprawnienia odbiorcy - Określa, czy rekordy wyświetlane na stronie Odbiorcy rekordów są filtrowane na podstawie uprawnień odbiorcy. Dodatkowe informacje zamieszczono w artykule Uprawnienia odbiorcy.

Konfigurowanie odbiorców w przypadku replikacji na poziomie rekordu

Aby umożliwić replikację na poziomie rekordu, wymagane jest określenie odbiorców, którzy otrzymają replikowane dane. Ustawienia można definiować na dwa sposoby: poprzez przypisanie odbiorców rekordów do pojedynczych rekordów lub do grup rekordów.

Konfigurowanie odbiorców dla pojedynczego rekordu

Odbiorców rekordów można przypisać do poszczególnych rekordów na wybranych stronach kartoteki i stronach listy. W tym przykładzie opisano, jak przypisać odbiorców rekordów na stronie Kartoteka zapasu.

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Dostawcy, a następnie wybierz powiązane łącze.
  2. Utwórz nową kartotekę zapasu.
  3. Znajdź ikonę Odbiorcy na pasku nawigacji i wybierz ją.
  4. W przypadku każdego rekordu zaznacz odbiorcę, który ma otrzymywać dany rekord.
  5. Opcjonalnie, użyj następujących funkcji, które są dostępne na stronie Odbiorcy.
    • Subskrybuj wszystko - Umożliwia zaznaczenie wszystkich odbiorców jednocześnie.
    • Anuluj subskrypcję wszystkich - Umożliwia usunięcie zaznaczenia wszystkich odbiorców jednocześnie.
Uwaga

Akcja Odbiorcy jest domyślnie dostępna na stronie Lista zapasów, Lista zasobów, Lista kontaktów, Lista nabywców, Lista dostawcówi Lista kont K/G. Możesz dodać tę akcję do innych stron. Dodatkowe informacje na ten temat zamieszczono w sekcji Dodawanie akcji do wybranych stron.

Konfigurowanie odbiorców pojedynczego rekordu

Odbiorców rekordów można przypisać do poszczególnych rekordów na wybranych stronach kartoteki i stronach listy. W tym przykładzie opiszemy, jak przypisać odbiorców poszczególnych rekordów na stronie Kartoteka zapasu.

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Zapasy, a następnie wybierz powiązane łącze.
  2. Wybierz rekordy, do których mają być przypisani odbiorcy rekordów.
  3. Wybierz akcję Wielu odbiorców na pasku nawigacyjnym.
  4. Zaznacz pole Jest replikowany dla każdego odbiorcy, który ma otrzymywać dany rekord.
  5. Opcjonalnie, użyj akcji Subskrypcja seryjna.
Uwaga

Akcja Wielu odbiorców jest domyślnie dostępna na stronie na stronie Lista zapasów, Lista zasobów, Lista kontaktów, Lista nabywców, Lista dostawcówi Lista kont K/G. Możesz dodać tę akcję do innych stron. Dodatkowe informacje na ten temat zamieszczono w sekcji Dodawanie akcji do wybranych stron.

Czyszczenie odbiorców rekordów

Jeśli pole Wyczyść odbiorców rekordów jest zaznaczone na stronie Ustawienia MDMS, odbiorcy rekordów są usuwani automatycznie po usunięciu rekordu z firmy głównej. Jeżeli to pole nie jest zaznaczone i konieczne jest ręczne usunięcie odbiorców rekordów dla nieistniejących rekordów danych, można w tym celu użyć raportu:

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Ustawienia MDMS, a następnie wybierz powiązane łącze.
  2. Wybierz akcję Wyczyść odbiorców rekordów.
  3. Ustaw niezbędne filtry i uruchom raport.

Rozszerzanie replikacji na poziomie rekordu (dla programistów)

Czasami konieczna jest modyfikacja istniejącej logiki aplikacji ze względu na konkretne potrzeby firmy. Master Data Management System udostępnia kilka subskrybentów zdarzeń, których można użyć do tego celu. Ponadto programiści mogą tworzyć rozszerzenia stron, aby dodawać czynności przypisywania odbiorców rekordów na stronach, które nie są domyślnie obsługiwane przez MDMS.

Wyjątki replikacji na poziomie rekordu

Rozwiązanie MDMS umożliwia wykluczanie określonych rekordów z replikacji na poziomie rekordów. Procedura wydawcy zdarzenia OnBeforeExportRecord zawiera informacje, czy filtr został ustawiony na poziomie rekordu. Aby wykluczyć rekord z replikacji na poziomie rekordu, można zmodyfikować wartość parametru.

Aby wykluczyć rekord z replikacji na poziomie rekordu:

  1. Poproś programistę o przygotowanie następującej procedury wydawcy zdarzenia:
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI Replication Mgt.", 'OnBeforeExportRecord', '', false, false)]  
    local procedure OnBeforeExportRecord(ReplicationNo: Code[20]; ReceiverNo: Code[20]; ExportedRecord: RecordRef; IncludeRecord: Boolean; var OverrideIncludeRecord: Boolean; var NewIncludeRecord: Boolean; var UseRecordLevel: Boolean)  
    begin  
        if ExportedRecord.Number() in [Database::Customer, Database::Item] then  
            UseRecordLevel := false;  
    end; 

Ustawianie rekordu dla wszystkich odbiorców

Procedura wydawcy zdarzenia SetRecordForAllReceivers w jednostce kodu ITI MDMS Rekordowy poziom Mgt. umożliwia zaznaczenie lub odznaczenie wszystkich odbiorców rekordów dla danego identyfikatora rekordu.

  1. Poproś programistę o przygotowanie następującej procedury wydawcy zdarzenia:
    [EventSubscriber(ObjectType::Table, Database::Item, 'OnAfterInsertEvent', '', false, false)]  
    local procedure OnAfterInsertItemEvent(var Rec: Record Item; RunTrigger: Boolean)  
    var  
        MDMSRecordLevelMgt: Codeunit "ITI MDMS Record-Level Mgt.";  
    begin  
        MDMSRecordLevelMgt.SetRecordForAllReceivers(Rec.RecordId(), true);  
    end;  

Konfigurowanie odbiorców rekordów

Procedura wydawcy zdarzenia SetRecordReceiver (Ustaw odbiornik rekordu) w jednostce kodu ITI MDMS Record-Level Mgt. umożliwia dodanie lub usunięcie zaznaczenia odbiorców rekordów dla danego identyfikatora rekordu.

Aby zaimplementować tę funkcję:

  1. Poproś programistę o przygotowanie następującej procedury wydawcy zdarzenia:
    [EventSubscriber(ObjectType::Table, Database::Item, 'OnAfterInsertEvent', '', false, false)]  
    local procedure OnAfterInsertItemEvent(var Rec: Record Item; RunTrigger: Boolean)  
    var  
        MDMSRecordLevelMgt: Codeunit "ITI MDMS Record-Level Mgt.";  
    begin  
        MDMSRecordLevelMgt.SetRecordReceiver(Rec.RecordId(), 'DK', true);  
    end;  

Dodawanie logiki po ustawieniu odbiorcy rekordu

Procedura wydawcy zdarzenia OnAfterSetRecordReceiver w jednostce odu ITI MDMS Rekordowy poziom Mgt. jest wywoływana po dodaniu lub usunięcie zaznaczenia odbiorcy rekordów, co pozwala dostosować procesu do konkretnych potrzeb.

Aby zaimplementować tę funkcję:

  1. Poproś programistę o przygotowanie następującej procedury wydawcy zdarzenia:
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI MDMS Record-Level Mgt.", 'OnAfterSetRecordReceiver', '', false, false)]  
    local procedure OnAfterSetRecordReceiver(var RecordReceiver: Record "ITI Record Receiver"; IsReplicated: Boolean)  
    begin  
    end;  

Dodawanie akcji do wybranych stron

Rozwiązanie MDMS domyślnie rozszerza niektóre strony listy i kartoteki, umożliwiając przypisanie odbiorców rekordów. Jeśli potrzebna strona nie znajduje się na liście domyślnej, możesz poprosić programistę o przygotowanie rozszerzenia strony z wykorzystaniem poniższego kodu.

Akcja Odbiorcy

Aby dodać akcję Odbiorcy na wybranej stronie listy w celu przypisania odbiorców rekordów do grupy rekordów:

  1. Poproś programistę o przygotowanie następującego rozszerzenia dla wybranej strony:
    pageextension 50100 "ITI01 Item Card" extends "Item Card"  
    {  
        actions  
        { 
            addlast(processing)  
            {  
                action(Receivers) {  
                    ApplicationArea = All;  
                    Caption = 'Receivers';  
                    ToolTip = 'Specify the single set of receivers that are set up for the selected record.';  
                    Image = Company; Visible = IsMasterCompany;

                    trigger OnAction()  
                    var  
                        RecordLevelMgt: Codeunit "ITI MDMS Record-Level Mgt.";  
                    begin  
                        Clear(RecordLevelMgt);  
                        RecordLevelMgt.OpenRecordReceivers(Rec.RecordId());  
                    end;  
                }  
            }  
        }  
    }  

Akcja Wielu odbiorców

Aby dodać akcję Wielu odbiorców na wybranej stronie listy w celu przypisania odbiorców rekordów do grupy rekordów:

  1. Poproś programistę o przygotowanie następującego rozszerzenia dla wybranej strony:
    pageextension 50100 "ITI01 Item List" extends "Item List"  
    {
        actions  
        {  
            addlast(processing)  
            {  
                action(ITIRecordReceiversMatrix)  
                {  
                    ApplicationArea = All;  
                    Caption = 'Receivers-Multiple';  
                    ToolTip = 'Specify receivers for the selected records. You can assign receivers to replicate data only to selected local companies.';  
                    Image = Company;

                    trigger OnAction()
                    var
                        Item: Record "Item";
                        RecordLevelMgt: Codeunit "ITI MDMS Record-Level Mgt.";
                        RecRef: RecordRef;
                    begin
                        CurrPage.SetSelectionFilter(Item);
                        RecRef.GetTable(Item);
                        RecordLevelMgt.ShowRecordReceiversMatrix(RecRef);
                    end;
                }  
            }  
        }  
    }