Expressões nos Serviços de BizTalk – uso e exemplos

Atualizado: agosto de 2015

Lista de Operação de mapeamentos de expressões nos Serviços BizTalk do Microsoft Azure.

 

Operação de mapeamento Descrição Parâmetros Saída

Expressão aritmética

Avalia a expressão matemática usando dados de entrada e constantes. As expressões aritméticas consistem nos seguintes operadores:

  • Adição

  • Subtração

  • Multiplicação

  • Divisão

  • Módulo

  • Valor absoluto

  • Máximo

  • Mínimo

  • Arredondamento

  • Raiz quadrada

Pode ter de 0 a 100 parâmetros de entrada opcionais:

 

Entrada

Um valor numérico.

Expressão aritmética

Uma expressão matemática definida usando dados de entrada e constantes.

noteObservação
O comprimento máximo para uma expressão é de 1024 caracteres.

Um valor numérico que é o resultado do cálculo.

Consulte Exemplos de expressão aritmética: Serviços BizTalk.

Expressão lógica

Avalia a condição e resultados do valor booliano da avaliação. As expressões lógicas consistem nos seguintes operadores:

  • Operadores relacionais:

    >

    <

    >=

    <=

    ==

    !=

  • Negação lógica (!)

  • Condicional AND (&&)

    Condicional OR (II)

Pode ter de 0 a 100 parâmetros de entrada opcionais:

 

Entrada

Pode ser um valor numérico, valor de cadeia de caracteres ou valor booliano.

Expressão lógica

Uma expressão definida usando os dados de entrada e constantes que avaliam para um valor booliano.

noteObservação
O comprimento máximo para uma expressão é de 1024 caracteres.

É retornado verdadeiro se a expressão lógica retornar verdadeiro. Caso contrario, será retornado Falso.

Consulte Exemplos de expressões lógicas: Serviços BizTalk.

Expressão If-Then-Else

Avalia a declaração que resulta em um ou dois resultados possíveis.

Pode ter de 0 a 100 parâmetros de entrada opcionais:

 

Entrada

Pode ser um valor numérico, valor de cadeia de caracteres ou valor booliano.

Condição

Uma expressão definida usando dados de entrada e constantes.

Valor Then

Se a declaração ou expressão for verdadeira, esse valor será usado.

Valor Else

Se a declaração ou expressão for falsa, esse valor será usado.

noteObservação
O comprimento máximo para uma expressão é de 1024 caracteres.

O resultado é baseado numa avaliação verdadeira ou falsa da expressão condicional.

Se for verdadeira, o Valor Then será usado. Se for falsa, o Valor Else será usado.

Consulte Exemplo de expressões If-Then-Else: Serviços BizTalk.

Designação condicional

Retorna um valor de um ou dois parâmetros de entrada. Se o primeiro valor de entrada for Verdadeiro, será criado um nó no documento de saída com o segundo valor de entrada. Se o primeiro valor de entrada for Falso, o nó correspondente não será criado no documento de saída.

Requer exatamente dois parâmetros de entrada:

 

Condição

Uma expressão que resulta num valor booliano. Pode ser um dos seguintes:

  • Vínculo do nó da árvore

  • Link de um Operação de mapeamento

Atribuir Valor

O valor atribuído ao nó de destino se a condição for verdadeira.

noteObservação
Esta Operação de mapeamento pode estar conectada somente ao nó da árvore de destino.

Se o valor da Condição for “verdadeiro”, um nó será criado com o valor de entrada Atribuir Valor.

Consulte Exemplo de atribuição condicional: Serviços BizTalk.

A seguinte tabela lista funções adicionais que podem ser usadas com qualquer Operação de mapeamento:

 

Função Expressão Descrição

Saídas

Saídas (Source_Node_Name)

Requer uma entrada de dados única que é o nome do elemento no documento de origem. Se o elemento existir, será retornado Verdadeiro. Caso contrario, será retornado Falso.

IsDate

IsDate(Input1)

Requer um dado de entrada único da cadeia de caracteres do tipo. O método DateTime.TryParse() é usado para analisar os dados de entrada num objeto DateTime. Se os dados de entrada forem analisados com sucesso, será retornado Verdadeiro. Caso contrario, será retornado Falso.

IsEmpty

IsEmpty(Input1)

Requer um dado de entrada único da cadeia de caracteres do tipo. Se a cadeia de caracteres for nula ou estiver vazia, será retornado Verdadeiro. Caso contrario, será retornado Falso. Se os dados de entrada não forem um objeto da cadeia de caracteres, será retornado Verdadeiro.

IsNil

IsNil(Source_Node_Name)

Requer um argumento único que é o nome do elemento no documento de origem. Se o elemento existir e o xsi:nil for definido como Verdadeiro, será retornado Verdadeiro. Caso contrario, será retornado Falso.

IsNumber

IsNumber(Input1)

