# Générateur de sous-expression

Le générateur de sous-expression permet de générer des conditions de règles complexes issues de sous-expressions en utilisant AND, OR, NOT et le regroupement mis entre parenthèses. Le générateur de règles valide la règle lorsque des modifications sont appliquées, il vous informe également de la non-concordance des parenthèses mais aussi des opérateurs logiques non pris en charge.

Pour afficher cette page de la console d'administration, cliquez sur Serveurs > Types de serveur > Routeurs On demand > nom_odr > Propriétés des routeurs On demand > Stratégies de service du cluster de serveurs génériques > nom_classe_travail > Ajouter une règle > Générateur de sous-expression.

Pour modifier des règles à l'aide du générateur de sous-expression, vous devez disposer des privilèges d'administration Administrateur.

## Sélectionner un opérande

Selon le protocole que vous sélectionnez, plusieurs opérandes vous sont proposés. Le tableau ci-dessous présente les noms des opérandes tels qu'ils s'affichent dans la console, l'opérande réel tel qu'il apparaît dans l'expression, les protocoles valides par opérande et la description de chaque opérande.

Tableau 1. Opérandes et leurs descriptions
Opérande affiché | Opérande | Protocoles valides | Description
--- | --- | --- | ---
Nom de l'application | `application` | IIOP | Nom de l'application contenant l'EJB.
Hôte client | `clienthost` | HTTP, SOAP, IIOP | Nom d'hôte qualifié complet du client. Il s'agit de la valeur du nom d'hôte de la commande IP (Internet Protocol). Cet opérande ne prend pas en charge les opérateurs numériques, tels que `>, >=, <, <=`.
Port client | `clientport` | IIOP | Nom du port client.
Client IPV4 | `clientipv4` | HTTP, SOAP | Adresse IP Version 4 du client, utilisant le type d'adresse à quartet descripteur séparé par des points : `n.n.n.n`
Client IPV6 | `clientipv6` | HTTP, SOAP | Adresse IP Version 6 128 bits utilisant le type`x:x:x:x:x:x:x:x` de l'ordinateur client.
Nom d'en-tête du cookie | `cookie$<nom>` | HTTP, SOAP | Nom d'un cookie. Par exemple, l'expression `cookie$Nom_cookie='Nom_cookie'` permet de vérifier qu'une demande contient le cookie Nom_cookie associé à la valeur Nom_cookie. Pour vérifier la présence ou l'absence d'un cookie spécifique, utilisez l'une des expressions suivantes : cookie$MyCookieName IS NOT NULL cookie$MyCookieName IS NULL
Nom du module EJB | `ejbmodule` | IIOP | Nom de module d'un EJB.
Nom EJB | `ejbname` | IIOP | Nom d'un EJB.
Nom de méthode EJB | `ejbmethod` | IIOP | Nom d'une méthode au sein de l'EJB.
ID groupe | `gids$<nom>` | HTTP, SOAP | ID groupe de l'émetteur de la demande.
Méthode HTTP | `HTTPMethod` | HTTP, SOAP | Méthode HTTP pour la demande. POST, GET, PUT et DELETE sont les valeurs possibles.
Type MIME | `MIMEType` | HTTP, SOAP | Type MIME de la demande.
Port | `port` | HTTP, SOAP, IIOP | Port d'écoute sur lequel un service est fourni à l'hôte.
Protocole | `protocol` | HTTP, SOAP | Protocole de communications qui transmet la demande. HTTP, HTTPS, SOAP et SOAPS sont les protocoles actuellement pris en charge.
Nom d'en-tête de la demande | `header$<nom>` | HTTP, SOAP | Nom et valeur d'en-tête. Par exemple, l'expression `header$Host='localhost'` teste une demande pour voir si elle contient un en-tête d'hôte HTTP avec la valeur localhost. Pour vérifier la présence ou l'absence de l'en-tête d'hôte, utilisez l'une des expressions suivantes : `header$Host IS NOT NULL, `header$Host IS NULL``
Nom du paramètre de requête de la demande | `queryparm$<nom>` | HTTP, SOAP | Nom du paramètre de requête spécifié dans l'URL de demande. Pour chaque demande, il existe une mappe de paire nom/valeur de paramètres de requête, s'ils existent. Le routeur On Demand (ODR) utilise le nom du paramètre de requête de la demande comme une clé pour rechercher la mappe de paramètres, si elle existe, et extrait la valeur pour évaluer l'expression de la règle. Si la règle correspond, l'action spécifiée est alors entreprise. Sinon, l'action par défaut associée à la classe de travail dans laquelle l'expression est définie est utilisée. Par exemple, l'expression `queryparm$timezone=EST` teste une requête pour voir si elle contient un paramètre de requête HTTP nommé `timezone` avec la valeur `EST`. Pour tester la présence ou l'absence d'un paramètre de requête, utilisez l'une des commandes suivantes : `queryparm$timezone IS NOT NULL` `queryparm$timezone IS NULL`
Rôles | `roles$<nom>` | HTTP, SOAP | Rôle de l'émetteur de la demande.
Hôte serveur | `serverhost` | HTTP, SOAP, IIOP | Nom d'hôte qualifié complet du serveur. Cet opérande ne prend pas en charge les opérateurs numériques, tels que `>, >=, <, <=.`
Serveur IPV4 | `serveripv4` | HTTP, SOAP | Adresse IP Version 4 de la machine serveur, utilisant le type d'adresse à quartet descripteur séparé par des points : n.n.n.n.
Serveur IPV6 | `serveripv6` | HTTP, SOAP | Adresse IPv6 128 bits du type x:x:x:x:x:x:x:x suivant le RFC 1924 de la machine serveur.
Heure | `time` | HTTP, SOAP, IIOP | L'opérande de temps a le format suivant : `jourDeLaSemaine/jourDuMois/mois/année::heure:minute:seconde` Les valeurs de jourDeLaSemaine sont Dim, Lun, Mar, Mer, Jeu, Ven et Sam. Le jourDuMois inclut les valeurs de 1 à 31. mois est le nombre représentant le mois, en commençant par 1 pour janvier jusqu'à 12 pour décembre. Par exemple, la valeur numérique 5 représente le mois de mai. année est un nombre à 4 chiffres représentant l'année. Par exemple, 2007. heure est l'heure du jour au format 24 heures. minute est un entier compris entre 0 et 59. seconde est un entier compris entre 0 et 59. Remarque : Les omissions et les caractères génériques ne sont pas pris en charge pour l'opérande time. La barre oblique (/) est utilisée pour séparer les paramètres de la date, les deux points répétés (::) sont utilisés pour distinguer les paramètres de la date et de l'heure et les deux points (:) sont utilisés pour séparer les paramètres de l'heure du jour. Notez que le résultat booléen de la règle entière dans laquelle l'opérande temporel est utilisé détermine l'action de routage à entreprendre.
ID utilisateur | `uid$<nom>` | HTTP, SOAP | ID utilisateur de l'émetteur de la demande.
Port virtuel | `virtualportal` | HTTP, SOAP | Le portail virtuel correspond à l'URL de la demande moins la racine de contexte du module Web de l'application WebSphere Portal. Si une demande particulière correspond au portail virtuel défini, l'action de routage définie pour cette règle est adoptée.
Expression XPath | `xpathexpr` | SOAP | L'expression de la chaîne XPath comporte une zone obligatoire destinée à contenir l'expression XPath et une zone facultative pour la définition d'un ou de plusieurs espaces de noms locaux. Si tous les espaces de noms contenus dans l'expression XPath sont standard, la seconde zone peut être facultative. dans le cas de plusieurs espaces de noms, ceux-ci sont séparés par une virgule (,). L'exemple suivant est celui d'une expression xpathexpr avec une définition d'espace de noms local : `xpathexpr$/soap:Envelope/soap:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\=http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL`

