扩展捕获和消息修复的解决方案
此帮助中的 MT103 端到端教程介绍了如何构造订阅失败的 SWIFT 消息的 BizTalk 业务流程。
MT103 端到端教程中的业务流程使用帮助程序类 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 成员。