Funzioni
Dynamics 365 Fraud Protection offre la flessibilità necessaria per creare funzioni che è possibile usare per eseguire un'attività specifica. Ad esempio, è possibile usare funzioni per combinare gruppi di codice che devono essere eseguiti insieme. In alternativa, è possibile usare le funzioni per riutilizzare il codice, in cui si scrive il codice una sola volta e accedervi da altre posizioni, semplificando la manutenzione del codice. In questo esempio, se si vuole chiamare un servizio esterno per recuperare un valore da esso, la logica può essere definita all'interno di una funzione e la funzione può essere richiamata da altre risorse.
Definire una funzione
Le funzioni sono costituite da parametri di input e proprietà di output.
Parametri di input
Le funzioni possono definire i parametri da passare alla funzione al momento della chiamata. I parametri di input vengono definiti nella definizione della funzione. Il numero di parametri passati alla funzione in fase di chiamata deve corrispondere esattamente al numero di parametri definiti per la funzione. I parametri definiti possono essere usati all'interno delle proprietà di output per restituire un valore. Per altre informazioni, vedere Proprietà di output. La definizione dei parametri di input è facoltativa.
I parametri di input sono costituiti dalle tre parti seguenti.
Nome parametro: nome a cui è possibile fare riferimento il parametro.
Tipo di dati: a ogni parametro di input deve essere associato un tipo di dati. Il tipo di dati specificato converte il valore del parametro nel tipo corrispondente. Le funzioni supportano i tipi di dati elencati nella tabella seguente.
Tipo di dati Valore di esempio Booleano Vero Data/Ora 22 febbraio 2024 14:44 Double 10.0 Intero 10 String "Salve" Valore predefinito: per ogni parametro è necessario un valore predefinito. Il valore predefinito viene usato durante la "valutazione della funzione" o se si verifica un problema con la chiamata alla funzione.
Proprietà di output
È possibile definire il valore restituito di una funzione usando le proprietà di output. Le proprietà di output usano la logica "Fraud Query Language (FQL)" per restituire un valore della funzione. È quindi possibile accedere alle proprietà di output dall'interno di altre funzioni, regole, velocità, regole di azione post-decisione e regole di routing quando viene richiamata la funzione. Una funzione può avere fino a 30 proprietà di output. Per altre informazioni su FQL e su come usarlo, vedere Guida di riferimento al linguaggio.
Le proprietà di output sono costituite dalle quattro parti seguenti.
Descrizione della proprietà: descrizione della proprietà. La descrizione è facoltativa.
Tipo di dati: tipo di dati del valore restituito dalla proprietà . Le funzioni supportano tutti i tipi di dati primitivi, ad esempio booleano, datetime, double, integer e string. Ogni volta che viene apportata una modifica di rilievo alla proprietà di output di una funzione a cui viene fatto riferimento in altre risorse, il valore predefinito della proprietà di output originale "tipo di dati" viene usato come fallback per continuare con l'esecuzione della risorsa. È consigliabile aggiornare le risorse dopo le modifiche che causano un'interruzione.
Valore predefinito: il valore predefinito viene restituito come risultato di una funzione quando viene rilevata un'eccezione durante la valutazione della proprietà. Ad esempio, le eccezioni divisione per 0 e Riferimenti Null.
Editor di codice per restituire un valore: l'editor di codice viene usato per restituire un valore dalla funzione. Di seguito sono riportati i modi per restituire un valore di output.
I parametri di input definiti all'interno di una funzione possono essere usati per restituire valori.
Esempio di una proprietà di output che restituisce un parametro di input come valore restituito. Per altre informazioni su come definire i parametri di input, vedere la sezione Parametri di input più indietro in questo articolo.
RETURN _number1 + _number2
Sia gli attributi di richiesta che di risposta (inclusi i dati personalizzati) di una valutazione che contiene la regola che richiama la funzione. È possibile accedere a questi attributi con l'operatore @ . Ad esempio: @"salesTax".
Esempio di funzione che usa gli attributi della richiesta:
RETURN @"salesTax"
Dati di arricchimento della protezione dalle frodi. Ad esempio, Geo.CountryCode().
Esempio di funzione con riskscore:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Elenca gli elenchi caricati in Protezione frodi. Per ulteriori informazioni su come caricare elenchi, vedere Gestire gli elenchi.
Esempio di funzione con list:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Velocità definite in Protezione dalle frodi. Per ulteriori informazioni, vedi Eseguire controlli di velocità.
Esempio di funzione con velocità:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Chiamate esterne create in Protezione da frodi. Per ulteriori informazioni, vedi Chiamate esterne.
Esempio di funzione che usa chiamate esterne:
RETURN External.weather("Seattle").id
Valutazioni esterne create in Protezione delle frodi. Per altre informazioni, vedere Valutazioni esterne.
Esempio di una funzione che richiama una valutazione esterna:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
Funzione di accesso all'interno delle funzioni.
Esempio di funzione che richiama un'altra funzione:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Nota
È possibile creare funzioni in qualsiasi ambiente nello stack con più gerarchie. Quando una funzione fa riferimento a risorse come velocità, chiamate esterne, elenchi ed valutazioni esterne disponibili nell'ambiente, gli ambienti inferiori che richiamano la funzione ereditano anche le risorse a cui fa riferimento la funzione. Ad esempio, se si crea una funzione nella radice che fa riferimento a una chiamata esterna per restituire un valore, l'ambiente figlio che richiama la funzione può anche accedere al risultato di tale chiamata esterna. Per altre informazioni su come ereditare e richiamare funzioni, vedere la sezione Ereditarietà delle funzioni più avanti in questo articolo.
Pubblicare una funzione
Nel portale di Protezione dalle frodi selezionare Funzioni nella barra di spostamento e quindi selezionare Nuova funzione. Protezione dalle frodi crea una funzione bozza visualizzata solo all'utente (creatore della funzione). Tutte le modifiche apportate alla bozza vengono salvate automaticamente.
Per definire una nuova funzione da zero, vedere la sezione Definizione di una funzione in precedenza in questo articolo.
Per pubblicare la funzione, selezionare Pubblica.
Nella finestra di dialogo di conferma è possibile modificare il nome e la descrizione. Selezionare Pubblica
Nota
Dopo aver pubblicato la funzione, è visibile a tutti gli utenti. La funzione può quindi essere richiamata all'interno di altre funzioni, regole, velocità, regole post-decisione e regole di routing.
Per informazioni su come usare funzioni in altre risorse, ad esempio funzioni, regole, velocità, azioni successive alle decisioni e regole di routing, vedere la sezione Richiamare le funzioni dalle risorse più avanti in questo articolo.
Riquadro Di esempio
Quando si crea o si modifica una funzione, il riquadro Esempio viene visualizzato sul lato della pagina.
Le funzioni non sono associate ad alcuna valutazione. Il payload di esempio viene presentato come una guida utile per gli utenti che mostra tutte le proprietà degli eventi a cui è possibile fare riferimento nelle funzioni. Selezionare il tipo di evento nel campo Evento nella parte superiore del riquadro.
La sezione Esempio payload contiene un esempio delle proprietà che possono essere inviate nell'API di richiesta per la valutazione.
Gestire una funzione
Per modificare una funzione pubblicata in precedenza, selezionare la funzione e quindi selezionare Modifica. Viene creata una bozza della funzione pubblicata ed è disponibile solo per l'utente. Tutte le modifiche apportate alla bozza vengono salvate automaticamente. Per eseguire il push delle modifiche nell'ambiente di produzione, selezionare Pubblica. La funzione pubblicata in precedenza viene sovrascritta con le modifiche apportate. Per eliminare la bozza, seleziona Ignora.
Per eliminare una funzione esistente, selezionare i puntini di sospensione (...) e quindi selezionare Elimina.
Per aggiornare il nome o la descrizione di una funzione, selezionare i puntini di sospensione (...) e quindi selezionare Rinomina.
Per cercare una funzione, immettere una parola chiave nel campo Cerca . Vengono cercati tutti i nomi e le descrizioni delle funzioni e i risultati vengono filtrati in base alle parole chiave di ricerca.
Valutare una funzione
Prima di pubblicare una funzione, è possibile usare il riquadro Valutazione funzione per assicurarsi che restituisca i risultati previsti.
- Per aprire il riquadro di valutazione della funzione, selezionare Espandi nella scheda Funzioni .
- Per chiudere il riquadro, seleziona Comprimi.
Quando il riquadro di valutazione è aperto, viene visualizzato l'elenco delle proprietà di output con il relativo risultato. La valutazione usa i valori predefiniti per i parametri di input e i valori della sezione payload di esempio quando si determina cosa deve essere restituito. Se uno di questi valori viene modificato, viene modificato anche l'output. In questo modo, è possibile assicurarsi che vengano restituiti i valori corretti per ogni proprietà di output.
Richiamare le funzioni dalle risorse
Le funzioni pubblicate possono essere richiamate da risorse quali regole, velocità, azioni post-decisione e regole di routing. È possibile accedere a tutte le proprietà di output definite all'interno di una funzione richiamando la funzione. I valori possono quindi essere usati per il processo decisionale.
Regole
Le funzioni possono essere richiamate da qualsiasi regola (all'interno di qualsiasi valutazione) nello stesso ambiente e dagli ambienti figlio nella gerarchia seguente. Per altre informazioni sulle regole, vedere Regole.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Velocità
Le funzioni possono essere richiamate da qualsiasi velocità nello stesso ambiente e dagli ambienti figlio nella gerarchia seguente. Per altre informazioni sulle velocità, vedere Eseguire controlli di velocità.
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Regole post-decisione
Le funzioni possono essere richiamate da qualsiasi regola di azione post-decisione (all'interno di qualsiasi valutazione) nello stesso ambiente e dagli ambienti figlio nella gerarchia seguente. Per altre informazioni sulle regole di azione post-decisione, vedere Post decision action Rules.For more information about post-decision action rules, see Post decision action rules.
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Regole dei percorsi di trasferimento
Le funzioni possono essere richiamate da qualsiasi regola di routing nello stesso ambiente e da ambienti figlio nella gerarchia seguente. Per altre informazioni sulle regole di routing, vedere Gestione dei casi.
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Ereditarietà delle funzioni
Le funzioni possono essere richiamate nello stesso ambiente e da ambienti figlio nella gerarchia seguente. La sintassi di chiamata dipende dalla posizione in cui esiste la funzione e dalla posizione in cui viene richiamata. Di seguito sono riportati i diversi modi per richiamare le funzioni all'interno di una configurazione a più gerarchie.
Nota
Se una funzione fa riferimento a risorse come velocità, elenchi, chiamate esterne ed valutazioni esterne, le risorse vengono ereditate anche dagli ambienti figlio nella gerarchia seguente quando viene richiamata la funzione.
Richiamare le funzioni create nello stesso ambiente
L'esempio seguente richiama una funzione da una regola in cui la regola e la funzione esistono nello stesso ambiente.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Richiamare le funzioni create all'interno dell'ambiente radice
L'esempio seguente richiama una funzione creata nella radice da un ambiente figlio.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Richiamare le funzioni create nell'ambiente padre
L'esempio seguente richiama una funzione dall'ambiente padre immediato.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Richiamare le funzioni create all'interno di qualsiasi ambiente sopra lo stack
L'esempio seguente richiama una funzione creata in un ambiente sopra lo stack e ereditata da una regola all'interno di un ambiente inferiore.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Limiti di funzioni e risorse
La protezione dalle frodi ha un limite al numero di funzioni che possono essere create per ambiente e al numero di risorse a cui è possibile fare riferimento all'interno di una funzione.
Conto risorse | Limite | |
---|---|---|
Numero massimo di funzioni che possono essere pubblicate all'interno di un ambiente | 30 | |
Numero massimo di proprietà di output che possono esistere all'interno di una funzione | 30 | |
Numero massimo di velocità univoche a cui può fare riferimento una funzione | 15 | |
Numero massimo di chiamate esterne a cui una funzione può fare riferimento | 2 | |
Numero massimo di ricerche di elenchi univoci a cui può fare riferimento una funzione | 5 | |
Numero massimo di valutazioni esterne univoce a cui può fare riferimento una funzione | 2 | |
Numero massimo di funzioni che un set di regole può richiamare | 10 | |
Numero massimo di funzioni che una regola di routing può richiamare | 10 | |
Numero massimo di funzioni che un'azione post-decisione può richiamare | 10 | |
Numero massimo di risorse che una velocità può richiamare | 10 |