Created EDITPA with FALevel=Default and autoGenerateFA=On
But I didn’t have EDI T997 schema/document installed. In this case, after getting PO, FA got successfully generated and sent.
But, when I had FALevel=TransactionSet and autoGenerateFA=On
I got the below error:
The service wm.b2b.edi.util:generateFA failed. All Documents will be set status to Rejected.
com.wm.app.b2b.server.ServiceException: com.wm.ff.parse.StorageException: [FFP.0015.0005] Specified an invalid schema EDIFFSchema.X12.V4010:T997. It is not a Flat File Schema. [EDIFTN.000010.000273]
After creating the T997 schema/document. I didn’t get this error, with this settings
FALevel=TransactionSet and autoGenerateFA=On in EDITPA.
That is what the TN/EDI Module expected to have the Schema existence checking for transaction set level and it looks for T997 schema to be there internally while converting it to string. By default it ignores and converts straight as it doesn’t parse/need deep structure for more validation (accept,reject for header and details) that’s what I understand.
So is that an issue for you with installing that 997 EDI doc type?
In EDITPA with FALevel=Default and autoGenerateFA=On
When you have these settings enabled, EDI module only validates the document at Envelope level and generates Functional ACK which comes as X12 Envelope in TN. So for these settings 997 schema may not be required.
In EDITPA with FALevel=TransactionSet and autoGenerateFA=On
When you have the FALevel as Transaction set, it validates the EDI transaction set and generates Functional ACK at transaction level which comes as X12 997 in TN. So you need to install the schema and TN document type in this case.
That means It will generate 997 in the field level compliance/syntax/Mandatory field checks and based on that it accepts/rejects the related transaction.
Thanks RMG.
Will that do Group and Segment level validations also ? The reason why I am asking is I have a requirement where I need to validate document at GS, Segment as well as Element level. so FALevel=Element, will do that or do I need put a iterator with each option?