Managing Functional Acknowledgement

Hi All,

I need advice regarding the right way to send FA for inbound X12 EDI documents. Is it better to …

a) Create a processing rule for the X12 Group and call a seperate service for handling all the FA’s (or)

b) Create a FA on each ST-SE processing that happens when my document level processing rule in trading networks calls a particular service in developer.

Are there any standard services available in WM which i can use to generate FA(s). The “generateFA” service in developer does only a group level FA (AK1 and AK9) whereas I want to perform a complete FA upto data level.

Also my requirement is that I have to create one of 3 different versions of 997’s based on the trading partner settings in TN.

I am right now planning to take path (a) wherein I am planning to create the AK1-AK9 for the group and then

  1. loop over ST
  2. Determine the doc type of that ST
  3. convertToValues based on that document template
  4. validate this record against standard schema.
  5. Create the segments AK2-AK8 accordingly…

Finally publish one single FA for the entire GS segment.

Please let me know your views on this.

Thanks in advance

Mark IV

Option a) is the way we went on an earlier project. It was the nastiest FLOW service I’ve ever written. There is no wM-supplied service to generate FAs at the transaction set level. :frowning:

We can discuss further off-line if you’d like.

Mark :

a) There is a generateFA service that comes with WmEDI 6.0 that is capable of generating a complete FA (GS and ST level). To me this looked like a pretty robust service (after limited testing). I have had to write a similar service myself in the pre 60 days.

b) This is what I recommend customers to do when it comes to X12 document processing. This applies only to cases where the ISA contains only 1 GS and multiple STs. This is mainly suggested because customers generally have a requirement to process STs only after validating all the STs and sending a FA.

  1. Have a ISA level processing rule in TN. Ignore the GS and ST level documents that get recognized in TN (dont have any processing rules).

  2. The service called by the ISAProcessingRule will generate the FA. If everything is ok, you will create the complete EDI record (ISA–>GS–>STs and not ISA–>GS–>undefdata). You will loop over the STs in this service and at this point have a branch in your service based on transactionType (850,856 etc) and call the ST processing service (process850, process856 etc). If you dont like having mamual branches in your ISA processing service, the other option you have is to send the ST document back to TN.

Hope this makes sense and I am not too confusing here. The big problem I see is NOT many people are able to take advantage of the way webM WmEDIForTN package works…in that it splits the ISA and it is able to recognize the GS and STs for you because of the requirement to process the STs only after validating the complete ISA. So, this issue probably should be raised with webMethods also.

Please let me know if I my understanding is wrong.


We had a proc rule on both the ISA and the ST levels. The ISA proc generated the FA for the entire interchange and sent it. The ST proc just processed the doc, checking for validation errors and sending alerts if there were any problems.

Rob :

We generally want to process the STs only after sending the FA. How do you do this if you have proc rules for both ST and ISA. How can you ensure that you preserve the sequentiality of these two tasks (TN proc rules get triggered as and when the document gets recognized)?

Thanks in advance,


The interaction we implemented did not require this sequential processing, so the FA was usually sent before the individual transactions sets were finished being processed.


Hi !

Sorry for the delay in getting back to you. Rob…

Looks like path(a) is the way to go for us. And we are doing FA for a limited set of document types and our output is going to be a particular version of FA (4010, 3010 or 3020) based on partner profile in TN.

I acquired a few sample mapping rules for the 4010 version of the FA document. The rules for mapping AK3 and AK4 Segments are confusing me a lot though.

It says in there…

AK301 = Code defining the data segment in error.

Comments: This can be found out using substring over the errorpath element in the error record list returned by the validate function.

AK302 = The numerical count position of this data segment from the start of the transaction set, the transaction set header is count position 1.

Comments: ??? How do I find out this numerical count position of a particular data segment from the start of transaction set. I am just not able to figure this out :frowning:

The other 2 should be OK as follows

AK303 = Loop Identifier Code
Comments: Will push in the $iteration variable.

AK304 = Segment Syntax Error Code.
Comments : FOR THIS… I might probably use a lookupTable transformer to convert the standard set of errors to an error code. (OR IS THERE ANY BETTER WAY?)

Similarly there is confusion regarding creating the AK4 Elements… :’-(

I am really groping in the dark here… would greatly appreciate your help…

Thanks in Advance…
Mark IV

Apparently 6.0 has an updated generateFA that works to the transaction set level. It may be worth trying to get that from tech support, assuming that there are no 6.0 dependencies in the flow that does the work.

Hi All
I am using webmethods 4.6 to implement the EDI Mobule. I have a problem at the FA level.In 4.6 webmethods provides only the group level FA but I need to have a full FA.I know that in 6.0 wm provides the full FA support. Is it possible to incorporate the 6.0 generateFA service in 4.6. Please Advice.
Can anyone send me the generateFA service to generate the full FA in 4.6 or any knowhow on it.