共用方式為


使用失敗的訊息訂閱

當 Microsoft BizTalk Accelerator for SWIFT (A4SWIFT) 反組譯程式程式 (剖析和驗證訊息) 時,它會升級該訊息的屬性。 這些升級的屬性提供訊息正確性和有效性的相關資訊,以及A4SWIFT收到訊息作為輸入批次的一部分時批次相關資訊。 如需這些屬性的完整清單,請參閱 A4SWIFT_* 升級屬性

不同于原生 BizTalk 反組譯程式,A4SWIFT反組譯程式不會在處理時暫停訊息產生錯誤或失敗。 相反地,它會將失敗的訊息發佈至 MessageBox 資料庫,就像是有效的訊息一樣。 因此,失敗的訊息可能會將錯誤詳細資料帶入 MessageBox 資料庫。 您可以從 MessageBox 資料庫擷取訊息、處理並修復訊息,甚至將訊息重新送回 MessageBox 資料庫。 如果訊息實際上 已暫止,您將無法執行大部分的工作。

您可以識別A4SWIFT已發行至 MessageBox 資料庫的訊息,因為其升級屬性失敗或錯誤。 處理失敗的訊息時,SWIFT 反組譯程式會在將訊息發佈至 MessageBox 資料庫之前填入並升級 A4SWIFT_Failed 屬性,以及一或多個其他屬性:

  • A4SWIFT_ParseErrors 指出剖析錯誤的數目 (,例如處理期間遇到的格式不正確的資料) 。

  • A4SWIFT_XmlValidationErrors 指出在處理期間遇到的架構) 無效資料或不正確的資料類型等 XML 驗證 (錯誤數目。

  • A4SWIFT_BreValidationErrors 指出商務規則引擎 (BRE) 驗證 (錯誤的數目,例如在處理期間中斷 SWIFT 網路規則) 的資料。

  • 上述任何屬性的計數大於零時,A4SWIFT_Failed為 true ,如果計數等於零,則 為 false

    這些屬性都是 Microsoft 的一部分。Solutions.A4SWIFT.Property 命名空間。 如需這些和其他升級屬性的詳細資訊,請參閱 A4SWIFT_* 升級的屬性

    若要擷取或擷取失敗的訊息,您必須建立篩選運算式 (訂用帳戶) 來接收包含上述部分屬性的圖形,作為運算式的 AND 子句。

    例如,若要訂閱所有失敗的訊息,如果還有其他子句) ,請將下列子句新增為 AND 子 (句:

    微軟。Solutions.A4SWIFT.Property.A4SWIFT_Failed == true

    若要訂閱僅剖析失敗的訊息,請將下列子句新增在一起:

    微軟。Solutions.A4SWIFT.Property.A4SWIFT_Failed == true,AND Microsoft 。Solutions.A4SWIFT.Property.A4SWIFT_XmlValidationErrors == 0,ANDMicrosoft 。Solutions.A4SWIFT.Property.A4SWIFT_BreValidationErrors == 0;

    相反地,針對設計只處理有效訊息的傳送埠或協調流程,包括 「ANDMicrosoft 。Solutions.A4SWIFT.Property.A4SWIFT_Failed == false「 作為篩選運算式中的 子句。

注意

如果訂用帳戶重迭,A4SWIFT將會滿足所有訂用帳戶。 也就是說,如果一個以上的服務 (傳送埠或協調流程) 具有特定訊息所滿足的篩選運算式,則所有這類服務都會收到相同的訊息。 例如,如果傳送埠訂閱所有失敗的訊息,而協調流程只會訂閱具有剖析失敗的訊息,當處理訊息時,A4SWIFT遇到剖析錯誤時,就會滿足這兩個訂用帳戶。 請務必在服務間消除訂用帳戶中不必要的重迭。

注意

如果A4SWIFT接收和處理訊息,並將該訊息發佈至 MessageBox 資料庫,但訊息不符合任何訂用帳戶,A4SWIFT將會暫停訊息,並出現指出缺少訂閱者的BizTalk Server錯誤。 例如,如果您有服務訂閱所有訊息 「A4SWIFT_Failed == false」,但沒有服務訂閱 「A4SWIFT_Failed == true」 的訊息,則剖析或驗證失敗的訊息確實因為訂閱者不足而暫停。 此案例實際上可讓您模擬傳統暫停失敗的訊息。 請務必訂閱您不想暫停的所有訊息。 如需 MessageBox 資料庫訂用帳戶、傳送埠、協調流程和篩選運算式的其他詳細資料,請參閱BizTalk Server說明。

此部分包含: