My colleague created this map, and now I'm testing it and finding it isn't working when all values C01-C10 are not present.
When C01-C06 are there, and C07-C10 are missing, nothing gets put into the DocumentText set of key-value pairs.
The first thing mapped to the Table Looping functoid is the parent element of the C01 element (not shown in picture above), and that element is named MESSAGE_HEADER (you can see it in the XSLT below). MESSAGE_HEADER is not a repeating element, maybe that is part of the issue.
The data looks something like this.
<C01>MODEL^LAPTOP</C01>
I explain this just so you know what the pattern of the functoids are. The red functoid is the "String Find" and it looks for the ^ character. When found, it's supposed to be setting the "gate" to the gated Table Looping functoid. The two Scripting functoids simply do a text split, and return the text before and after the ^ sign.
Here's a quick look at the top of the long XSLT:
If I look for "KeyValueOfstringstring" in the XSLT, it's way down under the if statement for the C10 element, which is nested under the if statement of the C09 element, under C08, under C07, etc... all the way back to the above.
I see the same pattern on another part of the map which uses a Looping Functoid that is not gated. In that case, all the elements are always present, so no one every saw the issue there.
Thanks,
Neal Walters
http://MyLifeIsMyMessage.net - BizTalk Blog