# 子表示式建置器

請利用子表示式建置器，透過 AND、OR、NOT 和括弧分組，從子表示式建置複式規則條件。 規則建置器會在您套用變更時驗證規則，並在括弧不對稱及邏輯運算子不受支援時發出警示。

如果要檢視這個管理主控台頁面，請按一下伺服器 > 伺服器類型 > 隨需應變路由器 > odr_name > 隨需應變路由器內容 > 通用伺服器叢集服務原則 > work_class_name > Addrule > 子表示式建置器。

如果要利用子表示式建置器來修改規則，您必須有管理者的管理專用權。

## 選取運算元

依所選的通訊協定而定，會顯示不同的運算元。下表包括主控台所顯示的運算元名稱、出現在表示式中的實際運算元、每個運算元的有效通訊協定，以及每個運算元的說明。

表 1. 運算元及其說明
顯示的運算元 | 運算元 | 有效的通訊協定 | 說明
--- | --- | --- | ---
應用程式名稱 | `application` | IIOP | EJB 所在應用程式的名稱。
用戶端主機 | `clienthost` | HTTP、SOAP、IIOP | 完整的用戶端主機名稱。這是網際網路通訊協定 (IP) 指令主機名稱的值。此運算元不支援 `>、>=、<、<=` 等數值運算子。
用戶端埠 | `clientport` | IIOP | 用戶端埠名稱。
用戶端 IPV4 | `clientipv4` | HTTP、SOAP | 用戶端的網際網路通訊協定第 4 版位址，使用帶點四段式位址類型： `n.n.n.n`
用戶端 IPV6 | `clientipv6` | HTTP、SOAP | 用戶端電腦的 `x:x:x:x:x:x:x:x` 的網際網路通訊協定第 6 版 128 位元位址類型。
Cookie 標頭名稱 | `cookie$<name>` | HTTP、SOAP | Cookie 名稱。例如，`cookie$My_Cookie_Name='My_Cookie_Value'` 表示式會測試要求，以瞭解它是否包含名稱為 My_Cookie_Name、值為 My_Cookie_Value 的 Cookie。如果要測試特定 Cookie 是否存在，請使用下列其中一個表示式： cookie$MyCookieName IS NOT NULL cookie$MyCookieName IS NULL
EJB 模組名稱 | `ejbmodule` | IIOP | EJB 的模組名稱。
EJB 名稱 | `ejbname` | IIOP | EJB 的名稱。
EJB 方法名稱 | `ejbmethod` | IIOP | EJB 內的方法名稱。
群組 ID | `gids$<name>` | HTTP、SOAP | 要求傳送端的群組 ID。
HTTP 方法 | `HTTPMethod` | HTTP、SOAP | 要求的 HTTP 方法。可能的值如下：POST、GET、PUT 和 DELETE。
MIME 類型 | `MIMEType` | HTTP、SOAP | 要求的 MIME 類型。
埠 | `port` | HTTP、SOAP、IIOP | 主機上用來提供服務的接聽埠。
通訊協定 | `protocol` | HTTP、SOAP | 傳輸要求的通訊協定。目前支援的通訊協定如下：HTTP、HTTPS、SOAP 和 SOAPS
要求標頭名稱 | `header$<name>` | HTTP、SOAP | 標頭名稱和值。例如，`header$Host='localhost'` 表示式會測試要求，以瞭解它是否包含其值為 localhost 的 HTTP 主機標頭。如果要測試主機標頭是否存在，請使用下列其中一個表示式： `header$Host IS NOT NULL、`header$Host IS NULL``
要求查詢參數名稱 | `queryparm$<name>` | HTTP、SOAP | 要求 URL 所指定的查詢參數名稱。每項要求的查詢參數（如果有的話），都會有一個名稱/值配對的對映。隨需應變路由器 (ODR) 利用要求查詢參數名稱作為索引鍵來搜尋參數對映，如果有的話，便將值擷取出來，以評估規則表示式。如果規則相符，便會採取指定的動作。否則，便會使用定義了表示式之工作類別的預設動作。 例如，`queryparm$timezone=EST` 表示式會測試要求，以瞭解要求是否包含名稱為 `timezone`、值為 `EST` 的 HTTP 查詢參數。如果要測試查詢參數是否存在，請使用下列指令之一： `queryparm$timezone IS NOT NULL` `queryparm$timezone IS NULL`
角色 | `roles$<name>` | HTTP、SOAP | 要求傳送端的角色。
伺服器主機 | `serverhost` | HTTP、SOAP、IIOP | 伺服器的完整主機名稱。這個運算元不支援數值運算子，如 `>、>=、<、<=`。
伺服器 IPV4 | `serveripv4` | HTTP、SOAP | 伺服器機器的 IP 位址，使用 IPv4 帶點四段式位址類型 n.n.n.n。
伺服器 IPV6 | `serveripv6` | HTTP、SOAP | 類型為 x:x:x:x:x:x:x:x 的 IPv6 128 位元位址類型，遵循伺服器機器的 RFC 1924。
時間 | `time` | HTTP、SOAP、IIOP | 時間運算元的格式如下： `dayOfWeek/dayOfMonth/month/year::hour:minute:second` dayofWeek 值包括 Sun、Mon、Tue、Wed、Thu、Fri、Sat。 dayOfMonth 包括 1-31 的值。 month 是代表月份的數值號碼，從一月開始，一月是 1，十二月是 12。例如，數值 5 代表五月份。 year 是 4 位數年份。例如，2007。 hour 是當日時刻，24 小時表示法。 minute 是範圍為 0-59 的整數。 second 是範圍為 0-59 的整數。 附註：time 運算元中不可省略，也不支援萬用字元。 正斜線 (/) 用來分開日期參數，雙冒號 (::) 用來分開日期和時間參數，冒號 (:) 用來分開日期時間參數。請注意，它是使用 time 運算元的整個規則的 Boolean 結果，決定了要採取的遞送動作。
使用者 ID | `uid$<name>` | HTTP、SOAP | 要求傳送端的使用者 ID。
虛擬入口網站 | `virtualportal` | HTTP、SOAP | 虛擬入口網站是要求 URL 減去 WebSphere® Portal 應用程式 Web 模組的環境定義根目錄。如果給定的要求符合定義的虛擬入口網站，便會採用定義給此規則的遞送動作。
XPath 表示式 | `xpathexpr` | SOAP | XPath 字串表示式有一個用來包含 XPath 表示式的必要欄位，以及一個用來定義本端名稱空間的選用欄位。如果 XPath 表示式所包含的名稱空間都是標準名稱空間，便可能選用第二個欄位。如果有多個本端名稱空間，請用逗點 (,) 來分開各個名稱空間。以下是含有單一本端名稱空間定義的 xpathexpr 範例： `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`

