2017-06-02 32 views
0

我们正在使用BizTalk和A4SWIFT生成SWIFT FIN MT 103消息。当我们输出到具有多个选项的字段(例如57a,57b,57c,57d)时,我们应该只有一个输出(我将它称为字段标记)。然而,所有可用的选项都是输出的,不管它们是否应该如此。使用A4SWIFT生成SWIFT FIN MT103导致空的多选SWIFT字段令牌

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

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

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

BizTalk map from internal schema to A4SWIFT MT103 schema

(我削除图像在无关紧要的细节)

在这个例子中,我们正在寻找的BIC(“ABCDEFGHXXX”)的字符串和填充A4SWIFT端场57A如果这是真的。 对于名称地址(57d),我们检查NameAddress/Line1字段中的任意字符串,我们知道它将评估为false。

(BIC的虚构是)

这工作得很好,除了我们也得到一个空的结果为57D,即使这应该已经评估为假。

:57A:/ 
ABCDEFGHXXX 
:57D:/ 

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

所以我们正在考虑Functoid的选择是不正确的。我们已经尝试了逻辑存在,逻辑字符串和字符串平等。

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

回答

0

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

+0

感谢您的建议。不过,我不确定我是否理解你。 您是否建议不使用Value Mapping Functoid?因为这不会只是使用平等Functoid的结果,所以文字“真”或“假”? 为了澄清,我在屏幕截图上描绘的Functoid已经是“Equal” –

+1

因此,不要过多考虑它。您可以直接从Equal或Not Equal连接到x_57A/D元素,这些元素将允许或禁止该元素及其所有子元素。由于我不完全确定你需要什么,我更多地给你一种技巧,你会尝试一些组合。 –

+0

是的,我一直在想。我已经从Equal Functoid和Value Mapping Functoid的输出中映射了一个额外的链接,并且当没有匹配时足够肯定,字段标记被抑制。非常感谢。 –