Feedback
Did this article resolve your question/issue?

   

Article

[DDEF0098] FATAL ERROR The file appears to be an X12 file but the ISA segment is incorrect.

Information

 
Title[DDEF0098] FATAL ERROR The file appears to be an X12 file but the ISA segment is incorrect.
URL Nameddef0098-fatal-error-the-file-appears-to-be-an-x12-file-but-the-isa-segment-is-incorrect
Article Number000145308
EnvironmentProduct: Connect XML Converters
Version: 6.2
O/S: Java
Database: N/A
Application: N/A
Question/Problem Description
Fatal Error occurs when converting a source file with thefollowing URI:

converter:EDI:dialect=X12:decode=no:doc=no:field=no:indent=yes:opt=yes:typ=no:ignore=18 

What is the cause of error DDEF0098 and is it possible to ignore or suppress the error?
Steps to Reproduce
Clarifying Information
Error MessageDialect: X12
Segment: ISA (segment 1)

An X12 file must begin with an ISA segment which contains the version number and defines the
separator characters. This file contains an ISA segment but it is badly formed or has an unrecognized
format.
at com.ddtek.xmlconverter.adapter.edi.EDI.errorBuilderStateful(EDI.java:1868)
at com.ddtek.xmlconverter.adapter.edi.EDI.errorBuilder(EDI.java:1758)
at com.ddtek.xmlconverter.adapter.edi.EDI.fatal(EDI.java:1744)
at com.ddtek.xmlconverter.adapter.edi.EDI.fatal(EDI.java:1740)
at com.ddtek.xmlconverter.adapter.edi.x12.X12.sniffISA(X12.java:582)
at com.ddtek.xmlconverter.adapter.edi.x12.X12.resniff(X12.java:523)
at com.ddtek.xmlconverter.adapter.edi.StandardSegmenter.getSegment(StandardSegmenter.java:65)
at com.ddtek.xmlconverter.adapter.edi.Parser.getSegment(Parser.java:115)
at com.ddtek.xmlconverter.adapter.edi.EDI.firstSegment(EDI.java:1468)
at com.ddtek.xmlconverter.adapter.edi.EDI.next(EDI.java:1432)
at com.ddtek.xmlconverter.platform.SmartByteBuffer$InputStreamPort.read(SmartByteBuffer.java:150)
at java.io.InputStream.read(InputStream.java:101)
Defect Number
Enhancement Number
Cause
There is something invalid about the structure of the ISA segment.

 
Resolution
Firstly, it is important to note that fatal errors cannot be ignored.

The ISA segment, because it specifies the separator characters, is made up of fixed-length fields. In every version of X12, it is exactly 106 characters long. This way the parser can locate the separator characters at positions: 

3 - Data Element Separator 
82 - Data Repetition character (00402 and higher only) 
104 - Component Data Element Separator 
105 - Segment Terminator 

If those lengths are not obeyed, the file should be invalid, because the parser cannot guarantee it will pick the proper characters as delimiters. 

Additional important notes and recommendations: 

opt=yes - this makes everything optional, and disregards the mandatory flags on elements. For HIPAA transactions, this is Not recommended . 
typ=no - this turns off type checking. Potentially, this means values that should be amounts could be passed through without error even if they contained text. Not recommended. 
ignore=18 - this turns off checking for extra fields in a composite element. Ignoring this error can cause misalignment in subsequent elements. Not recommended. 
hipaa=loop - this is not present, but this is a HIPAA file. For HIPAA files, there are extra validation rules to comply with government standards. Adding this setting is strongly recommended. 

To resolve the issue, the source file must comply with the standards for it's format. 
Workaround
Notes
Last Modified Date11/7/2018 11:40 PM
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.