連接器可以處理下列商業物件:
在事件處理方面,連接器允許兩種 TLO -- 同步與非同步。 本節討論同步事件處理 TLO。
圖 4 顯示同步事件處理的商業物件階層。 要求和回應物件為必要的,錯誤物件為選用性。
TLO 包含物件層次 ASI 及屬性層次 ASI 的屬性。以下討論這兩種 ASI。
關於 TLO 及所含物件的本質,物件層次 ASI 提供基本的資訊。 圖 5 顯示同步事件處理 TLO 範例 SERVICE_SYNCH_OrderStatus 的物件層次 ASI。
下列表 4 說明同步事件處理 TLO 的物件層次 ASI。
物件層次 ASI | 說明 |
---|---|
ws_eventtlo=true |
若此 ASI 內容設為 true,連接器會將物件視為可以處理事件的 TLO。
|
ws_collab=collabname |
此 ASI 告訴連接器要呼叫哪個協同作業。 值為協同作業的名稱。圖 5 顯示的範例中, 協同作業名稱為
SERVICE_SYNCH_OrderStatus_Collab
|
ws_verb=verb |
將 TLO 傳遞至協同作業之前,連接器會使用此 ASI 在 TLO 上設定動詞。 圖 5 顯示的範例中,動詞為 Retrieve。
|
ws_mode=synch |
在事件通知期間,連接器使用此 ASI 內容來決定要同步 (synch) 或非同步 (asynch) 呼叫協同作業。 若為同步處理,此 ASI 必須設為 synch。 預設值為 asynch。
|
每一個同步事件處理程序 TLO 都有屬性及屬性層次 ASI。 圖 6 顯示 TLO 範例 SERVICE_SYNCH_OrderStatus 的屬性。 在 App Spec Info 直欄中也顯示屬性層次 ASI。
表 5 針對同步事件處理 TLO 的 Request、Response、Fault、MimeType
及 Charset 屬性,摘要說明其屬性層次 ASI。
TLO 屬性 | 屬性層次 ASI | 說明 |
---|---|---|
MimeType |
| 選用的屬性;若指定,則同步回應所呼叫的資料處理常式會使用此值作為 MIME 類型。 |
Charset |
| 將外送商業物件轉換成訊息時,這個 String 類型的選用性參數可以指定要在資料處理常式上設定的字集。 附註:此屬性中指定的 charset 值,不會透過回應訊息的 Content-Type 通訊協定標頭來傳送。 |
Request
| ws_botype=request |
此屬性對應於 HTTP 服務要求。 連接器會使用此 ASI 來判斷此 TLO 屬性是否為要求 BO 的類型。 此 ASI (不是屬性名稱) 可以決定屬性類型。 若有多個要求屬性,連接器會使用第一個屬性的 ASI。 同步事件處理程序 TLO 需要此屬性。
|
Response
| ws_botype=response |
此屬性對應於 HTTP 服務傳回的回應。 連接器會使用此 ASI 來判斷此 TLO 屬性是否為回應 BO 的類型。 此 ASI (不是屬性名稱) 可以決定屬性類型。 若有多個回應屬性,連接器會使用第一個屬性的 ASI。 同步事件處理程序 TLO 需要此屬性。
|
Fault | ws_botype=fault
ws_botype=defaultfault |
此屬性 (同步事件處理選用的屬性)
對應於協同作業無法順利填入回應時所傳回的錯誤訊息。 連接器會使用此 ASI
(不是屬性名稱) 來判斷屬性是否為 Fault BO 類型。
|
「要求」商業物件為 TLO 的子項,且為同步事件處理的必要項目。 「要求」商業物件有物件層次 ASI。 表 6 說明同步事件處理的「要求」商業物件的物件層次 ASI。 您可以為「要求」商業物件指定預設的動詞。 作法是指定:
DefaultVerb=true;
在最上層「要求」商業物件的「支援動詞」清單中,於動詞的 ASI 欄位中指定。
若未指定 DefaultVerb
ASI,且資料處理常式所處理的商業物件未設定動詞, 則傳回的商業物件沒有動詞。
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 此 ASI 指定 HTTP 或 HTTPS 通訊協定接聽器。 此 ASI 和 Protocol Config MO 皆為選用性。 如需進一步資訊,請參閱Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
ws_tloname=tloname | 此 ASI 指定這個物件所屬的 TLO 名稱。 在事件處理期間,連接器會使用此 ASI 來判斷資料處理常式傳送的「要求」商業物件是否為 TLO 的子項。 若確定是子項,連接器會建立指定的 TLO、設定「要求」商業物件為子項, 然後使用 TLO 物件層次 ASI 來傳遞給訂閱的協同作業。 |
「回應」商業物件為 TLO 的子項,且為同步事件處理的必要項目。 表 7 說明同步事件處理的「回應」商業物件的物件層次 ASI。
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 此 ASI 指定 HTTP 或 HTTPS 通訊協定接聽器。 此 ASI 和 Protocol Config MO 皆為選用性。 如需進一步資訊,請參閱Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
「錯誤」商業物件為 TLO 的子項,只為同步事件處理的選用項目。 表 8 說明同步事件處理的「錯誤」商業物件的物件層次 ASI。
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 此 ASI 指定 HTTP 或 HTTPS 通訊協定接聽器。 此 ASI 和 Protocol Config MO 皆為選用性。 如需進一步資訊,請參閱Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
在事件處理程序的要求、回應或錯誤商業物件中,可以選擇併入 Protocol Config MO 當作子項。 通常是在需要讀取 (從要求訊息) 或傳送 (至回應或錯誤訊息) 通訊協定標頭及自訂內容時指定。 根據以上的說明,「要求」商業物件可以選擇是否宣告 Protocol Config MO 的名稱當作商業物件層次 ASI:
在事件處理期間,連接器會 使用通訊協定接聽器 (HTTP 或 HTTPS) 來擷取傳輸上的事件。 這些事件來自於內部或外部要求協同作業服務的用戶端。 每一個傳輸有各自的標頭需求。 連接器會利用 Protocol Config MO,將通訊協定特有的標頭資訊從通訊協定接聽器傳送至協同作業。 Protocol Config MO 屬性對應於入埠訊息中的標頭。 連接器會採用入埠訊息內容,在商業物件中設定這些屬性的值。
若為 HTTP(S) 通訊協定,Protocol Config MO 屬性如下:
表 9. 事件處理的 HTTP/HTTPS Protocol Config MO 屬性
屬性 | 必要的 | 類型 | 說明 |
---|---|---|---|
Content-Type | 否 | String | 此屬性的值定義外送訊息的 Content-Type 標頭 (包括訊息 ContentType 及外送訊息的零個或更多參數 -- charset)。 語法同於 HTTP 通訊協定中 Content-Type 標頭的語法, 例如:text/xml; charset=ISO-8859-4。 若未定義 Content-Type 屬性,連接器會採用要求的 ContentType 作為回應/錯誤訊息的 ContentType。 |
UserDefinedProperties | 否 | 商業物件 | 此屬性存放使用者定義的通訊協定內容商業物件。 |
一或多個 HTTP 標頭 | 否 | String | 此屬性可讓處理常式傳遞或擷取指定的 HTTP 標頭的值。 |
Authorization_UserId | 否 | String | 此屬性對應於 HTTP 基本鑑別的使用者 ID。 |
Authorization_Password | 否 | String | 此屬性對應於 HTTP 基本鑑別的密碼。 |
這些屬性說明於:
如需通訊協定接聽器的進一步資訊,請參閱通訊協定接聽器。 (如需要求處理的 Protocol Config MO 的相關資訊,請參閱同步要求處理程序 TLO)。
您可以選擇在 HTTP(S) Protocol Config MO 中指定自訂內容。 作法是加入 UserDefinedProperties 屬性。 此屬性對應於一個商業物件,此商業物件有一或多個子項屬性含有內容值。 此商業物件的每一個屬性必須定義單一內容, 藉此在訊息標頭的變數部份中讀取 (或是寫入,若為同步回應),如下所示:
表 10 彙總這些屬性的應用程式特有資訊。
表 10. 使用者定義通訊協定內容屬性的應用程式特有資訊:「名稱=值」配對內容
名稱 | 值 | 說明 |
---|---|---|
ws_prop_name (不區分大小寫;若不指定,則採用屬性名稱作為內容名稱) | 任何有效的通訊協定內容名稱 | 此為通訊協定內容的名稱。部分供應商會保留某些內容來提供延伸的功能。 |
若給定的自訂內容 ASI (ws_prop_name) 無效, 且無法以任何符合邏輯的方式來處理此標頭,連接器會記載警告並忽略此內容。 對於 ws_prop_name 執行必要的檢查之後,若無法設定也無法擷取自訂內容的值, 連接器會記載錯誤,並且讓事件失敗。
若指定 UserDefinedProperties 屬性,連接器會建立 UserDefinedProperties 商業物件的實例。 然後,連接器會試圖從訊息中擷取內容值,再儲存在商業物件中。 若至少順利擷取一個內容值,連接器會在 Protocol Config MO 中設定已修改的 UserDefinedProperties 屬性。
在同步事件處理方面,若已指定 UserDefinedProperties 屬性,且已設定商業物件的實例, 連接器會處理這個子項商業物件的每一個屬性,並且適當地設定訊息內容值。
基於傳達認證的目的,連接器在 HTTP Protocol Config MO 中支援 Authorization_UserId 和 Authorization_Password 屬性。 這項支援限制在 HTTP Basic 鑑別方法中傳達這些認證。
若 HTTP 或 HTTPS 通訊協定接聽器處理的 HTTP 服務要求含有授權標頭, 接聽器會剖析標頭來判斷是否符合 HTTP Basic 鑑別。 若符合,接聽器會擷取和解碼 (採用 Base64) 使用者名稱及密碼。 此解碼字串由冒號隔開的使用者名稱和密碼組成。 若通訊協定接聽器在 Protocol Config MO 中找到 Authorization_UserId 和 Authorization_Password 屬性, 接聽器會採用從事件授權標頭中擷取的值來設定這些值。
圖 7 顯示非同步事件處理的商業物件階層。 只需要一個要求物件。
TLO 包含物件層次 ASI 及屬性層次 ASI 的屬性。以下討論這兩種 ASI。
關於 TLO 及所含物件的本質,物件層次 ASI 提供基本的資訊。 圖 8 顯示非同步事件處理 TLO 範例 SERVICE_ASYNCH_TLO_Order 的物件層次 ASI。
下列表 4 說明非同步事件處理 TLO 的物件層次 ASI。
物件層次 ASI | 說明 |
---|---|
ws_eventtlo=true |
若此 ASI 內容設為 true,連接器會將物件視為事件處理的 TLO。
|
ws_verb=verb |
將 TLO 傳遞至協同作業之前,連接器會使用此 ASI 在 TLO 上設定動詞。 圖 8 顯示的範例中,動詞為 Create。
|
ws_mode=asynch |
在事件通知期間,連接器使用此 ASI 內容來決定要同步 (synch) 或非同步 (asynch) 呼叫協同作業。 若為非同步處理,此 ASI 必須設為 asynch。 預設值為 asynch。
|
每一個非同步事件處理 TLO 都有單一屬性對應於「要求」商業物件。 圖 9 顯示 TLO 範例 SERVICE_ASYNCH_TLO_Order 的要求屬性及屬性的 ASI。
表 12 針對非同步事件處理 TLO 的要求屬性,摘要說明其屬性層次 ASI。
TLO 屬性 | 屬性層次 ASI | 說明 |
---|---|---|
Request
| ws_botype=request |
此屬性對應於要求。連接器會使用此 ASI 來判斷此 TLO 屬性是否為要求 BO 的類型。 此 ASI (不是屬性名稱) 可以決定屬性類型。 若有多個要求屬性,連接器會使用第一個屬性的 ASI。 同步事件處理 TLO 需要此屬性。
|
「要求」商業物件為 TLO 的子項,且為非同步事件處理的必要項目。 您可以為「要求」商業物件指定預設的動詞。 作法是指定:
DefaultVerb=true;
在最上層「要求」商業物件的「支援動詞」清單中,於動詞的 ASI 欄位中指定。
若未指定 DefaultVerb
ASI,且資料處理常式所處理的商業物件未設定動詞, 則傳回的商業物件沒有動詞。 表 13
說明非同步事件處理的「要求」商業物件的物件層次 ASI。
表 13. 非同步事件處理:「要求」商業物件的物件層次 ASI
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 此 ASI 指定 HTTP 或 HTTPS 通訊協定接聽器。 此 ASI 和 Protocol Config MO 皆為選用性。 如需進一步資訊,請參閱Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
ws_tloname=tloname | 此 ASI 指定這個物件所屬的 TLO 名稱。 在事件處理期間,連接器會使用此 ASI 來判斷資料處理常式傳送的「要求」商業物件是否為 TLO 的子項。 若確定是子項,連接器會建立指定的 TLO、設定「要求」商業物件為子項, 然後使用 TLO 物件層次 ASI 來傳遞給訂閱的協同作業。 |
在要求處理方面,連接器允許兩種 TLO -- 同步與非同步。 本節討論同步要求處理 TLO。
圖 10 顯示同步要求處理的 TLO 商業物件階層。 要求、回應及處理常式物件為必要的,錯誤物件為選用性。 不同於事件處理,要求物件需要 Protocol Config MO,但對於回應和錯誤物件,Protocol Config MO 為選用性。
關於 TLO 及所含物件的本質,物件層次 ASI 提供重要的資訊。 圖 11 顯示同步要求處理 TLO 範例 CLIENT_SYNCH_TLO_OrderStatus。
表 14 說明同步要求處理 TLO 的物件層次 ASI。 不同於同步事件處理 TLO
的 ASI, 此層次的要求處理不需要 ws_collab、ws_verb 或
ws_eventtlo ASI。
物件層次 ASI | 說明 |
---|---|
ws_mode=synch |
在要求處理期間,連接器使用此 ASI 內容來決定要同步 (synch) 或非同步 (asynch) 呼叫 HTTP 服務。 若指出 synch,連接器會預期回應, 且 TLO 必須包含「要求」和「回應」商業物件,可能還包含一或多個錯誤物件。 預設值為 asynch。
|
表 15 說明同步要求處理 TLO 的屬性及 ASI。
TLO 屬性 | 屬性層次 ASI | 說明 |
---|---|---|
MimeType | 無 |
此屬性指定資料處理常式的 MIME
類型,連接器會呼叫此處理常式將「要求」商業物件轉換成要求訊息。
此值可能用於將同步回應/錯誤訊息轉換成商業物件,視「訊息轉換規則」配置而定。
|
BOPrefix | 無 | 此 String 類型屬性會傳遞給資料處理常式。 |
Handler | 無 | 此屬性指定用來處理要求的通訊協定處理常式,僅適用於要求處理。 它採用 http 值來指定 HTTP-HTTPS 通訊協定處理常式。 預設值為 http。 |
Charset |
| 將「要求」商業物件轉換成訊息時,這個 String 類型的選用性參數可以指定要在資料處理常式上設定的字集。 附註:此屬性中指定的 charset 值,不會透過要求訊息的 Content-Type 通訊協定標頭來傳送。 |
Request
| ws_botype=request |
此屬性對應於「要求」商業物件。 連接器會使用此屬性 ASI 來判斷此 TLO
屬性是否為要求 BO 的類型。 此 ASI (不是屬性名稱) 可以決定屬性類型。
若有多個要求屬性,連接器會使用第一個填寫屬性的 ASI。
|
Response
| ws_botype=response |
此屬性對應於傳回至協同作業的回應,且為同步要求處理所必要的。
連接器會使用此屬性 ASI 來判斷此 TLO 屬性是否為回應 BO 的類型。 此 ASI
(不是屬性名稱) 可以決定屬性類型。
|
Fault
| ws_botype=fault
或 ws_botype=defaultfault | 此屬性 (同步要求處理選用的屬性) 對應於 HTTP
服務無法順利填入回應時所傳回的錯誤訊息。
連接器會使用此 ASI 來判斷 TLO 的屬性是否為錯誤 BO 的類型。 此 ASI (不是屬性名稱) 可以決定屬性類型。 若錯誤訊息是詳細的元素,則傳回 defaultfault 商業物件。 defaultfault 用於預設的商業物件解決方案。 |
「要求」商業物件為 TLO 的子項,且為同步要求處理的必要項目。 「要求」商業物件有物件層次 ASI。
表 16 說明同步要求處理的「要求」商業物件的物件層次 ASI。
表 16. 同步要求處理:「要求」商業物件的物件層次 ASI
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此選用性 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 此 Protocol Config MO 指定 HTTP-HTTPS 通訊協定處理常式的目的地。 「HTTP-HTTPS 通訊協定處理常式」會使用此 ASI。 請注意,TLO 要求屬性必須有 HTTP Protocol Config MO 來處理要求。 如需進一步資訊,請參閱要求處理程序的 HTTP Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
「回應」商業物件為 TLO 的子項,且為同步要求處理的必要項目。 表 17 說明同步要求處理的「回應」商業物件的物件層次 ASI。
表 17. 同步要求處理:「回應」商業物件的物件層次 ASI
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 「回應」商業物件的這個選用性 Protocol Config MO,可以在 HTTP(s) 通訊協定處理常式的回應訊息中指定標頭。 如需進一步資訊,請參閱要求處理程序的 HTTP Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
您可以為「回應」商業物件指定預設的動詞。 作法是指定:
DefaultVerb=true;
在最上層「回應」商業物件的「支援動詞」清單中,於動詞的 ASI 欄位中指定。 若未指定 DefaultVerb ASI,且資料處理常式所處理的商業物件未設定動詞, 則傳回的「回應」商業物件沒有動詞。
「錯誤」商業物件為 TLO 的子項,只為同步要求處理的選用項目。 表 8 說明同步要求處理的「錯誤」商業物件的物件層次 ASI。
表 18. 同步要求處理:「錯誤」商業物件的物件層次 ASI
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 「錯誤」商業物件的這個選用性 Protocol Config MO,可以在 HTTP-HTTPS 通訊協定處理常式的回應訊息中指定標頭。 如需進一步資訊,請參閱Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
在要求處理期間,HTTP-HTTPS 通訊協定處理常式會利用 HTTP Protocol Config MO
來決定目標 HTTP 服務的目的地。 「要求」商業物件需要此 Protocol Config MO。
HTTP-HTTPS 通訊協定處理常式僅支援 HTTP 1.0 POST 要求。 如表 19 所示, 唯一需要的屬性 (Destination) 是目標 HTTP 服務的完整
URL。 以下幾節說明選用的授權屬性。
表 19. 要求處理的 HTTP Protocol Config MO 屬性
屬性 | 必要的 | Type | 說明 |
---|---|---|---|
Destination | 是 | String | 目標 HTTP 服務的目的地 URL。HTTP-HTTPS 通訊協定處理常式利用此屬性來決定 HTTP 服務的目的地。 |
Content-Type | 對於「要求」商業物件而言為必要的,否則為選用性。 | String | 此屬性的值定義外送訊息的 Content-Type 標頭 (包括訊息 ContentType 及外送訊息的 charset)。 語法同於 HTTP 通訊協定中 Content-Type 標頭的語法, 例如:text/xml; charset=ISO-8859-4。 |
Authorization_UserId | 否 | String | 此屬性對應於 HTTP 基本鑑別的使用者 ID。如需進一步資訊,請參閱要求處理程序的 HTTP 認證傳達。 |
Authorization_Password | 否 | String | 此屬性對應於 HTTP 基本鑑別的密碼。 如需進一步資訊,請參閱要求處理程序的 HTTP 認證傳達。 |
一或多個 HTTP 標頭 | 否 | String | 此屬性可讓處理常式傳遞或擷取指定的 HTTP 標頭的值。 |
UserDefinedProperties | 否 | 商業物件 | 此屬性存放使用者定義的通訊協定內容商業物件。如需進一步資訊,請參閱要求處理程序的使用者定義內容。 |
MessageTransformationMap | 否 | 單一基數商業物件 | 此屬性指向含有零個或更多訊息轉換規則的商業物件。 針對規則中指定的送入訊息上要套用的 MIME 類型及 charset,規則存放相關的資訊。 如需進一步資訊,請參閱訊息轉換對映。 |
HTTP Protocol Config MO 屬性說明於:
您可以選擇在 HTTP Protocol Config MO 中指定自訂內容。 作法是加入 UserDefinedProperties 屬性。 此屬性對應於一個商業物件,此商業物件有一或多個子項屬性含有內容值。 此商業物件的每一個屬性必須定義單一內容, 藉此在訊息標頭的變數部份中讀取 (或是寫入,若為同步回應),如下所示:
表 20 摘要說明這些屬性的應用程式特有資訊。
表 20. 使用者定義通訊協定內容屬性的應用程式特有資訊:「名稱=值」配對內容
名稱 | 值 | 說明 |
---|---|---|
ws_prop_name (不區分大小寫;若不指定,則採用屬性名稱作為內容名稱) | 任何有效的通訊協定內容名稱 | 此為通訊協定內容的名稱。部分供應商會保留某些內容來提供延伸的功能。 |
若給定的自訂內容 ASI (ws_prop_name) 無效, 且無法以任何符合邏輯的方式來處理此標頭,連接器會記載警告並忽略此內容。 對於 ws_prop_name 執行必要的檢查之後,若無法設定也無法擷取自訂內容的值, 連接器會記載錯誤,並且讓事件失敗。
若已指定 UserDefinedProperties 屬性,且已設定商業物件的實例, 連接器會處理這個子項商業物件的每一個屬性,並且適當地設定訊息內容值。
若為同步要求處理,則在收到回應訊息時,若已指定 UserDefinedProperties 屬性, 連接器會建立 UserDefinedProperties 商業物件的實例, 並且試圖從訊息中擷取內容值,再儲存於新的商業物件中。 若至少順利擷取一個內容值,連接器會在 Protocol Config MO 中設定已修改的 UserDefinedProperties 商業物件。
僅要求處理 HTTP(S) 通訊協定處理常式支援「訊息轉換對映 (MTM)」功能。 MessageTransformationMap 為 Protocol Config MO 的選用性屬性,指向一個商業物件。 此商業物件包含訊息的轉換規則,且規則中已指定這些訊息的 MIME 類型和 charset。 若找到 (區分大小寫) 屬性名稱 MessageTransformationMap, 且此屬性為商業物件類型,連接器會採用此物件的規則來轉換訊息。
MTM 屬性必須有一個基數 N 子項商業物件屬性的名稱為 TransformationRule。 嘗試尋找訊息的 TransformationRule 時, 首先,HTTP-HTTPS 通訊協定處理常式會試圖以所有 TransFormationRule 中指定的 ContentType 來比對完全相符的訊息。 如果成功,連接器再試圖尋找適用於多種訊息的規則。 如需通訊協定處理常式處理的進一步資訊,請參閱HTTP-HTTPS 通訊協定處理常式處理程序。
TransformationRule 商業物件的每一個實例,必須指定表 21 顯示的屬性。
表 21. HTTP Protocol Config MO 中 MessageTransformationMap 的 TransformationRule 屬性
屬性名稱 | 必要的 | Type | 預設值 | 說明 |
---|---|---|---|---|
TransformationRule | 否 | 商業物件,基數 N |
| 此屬性存放訊息轉換的 1 個規則。 在 MessageTranformationMap 屬性底下,此屬性可能有零個或更多個實例。 |
+ContentType | 是 | String | */* | 這個內容的值指定套用此轉換規則的訊息的 HTTP ContentType。 此屬性的預設值 */*,可讓連接器在任何 ContentType 上套用此規則。 如需通訊協定處理常式處理的進一步資訊,請參閱HTTP-HTTPS 通訊協定處理常式處理程序。 請注意,若「通訊協定處理常式」發現有多個規則的 ContentType 相同, 「通訊協定處理常式」會記載警告,並且忽略所有重複的規則,但會使用唯一的規則。 |
+MimeType | 否 |
|
| 在處理此商業物件所指定的 ContentType 訊息期間,呼叫資料處理常式時所用的 MIME 類型。 |
+Charset | 否 |
|
| 轉換此商業物件所指定的 ContentType 的要求時所用的 charset。 |
基於傳達認證的目的,連接器在 HTTP Protocol Config MO 中支援 Authorization_UserId 和 Authorization_Password 屬性。 這項支援限制在 HTTP Basic 鑑別方法中傳達這些認證。
協同作業會在 Protocol Config MO 中設定 Authorization_UserId 和 Authorization_Password 屬性的值。 若這些屬性都不是空值或空白,連接器會在傳送給目標 HTTP 服務的要求上建立授權標頭。 HTTP/HTTPS 通訊協定處理常式在建立授權標頭時遵循 HTTP Authentication: Basic and Digest Access Authentication (RFC 2617)。
圖 12 顯示非同步要求處理的商業物件階層。 需要一個要求物件和處理常式物件。 要求物件包含 HTTP-HTTPS 通訊協定處理常式的 Protocol Config MO。 下節會繼續說明。
TLO 包含物件層次 ASI 及屬性層次 ASI 的屬性。以下討論這兩種 ASI。
圖 13 顯示非同步要求處理 TLO 範例 CLIENT_ASYNCH_Order_TLO。
下列表 22 說明非同步要求處理 TLO 的物件層次 ASI。
物件層次 ASI | 說明 |
---|---|
ws_mode=asynch |
在要求處理期間,連接器使用此 ASI 內容來決定要同步 (synch) 或非同步 (asynch) 呼叫協同作業。 若為非同步要求處理,此 ASI 必須設為 asynch。 預設值為 asynch。
|
表 23 針對非同步要求處理 TLO 的要求屬性,摘要說明其屬性層次 ASI。
TLO 屬性 | 屬性層次 ASI | 說明 |
---|---|---|
MimeType | 無 |
此屬性指定連接器呼叫的資料處理常式的 MIME 類型。
請注意,此屬性僅適用於要求處理。
|
BOPrefix | 無 | 此屬性的值會傳遞到資料處理常式。 |
Handler | 無 | 此屬性指定用來處理要求的通訊協定處理常式,僅適用於要求處理。 它採用 http 值,指定 HTTP-HTTPS 通訊協定處理常式來處理要求。 預設值為 http。 |
Charset |
| 將「要求」商業物件轉換成訊息時,這個 String 類型的選用性參數可以指定要在資料處理常式上設定的字集。 附註:此屬性中指定的 charset 值,不會透過要求訊息的 Content-Type 通訊協定標頭來傳送。 |
Request
| ws_botype=request |
此屬性對應於 HTTP 服務「要求」商業物件。 連接器會使用此屬性 ASI 來判斷此
TLO 屬性是否為要求 BO 的類型。 此 ASI (不是屬性名稱) 可以決定屬性類型。
若有多個要求屬性,連接器會使用第一個屬性的 ASI。
|
「要求」商業物件為 TLO 的子項,且為非同步要求處理的必要項目。 表 24 說明非同步要求處理的「要求」商業物件的物件層次 ASI。
表 24. 非同步要求處理:「要求」商業物件的物件層次 ASI
物件層次 ASI | 說明 |
---|---|
cw_mo_http=HTTPCfgMO | 此 ASI 的值必須符合對應於 Protocol Config MO 的屬性名稱。 此 Protocol Config MO 指定 HTTP-HTTPS 通訊協定處理常式的目的地。 「HTTP-HTTPS 通訊協定處理常式」會使用此 ASI。 請注意,TLO 要求屬性必須有 HTTP Protocol Config MO 來處理要求。 如需進一步資訊,請參閱要求處理程序的 HTTP Protocol Config MO。 附註:您為商業物件轉換所配置的資料處理常式, 應該能夠讀取任何以 cw_mo 開頭的 ASI 當作 Meta 資料,且這些 ASI 不屬於要轉換的商業物件。 XML 資料處理常式有能力偵測 cw_mo Meta 資料,忽略這些值指到的屬性。 |
在要求處理期間,HTTP-HTTPS 通訊協定處理常式會利用 HTTP Protocol Config MO 來決定目標 HTTP 服務的目的地。 「要求」商業物件需要此 Protocol Config MO。 如需進一步資訊,請參閱要求處理程序的 HTTP Protocol Config MO。