Table of Contents

Subskrypcje zdarzeń

Istnieje kilka opublikowanych zdarzeń, które mogą zasubskrybować programiści.

Jednostka kodu 20020750 "ITI IIC Message Mgt."

  • OnAfterSendIICMessage(sender: Codeunit "ITI IIC Message Mgt."; var IICMessage: Record "ITI IIC Message")

    To zdarzenie występuje po wysłaniu komunikatu IIC.

Jednostka kodu 20020755 "ITI IIC Document Mgt."

  • OnBeforeSendSalesDocument(var SalesHeader: Record "Sales Header")

    To zdarzenie występuje przed utworzeniem komunikatu dla dokumentu sprzedaży.

  • OnAfterSendSalesDocument(var SalesHeader: Record "Sales Header")

    To zdarzenie występuje po utworzeniu komunikatu dla dokumentu sprzedaży.

  • OnBeforeCancelSalesDocument(var SalesHeader: Record "Sales Header")

    To zdarzenie występuje przed anulowaniem dokumentu sprzedaży IIC.

  • OnAfterCancelSalesDocument(var SalesHeader: Record "Sales Header")

    To zdarzenie występuje po anulowaniu dokumentu sprzedaży IIC.

  • OnBeforeSendSalesShipment(var SalesShipmentHeader: Record "Sales Shipment Header")

  • OnAfterSendSalesShipment(var SalesShipmentHeader: Record "Sales Shipment Header")

  • OnBeforeSendSalesInvoice(var SalesInvoiceHeader: Record "Sales Invoice Header")

  • OnAfterSendSalesInvoice(var SalesInvoiceHeader: Record "Sales Invoice Header")

  • OnAfterSendSalesCrMemo(var SalesCrMemoHeader: Record "Sales Cr.Memo Header")

  • OnBeforeSendSalesCrMemo(var SalesCrMemoHeader: Record "Sales Cr.Memo Header")

  • OnBeforeSendPurchaseDoc(var PurchaseHeader: Record "Purchase Header")

  • OnAfterSendPurchaseDoc(var PurchaseHeader: Record "Purchase Header")

  • OnBeforeCancelPurchaseDoc(var PurchaseHeader: Record "Purchase Header")

  • OnAfterCancelPurchaseDoc(var PurchaseHeader: Record "Purchase Header")

