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
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.
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.
Hi
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.