如果A4SWIFT反汇编程序无法分析消息,则可以修复该消息。 在 A4SWIFT MRSR 站点内使用 InfoPath 表单来执行此操作。 但是,A4SWIFT 处理该消息的方式不同于处理那些未通过 XML 或 BRE 验证而需要修复的消息。
如果消息或批处理分析失败,A4SWIFT将其标记为 A4SWIFT_Failed = True,分析错误计数大于 0。 消息正文保留在平面文件窗体中,包装在 XML 包装器中。 如果修复规则设置为允许处理分析失败,则会将邮件发送到未分析收件箱,以便使用未分析的表单进行处理。
所有用户和所有部门只有一个未分析的收件箱,因为A4SWIFT可能无权访问与原始接收位置以外的邮件有关的任何数据。 因此,若要修复未分析的消息,用户必须具有修复功能,并且必须与所有部门中的修复角色相关联。
A4SWIFT在“未分析的 InfoPath 窗体”的文本区域中显示未分析的消息。 若要更正分析问题,可以根据需要输入或删除字符。 提交消息后,将从 XML 包装器中提取消息,并通过 SWIFT 接收管道重新提交。 如果分析成功,A4SWIFT处理消息,就像处理任何其他消息一样。
A4SWIFT不会处理通过完整修复流程修复的未解析消息。 A4SWIFT将其未经验证和未经批准地发送出去。 对未分析的已修复消息进行签名并提交该消息时,A4SWIFT 不调用 BRE 验证或检查部门,而是将消息直接发送到发送流水线。 如果该管道无法处理消息,A4SWIFT将其发送到修复过程。
此过程使你能够更正其他系统中格式错误的消息。 但是,更正分析问题时,应小心谨慎。 A4SWIFT处理未分析的消息时,它不会验证消息。 未分析的修复未定义为角色,因此任何人都可以执行此过程。 由于未分析的消息不属于任何部门,因此访问它们时提供的唯一安全是未分析收件箱中的 ACL。 A4SWIFT也不会保留未分析消息的原始接收位置作为消息的上下文属性。
可以编写要对已修复的未分析消息执行的自定义验证。 还可以编写订阅,以将已修复的未分析消息发送到原始文件管道。
若要使修复机制处理未分析的消息,需要将 EnvelopeUnparsedMessage.xsd 架构添加到包含消息架构的程序集。 有关详细信息,请参阅 部署A4SWIFT架构。