Table of Contents

MDMS - Zdarzenia i procedury

Zdarzenia

W celu sprawnego wdrożenia zaawansowanej logiki biznesowej, MDMS publikuje następujące zdarzenia:

Jednostka kodu ITI Replication Mgt.

OnBeforeExportRecord

Zdarzenie pozwala użytkownikowi określić, czy wybrany rekord ma być wyeksportowany (np. podczas eksportowania listy walut, aby uniknąć publikowania w walucie lokalnej). Można to także ustawić za pomocą filtrów w kartotece replikacji).

Parametry:

  • ReplicationNo [Code20]

  • ReceiverNo [Code20]

  • ExportedRecord [RecordID] - Określa rekord do wyeksportowania.

  • IncludeRecord [Boolean] - Określa, czy rekord zostanie wyeksportowany.

  • var OverrideIncludeRecord [Boolean] - Parametr należy ustawić na Prawda, aby zastąpić wartość domyślną.

  • var NewIncludeRecord [Boolean] - Parametr należy ustawić na Prawda/Fałsz, aby uwzględnić lub pominąć rekord. Ustawienie to działa tylko w połączeniu z parametrem OverrideIncludeRecord ustawionym na Prawda.

  • var UseRecordLevel [Boolean] - Parametr należy ustawić na Prawda/Fałsz, aby móc korzystać z funkcjonalności Na poziomie rekordu.

Przykład: Waluta CAD do pominięcia przy eksporcie:

    [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)
    var
        MyCurrency: Record Currency;
    begin
        if ExportedRecord.Number() = Database::Currency then begin
            ExportedRecord.SetTable(MyCurrency);
            if MyCurrency.Code = 'CAD' then begin
                OverrideIncludeRecord := true;
                NewIncludeRecord := false;
            end;
        end;
    end;  

OnAfterExportRecord

Zdarzenie umożliwia wykonywanie akcji na wyeksportowanych rekordach.

Parametry:

  • ReplicationNo [Code20]

  • ReceiverNo [Code20]

  • TableNo [Integer]

  • ExportedRecord [RecordID] - Określa rekord do wyeksportowania (identyfikator rekordu).

  • ExportedRecord [RecordRef] - Określa rekord do wyeksportowania (RecordRef).

Jednostka kodu ITI Record Synchronization Mgt.

OnAfterImportedRecordModify

Zdarzenie umożliwia użytkownikowi wykonywanie akcji na zaimportowanych rekordach.

Parametry:

  • var ModifiedRecord [RecordRef] - Określa rekord do zaktualizowania.

  • IsNewRecord [Boolean] - Określa, czy rekord jest nowy czy istniał już wcześniej.

Przykład: Aktualizacja pola Kod waluty w kartotece Nabywca, tym razem po stronie firmy odbiorcy:

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI Record Synchronization Mgt", 'OnAfterImportedRecordModify', '', false, false)]  
    local procedure OnAfterImportedRecordModify(var ModifiedRecord: RecordRef; IsNewRecord: Boolean)  
    var  
        MyCustomer: Record Customer;  
    begin  
        if ModifiedRecord.Number() = Database::Customer then begin  
            ModifiedRecord.SetTable(MyCustomer);  
            if MyCustomer."Currency Code" = 'CAD' then begin  
                MyCustomer."Currency Code" := '';  
                MyCustomer.Modify();  
            end;  
        end;  
    end;  

OnAfterImportedRecordRename

Zdarzenie umożliwia użytkownikowi wykonanie akcji na importowanych rekordach, w przypadku zmiany nazwy kluczy importowanych rekordów.

Parametry:

  • var RenameRecord [RecordRef] - Określa rekord do zaktualizowania.

  • IsNewRecord [Boolean] - Określa, czy rekord jest nowy czy istniał już wcześniej.

Przykład: Ten sam przykład jak w przypadku OnAfterImportedRecordModify.

OnBeforeExportRecordField

Zdarzenie pozwala zastąpić domyślną wartość pola własną funkcją.

