GenerateFA in 601 x12

The main purpose for upgrading to 6.0.1 for us was to get the increased functionality of the generateFA service (which I asked support to let me try in 4.6, but they said no :wink:

Anyway, ran the service with some EDI as a test, it works fine to the group level, but as soon as I set it to Transaction Set level, problems start. I stepped through the “wm.b2b.edi.util.FA:transactionsetFA” service, and found what I believe are a whole slew of bugs, but I don’t really understand the FA process all that well in the first place, so I could be off (which is why I’m posting this here, where more knowledgable people can tell me if I’m way off base)

Anyway, when the transaction set is converted to values, the errors that are populated into “TSerrors” appear to be segment related (ie, invalid code, and segment too short) but the service is rejecting at the transaction set level.

There are numerous pieces of code that never get executed because they’re looping/branching on incorrect variables (/%/TSValues/@errors, /TSValues/TSValues/@errors/reference etc) too, but the primary issue as I see it is that if any errors are in TSerrors, the TS is rejected, regardless of what level the error occurs on, and regardless of what level you specified to ack.

Basically, I’m wondering if I’m just misreading the code, or misunderstanding the way it’s actually supposed to work.


I just started implementing this yesterday and still have the rejection side of testing to complete but based on my experience this is what should happen.
If an Envelope errors then the Group and the Transaction Sets should be rejected also as it is unable continue with the envelope.
If the Group errors then the Transaction Sets should be rejected also as it is unable continue with the group.
If the Transaction set errors then that particular Transaction Set is rejected or Accepted with error and the Group is Accepted with error assuming there some transaction in the Group that are accepted.

I’ll take a close look and see if I see the same thing you did.



That makes sense to me. The TS itself is error free - the segment counts are right, and the control numbers match up.

The only errors in my EDI are at an element level, which should mean that any FA at a higher level than element (ie segment, ts, group, envelope) should be an acceptance. With the default (group) level, this holds, but the bugs in the wm.b2b.edi.util.FA:transactionsetFA seem to make it so you’re essentially checking to the element level regardless of what you specify.

It’s kind of crazy looking code, which leads me to believe that it’s just not been properly tested.

Ok, I feel better about it now. Here’s what I did to make it behave properly (at least as I see it)

In “wm.b2b.edi.util.FA:transactionsetFA” under the X12 standard, right after the convertToValues call, there’s a loop over /%/TSValues/@errors which should be disabled. Then, there’s a branch that should be left alone, followed by a branch on TSerrors which should also be disabled.

This results in validating only the transaction set itself, and not it’s segments or elements, unless you’ve specified to do that (which should be handled by the following branch.

After doing that, I wound up with a single AK2 segment, despite having multiple STs in the original document. The fix for that was even simpler, the “Out Array” on the top level “/TSValues” loop wasn’t set. Set it to “/AK2” and you’ll get a proper AK2 loop out of the deal.

I’m not happy with just disabling those two things, but it appears that in order for it to function properly, that’s what I had to do. The Out Array thing is definitely a bug though.

Do you know if webMethods released an official fix for this bug. I too am experiencing similiar problems. Thanks

yes,webMethods released a fix (Fix7) and resolved this issue.

You can get about this fix information in Advantage site under(Knowlede Base/Known issues and fixes) or Please call webMethods support to get this fix which they can email us.


I want to use the full FA in WM4.6. The default service to generate the FA is only at the group level.I want to have full FA like 6.0 in 4.6. Is anyone did this in 4.6? If yes can you please send me that service or share the basic steps to create the service.