Requer um dado de entrada único da cadeia de caracteres do tipo. O método Double.TryParse() é usado para analisar os dados de entrada num duplo. Se os dados de entrada forem analisados com sucesso, será retornado Verdadeiro. Caso contrario, será retornado Falso.

noteObservação
A vírgula “,” é suportada como separador de milhares e o ponto “.” é suportado como ponto decimal.

ImportantImportante
Toda Operação de mapeamentos e funções podem ser usadas dentro de outras Operação de mapeamentos e funções exceto Exists e IsNil. Exists e IsNil apontam a um nó único no documento de origem.

Os Serviços BizTalk permitem configurar como um erro é controlado e como um nó vazio ou nulo é controlado. O comportamento de tratamento de erros das seguintes Operação de mapeamentos de expressões é configurável:

  • Expressão lógica

  • Expressão aritmética

  • Expressão If-Then-Else

Etapas:

  1. Abra um Projeto do Serviço BizTalk ou o projeto Artefatos de Serviço BizTalk no Visual Studio.

  2. Clique duas vezes em Transformação (.trfm) para abrir o Designer de Transformação.

  3. Na barra de ferramentas Transformação, clique em Configurações.

Guia de Tratamento de Erros

Na guia Tratamento de Erros, as seguintes Operação de mapeamentos de expressões têm duas opções para Comportamento:

  • Expressão lógica:

    • Mapa de falhas: A Transformação completa é anulada. Como as Transformaçãos são executadas dentro uma pipeline, um erro ocorre dentro da pipeline e o erro é então enviado de volta para o cliente que enviou a mensagem.

    • Valor padrão de saída falso: Se a Operação de mapeamento falhar, Falso será retornado como a saída.

  • Expressão aritmética:

    • Mapa de falhas: A Transformação completa é anulada. Como as Transformaçãos são executadas dentro um pipeline, ocorre um erro dentro do pipeline e o erro é, sem seguida, enviado para o cliente que enviou a mensagem.

    • NaN no valor padrão de saída: Se a Operação de mapeamento falhar, o NaN (não é um número) será retornado como a saída.

    • 0 no valor padrão de saída: Se a Operação de mapeamento falhar, zero (0) será retornado como a saída.

  • Expressão If-Then-Else:

    • Mapa de falhas: A Transformação completa é anulada. Como as Transformaçãos são executadas dentro uma pipeline, um erro ocorre dentro da pipeline e o erro é então enviado de volta para o cliente que enviou a mensagem.

    • Saída Nulo/Zero/Falso baseada no tipo de saída: Se o Operação de mapeamento falha, Nulo/Zero/Falso é retornado como saída baseado no tipo de saída.

Guia Tratamento de Dados Nulos/Vazios

Na guia Tratamento de Dados Nulos/Vazios, há três opções:

  • Considerar nós vazios em operações cumulativas: por padrão, essa opção não está marcada. Quando não está marcada, nenhum nó vazio é incluído na iteração. Quando está marcada, todos os nós, incluindo os nós vazios, são incluídos na iteração.

    EXEMPLO: há um documento com 10 nós <record>. Três destes nós <record> estão vazios. Quando a opção Considerar nós vazios em iterações não está marcada, a Operação de mapeamento retorna um valor de sete. Quando a opção Considerar nós vazios em iterações está marcada, a Operação de mapeamento retorna um valor de 10.

  • Considerar nós vazios em iterações: por padrão, essa opção não está marcada. Quando não está marcada, nenhum nó vazio é incluído na iteração. Quando está marcada, todos os nós, incluindo os nós vazios, são incluídos na iteração.

    EXEMPLO: há um documento com 10 nós <record>. Três destes nós <record> estão vazios. Quando a opção Considerar nós vazios em iterações não está marcada, a Operação de mapeamento itera sete vezes para os nós não vazios. Como resultado, sete nós <record> são gerados no Destino. Quando a opção Considerar nós vazios em iterações está marcada, a Operação de mapeamento itera 10 vezes para todos os nós, incluindo os nós vazios. Como resultado, 10 nós <record> são gerados no Destino.

  • Geração de Nós de Destino: se os nós vazios forem configurados para serem considerados, você deverá optar por gerar um nó vazio na saída ou não gerar um nó vazio na saída. Especificamente:

    • Não gerar nós vazios: Opção padrão.

    • Gerar nós vazios

    EXEMPLO: há um documento com 10 nós <record>. Três destes nós <record> estão vazios. Considerar nós vazios em operações cumulativas ou Considerar nós vazios em iterações não está marcado, a Operação de mapeamento itera sete vezes para nós não vazios. Como resultado, sete nós <record> são gerados no Destino. Quando a opção Considerar nós vazios em iterações está marcada, a Operação de mapeamento itera 10 vezes para todos os nós, incluindo os nós vazios. Como resultado, 10 nós <record> são gerados no Destino.

Consulte também

Mostrar: