Funções
A Proteção contra Fraude do Dynamics 365 oferece a flexibilidade de criar funções que você pode usar para executar uma tarefa específica. Por exemplo, você pode usar funções para combinar grupos de código que devem ser executados juntos. Ou você pode usar funções para reutilizar o código, onde você escreve o código uma vez e o acessa de outros lugares, tornando o código mais fácil de manter. Nesse exemplo, se você quiser chamar um serviço externo para buscar um valor nele, a lógica poderá ser definida dentro de uma função e a função poderá ser invocada de outros recursos.
Definir uma função
As funções consistem em parâmetros de entrada e propriedades de saída.
Parâmetros de entrada
As funções podem definir parâmetros a serem passados para a função no momento da invocação. Os parâmetros de entrada são definidos na definição da função. O número de parâmetros passados para a função na invocação deve corresponder exatamente ao número de parâmetros definidos para a função. Os parâmetros definidos podem ser usados dentro das propriedades de saída para retornar um valor. Para obter mais informações, consulte Propriedades de saída. A definição de parâmetros de entrada é opcional.
Os parâmetros de entrada consistem nas três partes a seguir.
Nome do parâmetro: um nome com o qual o parâmetro pode ser referenciado.
Tipo de dados: Cada parâmetro de entrada deve ter um tipo de dados associado a ele. O tipo de dados especificado converte o valor do parâmetro para o tipo correspondente. As funções oferecem suporte aos tipos de dados listados na tabela a seguir.
Tipo de dados Valor de exemplo Booliano Verdadeiro Datetime Fev,22,2024 16:44PM Double 10.0 Inteiro 10 String "Olá" Valor padrão: um valor padrão é necessário para cada parâmetro. O valor padrão é usado durante "Avaliação de função" ou se houver um problema com a chamada de função.
Propriedades de saída
Você pode definir o valor de retorno de uma função usando propriedades de saída. As propriedades de saída usam a lógica "Fraud Query Language (FQL)" para retornar um valor da função. As propriedades de saída podem ser acessadas de dentro de outras funções, regras, velocidades, regras de ação pós-decisão e regras de roteamento quando a função é chamada. Uma função pode ter até 30 propriedades de saída. Para obter mais informações sobre o FQL e como usá-lo, consulte Guia de referência de idioma.
As propriedades de saída consistem nas quatro partes a seguir.
Descrição da propriedade: Uma descrição da propriedade. A descrição é opcional.
Tipo de dados: o tipo de dados do valor retornado da propriedade. As funções oferecem suporte a todos os tipos de dados primitivos, como booleano, datetime, double, inteiro e string. Sempre que uma alteração de quebra é feita na propriedade de saída de uma função que é referenciada em outros recursos, o valor padrão da propriedade de saída original "tipo de dados" é usado como um fallback para prosseguir com a execução do recurso. Recomendamos que você atualize seus recursos após interromper as alterações.
Valor padrão: o valor padrão é retornado como resultado de uma função quando uma exceção é encontrada durante a avaliação da propriedade. Por exemplo, divisão por 0 e exceções de referência nula.
Editor de código para retornar um valor: O editor de código é usado para retornar um valor da função. A seguir estão maneiras de retornar um valor de saída.
Os parâmetros de entrada definidos em uma função podem ser usados para retornar valores.
Exemplo de uma propriedade de saída que retorna um parâmetro de entrada como o valor de retorno. Para obter mais informações sobre como definir parâmetros de entrada, consulte a seção Parâmetros de entrada anteriormente neste artigo.
RETURN _number1 + _number2
Os atributos de solicitação e resposta (incluindo dados personalizados) de uma avaliação que contém a regra que invoca a função. Você pode acessar esses atributos com o @ operador. Por exemplo, @"salesTax".
Exemplo de função usando atributos de solicitação:
RETURN @"salesTax"
Os dados de enriquecimento da Proteção contra Fraudes. Por exemplo, Geo.CountryCode().
Exemplo de função usando riskscore:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Listas que você carrega para a Proteção contra fraudes. Para obter mais informações sobre como carregar listas, consulte Gerenciar listas.
Exemplo de função usando lista:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Velocidades definidas na Proteção contra fraudes. Para obter mais informações, consulte Executar verificações de velocidade.
Exemplo de função usando velocidade:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Chamadas externas que foram criadas na Proteção contra Fraudes. Para obter mais informações, consulte Chamadas externas.
Exemplo de função usando chamadas externas:
RETURN External.weather("Seattle").id
Avaliações externas que foram criadas na Proteção contra Fraudes. Para obter mais informações, consulte Avaliações externas.
Exemplo de uma função que invoca avaliação externa:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
Função de acesso dentro das funções.
Exemplo de uma função invocando outra função:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Observação
Você pode criar funções em qualquer ambiente na pilha de várias hierarquias. Quando uma função faz referência a recursos como velocidades, chamadas externas, listas e avaliações externas disponíveis no ambiente, os ambientes inferiores que invocam a função também herdam os recursos aos quais a função faz referência. Por exemplo, se você criar uma função na raiz que faz referência a uma chamada externa para retornar um valor, o ambiente filho que invoca a função também poderá acessar o resultado dessa chamada externa. Para obter mais informações sobre como herdar e invocar funções, consulte a seção Herança de função mais adiante neste artigo.
Publicar uma função
No portal Proteção contra fraudes, selecione Funções na barra de navegação e, em seguida, selecione Nova função. A Proteção contra Fraude cria uma função de rascunho que é exibida apenas para você (o criador da função). Todas as alterações feitas no rascunho são salvas automaticamente.
Para definir uma nova função do zero, consulte a seção Definindo uma função anteriormente neste artigo.
Para publicar a função, selecione Publicar.
Na caixa de diálogo de confirmação, você pode alterar o nome e a descrição. Selecione Publicar.
Observação
Depois de publicar a função, ela fica visível para todos os usuários. A função pode então ser invocada dentro de outras funções, regras, velocidades, regras pós-decisão e regras de roteamento.
Para obter informações sobre como usar funções em outros recursos, como funções, regras, velocidades, ações pós-decisão e regras de roteamento, consulte a seção Invocar funções de recursos , mais adiante neste artigo.
O painel Exemplo
Quando você cria ou edita uma função, o painel Exemplo aparece na lateral da página.
As funções não estão vinculadas a nenhuma avaliação. A carga útil de exemplo é apresentada como um guia útil para usuários que mostra todas as propriedades de evento que podem ser referenciadas em suas funções. Selecione o tipo de evento no campo Evento na parte superior do painel.
A seção exemplo de carga contém um exemplo das propriedades que podem ser enviadas na API de solicitação para a avaliação.
Gerenciar uma função
Para editar uma função publicada anteriormente, selecione a função e, em seguida, selecione Editar. Um rascunho da função publicada é criado e está disponível apenas para você. Todas as alterações feitas no rascunho são salvas automaticamente. Para enviar suas alterações para a produção, selecione Publicar. A função publicada anteriormente é substituída por suas alterações. Para descartar o rascunho, selecione Descartar.
Para excluir uma função existente, selecione as reticências (...) e selecione Excluir.
Para atualizar o nome ou a descrição de uma função, selecione as reticências (...) e, em seguida, selecione Renomear.
Para procurar uma função, insira uma palavra-chave no campo Pesquisar . Todos os nomes e descrições de funções são pesquisados, e os resultados são filtrados de acordo com as palavras-chave de pesquisa.
Avaliar uma função
Antes de publicar uma função, você pode usar o painel Avaliação de função para garantir que ela retorne os resultados esperados.
- Para abrir o painel de avaliação de função, selecione Expandir na guia Funções .
- Para fechar o painel, selecione Recolher.
Quando o painel de avaliação é aberto, a lista de propriedades de saída é exibida com seu resultado. A avaliação usa valores padrão para parâmetros de entrada e valores da seção de carga útil de amostra ao determinar o que deve ser retornado. Se qualquer um desses valores for alterado, a saída também será alterada. Dessa forma, você pode certificar-se de que os valores corretos para cada propriedade de saída sejam retornados.
Invocar funções a partir de recursos
As funções publicadas podem ser invocadas a partir de recursos como regras, velocidades, ações pós-decisão e regras de roteamento. Todas as propriedades de saída definidas dentro de uma função podem ser acessadas invocando a função. Os valores podem então ser usados para a tomada de decisão.
Regras
As funções podem ser invocadas a partir de qualquer regra (dentro de qualquer avaliação) no mesmo ambiente e de ambientes filho na hierarquia abaixo. Para obter mais informações sobre regras, consulte Regras.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Velocidades
As funções podem ser invocadas a partir de qualquer velocidade no mesmo ambiente e de ambientes filho na hierarquia abaixo. Para obter mais informações sobre velocidades, consulte Executar verificações de velocidade.
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Regras pós-decisão
As funções podem ser invocadas a partir de qualquer regra de ação pós-decisão (dentro de qualquer avaliação) no mesmo ambiente e de ambientes filho na hierarquia abaixo. Para obter mais informações sobre regras de ação pós-decisão, consulte Regras de ação pós-decisão.
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Regras de roteamento
As funções podem ser invocadas a partir de qualquer regra de roteamento no mesmo ambiente e de ambientes filho na hierarquia abaixo. Para obter mais informações sobre regras de roteamento, consulte Gerenciamento de casos.
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Herança de função
As funções podem ser invocadas no mesmo ambiente e a partir de ambientes filho na hierarquia abaixo. A sintaxe de invocação depende de onde a função existe e de onde ela é invocada. Abaixo estão as diferentes maneiras de invocar funções dentro de uma configuração de várias hierarquias.
Observação
Se uma função fizer referência a recursos como velocidades, listas, chamadas externas e avaliações externas, os recursos também serão herdados de ambientes filho na hierarquia abaixo quando a função for chamada.
Invocar funções criadas no mesmo ambiente
O exemplo abaixo invoca uma função de uma regra em que a regra e a função existem no mesmo ambiente.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Invocar funções criadas no ambiente raiz
O exemplo abaixo invoca uma função criada na raiz a partir de um ambiente filho.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Invocar funções criadas no ambiente pai
O exemplo abaixo invoca uma função do ambiente pai imediato.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Invocar funções criadas em qualquer ambiente acima da pilha
O exemplo abaixo invoca uma função criada em um ambiente acima da pilha e herdada de uma regra dentro de um ambiente inferior.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Limites de função e recursos
A Proteção contra Fraude tem um limite para o número de funções que podem ser criadas por ambiente e o número de recursos que podem ser referenciados dentro de uma função.
Recurso | Limite | |
---|---|---|
Número máximo de funções que podem ser publicadas em um ambiente | 30 | |
Número máximo de propriedades de saída que podem existir em uma função | 30 | |
Número máximo de velocidades únicas que uma função pode referenciar | 15 | |
Número máximo de chamadas externas que uma função pode referenciar | 2 | |
Número máximo de pesquisas de lista exclusivas que uma função pode referenciar | 5 | |
Número máximo de avaliações externas exclusivas que uma função pode referenciar | algarismo | |
Número máximo de funções que um conjunto de regras pode invocar | 10 | |
Número máximo de funções que uma regra de roteamento pode invocar | 10 | |
Número máximo de funções que uma ação pós-decisão pode invocar | 10 | |
Número máximo de recursos que uma velocidade pode invocar | 10 |