Udostępnij za pośrednictwem


Funkcje

Usługa Dynamics 365 Fraud Protection zapewnia elastyczność tworzenia funkcji, których można użyć do wykonania określonego zadania. Na przykład można użyć funkcji do łączenia grup kodu, które muszą być wykonywane razem. Możesz też użyć funkcji do ponownego użycia kodu, w którym kod jest zapisywany raz i uzyskuje do niego dostęp z innych miejsc, co ułatwia konserwację kodu. W tym przykładzie, jeśli chcesz wywołać usługę zewnętrzną, aby pobrać z niej wartość, logikę można zdefiniować w ramach funkcji, a funkcję można wywołać z innych zasobów.

Definiowanie funkcji

Funkcje składają się z parametrów wejściowych i właściwości wyjściowych.

Parametry wejściowe

Funkcje mogą definiować parametry, które mają być przekazywane do funkcji w momencie wywołania. Parametry wejściowe są definiowane w definicji funkcji. Liczba parametrów przekazanych do funkcji podczas wywołania powinna dokładnie odpowiadać liczbie parametrów zdefiniowanych dla funkcji. Zdefiniowane parametry można użyć we właściwościach wyjściowych, aby zwrócić wartość. Aby uzyskać więcej informacji, zobacz Właściwości danych wyjściowych. Definiowanie parametrów wejściowych jest opcjonalne.

Parametry wejściowe składają się z następujących trzech części.

  • Nazwa parametru: nazwa, do której można odwoływać się do parametru.

  • Typ danych: każdy parametr wejściowy powinien mieć skojarzony typ danych. Określony typ danych konwertuje wartość parametru na odpowiedni typ. Funkcje obsługują typy danych wymienione w poniższej tabeli.

    Typ danych Przykładowa wartość
    Wartość logiczna Prawda
    DateTime Luty,22,2024 16:44
    Liczba rzeczywista 10,0
    Integer 10
    String „Hello” (Witaj)
  • Wartość domyślna: wartość domyślna jest wymagana dla każdego parametru. Wartość domyślna jest używana podczas oceny funkcji lub w przypadku wystąpienia problemu z wywołaniem funkcji.

Właściwości wyjściowe

Wartość zwracaną funkcji można zdefiniować przy użyciu właściwości wyjściowych. Właściwości danych wyjściowych używają logiki "Fraud Query Language (FQL)", aby zwrócić wartość funkcji. Następnie można uzyskać dostęp do właściwości danych wyjściowych z poziomu innych funkcji, reguł, przydziałów, reguł akcji po decyzji i reguł routingu podczas wywoływania funkcji. Funkcja może mieć do 30 właściwości wyjściowych. Aby uzyskać więcej informacji na temat języka FQL i sposobu jej używania, zobacz Przewodnik po dokumentacji językowej.

Właściwości wyjściowe składają się z następujących czterech części.

  • Opis właściwości: opis właściwości. Opcjonalnie możesz wprowadzić opis.

  • Typ danych: typ danych wartości zwracanej z właściwości . Funkcje obsługują wszystkie typy danych pierwotnych, takie jak wartość logiczna, data/godzina, podwójna, liczba całkowita i ciąg. Za każdym razem, gdy zostanie wprowadzona zmiana powodująca niezgodność we właściwości wyjściowej funkcji, która jest przywołynięta w innych zasobach, domyślna wartość oryginalnej właściwości wyjściowej "typ danych" jest używana jako rezerwa umożliwiająca kontynuowanie wykonywania zasobów. Zalecamy zaktualizowanie zasobów po zmianach powodujących niezgodność.

  • Wartość domyślna: wartość domyślna jest zwracana w wyniku funkcji, gdy wystąpi wyjątek podczas oceny właściwości. Na przykład dzielenie według wartości 0 i wyjątków odwołania o wartości null.

  • Edytor kodu, aby zwrócić wartość: Edytor kodu jest używany do zwracania wartości z funkcji. Poniżej przedstawiono sposoby zwracania wartości wyjściowej.

    1. Parametry wejściowe zdefiniowane w funkcji mogą służyć do zwracania wartości.

      Przykład właściwości wyjściowej zwracającej parametr wejściowy jako wartość zwracaną. Aby uzyskać więcej informacji na temat definiowania parametrów wejściowych, zobacz sekcję Parametry wejściowe we wcześniejszej części tego artykułu.

    RETURN _number1 + _number2
    
    1. Zarówno atrybuty żądania, jak i odpowiedzi (w tym dane niestandardowe) oceny zawierającej regułę, która wywołuje funkcję. Dostęp do tych atrybutów można uzyskać za @ pomocą operatora . Na przykład @"salesTax".

      Przykład funkcji używającej atrybutów żądania:

    RETURN @"salesTax"
    
    1. Dane wzbogacania ochrony przed oszustwami. Na przykład Geo.CountryCode().

      Przykład funkcji używającej narzędzia riskscore:

    RETURN Geo.CountryCode(@"deviceContext.ipAddress")
    
    1. Wyświetla listę przekazaną do ochrony przed oszustwami. Aby uzyskać więcej informacji na temat przekazywania list, zobacz Zarządzanie listami.

      Przykład funkcji używającej listy:

    RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
    
    1. Jednostki zabezpieczeń zdefiniowane w obszarze Ochrona przed oszustwami. Aby uzyskać więcej informacji, zobacz Wykonywanie kontroli prędkości.

      Przykład funkcji z szybkością:

    RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
    
    1. Wywołania zewnętrzne utworzone w ramach ochrony przed oszustwami. Aby uzyskać więcej informacji, zobacz Wywołania zewnętrzne.

      Przykład funkcji używającej wywołań zewnętrznych:

    RETURN External.weather("Seattle").id
    
    1. Oceny zewnętrzne utworzone w ramach ochrony przed oszustwami. Aby uzyskać więcej informacji, zobacz Oceny zewnętrzne.

      Przykład funkcji wywołującej ocenę zewnętrzną:

    LET $result = Assessments.myAssessment.Evaluate($baseInput = @@)
    RETURN $result.ToStr()
    
    1. Funkcja access w ramach funkcji.

      Przykład funkcji wywołującej inną funkcję:

    RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
    

