We're using BizTalk and A4SWIFT to generate SWIFT FIN MT 103 messages.
When we're outputting to fields that have multiple options (eg. 57a, 57b, 57c, 57d) we should only have a single output (I'm calling this a field token). However, all available options are output, regardless of whether they should be.
Consider field 57, which can have options 57a, 57b, 57c and 57d.
In our testing, we're limiting to 57a and 57d for now.
We have a map from our source XML document/schema, which selects which fields to use and populates the A4SWIFT schema accordingly.
(I've blanked out irrelevant detail in the image)
In the example, we're looking for a string for the BIC ("ABCDEFGHXXX") and populating the A4SWIFT-side for field 57A IF that is true. For the Name Address (57d), we check the NameAddress/Line1 field for an arbitrary string which we know will evaluate to false.
(The BIC is fictitious)
This works fine, except we also get an empty result for 57D, even though this should have evaluated to false.
:57A:/
ABCDEFGHXXX
:57D:/
We need 57D to not be there. If the condition Functoid returns False, the Value Mapping Functoid still seems to cause a result.
So we're thinking out Functoid selection isn't right. We've tried with Logical Existence, Logical String and String Equal.
How can we suppress unselected fields from appearing in our output SWIFT?