Sdílet prostřednictvím


Functions

Dynamics 365 Fraud Protection poskytuje flexibilitu při vytváření funkcí, které můžete použít k provedení konkrétní úlohy. Pomocí funkcí můžete například kombinovat skupiny kódu, které se musí spouštět společně. Nebo můžete použít funkce k opětovnému použití kódu, kdy kód napíšete jednou a budete k němu přistupovat z jiných míst, což usnadňuje údržbu kódu. Pokud v tomto příkladu chcete volat externí službu, která z ní načte hodnotu, může být logika definována v rámci funkce a tato funkce může být vyvolána z jiných prostředků.

Definování funkce

Funkce se skládají ze vstupních parametrů a výstupních vlastností.

Vstupní parametry

Funkce mohou definovat parametry, které mají být předány funkci v době vyvolání. Vstupní parametry jsou definovány v definici funkce. Počet parametrů předaných funkci při vyvolání by měl přesně odpovídat počtu parametrů definovaných pro funkci. Definované parametry lze použít ve výstupních vlastnostech k vrácení hodnoty. Další informace naleznete v tématu Výstupní vlastnosti. Definování vstupních parametrů je volitelné.

Vstupní parametry se skládají z následujících tří částí.

  • Název parametru: Název, na který lze odkazovat parametr.

  • Datový typ: Každý vstupní parametr by měl mít přidružený datový typ. Datový typ, který zadáte, převede hodnotu parametru na odpovídající typ. Funkce podporují datové typy uvedené v následující tabulce.

    Datový typ Ukázková hodnota
    Logická hodnota True
    DateTime 22. února 2024 14:44
    Hodnota s dvojitou přesností 10.0
    Celé číslo 10
    String „Hello“ (Ahoj)
  • Výchozí hodnota: Pro každý parametr se vyžaduje výchozí hodnota. Výchozí hodnota se používá během vyhodnocení funkce, nebo pokud dojde k problému s vyvoláním funkce.

Výstupní vlastnosti

Návratovou hodnotu funkce můžete definovat pomocí výstupních vlastností. Výstupní vlastnosti používají logiku "Podvodný dotazovací jazyk (FQL)" k vrácení hodnoty funkce. K výstupním vlastnostem je pak možné přistupovat z jiných funkcí, pravidel, rychlostí, pravidel akce po rozhodnutí a pravidel směrování při vyvolání funkce. Funkce může mít až 30 výstupních vlastností. Další informace o FQL a jeho použití naleznete v referenční příručce jazyka.

Výstupní vlastnosti se skládají z následujících čtyř částí.

  • Popis vlastnosti: Popis vlastnosti. Popis je volitelný.

  • Datový typ: Datový typ hodnoty, která je vrácena z vlastnosti. Funkce podporují všechny primitivní datové typy, jako jsou boolean, datetime, double, integer a string. Pokaždé, když dojde k zásadní změně výstupní vlastnosti funkce odkazované v jiných prostředcích, použije se výchozí hodnota původní výstupní vlastnosti "datový typ" jako záložní pro pokračování v provádění prostředku. Po zásadních změnách doporučujeme aktualizovat prostředky.

  • Výchozí hodnota: Výchozí hodnota je vrácena jako výsledek funkce, pokud při vyhodnocení vlastnosti dojde k výjimce. Například výjimky dělení 0 a Null Reference.

  • Editor kódu pro vrácení hodnoty: Editor kódu slouží k vrácení hodnoty z funkce. Níže jsou uvedené způsoby, jak vrátit výstupní hodnotu.

    1. Vstupní parametry definované v rámci funkce lze použít k vrácení hodnot.

      Příklad výstupní vlastnosti vracející vstupní parametr jako návratovou hodnotu Další informace o tom, jak definovat vstupní parametry, naleznete v části Vstupní parametry dříve v tomto článku.

    RETURN _number1 + _number2
    
    1. Atributy požadavku i odpovědi (včetně vlastních dat) posouzení, které obsahuje pravidlo, které funkci vyvolá. K těmto atributům můžete přistupovat pomocí operátoru @ . Například @"salesTax".

      Příklad funkce využívající atributy požadavku:

    RETURN @"salesTax"
    
    1. Data o rozšiřování ochrany před podvody. Například Geo.CountryCode().

      Příklad funkce využívající rizikacore:

    RETURN Geo.CountryCode(@"deviceContext.ipAddress")
    
    1. Seznamy, které nahrajete do ochrany před podvody. Další informace o tom, jak nahrát seznamy, najdete v tématu Správa seznamů.

      Příklad funkce používající seznam:

    RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
    
    1. Rychlosti definované v ochraně před podvody. Další informace naleznete v tématu Provádění kontrol rychlosti.

      Příklad funkce využívající rychlost:

    RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
    
    1. Externí volání vytvořená v ochraně před podvody Další informace najdete v tématu Externí volání.

      Příklad funkce využívající externí volání:

    RETURN External.weather("Seattle").id
    
    1. Externí hodnocení vytvořená v ochraně před podvody Další informace najdete v tématu Externí posouzení.

      Příklad funkce vyvolávající externí posouzení:

    LET $result = Assessments.myAssessment.Evaluate($baseInput = @@)
    RETURN $result.ToStr()
    
    1. Funkce Accessu v rámci funkcí.

      Příklad funkce vyvolávající jinou funkci:

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

