4.5 操作資料

驅動程式 Shim 會根據 <operation-data> 元素,將特殊處理套用至「訂閱者」指令。 在「訂閱者」通道上,可以將 <operation-data> 元素新增至指令,以達到以下兩個目的。

  1. 指定想要包含在指令結果中的 XML 資料。 這樣便可以比對指令與其產生的回應,對於建立關聯非常有用。
  2. 預設「訂閱者」選項可以根據不同的指令進行置換。

Section 1.0, 綜覽中所述,<operation-data> 元素可以從某個「訂閱者」通道規則新增至指令。 驅動程式 Shim 會先從指令中移除操作資料,然後再將其傳送到應用程式,並將 <operation-data> 元素 (及其所有子元素) 還原到產生的回應中。 隨後,規則和樣式表可以視需要在結果中存取 operation-data 元素。

4.5.1 使用操作資料指定要傳回到結果中的 XML

SOAP 驅動程式的範例組態使用 <operation-data> 元素追蹤指令的辨識資訊,以辨識結果並正確指定關聯。 如需如何使用 <operation-data> 元素的詳細資訊,請查看這些範例。

當在回應中還原 <operation-data> 元素時,該元素會附加為根節點的子元素。 您也可以透過為 <operation-data> 元素提供一或多個 parent-node-n 屬性進行置換,其中,n 是從 1 開始的數字,且每當要提供一個父指定器時,該數字便會遞增。 驅動程式 Shim 會尋找 parent-node-n 屬性。 找到後便檢查屬性,查看是否存在具名節點。 如果找到該節點,它便會在回應中做為 <operation-data> 元素的父節點。

4.5.2 使用操作資料置換預設訂閱者選項

有兩種方法可以置換指令的預設「訂閱者」選項。

  1. 在組態中建立多個名為連接的「訂閱者」選項集,並使用 <operation-data> 元素指定用於目前指令的連接集。
  2. 指定特定選項以置換目前指令,如 url、方法或 soap-action。

建立和使用多個訂閱者選項集 (連接)

若要使用 <operation-data> 元素置換預設「訂閱者」連接參數:

  1. 編輯驅動程式組態的「訂閱者」設定區段。

  2. 使用 iManager 的 XML 編輯功能,找到以橫線和數字 1 結尾的「訂閱者」設定 (例如 subURL-1),然後複製並遞增數字。

    例如: subURL-2

  3. 將新的設定值設定為您要用於第二個連接的值。

    您可以使用這種方式設定任意個連接,但設定的數值需要按順序遞增。

  4. 將屬性新增到名為 connection<operation-data> 元素,並為其指定要使用的連接數值。

    例如:

    <operation-data connection="2"> ...(其他 operation-data 元素) </operation-data>
    

置換單一訂閱者選項

您可以直接使用 <operation-data> 元素的屬性僅置換 url、HTTP 方法或 soap-action 值,而不必使用連接概念置換多個「訂閱者」選項。 下表列出可以使用的屬性以及這些屬性要置換的「訂閱者」選項。

Table 4-1 用於置換訂閱者選項的屬性

<operation-data> 屬性

被置換的訂閱者選項

描述

url

subURL-1

這是 Web 服務或 HTTP 應用程式的 URL (或 URI)。 如果應用程式有兩個不同的 Web 服務分別用於新增和刪除使用者,置換 URL 可能會很有用。

方法

subHttpMethod-1

這方法預設為 POST,如有需要,也可以設定為 RFC 2616 區段 9 中所定義的其他方法。

soap-action

具有關鍵字 “SOAPAction” 的 HTTP 申請標題欄位

在 DSML 與 SPML 範例中,此值始終為 #batchRequest。 不過,某些 Web 服務需要變更此值,這取決於指令。

範例:

<operation-data url="http://137.66.10.13:18180/soap"> ...(如有需要,使用其他 operation-data 元素) </operation-data>

<operation-data 方法="GET"> ...(如有需要,使用其他 operation-data 元素) </operation-data>

<operation-data soap-action="addUser"> ...(如有需要,使用其他 operation-data 元素) </operation-data>