Table of Contents

Subskrypcje zdarzeń

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

Codeunit 20020851 "ITI ICI Management"

  • OnBeforeInsertAvailabilityLine(var ITIICIAvailability: Record "ITI ICI Availability"; JsonObj: JsonObject)

    Powyższe zdarzenie jest wywoływane po otrzymaniu odpowiedzi z danymi dostępności i występuje bezpośrednio przed wstawieniem zapisu dostępności. Można je wykorzystać do skopiowania dodatkowych pól z odpowiedzi w formacie json.

    Pola są wstawiane do obiektów w formacie json przy użyciu nazw pól ze strony 20020852 ITI ICI Dostępność usług sieci Web. Spacje zastąpione przez znaki podkreślenia i kropki są usuwane, na przykład Nr zapasu zamienia się na Nr_zapasu.

  • OnBeforeInsertCustomerBalanceLine(var ITIICICustomerBalance: Record "ITI ICI Customer Balance"; JsonObj: JsonObject)

    Powyższe zdarzenie jest wywoływane po otrzymaniu odpowiedzi z danymi nabywcy i występuje bezpośrednio przed wstawieniem zapisu salda nabywcy. Można je wykorzystać do skopiowania dodatkowych pól z odpowiedzi w formacie json.

    Pola są wstawiane do obiektów w formacie json przy użyciu nazw pól ze strony 20020852 ITI ICI Dostępność usług sieci Web. Spacje zastąpione przez znaki podkreślenia i kropki są usuwane.

  • OnBeforeInsertCustomerBalanceDetailLine(var ITIICICustLEntryBuffer: Record "ITI ICI Cust. L. Entry Buffer"; JsonObj: JsonObject)

    Powyższe zdarzenie jest wywoływane po otrzymaniu odpowiedzi z danymi nabywcy i występuje bezpośrednio przed wstawieniem tymczasowego zapisu księgi nabywców. Można je wykorzystać do skopiowania dodatkowych pól z odpowiedzi w formacie json.

    Pola są wstawiane do obiektów w formacie json przy użyciu nazw pól ze strony 20020858 ITI ICI Zapis księgi nabywców usługi sieci Web. Spacje zastąpione przez znaki podkreślenia i kropki są usuwane, na przykład Nr dokumentu zamienia się na Nr_dokumentu.

  • OnBeforeDeleteEndpointICIAvailability(var ITIICIAvailability: Record "ITI ICI Availability"; ITIICIEndpoint: Record "ITI ICI Endpoint"; var IsHandled: Boolean)

    Zdarzenie jest wyzwalane przed wysłaniem żądania do partnera międzyfirmowego w celu zaktualizowania informacji o dostępności lub saldzie nabywcy. Można go użyć, aby uniemożliwić usuwanie starych rekordów.

Codeunit 20020852 "ITI ICI Sender Mgt."

  • OnCreateAvailabilityLine(var Item: Record Item; var ITIICIAvailability: Record "ITI ICI Availability" temporary)

    To zdarzenie jest wywoływane po otrzymaniu żądania danych dostępności i utworzeniu odpowiedzi. Zdarzenie występuje dla każdej kombinacji zapasu, wariantu i lokalizacji, która jest zgodna z filtrami (zapasów i wariantów) oraz ustawieniami (lokalizacji).

    Można ich użyć, aby uzupełnić dodatkowe pola w buforze. Zapas jest przekazywany jako zmienna, aby zachować filtry lokalizacji i wariantów i umożliwić wywołanie funkcji CalcFields. Pola należy uzupełnić przy użyciu operatora += zamiast :=, aby zapewnić zgodność wyniku z sumą wszystkich lokalizacji.

  • OnCreateCustomerBalanceLine(Customer: Record Customer; var ITIICICustomerBalance: Record "ITI ICI Customer Balance" temporary)

    To zdarzenie jest wywoływane po otrzymaniu żądania danych nabywcy i utworzeniu odpowiedzi. Zdarzenie występuje dla każdego nabywcy zgodnego z filtrami.

    Można ich użyć, aby uzupełnić dodatkowe pola w buforze.

Przykład

Rozszerzenie tabeli

Należy dodać nowe pola do rozszerzonej tabeli.

tableextension 50149 "ITIICIAvailability" extends "ITI ICI Availability"
{
    fields
    {
        field(50149; "Description"; Text[100])
        {
        }
        field(50148; "Sales (Qty.)"; Decimal)
        {
        }
    }
}

Rozszerzenia strony

Należy dodać nowe pola do strony usługi sieci Web. Jeśli pola mają być widoczne w przeglądzie dostępności, można je także dodać do strony ITI ICI Przegląd dostępności. Zaleca się, aby na stronie ICI Dostępność usług sieci Web nie używać spacji ani kropek w nazwach pól, tak aby te same dane były widoczne w obiekcie json.

```cal pageextension 50148 MyExtension2 extends "ITI ICI Availability WS" { layout { addlast(Group) { field(Description; "Description") { ApplicationArea = All; } field(SalesQty; "Sales (Qty.)") { ApplicationArea = All; } } } }

pageextension 50149 MyExtension extends "ITI ICI Availability Overview" { layout { addlast(Group) { field(Description; "Description") { ApplicationArea = All; } field(SalesQty; "Sales (Qty.)") { ApplicationArea = All; } } } } ```

Dodawanie danych do bufora

Należy obliczyć dane i dodać je do bufora.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI ICI Sender Mgt.", 'OnCreateAvailabilityLine', '', false, false)]
    local procedure MyProcedure(var Item: Record Item; var ITIICIAvailability: Record "ITI ICI Availability")
    begin
        Item.CalcFields("Sales (Qty.)");
        ITIICIAvailability."Sales (Qty.)" += Item."Sales (Qty.)";
        ITIICIAvailability.Description := Item.Description;
    end;

Odczytywanie danych z pliku json

Wartości należy pobrać z obiektu typu json, odczytać jako poprawne typy i przypisać do wybranych pól.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"ITI ICI Management", 'OnBeforeInsertAvailabilityLine', '', false, false)]
    local procedure MyProcedure2(var ITIICIAvailability: Record "ITI ICI Availability"; JsonObj: JsonObject)
    var
        jsonTok: JsonToken;
    begin
        JsonObj.Get('Description', jsonTok);
        ITIICIAvailability.Description := jsonTok.AsValue().AsText();
        JsonObj.Get('SalesQty', jsonTok);
        ITIICIAvailability."Sales (Qty.)" := jsonTok.AsValue().AsDecimal();
    end;

Salda nabywcy

Proces przeglądu salda nabywcy można zmodyfikować w podobny sposób jak proces dostępności zapasów opisany powyżej.

Strona usługi sieci Web Dane nabywcy bazuje na tabeli zawierającej zapisy księgi nabywców, dzięki czemu, aby dodać nowe pole do odpowiedzi, nie jest potrzebna znajomość kodu - wystarczy dodać pole na stronie. Kod jest wymagany jedynie do odczytu danych z obiektu json.

Zobacz też

Konfigurowanie aplikacji Intercompany Insights

Funkcjonalność Intercompany Insights