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:
Wybierz ikonę , wprowadź Tabele aktywne dla replikacji z poziomu rekordu, a następnie wybierz powiązane łącze.
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.
- Wybierz ikonę , wprowadź Dostawcy, a następnie wybierz powiązane łącze.
- Utwórz nową kartotekę zapasu.
- Znajdź ikonę Odbiorcy na pasku nawigacji i wybierz ją.
- W przypadku każdego rekordu zaznacz odbiorcę, który ma otrzymywać dany rekord.
- 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.
- Wybierz ikonę , wprowadź Zapasy, a następnie wybierz powiązane łącze.
- Wybierz rekordy, do których mają być przypisani odbiorcy rekordów.
- Wybierz akcję Wielu odbiorców na pasku nawigacyjnym.
- Zaznacz pole Jest replikowany dla każdego odbiorcy, który ma otrzymywać dany rekord.
- 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:
- Wybierz ikonę , wprowadź Ustawienia MDMS, a następnie wybierz powiązane łącze.
- Wybierz akcję Wyczyść odbiorców rekordów.
- 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:
- 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.
- 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ę:
- 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ę:
- 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:
- 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:
- 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;
}
}
}
}