Uwaga

Funkcje można tworzyć w dowolnym środowisku w stosie z wieloma hierarchiami. Gdy funkcja odwołuje się do zasobów, takich jak przydziały, wywołania zewnętrzne, listy i oceny zewnętrzne, które są dostępne w środowisku, niższe środowiska, które wywołują funkcję, również dziedziczą zasoby, do których odwołuje się funkcja. Jeśli na przykład utworzysz funkcję w katalogu głównym, która odwołuje się do wywołania zewnętrznego w celu zwrócenia wartości, środowisko podrzędne, które wywołuje funkcję, może również uzyskać dostęp do wyniku tego wywołania zewnętrznego. Aby uzyskać więcej informacji na temat dziedziczenia i wywoływania funkcji, zapoznaj się z sekcją Dziedziczenie funkcji w dalszej części tego artykułu.

Publikowanie funkcji

  1. W portalu ochrony przed oszustwami wybierz pozycję Funkcje na pasku nawigacyjnym, a następnie wybierz pozycję Nowa funkcja. Usługa Fraud Protection tworzy wersję roboczą funkcji, która jest wyświetlana tylko Tobie (twórca funkcji). Wszystkie zmiany wprowadzone w wersji roboczej są automatycznie zapisywane.

  2. Aby zdefiniować nową funkcję od podstaw, zapoznaj się z sekcją Definiowanie funkcji we wcześniejszej części tego artykułu.

  3. Aby opublikować funkcję, wybierz pozycję Publikuj.

  4. W oknie dialogowym potwierdzenia możesz zmienić nazwę i opis. Wybierz opcję Publikuj.

Uwaga

Po opublikowaniu funkcji jest ona widoczna dla wszystkich użytkowników. Funkcja może być następnie wywoływana w innych funkcjach, regułach, przydziałach, regułach po decyzjach i regułach routingu.

Aby uzyskać informacje o sposobie używania funkcji w innych zasobach, takich jak funkcje, reguły, przydziały, akcje po decyzjach i reguły routingu, zapoznaj się z sekcją Invoke functions from resources (Wywoływanie funkcji z zasobów ) w dalszej części tego artykułu.

Okienko Przykład

Podczas tworzenia lub edytowania funkcji okienko Przykład jest wyświetlane po stronie strony.

  • Funkcje nie są powiązane z żadnymi ocenami. Przykładowy ładunek jest przedstawiany jako przydatny przewodnik dla użytkowników, który pokazuje wszystkie właściwości zdarzenia, do których można odwoływać się w funkcjach. Wybierz typ zdarzenia w polu Zdarzenie w górnej części okienka.

  • Sekcja przykładowa ładunek zawiera przykład właściwości, które można wysłać w interfejsie API żądania na potrzeby oceny.

Zarządzanie funkcją

  1. Aby edytować wcześniej opublikowaną funkcję, wybierz funkcję, a następnie wybierz pozycję Edytuj. Zostanie utworzona wersja robocza opublikowanej funkcji i będzie dostępna tylko dla Ciebie. Wszystkie zmiany wprowadzone w wersji roboczej są automatycznie zapisywane. Aby wypchnąć zmiany do środowiska produkcyjnego, wybierz pozycję Publikuj. Wcześniej opublikowana funkcja została zastąpiona zmianami. Aby odrzucić wersję roboczą, wybierz pozycję Odrzuć.

  2. Aby usunąć istniejącą funkcję, wybierz wielokropek (...), a następnie wybierz pozycję Usuń.

  3. Aby zaktualizować nazwę lub opis funkcji, wybierz wielokropek (...), a następnie wybierz pozycję Zmień nazwę.

  4. Aby wyszukać funkcję, wprowadź słowo kluczowe w polu Wyszukaj . Przeszukane są wszystkie nazwy i opisy funkcji, a wyniki są filtrowane zgodnie ze słowami kluczowymi wyszukiwania.

