# Construtor de Subexpressões de Ação de Regra de Roteamento HTTP

Utilize o construtor de subexpressões para construir condições de regras complexas de subexpressões utilizando AND, OR, NOT e agrupamento parentético. O construtor de sub-expressões valida a regra quando você aplica as alterações e o alerta para os parênteses não correspondidos e os operadores de lógica não suportados.

Para visualizar essa página de console administrativo para ODRs, clique em Servidores > Tipos de Servidor > On Demand Routers > ODR > Propriedades On Demand Router > Regras HTTP de Política de Roteamento > Especificar Por > Expressão > Construtor de Subexpressão.

Para visualizar essa página de console administrativo para clusters ODR, clique em Servidores > Clusters > Clusters On Demand Router > Cluster ODR > Propriedades On Demand Router > Regras HTTP de Política de Roteamento > Especificar Por > Expressão > Construtor de Subexpressão.

## Selecionar Operando

### Operandos de Política de Roteamento e Serviço

Dependendo do protocolo selecionado, são exibidos operandos diferentes. A tabela a seguir inclui os nomes dos operandos, como exibidos no console, o operando real como aparecerá na expressão, os protocolos válidos para cada operando e a descrição de cada operando.

Tabela 1. Operandos
Variável do Pedido | Protocolos Válidos | Descrição
--- | --- | ---
`virtualhost` | HTTP SOAP | Destino do host virtual da solicitação, usado para configurar aplicativos da web para um nome do host específico.
`virtualport` | HTTP | Destino da porta virtual da solicitação, usado para configurar aplicativos da web para uma porta específica.
`uri` | HTTP | Identificador Uniforme de Recursos. Para obter o caminho da solicitação. Se a URL era "http://host:port/path?p1=v1", o caminho é "path".
`ID do usuário` |  | Retorna o ID de usuário do usuário autenticado que enviou a solicitação.
`IDs de Grupos` |  | Retorna uma lista de nomes de grupos para o usuário autenticado que enviou a solicitação.
`Nome do parâmetro da consulta do pedido` |  | O nome e o valor de um cabeçalho. Por exemplo, a expressão `queryparm$timezone='EST'` testa um pedido para ver se ele contém um parâmetro de consulta HTTP denominado `fuso horário` com um valor `EST`. Para testar a presença ou a ausência de um parâmetro de consulta, utilize uma das formas a seguir:
    queryparm$timezone IS NOT NULL
    queryparm$timezone IS NULL
`Nome do cabeçalho do pedido` |  | O nome e o valor de um cabeçalho. Por exemplo, a expressão `header$Host='localhost'` testa um pedido para ver se ele contém um cabeçalho do host HTTP com um valor de `host local`. Para testar a presença ou ausência do cabeçalho do host, utilize uma das seguintes expressões:
    header$Host IS NOT NULL
    header$Host IS NULL
`Nome do cabeçalho do cookie` |  | O nome de um cookie. Por exemplo, a expressão `cookie$My_Cookie_Name='My_Cookie_Value'` testa um pedido para ver se ele contém um cookie denominado `My_Cookie_Name` com um valor de `My_Cookie_Value`. Para testar a presença ou a ausência de um determinado cookie, utilize uma das expressões a seguir:
    cookie$MyCookieName IS NOT NULL
    cookie$MyCookieName IS NULL