## 操作員

- = 相等運算子表示區分大小寫的相符項目。
- <> 不等於運算子表示運算元值不等於您輸入的值。
- > 大於運算子用於數字。
- >= 大於或等於運算子用於數字。
- < 小於運算子用於數字。
- <= 小於或等於運算子用於數字。
- AND：對 `xx` AND `yy`, 而言，表示同時包含 `xx` 和 `yy` 的相符項目。
- BETWEEN：這個運算子用來搭配 AND，以選取包含第一個值（或低值）到最後一個值（或高值）的值範圍。它們一起運作於數字和日期。
- EXISTS：這個布林運算子會檢查運算元或複合子表示式的結果，例如，當檢查某些 HTTP 標頭元素屬性時，便是如此。
- IN：這個運算子表示在單一表示式中有多個值的運算元。例如，對於稱為 `port` 的運算元，如果您要表示埠值可以是 `9080`、`9090`、`9091` 之類值的任何一項或全部，表示式片段便是 `port IN (9080,9090,9091)`。方括弧內的值之表示方式視埠的資料類型而定。如果埠是整數，則正確的語法是沒有引號的值。如果埠是字串，則正確的語法是 `port IN (9080,9090,9091)`。
- IS NULL：這個運算子表示查詢的驗證作業顯示所要求的參數不存在。
- IS NOT NULL：這個運算子表示查詢的驗證作業顯示所要求的參數存在。
- LIKE：這個運算子表示字串運算元值的型樣比對。此值必須在型樣比對的根目錄位置中，包含百分比符號 (%) 萬用字元。例如，表示式 `host LIKE %blanca` 會符合 blanca 一字或是結尾為 blanca 的其他任何單字，表示式 `host LIKE blanca%` 會符合 blanca 一字或是開頭為 blanca 的其他任何單字，而表示式 `host LIKE %blanca%` 則會符合 blanca 一字或是其中內嵌 blanca 的其他任何單字。
- NOT：對 NOT `xx` 而言，這個運算子表示不包含 `xx` 的相符項目。
- OR：對 `xx` OR `yy` 而言，這個運算子表示包含 `xx` 或 `yy` 的相符項目。

## 值

請依所選的運算子，輸入代表您要建立之子表示式的值。

## 建置子表示式

產生子表示式作為所指定運算元、運算子和值的結果。

## 產生的子表示式

請複製這個子表示式，將它貼在規則中。

相關資訊：
隨需應變路由器遞送原則
隨需應變路由器服務原則
定義工作類別成員資格和規則

檔名：wc_rulebuilder_detail.html