Parametry:

  • ITIRecordSyncEntry [Record "ITI Record Sync Entry"]

  • ITIDataSetField [Record "ITI Data Set Field"]

  • FieldValue [Text] - Określa aktualnie eksportowaną wartość pola

  • var OverrideFieldValue [Boolean] - Parametr należy ustawić na Prawda, aby zastąpić wartość domyślną

  • var NewFieldValue [Text] - Parametr należy ustawić na nową wartość pola.

OnBeforeSynchronizeData

Zdarzenie publikowane przed importem danych do firmy odbiorcy (dla każdego pakietu).

Parametry:

  • LastPackage: Wartość logiczna - Określ, czy ostatni pakiet jest importowany.

OnAfterSynchronizeData

Zdarzenie publikowane po imporcie danych do firmy odbiorcy (dla każdego pakietu).

Parametry:

  • LastPackage: Wartość logiczna - Określ, czy ostatni pakiet został zainstalowany.

  • IsError: Wartość logiczna - Określ, czy został wyświetlony komunikat o błędzie.

Jednostka kodu ITI Record Delete Mgt.

OnBeforeRecordDeleted

Zdarzenie opublikowane przed usunięciem rekordu w firmie odbiorcy.

Parametry:

  • DeletedRecordRef: RecordRef

OnAfterRecordDeleted

Zdarzenie opublikowane po usunięciu rekordu w firmie odbiorcy.

Parametry:

  • DeletedRecordRef: RecordRef

  • RecordExists: Wartość logiczna - Określ, czy istnieje rekord.

  • RecordDeleted: Wartość logiczna - określa, czy rekord został usunięty.

Jednostka kodu "ITI MDMS Record-Level Mgt."

OnAfterSetRecordReceiver

Zdarzenie pozwala na uruchomienie akcji po zaznaczeniu/odznaczeniu rekordu (przy użyciu funkcjonalności Na poziomie rekordu).

	[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;  

Funkcje zewnętrzne

MDMS udostępnia następujące funkcje:

Jednostka kodu ITI Log Mgt.

CreateTrackingLogEntries

Funkcja pozwala na tworzenie zapisów dziennika śledzenia, na których opiera się replikacja przyrostowa.

Parametry:

  • RecRef: RecordRef - Triggered RecordRef.

  • xRecRef: RecordRef - Triggered xRecordRef. Parametr może być pusty, jeśli nie ma zmiany nazwy.

  • IsIns: Wartość logiczna - Prawda, jeśli wstawiono

  • IsMod: Wartość logiczna - Prawda, jeśli zmodyfikowano

  • IsRen: Wartość logiczna - Prawda, jeśli zmieniono nazwę

SetMDMSRun

Funkcja ustawia wartość zmiennej globalnej: MDMSRun. W przypadku opcji Prawda, wartości Blokuj lokalne wstawianie, Blokuj lokalne modyfikowanie, Blokuj lokalne usuwanie i Blokuj lokalną zmianę nazwy nie są sprawdzane (w firmie odbiorcy).

Parametry:

  • NewMDMSRun: Wartość logiczna

IsMDMSRun

Funkcja zwraca wartość zmiennej globalnej: MDMSRun.

Jednostka kodu ITI Record Synchronization Mgt.

IsRecordSent

Funkcja zwraca opcję 'True', jeśli dany identyfikator rekordu został wysłany do odbiorcy. Sprawdzanie odbywa się na podstawie historii zapisów synchronizacji rekordów.
Funkcja rozpoznaje przypadki, w których rekord został wysłany, a następnie usunięty. W takich przypadkach, zwraca komunikat 'False'.

Parametry:

  • RecID: Identyfikator rekordu

  • ReceiverNo: [Code20]

Jednostka kodu ITI One-Time Replication Mgt.

RunOneTimeReplication

Funkcja umożliwia uruchomienie replikacji jednorazowej dla wybranego identyfikatora rekordu.

Parametry:

  • RecID: Identyfikator rekordu