Jednostka kodu 20020761 "ITI IIC Buffer Validation Mgt."

  • OnBeforePurchaseBufferValidate(var IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")

    To zdarzenie występuje przed walidacją dokumentu bufora zakupu.

  • OnAfterPurchaseBufferValidate(var IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")

    To zdarzenie występuje po walidacji dokumentu bufora zakupu.

  • OnBeforeSalesBufferValidate(var IICSalesHeaderBuffer: Record "ITI IIC Sales Header Buffer")

  • OnAfterSalesBufferValidate(var IICSalesHeaderBuffer: Record "ITI IIC Sales Header Buffer")

  • OnBeforeCheckFieldDifference(ITIIICMessageTemplateField: Record "ITI IIC Message Template Field"; EndpointCode: code[20]; var Value: Text)

    To zdarzenie występuje przed porównaniem otrzymanego pola z polem dokumentu lokalnego w celu zliczenia błędów, ostrzeżeń i informacji. Zdarzenie występuje dla każdego pola w szablonie i umożliwia wykonanie niestandardowego mapowania.

  • OnAfterCheckDifferences(var ReceivedRecRef: RecordRef; BufferType: Option; BufferEntryNo: Integer; BufferLineNo: Integer; MessageTemplateLine: Record "ITI IIC Message Template Line")

    To zdarzenie występuje po porównaniu wszystkich pól i zdefiniowaniu i zastosowaniu mapowań dla poprzedniego zdarzenia. Jego celem jest umożliwienie wykonania skomplikowanego mapowania kilku pól. Wprowadzone zmiany należy zapisać przy użyciu funkcji Modyfikuj().

Jednostka kodu 20020762 "ITI IIC Purchase Buffer Mgt."

  • OnAfterAcceptBufferDocument(IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")

    To zdarzenie występuje po zaakceptowaniu dokumentu bufora zakupu, ale przed archiwizacją bufora.

  • OnAfterArchiveAcceptedBufferDocument(IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")

    To zdarzenie występuje po zaakceptowaniu dokumentu bufora zakupu i po archiwizacji bufora.

  • OnAfterRejectBufferDocument(IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")

    To zdarzenie występuje po odrzuceniu dokumentu bufora zakupu, przed archiwizacją i rejestracją bufora.

  • OnAcceptCrMemo(var IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer"; var isHandled: Boolean)

    To zdarzenie występuje przed akceptacją dokumentu bufora faktury korygującej. Parametru isHandled można użyć do pominięcia standardowego procesu przetwarzania.

  • OnAcceptReturnReceipt(var IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer"; var isHandled: Boolean)

    To zdarzenie występuje przed akceptacją dokumentu bufora przyjęcia zwrotu. Parametru isHandled można użyć do pominięcia standardowego procesu przetwarzania. Obecnie, przyjęcia zwrotu nie są obsługiwane przez standardową funkcjonalność aplikacji i jest to jedyny sposób ich przetwarzania.

  • OnBeforeCreateWarehouseReceipt(PurchaseHeader: record "Purchase Header"; var ReceiptRequired: Boolean)

    To zdarzenie jest wywoływane przed utworzeniem przyjęcia magazynowego, podczas akceptacji powiadomienia o wydaniu. Parametru ReceiptRequired (domyślnie zawsze z wartością Prawda) można użyć, aby pominąć tworzenie przyjęcia magazynowego poprzez zmianę wartości na Fałsz.

Jednostka kodu 20020764 "ITI IIC Sales Buffer Mgt."

  • OnAfterAcceptBufferDocument(IICSalesHeaderBuffer: Record "ITI IIC Sales Header Buffer")

    To zdarzenie występuje po akceptacji dokumentu bufora sprzedaży, przed archiwizacją bufora.

  • OnAfterArchiveAcceptedBufferDocument(IICSalesHeaderBuffer: Record "ITI IIC Sales Header Buffer")

    To zdarzenie występuje po zaakceptowaniu dokumentu bufora zakupu i po archiwizacji bufora.

  • OnAfterRejectBufferDocument(IICSalesHeaderBuffer: Record "ITI IIC Sales Header Buffer")

    To zdarzenie występuje po odrzuceniu dokumentu bufora sprzedaży, przed archiwizacją i rejestracją bufora.

Jednostka kodu 20020766 "ITI IIC Pre-Invoice Mgt."

  • OnBeforeModifyTransferLine(var TransferLine: Record "Transfer Line"; TempPurchLine: Record "Purchase Line" temporary; var TempReservEntry: Record "Reservation Entry" temporary)

    To zdarzenie występuje podczas tworzenia zlecenia przesunięcia i akceptacji faktury wstępnej. Parametr TransferLine zawiera wiersz przesunięcia wstawiony przed modyfikacją. Parametr TemPurchLine zawiera wiersz zakupu, będący podstawą przesunięcia - wiersz został już zaksięgowany i nie istnieje w bazie danych. Parametr TempReservEntry zawiera dane śledzenia pierwotnego dokumentu, który następnie zostanie skopiowany do zlecenia przesunięcia.

Jednostka kodu 20020769 "ITI IIC Event Integration Mgt."

Te zdarzenia są wywoływane po skonfigurowaniu pola IIC Dokument podczas walidacji nabywcy/dostawcy. Można ich użyć, aby wyczyścić pole i pominąć przetwarzanie dokumentu IIC.

  • OnAfterSetIICDocumentPurchase(var PurchaseHeader: Record "Purchase Header")
  • OnAfterSetIICDocumentSales(var SalesHeader: Record "Sales Header")

Jednostka kodu 20020776 "ITI IIC MSG Invoice"

  • OnBeforeCheckPurchaseHeaderIICPreInvoice(var IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer"; var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)

    Zdarzenie to ma miejsce przed sprawdzeniem, czy w nagłówku zakupu jest zaznaczone pole IIC Faktura wstępna oraz czy dokument bufora zakupu typu Faktura powinien być przetwarzany jako faktura wstępna. Zdarzenia można użyć do wdrożenia własnej logiki oznaczania dokumentów jako faktur wstępnych.

Jednostka kodu 20020802 "ITI IIC MSG Ret.Ship. Not."

  • OnBeforeCheckSalesHeaderIICPreInvoice(var IICSalesHeaderBuffer: Record "ITI IIC Sales Header Buffer"; var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)

    Zdarzenie to ma miejsce przed sprawdzeniem, czy w nagłówku sprzedaży jest zaznaczone pole IIC Faktura wstępna oraz czy dokument bufora sprzedaży typu Wydanie zwrotu powinien być przetwarzany jako faktura wstępna. Zdarzenia można użyć do wdrożenia własnej logiki oznaczania dokumentów jako faktur wstępnych.

Specjalny kotenkst wywołania

Do 07.10.2025

Podczas opracowywania rozszerzeń Per Tenant Extensions (PTE) możliwe jest ustawienie specjalnego kontekstu wykonania, który umożliwia:

  • aktualizacja dokumentów
  • otwarcie i zwolenienie dokumentu
  • księgowanie dokumentów
  • etc.

pomijając sprawdzanie statusów IC. Zaawansowana aplikacja międzyfirmowa sama w sobie wykorzystuje specjalny kontekst wykonania podczas wykonywania wybranych operacji podczas akceptacji dokumentów buforowych sprzedaży/zakupu (gdyż czasami wymaga to uaktualnienia lub zaksięgowania dokumentu sprzedaży/zakupu).

Przykładowy kod AL (wymagane udzielenie specjalnego kontekstu wykonania):

    [EventSubscriber(ObjectType::Codeunit, Codeunit::ITI IIC Purchase Buffer Mgt., 'OnAfterAcceptBufferDocument', '', false, false)]
    local procedure DoSthOnAfterAcceptBufferDocument(IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")
    var
        ITIIICErrorLogMgt: Codeunit "ITI IIC Error & Log Mgt.";
    begin
        ITIIICErrorLogMgt.SetIsIICRun(true);
        // Do something (update or post a document)
        ITIIICErrorLogMgt.SetIsIICRun(false);
    end;  

Przykładowy kod AL (wymagane udzielenie specjalnego kontekstu wykonania):

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Sales Document", 'OnAfterReleaseSalesDoc', '', false, false)]
    local procedure DoSthOnAfterReleaseSalesDoc(var SalesHeader: Record "Sales Header")
    var
        ITIIICErrorLogMgt: Codeunit "ITI IIC Error & Log Mgt.";
    begin
        ITIIICErrorLogMgt.SetIsIICRun(true);
        // Do something (update or post a document)
        ITIIICErrorLogMgt.SetIsIICRun(false);
    end;

Od 07.10.2025

Specjalny kontekst wykonania nie jest już przyznawany za pośrednictwem procedury SetIsIICRun jednostki kodu ITI IIC Error & Log Mgt. Zamiast tego aplikacja wykonuje ręczne powiązanie subskrypcji jednostki kodu ITI03 Manual Subscriber dla całego procesu akceptacji bufora sprzedaży/zakupu. Wszystkie subskrypcje zdarzeń wykonywane podczas procesu znajdują się już w specjalnym kontekście wykonania.

Przykładowy kod AL (przyznanie specjalnego kontekstu wykonania nie jest wymagane, ponieważ stanowi część procesu akceptacji bufora):

    [EventSubscriber(ObjectType::Codeunit, Codeunit::ITI IIC Purchase Buffer Mgt., 'OnAfterAcceptBufferDocument', '', false, false)]
    local procedure DoSthOnAfterAcceptBufferDocument(IICPurchaseHeaderBuffer: Record "ITI IIC Purchase Header Buffer")
    begin
        // Do something (update or post a document)
    end;

Przykładowy kod AL (przydzielenie specjalnego kontekstu wykonania jest wymagane, ponieważ nie stanowi części procesu akceptacji bufora):

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Sales Document", 'OnAfterReleaseSalesDoc', '', false, false)]
    local procedure DoSthOnAfterReleaseSalesDoc(var SalesHeader: Record "Sales Header")
    var
        ITI03ManualSubscriber: Codeunit "ITI03 Manual Subscriber";
    begin
        BindSubscription(ITI03ManualSubscriber);
        // Do something (update or post a document)
        UnbindSubscription(ITI03ManualSubscriber);
    end;

Przykładowy kod AL (specjalny kontekst wykonania został już przydzielony, jednak w tym kontekście należy pominąć niestandardowy kod PTE):

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Sales Document", 'OnAfterReleaseSalesDoc', '', false, false)]
    local procedure DoSthOnAfterReleaseSalesDoc(var SalesHeader: Record "Sales Header")
    var
        ITIIICErrorLogMgt: Codeunit "ITI IIC Error & Log Mgt.";
        IsHandled: Boolean;
    begin
        ITIIICErrorLogMgt.OnBeforeRunPTEMethod(IsHandled);
        if not IsHandled then
            // Do something (run a custom PTE method)
    end;

W ostatnim przypadku opublikowanie zdarzenia jest konieczne, aby określić, czy ustawiono specjalny kontekst wykonania (jeśli tak, parametr IsHandled zostanie ustawiony na Prawda).

Ważne

Między wersjami Advanced Intercompany: 3.9.0 a wersją, która zostanie wydana 7 października 2025 r. obie metody przyznawania specjalnego kontekstu wykonania będą obsługiwane. Po tym okresie procedury SetIsIICRun i GetIsIICRun zostaną usunięte z jednostki kodu „ITI IIC Error & Log Mgt.” Upewnij się, że zaktualizowałeś zależny kod aplikacji (PTE) przed uaktualnieniem do wersji wydanej 7 października 2025 r. (BC27).