## Opérateur

- = L'opérateur d'égalité spécifie une occurrence sensible à la casse.
- <> L'opérateur d'inégalité indique que la valeur d'opérande n'est pas égale à la valeur que vous entrez.
- > L'opérateur "supérieur à" s'utilise avec des nombres.
- >= L'opérateur "supérieur ou égal à" s'utilise avec des nombres.
- < L'opérateur "inférieur à" s'utilise avec des nombres.
- <= L'opérateur "inférieur ou égal à" s'utilise avec des nombres.
- AND : Dans l'expression `xx` AND `yy`, cet opérateur identifie les occurrences qui contiennent à la fois `xx` et`yy`.
- BETWEEN : Cet opérateur s'utilise avec AND pour sélectionner une plage de valeurs qui inclut la première (ou la plus petite) et la dernière (ou la plus élevée) valeur. Vous pouvez les utiliser ensemble avec des nombres et des dates.
- EXISTS : Cet opérateur booléen permet de chercher un opérande ou le résultat d'une sous-expression composée, par exemple, lors de la vérification de certains attributs d'en-tête HTTP.
- IN : Cet opérateur permet de spécifier un opérande contenant plusieurs valeurs dans une expression unique. Par exemple, si, pour un opérande appelé `port`, vous souhaitez spécifier que la valeur du port peut être l'une des valeurs `9080`, `9090`, `9091`, le fragment d'expression est `port IN (9080,9090,9091)`. La façon dont les valeurs sont exprimées dans les parenthèses dépend du type de données du port. Si le port est représenté par un entier, la syntaxe correcte correspond aux valeurs sans les guillemets. Si le port est représenté par une chaîne, la syntaxe correcte est `port IN (9080,9090,9091)`.
- IS NULL : Cet opérateur indique qu'une validation de la requête signale que le paramètre demandé n'existe pas.
- IS NOT NULL : Cet opérateur indique qu'une validation de la demande signale que le paramètre demandé existe.
- LIKE : Cet opérateur exprime un modèle de correspondance pour des valeurs d'opérande de type chaîne. La valeur doit contenir le caractère générique Pourcentage (%) à l'emplacement où commence le modèle de correspondance. Par exemple, l'expression `host LIKE %blanca` correspond au mot "blanca" ou à tout autre mot se terminant par "blanca", alors que l'expression `host LIKE blanca%` correspond au mot "blanca" ou tout autre mot commençant par "blanca", et que l'expression `host LIKE %blanca%` correspond au mot "blanca" et à tout mot contenant "blanca".
- NOT : Dans l'expression NOT `xx`, cet opérateur permet de rechercher les occurrences ne contenant pas `xx`.
- OR : Dans l'expression `xx` OR `yy`, cet opérateur permet de rechercher les occurrences contenant `xx` ou `yy`.

## Valeur

En fonction de l'opérateur choisi, saisissez une valeur pour la sous-expression à créer.

## Générer une sous-expression

Générez la sous-expression issue de l'opérande, de l'opérateur et des valeurs que vous avez spécifiés.

## Sous-expression générée

Copiez et collez cette sous-expression dans votre règle.

Informations connexes :
Stratégies de routage d'un routeur ODR
Stratégies de service d'un routeur ODR
Définition des appartenances et des règles des classes de travail

Nom de fichier : wc_rulebuilder_detail.html