Ocena funkcji

Przed opublikowaniem funkcji możesz użyć okienka Oceny funkcji, aby upewnić się, że zwraca oczekiwane wyniki.

  • Aby otworzyć okienko oceny funkcji, wybierz pozycję Rozwiń na karcie Funkcje .
  • Aby zamknąć okienko, wybierz pozycję Zwiń.

Po otwarciu okienka oceny zostanie wyświetlona lista właściwości wyjściowych z jej wynikiem. Ocena używa wartości domyślnych dla parametrów wejściowych i wartości z sekcji przykładowego ładunku podczas określania, co należy zwrócić. Jeśli którakolwiek z tych wartości zostanie zmieniona, dane wyjściowe również są zmieniane. Dzięki temu można upewnić się, że zwracane są poprawne wartości dla każdej właściwości wyjściowej.

Wywoływanie funkcji z zasobów

Opublikowane funkcje mogą być wywoływane z zasobów, takich jak reguły, przydziały, akcje po decyzji i reguły routingu. Dostęp do wszystkich właściwości wyjściowych zdefiniowanych w funkcji można uzyskać, wywołując funkcję. Następnie wartości mogą być używane do podejmowania decyzji.

Reguły

Funkcje mogą być wywoływane z dowolnej reguły (w dowolnej ocenie) w tym samym środowisku i środowiskach podrzędnych w hierarchii poniżej. Aby uzyskać więcej informacji na temat reguł, zobacz Reguły.

LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

Prędkości

Funkcje mogą być wywoływane z dowolnej prędkości w tym samym środowisku i środowiskach podrzędnych w hierarchii poniżej. Aby uzyskać więcej informacji o szybkościach, zobacz Wykonywanie kontroli prędkości.

SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"

Reguły po podjęciu decyzji

Funkcje mogą być wywoływane z dowolnej reguły akcji po podjęciu decyzji (w dowolnej ocenie) w tym samym środowisku i środowiskach podrzędnych w hierarchii poniżej. Aby uzyskać więcej informacji na temat reguł akcji po podjęciu decyzji, zobacz Post decision Action Rules (Reguły akcji po decyzji).

DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5

Reguły routingu

Funkcje mogą być wywoływane z dowolnych reguł routingu w tym samym środowisku i środowiskach podrzędnych w hierarchii poniżej. Aby uzyskać więcej informacji na temat reguł routingu, zobacz Zarządzanie przypadkami.

ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5

Dziedziczenie funkcji

Funkcje można wywołać w tym samym środowisku i środowiskach podrzędnych w hierarchii poniżej. Składnia wywołania zależy od tego, skąd istnieje funkcja i skąd jest wywoływana. Poniżej przedstawiono różne sposoby wywoływania funkcji w ramach konfiguracji z wieloma hierarchiami.

Uwaga

Jeśli funkcja odwołuje się do zasobów, takich jak przydziały, listy, wywołania zewnętrzne i oceny zewnętrzne, zasoby są również dziedziczone ze środowisk podrzędnych w hierarchii poniżej po wywołaniu funkcji.

Wywoływanie funkcji utworzonych w tym samym środowisku

Poniższy przykład wywołuje funkcję z reguły, w której zarówno reguła, jak i funkcja istnieją w tym samym środowisku.

LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

Wywoływanie funkcji utworzonych w środowisku głównym

Poniższy przykład wywołuje funkcję utworzoną w katalogu głównym ze środowiska podrzędnego.

LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

Wywoływanie funkcji utworzonych w środowisku nadrzędnym

Poniższy przykład wywołuje funkcję z bezpośredniego środowiska nadrzędnego.

LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

Wywoływanie funkcji utworzonych w dowolnym środowisku powyżej stosu

W poniższym przykładzie wywoływana jest funkcja utworzona w środowisku powyżej stosu i dziedziczona z reguły w niższym środowisku.

LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5

Limity funkcji i zasobów

Ochrona przed oszustwami ma limit liczby funkcji, które można utworzyć w danym środowisku oraz liczbę zasobów, do których można się odwoływać w ramach funkcji.

Zasób Limit
Maksymalna liczba funkcji, które można opublikować w środowisku 30
Maksymalna liczba właściwości wyjściowych, które mogą istnieć w funkcji 30
Maksymalna liczba unikatowych przydziałów, do których może odwoływać się funkcja 15
Maksymalna liczba wywołań zewnętrznych, do których może odwoływać się funkcja 2
Maksymalna liczba unikatowych odnośników listy, do których może odwoływać się funkcja 5
Maksymalna liczba unikatowych ocen zewnętrznych, do których może odwoływać się funkcja 2
Maksymalna liczba funkcji wywoływanych przez zestaw reguł 10
Maksymalna liczba funkcji, które może wywołać reguła routingu 10
Maksymalna liczba funkcji wywoływanych przez akcję po podjęciu decyzji 10
Maksymalna liczba zasobów, które mogą być wywoływane przez szybkość 10