# Builder sottoespressioni

Utilizzare il builder sottoespressioni per creare condizioni di regole complesse da sottoespressioni utilizzando AND, OR, NOT e il raggruppamento parentetico. Il builder delle regole convalida la regola quando si applicano le modifiche e segnala se sono presenti parentesi discordanti e operatori logici non supportati.

Per visualizzare questa pagina della console di gestione, fare clic su Server > Tipi di server > Router on demand > nome_odr > Proprietà router on demand > Politiche di servizio del cluster di server generico > nome_classe_di_lavoro > Aggiungi regola > Builder sottoespressioni.

Per modificare le regole con il builder sottoespressioni, è necessario disporre dei privilegi di amministratore.

## Seleziona operando

In base al protocollo selezionato, verranno visualizzati operandi diversi. La seguente tabella comprende i nomi degli operandi così come sono visualizzati nella console, l'operando effettivo come apparirà nell'espressione, i protocolli validi per operando e la descrizione di ciascun operando.

Tabella 1. Operandi e loro descrizione
Operando visualizzato | Operando | Protocolli validi | Descrizione
--- | --- | --- | ---
Nome applicazione | `application` | IIOP | Il nome dell'applicazione che contiene EJB.
Host client | `clienthost` | HTTP, SOAP, IIOP | Nome completo dell'host client. È il valore del nome host del comando del protocollo Internet (IP). Questo operando non supporta operatori numerici quali`>, >=, <, <=`.
Porta client | `clientport` | IIOP | Il nome porta del client.
IPV4 del client | `clientipv4` | HTTP, SOAP | L'indirizzo Internet Protocol Versione 4 del client, che utilizza il tipo di indirizzo separato da 4 punti: `n.n.n.n`
IPV6 del client | `clientipv6` | HTTP, SOAP | L'indirizzo Internet Protocol Versione 6 del client del tipo a 128 bit `x:x:x:x:x:x:x:x`.
Nome intestazione del cookie | `cookie$<nome>` | HTTP, SOAP | Un nome cookie. Ad esempio l'espressione `cookie$Nome_Cookie='Valore_Cookie'` verifica una richiesta per vedere se contiene un cookie denominato Nome_Cookie con un valore Valore_Cookie. Per verificare la presenza o l'assenza di un determinato cookie, utilizzare una delle seguenti espressioni: cookie$NomeCookie IS NOT NULL cookie$NomeCookie IS NULL
Nome del modulo EJB | `ejbmodule` | IIOP | Il nome del modulo di un EJB.
Nome EJB | `ejbname` | IIOP | Il nome di un EJB.
Nome del metodo EJB | `ejbmethod` | IIOP | Il nome del metodo contenuto nell'EJB.
ID del Gruppo | `gids$<nome>` | HTTP, SOAP | ID del gruppo del mittente della richiesta.
Metodo HTTP | `HTTPMethod` | HTTP, SOAP | Il metodo HTTP della richiesta. I valori possibili sono POST, GET, PUT e DELETE.
Tipo MIME | `MIMEType` | HTTP, SOAP | Il tipo MIME della richiesta.
Porta | `port` | HTTP, SOAP, IIOP | La porta in ascolto su cui è fornito il servizio sull'host.
Protocollo | `protocol` | HTTP, SOAP | Il protocollo di comunicazione che trasmette la richiesta. I protocolli attualmente supportati sono HTTP, HTTPS, SOAP e SOAPS
Nome intestazione della richiesta | `header$<nome>` | HTTP, SOAP | Il nome ed il valore di un'intestazione. Ad esempio l'espressione `header$Host='localhost'` verifica una richiesta per vedere se contiene un'intestazione host HTTP con il valore localhost. Per verificare la presenza o l'assenza dell'intestazione host, utilizzare uno delle seguenti espressioni: `header$Host IS NOT NULL ,`header$Host IS NULL``
Nome del parametro della query della richiesta | `queryparm$<nome>` | HTTP, SOAP | Un nome del parametro della query specificato nell'URL della richiesta. Per ciascuna richiesta, c'è un'associazione della coppia nome/valore dei parametri di query, se presenti. Il router on demand (ODR) utilizza il nome del parametro della richiesta di query come chiave per ricercare la mappa di parametri e, se presente, estrae il valore per valutare l'espressione della regola. Se la regola corrisponde, viene intrapresa l'azione specificata. In caso contrario, viene utilizzata l'azione predefinita per la classe di lavoro in cui è definita l'espressione. Ad esempio, l'espressione `queryparm$timezone='EST'` verifica una richiesta per vedere se contiene un parametro di query HTTP denominato `timezone` con un valore `EST`. Per verificare la presenza o l'assenza di un parametro di query, utilizzare uno dei seguenti comandi: `queryparm$timezone IS NOT NULL` `queryparm$timezone IS NULL`
Ruoli | `roles$<nome>` | HTTP, SOAP | Il ruolo del mittente della richiesta.
Host server | `serverhost` | HTTP, SOAP, IIOP | Il nome completo del server. Questo operando non supporta operatori numerici quali `>, >=, <, <=.`
Server IPV4 | `serveripv4` | HTTP, SOAP | L'indirizzo IP del server che utilizza il tipo di indirizzo IPv4 separato da quattro punti n.n.n.n.
Server IPV6 | `serveripv6` | HTTP, SOAP | L'indirizzo IPv6 del server nel formato a 128-bit x:x:x:x:x:x:x:x che segue le indicazioni contenute nella RFC 1924.
Ora | `time` | HTTP, SOAP, IIOP | L'operando time ha il seguente formato: `dayOfWeek/dayOfMonth/month/year::hour:minute:second` dayofWeek i valori includono Sun, Mon, Tue, Wed, Thu, Fri, Sat. dayOfMonth include i valori 1-31. month è il numero che rappresenta il mese, a partire da gennaio, 1, fino a dicembre, 12. Ad esempio, il valore numerico 5 rappresenta il mese di maggio. year è l'anno a 4 cifre. Ad esempio, 2007. hour è l'ora del giorno, utilizzando il formato 24 ore. minute sono valori interi compresi nell'intervallo 0-59. second sono valori interi compresi nell'intervallo 0-59. Nota: le omissioni e i caratteri jolly non sono supportati per l'operando time. La barra (/) viene utilizzata per separare i parametri della data, i doppi due punti (::) vengono utilizzati per separare i parametri della data e dell'ora, mentre i due punti (:) vengono utilizzati per separare i parametri ora del giorno. Si noti che è il risultato booleano dell'intera regola in cui viene utilizzato l'operando time che determina l'azione di instradamento intrapresa.
ID utente | `uid$<nome>` | HTTP, SOAP | L'ID utente del mittente della richiesta.
Portale virtuale | `virtualportal` | HTTP, SOAP | Il portale virtuale è l'URL della richiesta meno il root di contesto per il modulo Web dell'applicazione WebSphere® Portal. Se una determinata richiesta soddisfa il portale virtuale definito, viene eseguita l'azione di instradamento definita per quella regola.
Espressione XPath | `xpathexpr` | SOAP | L'espressione della stringa XPath ha un campo obbligatorio utilizzato per contenere l'espressione XPath ed un campo facoltativo per la definizione dello spazio nomi locale. Se tutti gli spazi nomi contenuti nell'espressione XPath sono standard, il secondo campo può essere considerato facoltativo. Se vi sono più spazi nomi locali, sarà necessario separarli con una virgola (,). Di seguito è riportato un esempio di una xpathexpr con la definizione di uno spazio nomi locale: `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`

