0

我们使用 BizTalk 和 A4SWIFT 生成 SWIFT FIN MT 103 消息。

当我们输出到具有多个选项的字段(例如 57a、57b、57c、57d)时,我们应该只有一个输出(我称之为字段标记)。但是,所有可用选项都会输出,无论它们是否应该输出。

考虑字段 57,它可以有选项 57a、57b、57c 和 57d。

在我们的测试中,我们目前限制为 57a 和 57d。

我们有一个来自源 XML 文档/模式的映射,它选择要使用的字段并相应地填充 A4SWIFT 模式。

从内部架构到 A4SWIFT MT103 架构的 BizTalk 映射

(我已经删除了图像中不相关的细节)

在该示例中,我们正在寻找 BIC 的字符串 ("ABCDEFGHXXX") 并为字段 57A 填充 A4SWIFT 端,如果该字段为真。对于名称地址 (57d),我们检查 NameAddress/Line1 字段中的任意字符串,我们知道该字符串将评估为假。

(BIC 是虚构的)

这工作正常,除了我们也得到 57D 的空结果,即使这应该评估为假。

:57A:/
ABCDEFGHXXX
:57D:/

我们需要 57D 不在那里。如果条件 Functoid 返回 False,则值映射 Functoid 似乎仍然会导致结果。

所以我们认为 Functoid 选择是不正确的。我们尝试了逻辑存在、逻辑字符串和字符串相等。

我们如何禁止未选择的字段出现在我们的输出 SWIFT 中?

4

1 回答 1

0

尝试通过 Equal 或 Not Equal Functoid 直接链接到 57D 和/或 57A。这将抑制整个循环。

于 2017-06-02T13:29:42.253 回答