Partilhar via


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 acessa-o 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 dele, a lógica pode ser definida dentro de uma função e a função pode ser invocada a partir 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 seguintes.

  • 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 no tipo correspondente. As funções suportam os tipos de dados listados na tabela a seguir.

    Tipo de dados Valores de exemplo
    Boolean True
    DateTime Fev,22,2024 16:44
    Duplo 10,0
    Número inteiro 10
    String "Hello" (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 é invocada. Uma função pode ter até 30 propriedades de saída. Para obter mais informações sobre 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 do imóvel: Descrição do imóvel. A descrição é opcional.

  • Tipo de dados: O tipo de dados do valor retornado da propriedade. As funções suportam 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 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 depois de 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.

    1. Os parâmetros de entrada definidos dentro de uma função podem ser usados para retornar valores.

      Exemplo de uma propriedade output 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
    
    1. 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"
    
    1. Os dados de enriquecimento da Proteção contra Fraudes. Por exemplo, Geo.CountryCode().

      Exemplo de função usando riskscore:

    RETURN Geo.CountryCode(@"deviceContext.ipAddress")
    
    1. Listas que 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")
    
    1. 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)
    
    1. Chamadas externas que foram criadas no Fraud Protection. Para obter mais informações, consulte Chamadas externas.

      Exemplo de função usando chamadas externas:

    RETURN External.weather("Seattle").id
    
    1. 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 a avaliação externa:

    LET $result = Assessments.myAssessment.Evaluate($baseInput = @@)
    RETURN $result.ToStr()
    
    1. Função de acesso dentro de funções.

      Exemplo de uma função invocando outra função:

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

Nota

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

  1. No portal de Proteção contra Fraude, 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.

  2. Para definir uma nova função do zero, consulte a seção Definindo uma função anteriormente neste artigo.

  3. Para publicar a função, selecione Publicar.

  4. Na caixa de diálogo de confirmação, você pode alterar o nome e a descrição. Selecione Publicar.

Nota

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 Amostra

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 de exemplo de carga útil contém um exemplo das propriedades que podem ser enviadas na API de solicitação para a avaliação.

Gerenciar uma função

  1. 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 colocar as alterações em produção, selecione Publicar. A função publicada anteriormente é substituída pelas alterações. Para descartar o rascunho, selecione Descartar.

  2. Para eliminar uma função existente, selecione as reticências (...) e, em seguida, selecione Eliminar.

  3. Para atualizar o nome ou a descrição de uma função, selecione as reticências (...) e, em seguida, selecione Renomear.

  4. Para procurar uma função, introduza 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ções, 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 da 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 ter certeza de que os valores corretos para cada propriedade de saída são 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ões.

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 encaminhamento

As funções podem ser invocadas a partir de quaisquer regras 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 multi-hierarquia.

Nota

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 invocada.

Invoque funções criadas no mesmo ambiente

O exemplo abaixo invoca uma função de uma regra onde a regra e a função existem no mesmo ambiente.

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

Invoque 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

Invoque 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

Invoque 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ções e recursos

A Proteção contra Fraude tem um limite no número de funções que podem ser criadas por ambiente e no 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 dentro de 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
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