## Operatore

- = L'operatore di uguaglianza esprime una corrispondenza sensibile al maiuscolo/minuscolo.
- <> L'operatore di disuguaglianza esprime che il valore dell'operando non è uguale al valore immesso.
- > L'operatore Maggiore di si utilizza con i numeri.
- >= L'operatore Maggiore di o uguale a si usa con i numeri.
- < L'operatore Minore di si usa con i numeri.
- <= L'operatore Minore di o uguale a si usa con i numeri.
- AND: Per `xx` AND `yy`, esprime corrispondenze che contengono `xx`, `yy`.
- BETWEEN: Questo operatore viene utilizzato con AND per selezionare una scala di valori che comprendono il primo o il minore e l'ultimo o il maggior valore. Insieme, operano sui numeri e sulle date.
- EXISTS: Questo operatore Booleano verifica un operando o il risultato di una sottoespressione composta, ad esempio quando si verificano alcuni attributi dell'elemento intestazione HTTP.
- IN: Questo operatore esprime un operando con più valori in una singola espressione. Ad esempio, se per un operando denominato `porta`, si desidera specificare che il valore di porta può essere qualunque/tutti i valori come `9080`, `9090`, `9091`, il frammento dell'espressione è `porta IN (9080,9090,9091)`. Il modo in cui i valori vengono espressi tra parentesi dipende dal tipo di dati della porta. Se la porta è rappresentata da un valore intero, la sintassi corretta è costituita dai valori senza gli apici. Se la porta è una stringa, la sintassi corretta è `porta IN (9080,9090,9091)`.
- IS NULL: Questo operatore esprime che una convalida della query mostra che il parametro richiesto non esiste.
- IS NOT NULL: Questo operatore esprime che la convalida di una query mostra che il parametro richiesto esiste.
- LIKE: Questo operatore esprime un pattern che corrisponde ai valori dell'operando di una stringa. Il valore deve contenere il segno percentuale del carattere globale (%) nella posizione in cui inizia la corrispondenza del pattern. Ad esempio, l'espressione `host LIKE %blanca` corrisponde alla parola blanca oppure a qualunque altra parola che termina in blanca, mentre l'espressione `host LIKE blanca%` corrisponde alla parola blanca o a qualunque altra parola che inizia con blanca e l'espressione `host LIKE %blanca%` corrisponde alla parola blanca o a qualunque parola in cui è contenuta la parola blanca.
- NOT: Per NOT `xx`, questo operatore esprime le corrispondenze che non contengono `xx`.
- OR: Per `xx` OR `yy`, Questo operatore esprime corrispondenze che contengono `xx`, `yy`.

## Valore

A seconda dell'operatore scelto, immettere un valore per la sottoespressione che si desidera creare.

## Crea sottoespressione

Generare la sottoespressione come risultato dell'operando, dell'operatore e dei valori specificati.

## Sottoespressione generata

Copiare e incollare questa sottoespressione nella propria regola.

Informazioni correlate:
Politiche di instradamento del router On demand
Politiche di servizio del router On demand
Definire le regole e le appartenenze della classe di lavoro

Nome file: wc_rulebuilder_detail.html