`HTTPMethod` | HTTP SOAP | O método HTTP para o pedido. Os possíveis valores são POST, GET, PUT e DELETE.
`clienthost` | HTTP SOAP IIOP SIP | O nome completo do host cliente. Este é o valor do nome do host do comando IP (Internet Protocol). Esse operando não suporta operadores numéricos, como `>, >=, <, <=`.
`clientipv4` | HTTP SOAP SIP | O endereço IP do computador cliente que utiliza o tipo de endereço quadrangular pontilhado IPv4 (Internet Protocol version 4) `n.n.n.n`.
`clientipv6` | HTTP SOAP SIP | O tipo de endereço IPv6 (Internet Protocol version 6) de 128 bits de `x:x:x:x:x:x:x:x` seguindo o RFC 1924 (Pedido de Comentários 1924) do computador cliente.
`serverhost` | HTTP SOAP IIOP SIP | O nome completo do host do servidor. Esse operando não suporta operadores numéricos, como `>, >=, <, <=`.
`serveripv4` | HTTP SOAP SIP | O endereço IP do computador servidor que utiliza o tipo de endereço quadrangular pontilhado IPv4 `n.n.n.n`.
`serveripv6` | HTTP SOAP SIP | O tipo de endereço IPv6 de 128 bits de `x:x:x:x:x:x:x:x` seguindo o RFC 1924 do computador servidor.
`port` | HTTP SOAP IIOP SIP | A porta de atendimento na qual o pedido foi recebido.
`protocolo` | HTTP SOAP | O protocolo de comunicações que transmite o pedido. Os protocolos suportados atualmente são HTTP, HTTPS, SOAP e SOAPS.
`virtualportal` | HTTP SOAP | Os portais virtuais são criados no WebSphere® Portal Server e o Intelligent Management suporta esse operando para uma melhor integração com o WebSphere Portal Server. O portal virtual é a URL da solicitação menos a raiz de contexto para o módulo da web do aplicativo WebSphere Portal. Se um determinado módulo corresponder ao portal virtual definido, então, a ação de roteamento definida para essa regra será utilizada.
`time` | HTTP SOAP IIOP | Esse operando é utilizado para definir a data e a hora do dia que um determinado pedido deve ser cumprido. Dois campos adicionais são StartTime e EndTime. Se um pedido for recebido fora daquela janela definida, o pedido não será processado. Os campos Start Time e End Time têm o seguinte formato: `dayOfWeek/dayOfMonth/month/year::hour:minute:second`. Por exemplo, Quinta-feira, 11 de abril de 2007 às 13:03:45 é especificado como: Qui/11/Abr/2007::13:03:45 Qualquer campo pode utilizar um curinga com o valor *. Por exemplo, o primeiro dia de cada mês é especificado como */1. Os valores dayofWeek são dom, seg, ter, qua, qui, sex, sáb e os valores dayOfMonth variam de 1 a 31. O valor month é um valor não-numérico que representa os doze meses: Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez. O valor year é composto de quatro dígitos do ano. Por exemplo, 2007. O valor hour é a hora do dia no relógio de 24 horas. Por exemplo, 8h é representado como ::8. O minute e second são representados como inteiros que variam de 0-59. A barra (/) é utilizada para separar parâmetros de data, os dois-pontos duplos (::) são utilizados para separar os valores de data e hora, e os dois-pontos (:) são utilizados para separar a hora dos parâmetros do dia. Observe que esse é o resultado booleano da regra inteira no qual o operando time é utilizado para determinar a ação de roteamento adotada.
`percentage$<val>` | HTTP SOAP IIOP SIP | O operando de porcentagem é avaliado como `true`, uma porcentagem fixa do tempo. Por exemplo, `percentage$50` é avaliado como `true` na média de 50% do tempo.
`rampup$<startTime>$<completionTime>` | HTTP SOAP IIOP SIP | O operando rampup é avaliado como `true`, uma porcentagem variável do tempo. Ele é sempre avaliado como `false` antes de `<startTime>` e como `true` depois de `<completionTime>`. Conforme o tempo progride de `<startTime>` para `<completionTime>`, ele é avaliado como `true`, uma porcentagem de aumento linear. O formato de `<startTime>` e `<completionTime>` é `day/month/year::hour:min:sec`. em que day é o dia do mês, month é um dos doze meses: jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez, year é o ano de 4 dígitos, hour é a hora de 2 dígitos do formato de 24 horas e min e sec são valores de 2 dígitos para minuto e segundo, respectivamente. Por exemplo, `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` começa a ser avaliado ocasionalmente como `true` às 8h de 1 de jan de 2007 e é sempre avaliado como `true` pela hora de conclusão de ramp up às 17h do mesmo dia.

## Operador

- Igual a Ignora Maiúsculas e Minúsculas (EQUALSIGNORECASE): Idêntico a 'Sequência = Sequência', exceto que as maiúsculas e minúsculas das sequências são ignoradas. Portanto, 'ABC' `EQUALSIGNORECASE` 'abc' seria avaliado como verdadeiro. ('ABC' = 'abc') é avaliado como falso.
- Diferente de ( <> ): O operador 'diferente de' expressa que o valor do operando não é igual ao valor inserido.
- Em (IN): Esse operador expressa um operando com diversos valores em uma única expressão. Por exemplo, se, para um operando chamado `port`, você desejar expressar que o valor da porta pode ser qualquer um ou todos os valores, como `9080`, `9090`, `9091`, o fragmento da expressão será`port IN (9080,9090,9091)`. Como os valores dentro dos suportes são expressos depende do tipo de dados da porta. Se a porta for um inteiro, a sintaxe correta será os valores sem aspas. Se a porta for uma cadeia, a sintaxe correta será `port IN (‘9080’, ‘9090’, ‘9091’)`.
- Semelhante (LIKE): Esse padrão expressa a correspondência de padrão para valores do operando de sequência. O valor deve conter o caractere curinga de sinal de porcentagem (%) na posição em que iniciar a correspondência padrão. Por exemplo, a expressão `host LIKE %blanca` fará a correspondência da palavra blanca ou de qualquer outra palavra que termine em blanca, enquanto a expressão `host LIKE blanca%` fará a correspondência da palavra blanca ou de qualquer outra palavra que comece com blanca e a expressão `host LIKE %blanca%` fará a correspondência da palavra blanca ou de qualquer palavra que tenha blanca embutida nela.
- Semelhante Ignora Maiúsculas e Minúsculas (LIKEIGNORECASE): Idêntico a 'sequência like sequência', exceto que as maiúsculas e minúsculas das sequências são ignoradas.
- Não é Nulo (IS NOT NULL): Esse operador expressa que uma validação da consulta mostra que o parâmetro solicitado existe.
- Concatenar (+): Esse operador expressa duas sequências de caracteres associadas: 'abc' + 'def' = 'abcdef'.
- Semelhante em (LIKEIN): Esse operador expressa que sequência likein (string1, string2, string3, etc.) é avaliado como verdadeiro se a sequência à esquerda do "likein" corresponder a uma ou mais sequências (stringN)
- É Nulo (IS NULL): Esse operador expressa que uma validação da consulta mostra que o parâmetro solicitado não existe.
- Igual a ( = ): O operador de igualdade expressa uma correspondência que faz distinção entre maiúsculas e minúsculas.

## Valor

Dependendo do operador escolhido, digite um valor para a subexpressão que você deseja criar.

## Construtor de Subexpressões

Gera a subexpressão como resultado do operando, operador e valores especificados.

## Anexar

Inclui a subexpressão na nova regra.

Informações relacionadas:
Regras HTTP de Política de Roteamento
Construtor de Expressão de Regra HTTP

Nome do Arquivo: http_subexpression.html