Poznámka:

Funkce můžete vytvářet v libovolném prostředí v zásobníku s více hierarchiemi. Když funkce odkazuje na prostředky, jako jsou rychlosti, externí volání, seznamy a externí posouzení dostupná v prostředí, zdědí nižší prostředí, která funkci vyvolávají, také prostředky, na které funkce odkazuje. Pokud například vytvoříte funkci v kořenovém adresáři, která odkazuje na externí volání na vrácení hodnoty, podřízené prostředí, které tuto funkci vyvolá, může také získat přístup k výsledku tohoto externího volání. Další informace o dědění a vyvolání funkcí najdete v části Dědičnost funkcí dále v tomto článku.

Publikování funkce

  1. Na portálu Pro ochranu před podvody vyberte funkce na navigačním panelu a pak vyberte Nová funkce. Ochrana před podvody vytvoří koncept funkce, která se zobrazí jenom vám (autor funkce). Všechny změny provedené v konceptu se automaticky uloží.

  2. Pokud chcete definovat novou funkci od začátku, přečtěte si část Definování funkce výše v tomto článku.

  3. Pokud chcete funkci publikovat, vyberte Publikovat.

  4. V potvrzovací dialogovém okně můžete změnit název a popis. Zvolte Publikovat.

Poznámka:

Jakmile funkci publikujete, uvidí ji všichni uživatelé. Funkce se pak dá vyvolat v rámci jiných funkcí, pravidel, rychlostí, pravidel po rozhodování a pravidel směrování.

Informace o tom, jak používat funkce v jiných prostředcích, jako jsou funkce, pravidla, rychlosti, akce po rozhodování a pravidla směrování, najdete v části Vyvolání funkcí z prostředků dále v tomto článku.

Podokno Ukázka

Když vytvoříte nebo upravíte funkci, zobrazí se na straně stránky podokno Ukázka .

  • Funkce nejsou svázané s žádnými posouzeními. Ukázková datová část se zobrazí jako užitečný průvodce pro uživatele, kteří zobrazují všechny vlastnosti události, na které se dají ve vašich funkcích odkazovat. Vyberte typ události v poli Událost v horní části podokna.

  • Ukázková část datové části obsahuje příklad vlastností, které je možné odeslat v rozhraní API požadavku pro posouzení.

Správa funkce

  1. Pokud chcete upravit dříve publikovanou funkci, vyberte ji a pak vyberte Upravit. Vytvoří se koncept publikované funkce a bude k dispozici pouze vám. Všechny změny provedené v konceptu se automaticky uloží. Pokud chcete změny odeslat do produkčního prostředí, vyberte Publikovat. Dříve publikovaná funkce se přepíše vašimi změnami. Pokud chcete koncept zahodit, vyberte Zahodit.

  2. Pokud chcete odstranit existující funkci, vyberte tři tečky (...) a pak vyberte Odstranit.

  3. Pokud chcete aktualizovat název nebo popis funkce, vyberte tři tečky (...) a pak vyberte Přejmenovat.

  4. Pokud chcete vyhledat funkci, zadejte do vyhledávacího pole klíčové slovo. Prohledávají se všechny názvy a popisy funkcí a výsledky se filtrují podle klíčových slov hledání.

Vyhodnocení funkce

Před publikováním funkce můžete pomocí podokna vyhodnocení funkce zajistit, aby vracela očekávané výsledky.

  • Pokud chcete otevřít podokno vyhodnocení funkce, vyberte Rozbalit na kartě Funkce .
  • Pokud chcete podokno zavřít, vyberte Sbalit.

Když je podokno vyhodnocení otevřené, zobrazí se seznam výstupních vlastností s jeho výsledkem. Při určování toho, co se má vrátit, používá vyhodnocení výchozí hodnoty pro vstupní parametry a hodnoty z oddílu ukázkové datové části. Pokud se některá z těchto hodnot změní, změní se také výstup. Tímto způsobem se můžete ujistit, že se vrátí správné hodnoty pro každou výstupní vlastnost.

Vyvolání funkcí z prostředků

Publikované funkce je možné vyvolat z prostředků, jako jsou pravidla, rychlost, akce po rozhodnutí a pravidla směrování. Ke všem výstupním vlastnostem definovaným v rámci funkce lze přistupovat vyvoláním funkce. Hodnoty se pak dají použít k rozhodování.

Pravidla

Funkce lze vyvolat z libovolného pravidla (v rámci jakéhokoli posouzení) ve stejném prostředí a z podřízených prostředí v hierarchii níže. Další informace opravidlech

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

Rychlosti

Funkce je možné vyvolat z libovolné rychlosti ve stejném prostředí a z podřízených prostředí v hierarchii níže. Další informace o rychlostech naleznete v tématu Provádění kontrol rychlosti.

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

Pravidla po rozhodnutí

Funkce je možné vyvolat z libovolného pravidla akce po rozhodnutí (v rámci jakéhokoli posouzení) ve stejném prostředí a z podřízených prostředí v hierarchii níže. Další informace o pravidlech akce po rozhodnutí naleznete v tématu Pravidla akce po rozhodnutí.

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

Pravidla směrování

Funkce lze vyvolat z libovolného pravidla směrování ve stejném prostředí a z podřízených prostředí v hierarchii níže. Další informace opravidlech

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

Dědičnost funkcí

Funkce je možné vyvolat ve stejném prostředí a z podřízených prostředí v hierarchii níže. Syntaxe vyvolání závisí na tom, kde funkce existuje a odkud je vyvolána. Níže jsou uvedeny různé způsoby volání funkcí v rámci nastavení s více hierarchiemi.

Poznámka:

Pokud funkce odkazuje na prostředky, jako jsou rychlosti, seznamy, externí volání a externí hodnocení, zdědí se prostředky také z podřízených prostředí v hierarchii níže při vyvolání funkce.

Vyvolání funkcí vytvořených ve stejném prostředí

Následující příklad vyvolá funkci z pravidla, ve kterém pravidlo i funkce existují ve stejném prostředí.

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

Vyvolání funkcí vytvořených v kořenovém prostředí

Následující příklad vyvolá funkci vytvořenou v kořenovém adresáři z podřízeného prostředí.

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

Vyvolání funkcí vytvořených v nadřazené prostředí

Následující příklad vyvolá funkci z bezprostředního nadřazeného prostředí.

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

Vyvolání funkcí vytvořených v libovolném prostředí nad zásobníkem

Následující příklad vyvolá funkci vytvořenou v prostředí nad zásobníkem a dědí z pravidla v rámci nižšího prostředí.

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

Omezení funkcí a prostředků

Ochrana před podvody má omezení počtu funkcí, které je možné vytvořit pro každé prostředí, a počet prostředků, na které lze odkazovat v rámci funkce.

Prostředek Omezení
Maximální počet funkcí, které lze publikovat v prostředí 30
Maximální počet výstupních vlastností, které mohou existovat v rámci funkce 30
Maximální počet jedinečných rychlostí, na které může funkce odkazovat 15
Maximální počet externích volání, na která může funkce odkazovat 2
Maximální počet jedinečných vyhledávání seznamu, na které může funkce odkazovat 5
Maximální počet jedinečných externích posouzení, na která může funkce odkazovat 2
Maximální počet funkcí, které může vyvolat sada pravidel 10
Maximální počet funkcí, které může pravidlo směrování vyvolat 10
Maximální počet funkcí, které může vyvolat akce po rozhodnutí 10
Maximální počet prostředků, které může vyvolat rychlost 10