扩展捕获和消息修复的解决方案

本帮助中的 MT103 端到端教程介绍了如何构造订阅失败的 SWIFT 消息的 BizTalk 业务流程。

MT103 端到端教程中的业务流程使用 helper 类 ErrorExtractor的静态方法,以字符串形式从消息中提取错误部分和正文。 然后,业务流程将这些部分写入单独的文件。

由于失败消息的错误部分是由管道组件构造的 ErrorCollection 的序列化,因此你可以反序列化该集合,并使用它来自动执行错误报告和处理。 以下 Microsoft Visual c # 代码段演示如何反序列化失败消息的错误消息部分,并循环访问集合中的分析错误。 代码片段省略了命名空间限定以提高可读性:

// instantiate an appropriate XmlTextReader  
// xm contains the message  
string sError = ErrorExtractor.GetErrorPartAsString(xm);  
StringReader sRdr = new StringReader(sError);  
XmlTextReader xRdr = new XmlTextReader(sRdr);  
  
// deserialize the collection  
ErrorCollection eC = ErrorCollection.GetErrorCollection(xRdr);  
  
// loop over the parsing errors in the collection  
IEnumerator pEnum = eC.GetParseErrorEnumerator();  
while(pEnum.MoveNext())   
{  
  // pEnum.Current() returns a ParseError object for processing  
}  
  

ErrorCollection包括用于按类型循环访问错误以及循环访问集合中的所有错误的方法。 有关 ErrorCollection的详细信息,请参阅 ErrorCollection 成员。

另请参阅

失败的消息和 ErrorCollection 对象