Wzorce integracji systemów zewnętrznych
MDMS umożliwia obsługę części synchronizacyjnej procesu replikacji w sposób niestandardowy. Artykuł przeprowadzi użytkownika przez konfigurację odbiorcy, zdarzenia integracji i możliwe scenariusze.
Typowe scenariusze
Tabele tymczasowe zawierające dane replikacji (Rekord wejściowy replikacji i Wiersz wejściowy replikacji) są eksponowane przez zdarzenie OnBeforeSendPackage (opublikowane w jednostce kodu ITI Record Synchronization Mgt). Wszystkie wartości są eksponowane jako tekst w formacie XML. Poniżej opisano powszechnie stosowane scenariusze.
Uwaga
Stan jest ustawiany na Przetworzone dla każdego zapisu synchronizacji obsługiwanego przez zewnętrznego odbiorcę.
Eksportowanie rekordów do pliku
Dane tabeli Rekord wejściowy replikacji i Wiersz wejściowy replikacji są serializowane (XML, JSON) i wysyłane do przechowania (Magazyn obiektów Blob Azure, sFTP...). Zewnętrzny system odczytuje pliki.
Ważne
Do wdrożenia tego scenariusza synchronizacji wymagany jest rozwój niestandardowy przy użyciu kodu AL.
Eksportowanie rekordów do aplikacji logiki Azure wyzwalanej przez protokół HTTP
Dane tabeli Rekord wejściowy replikacji i Wiersz wejściowy replikacji są serializowane (XML, JSON) i wysyłane do aplikacji logiki Azure wyzwalanej przez protokół HTTP jako treść żądania. Aplikacja logiki Azure dostarcza wiadomość do systemu zewnętrznego.
Ważne
Do wdrożenia tego scenariusza synchronizacji wymagany jest rozwój niestandardowy przy użyciu kodu AL, a także dedykowane zasoby Azure.
Konfigurowanie odbiorcy dla integracji zewnętrznej
Aby skonfigurować odbiorcę:
Wybierz ikonę , wprowadź Odbiorcy, a następnie wybierz powiązane łącze.
Na stronie Odbiorcy wybierz Nowy, a następnie wypełnij poniższe pola:
- Nr – Określ unikatowy kod służący do identyfikacji odbiorcy.
- Opis – Określ tekst służący do identyfikacji odbiorcy.
- Zewnętrzny - Zaznacz opcję Prawda.
Zignoruj skrócone karty Usługi sieci Web i Uwierzytelnianie.
Uwaga
Praca z zewnętrznymi odbiorcami wymaga niestandardowego kodu AL, który obsługuje część synchronizacji replikacji.
Subskrybowanie do opublikowanych zdarzeń
Subskrybowanie do opublikowanych zdarzeń wymienionych poniżej jest obowiązkowe, aby proces replikacji działał.
Nazwa zdarzenia | Nazwa jednostki kodu | Cel |
---|---|---|
OnBeforeSendPackage | ITI Record Synchronization Mgt | Pobieranie zreplikowanych rekordów |
OnBeforeProcessMetadata | ITI Record Synchronization Mgt | Pobieranie informacji o metadanych |
OnBeforePurgeTables | ITI Record Synchronization Mgt | Pobieranie informacji o czyszczeniu tabel |
Przykład: OnBeforeSendPackage
[EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI Record Synchronization Mgt", 'OnBeforeSendPackage', '', false, false)]
local procedure CustomSynchronization(ReceiverNo: Code[20]; var IsHandled: Boolean; LastPackage: Boolean; ReplicationNo: Code[20];
var TempITIReplicationInputRecord: Record "ITI Replication Input Record"; var TempITIReplicationInputLine: Record "ITI Replication Input Line")
var
ITIReceiver: Record "ITI Receiver";
begin
ITIReceiver.Get(ReceiverNo);
IsHandled := ITIReceiver.External;
// Take TempITIReplicationInputRecord and TempITIReplicationInputLine data and handle it in a custom way
end;
Przykład: OnBeforeProcessMetadata
[EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI Record Synchronization Mgt", 'OnBeforeProcessMetadata', '', false, false)]
local procedure ProcessMetadata(ReceiverNo: Code[20]; ReplicationNo: Code[20]; var IsHandled: Boolean)
var
ITIReceiver: Record "ITI Receiver";
begin
ITIReceiver.Get(ReceiverNo);
IsHandled := ITIReceiver.External;
// Custom logic is optional
// Matadata contains information about local record edition limitations
end;
Przykład: OnBeforePurgeTables
[EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI Record Synchronization Mgt", 'OnBeforePurgeTables', '', false, false)]
local procedure PurgeTables(ReceiverNo: Code[20]; ReplicationNo: Code[20]; var IsHandled: Boolean)
var
ITIReceiver: Record "ITI Receiver";
begin
ITIReceiver.Get(ReceiverNo);
IsHandled := ITIReceiver.External;
// Custom logic is optional
// Purging information is available on a data set line.
end;
Usuwanie rekordu
Żądania usunięcia rekordów synchronizowanych z odbiorcami zewnętrznymi są pomijane. Pomimo tego tworzone są zapisy synchronizacji typu Usuń.
Sprawdzanie stanu rekordu
Żądania sprawdzenia stanu rekordów zsynchronizowanych z odbiorcami zewnętrznymi nie są możliwe.