0

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.

BizTalk map from internal schema to A4SWIFT MT103 schema

(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?

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
Program.X
  • 7,250
  • 12
  • 49
  • 83

1 Answers1

0

Try linking through a Equal or Not Equal Functoid directly to 57D and/or 57A. That will suppress the entire loop.

Johns-305
  • 10,908
  • 12
  • 21
  • Thanks for your suggestion. I'm not sure I understand you, though. Are you suggesting without the Value Mapping Functoid? Because wouldn't this just use the result of the Equality Functoid, so literal "True" or "False"? To clarify, the Functoid I've depicted on the screenshot are already "Equal" – Program.X Jun 02 '17 at 15:57
  • 1
    So, don't over think it. You can connect directly from the Equal or Not Equal to the x_57A/D elements which will allow or suppress that element and all it's children. Since I'm not exactly sure what you need, I'm more giving you a technique you'll have try some combinations with. – Johns-305 Jun 02 '17 at 16:05
  • Yes, I was over thinking it. I've mapped an additional link from the Equal Functoid alongside the output of the Value Mapping Functoid and sure enough when there isn't a match, the field token is suppressed. Thanks very much. – Program.X Jun 02 '17 at 16:26