Biztalk 使用A4SWIFT生成SWIFT FIN MT103会导致多选项SWIFT字段令牌为空

Biztalk 使用A4SWIFT生成SWIFT FIN MT103会导致多选项SWIFT字段令牌为空,biztalk,a4swift,Biztalk,A4swift,我们正在使用BizTalk和A4SWIFT生成SWIFT FIN MT 103消息 当我们输出到有多个选项的字段(例如57a、57b、57c、57d)时,我们应该只有一个输出(我称之为字段令牌)。但是,所有可用选项都是输出的,无论是否应该输出 考虑字段57,它可以有选项57a、57b、57c和57d 在我们的测试中,我们现在限制在57a和57d 我们有一个来自源XML文档/模式的映射,它选择要使用的字段并相应地填充A4SWIFT模式 (我在图片中删去了不相关的细节) 在本例中,我们正在寻找BI

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

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

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

在我们的测试中,我们现在限制在57a和57d

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

(我在图片中删去了不相关的细节)

在本例中,我们正在寻找BIC的字符串(“ABCDEFGHXXX”),并填充字段57A的A4SWIFT端(如果是真的话)。 对于名称地址(57d),我们检查NameAddress/Line1字段中的任意字符串,我们知道该字符串的计算结果为false

:57A:/
ABCDEFGHXXX
:57D:/
(BIC是虚构的)

这很好,除了我们也得到一个57D的空结果,即使这应该被计算为false

:57A:/
ABCDEFGHXXX
:57D:/
我们需要57D才能不在那里。如果“条件”Functoid返回False,“值映射”Functoid似乎仍会导致结果

所以我们认为Functoid选择是不对的。我们尝试过逻辑存在,逻辑字符串和字符串相等


如何抑制未选择的字段出现在输出SWIFT中?

尝试通过“相等”或“不相等”Functoid直接链接到57D和/或57A。这将抑制整个循环。

谢谢您的建议。不过,我不确定我是否理解你。您是否建议不使用“值映射”Functoid?因为这不只是使用相等Functoid的结果,所以字面上是“真”还是“假”?为了澄清这一点,我在截图上描述的Functoid已经是“相等”的了,所以不要想太多。您可以直接从Equal或Not Equal连接到x_57A/D元素,这将允许或禁止该元素及其所有子元素。因为我不确定你需要什么,我更多的是给你一个技巧,你可以尝试一些组合。是的,我想得太多了。我在值映射Functoid的输出旁边映射了Equal Functoid的附加链接,如果没有匹配项,字段标记将被抑制。非常感谢。