Documentation

Changelog

Article author
Admin
  • Updated

24 May 2021

  • Renamed 3 properties in the NCPDP G1 template. Breaking change for NCPDP - the properties at positions 5, 6, and 7 were renamed.
  • Added reading and writing for NCPDP Telecommunications files that do not implement the Batch standard.
  • Added a new validation attribute, SeqCount, that is used to validate sequences such as LX and ENT. Added to all HIPAA 5010 templates that contain either an LX or an ENT segment.
  • Added a newt .NET target (to the nugget package and DLLs) for .NET 5.0.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric 10.1.1 10.1.2

 

24 March 2021

  • Changed SVD04 from mandatory to optional in the HIPAA 5010 template for 837P.
  • Fixed X12 Time type validation to allow time with 7 digits.
  • Added a new flag, IsSituational, to DataElementErrorContext. For all data elements with IsSituational = true, a CTX segment will be generated by AckMan for 999 acknowledgments.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric 10.1.0 10.1.1

 

19 January 2021

  • Reading speed improved twofold.
  • Validation speed improved.
  • Added support for HL7.
  • Added support for NCPDP Telecommunications.
  • Added support for NCPDP SCRIPT.
  • Added support for flat files batch read and splitting.
  • Added loop ID in ack generation for all HIPAA 5010 templates.
  • Allows custom headers (ISA, GS, UNB, etc.) for fine-grained header validation.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric 10.0.0 10.1.0

 

4 January 2021

This is a major update and includes breaking changes. It decommissions the four packages EdiFabric.Framework, EdiFabric.Core, EdiFabric.Plugins.Ack.X12, and EdiFabric.Plugins.Ack.Edifact. A single new package, EdiFabric, replaces the decommissioned ones. The new package, EdiFabric, only works with a valid serial key.

  • Merged all packages/assemblies into a single package, EdiFabric. All namespaces remain the same and to migrate to the new EdiFabric package, uninstall any occurrences of the old packages and install the new, EdiFabric, package instead.
  • Multiple performance improvements.
  • Bugfix for validating X12 DTP date ranges.
  • Changed Separators for easier manipulation. To change a delimiter for X12, you'd do:
    var separators = Separators.X12;
     separators.Segment = '|';
  • The new version requires a serial key to be applied programmatically:
    EdiFabric.SerialKey.Set("Valid Serial Key");
  • Introduced ClearCache() method for EdiMessage to ensure better performance when saving to DB. Example here
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric New 10.0.0
    EdiFabric.Framework 9.8.7.5 Decommissioned
    EdiFabric.Core 9.8.7.5 Decommissioned
    EdiFabric. Plugins. Ack. X12 9.8.7.5 Decommissioned
    EdiFabric. Plugins. Ack.Edifact 9.8.7.5 Decommissioned

 

24 September 2020

  • Adding external EDI codes dynamically to ValidationSettings.
  • New RequiredIf attribute for situational validation.
  • New ExclusionIf attribute for situational validation.
  • Added regex to DataElement attribute to override the syntax set for AN and A data elements validation.
  • All data elements in ISA and GS have set EDI code data types and can be validated with external EDI codes.
  • Added situational validation for HIPAA 5010, 270, 271, 276 and 277.
  • Added template for HIPAA 5010 820 HIX.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.7.4 9.8.7.5
    EdiFabric.Core 9.8.7.4 9.8.7.5
    EdiFabric. Plugins. Ack. X12 9.8.7.4 9.8.7.5
    EdiFabric. Plugins. Ack.Edifact 9.8.7.4 9.8.7.5

 

09 September 2020

  • Added support for .NET Core 3.1.
  • Added a new syntax validator, RegexSyntax, for regex validation of A and AN types.
  • Added single length constructor in StringLength attributes, for strings of an exact length.
  • Fixed a bug for populated ISA11 when the repeating character is null.
  • Removed .NET Core 3.0 target, use either .NET Core 2.0 or 3.1 instead.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.7.3 9.8.7.4
    EdiFabric.Core 9.8.7.3 9.8.7.4
    EdiFabric. Plugins. Ack. X12 9.8.7.3 9.8.7.4
    EdiFabric. Plugins. Ack.Edifact 9.8.7.3 9.8.7.4

 

22 May 2020

  • Several discrepancies were identified between the EDI codes in our templates and the X12 guidelines. The following templates were updated:
    EdiNation.X12.HIPAA.005010
    EdiNation.X12.HIPAA.005010. Base

    Some segment/composite references will be changed in the 2400s loops, and the SVD and HI segments. Loop names replace the trigger segment name across all transactions. 

 

05 May 2020

  • Loop_2300_2 was renamed to Loop_2300 in HIPAA 5010 templates for 837P, 837I, and 837D
  • Extended SegmentAttribute for VDA and flat files to allow padding character and direction on a segment level. The data element padding character and direction supersede that on the segment level if any.
  • Amended all VDA templates to reflect the change in the previous point.
  • Added support for empty EDI codes. Data elements with empty EDI codes are validated as alphanumerics.
    [EdiCodes("")]
    public class X12_ID_73
  • Added support for partition EDI codes. This allows each code from the first partition to be used alone as well as in combination with any code from the second partition.
    [EdiCodes(",N,R,", ",2,3,")]
    public class X12_ID_102
  • Added Ta1AfterTrailer boolean flag, which forces a TA1 to be generated at the end of the interchange. TA1 is always generated right after the ISA when the ISA is invalid. Enabling this flag will raise 2 TA1s in case the ISA is invalid.
  • Reader's BytesRead property was changed to display the expected bytes read because some bytes could be read multiple times when probing for the start of a new interchange.8. InstanceContext was brought back to ValidationAttribute.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.7.2 9.8.7.3
    EdiFabric.Core 9.8.7.2 9.8.7.3
    EdiFabric. Plugins. Ack. X12 9.8.7.2 9.8.7.3
    EdiFabric. Plugins. Ack.Edifact 9.8.7.2 9.8.7.3

 

30 December 2019

  • Fix for the high memory consumption when reading batched transactions
  • Removed references to System.Runtime.Caching.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.7 9.8.7.2
    EdiFabric.Core 9.8.7 9.8.7.2
    EdiFabric. Plugins. Ack. X12 9.8.7 9.8.7.2
    EdiFabric. Plugins. Ack.Edifact 9.8.7 9.8.7.2

 

06 December 2019

This release introduces breaking changes for all HIPAA and EANCOM templates. Core functionality requires System.Runtime.Caching, which needs to be referenced in both .NET Framework and .NET Core projects.

  • Added .NET target for .NET Core 3
  • Reading and writing logic were partially rewritten to achieve better performance.  3 times faster reads for example by utilizing System.Runtime.Caching.
  • Brand new FlatFile reader and writer. This allows you to process almost any flat file such as CSV, VDA, etc. using the familiar templates, attributes and validation.
  • The templates for HIPAA were completely reworked to better match the guidelines. 5010 templates had several classes\properties renamed. 4010 were reworked to match the structure of 5010.
  • Introduced message deep copy. This allows you to automatically create a full copy of any transaction object.
  • The splitting functionality had been rewritten to improve performance ~10 times.
  • The HIPAA Entity Framework models have been rewritten for better performance.
  • Added async validation for transactions.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.6 9.8.7
    EdiFabric.Core 9.8.6 9.8.7
    EdiFabric. Plugins. Ack. X12 9.8.6 9.8.7
    EdiFabric. Plugins. Ack.Edifact 9.8.6 9.8.7

 

04 July 2019

  • Added Entity Framework Support for HIPAA 5010. 
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.5 9.8.6
    EdiFabric.Core 9.8.5 9.8.6
    EdiFabric. Plugins. Ack. X12 9.8.5 9.8.6
    EdiFabric. Plugins. Ack.Edifact 9.8.5 9.8.6

 

01 July 2019

  • Added DiscardValidationAttributes flag to ValidationSettings. This allows to switch off validation when using the Enterprise templates. 
    To be used when only HIPAA SNIP Type 1 validation is required.
  • Added LeaveOpen flag to EdiReader constructor. This allows leaving the underlying stream open after the reader was disposed of.
  • Bug-fix for parsing EDIFACT messages with multiple escapes in sequence and adjacent to the segment terminator.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.5 9.8.6
    EdiFabric.Core 9.8.5 9.8.6
    EdiFabric. Plugins. Ack. X12 9.8.5 9.8.6
    EdiFabric. Plugins. Ack.Edifact 9.8.5 9.8.6

 

05 June 2019

  • Added support for Entity Framework. All the templates for EDIFACT, X12, and EANCOM can be used as Code First to automatically create a database and persist to\query the database just like any other Entity Framework POCO.
  • Splitting was changed to allow the same template to be used for both splitting and no splitting. Splitting must be enabled using both the [Splitter] attribute and enabled in ValidationSettings.
  • New reader mode for when the templates are in the same project - no need to specify the assembly.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.4 9.8.5
    EdiFabric.Core 9.8.4 9.8.5
    EdiFabric. Plugins. Ack. X12 9.8.4 9.8.5
    EdiFabric. Plugins. Ack.Edifact 9.8.4 9.8.5

 

01 May 2019

  • Added extra parameter to ValidationSettings:
    public Dictionary<Type, Type> DataElementTypeMap { get; set; }
    which allows to dynamically overload the EDI Codes to be used for validation:
    List<IEdiItem> ediItems;
    Dictionary<Type, Type> codeSetMap = new Dictionary<Type, Type>();
    codeSetMap.Add(typeof(X12_ID_128), typeof(X12_ID_128_Amended));
    codeSetMap.Add(typeof(X12_ID_98), typeof(X12_ID_98_Amended));

    using (var ediReader = new X12Reader(ediStream, TypeFactory))
    {
        ediItems = ediReader.ReadToEnd().ToList();
    }

    foreach (var t in ediItems.OfType<EdiMessage>())
    {
        MessageErrorContext mec;
        var isValid = t.IsValid(out mec, new ValidationSettings { 
            DataElementTypeMap = codeSetMap }));
    }
  • EDI translator can now read transactions without any envelopes or trailers, e.g. beginning with ST or UNH only, and no SE, UNT, ISA, GS, IEA, GE, UNB, UNG, UNZ or UNE.
  • Added interfaces to all EDIFACT templates for segments and complex data elements.
  • Added interfaces to all X12 templates for segments and complex data elements
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.3 9.8.4
    EdiFabric.Core 9.8.3 9.8.4
    EdiFabric. Plugins. Ack. X12 9.8.3 9.8.4
    EdiFabric. Plugins. Ack.Edifact 9.8.3 9.8.4

 

29 March 2019

  •  Added templates for EDIFACT D.11A

 

20 March 2019

  •  Added templates for EDIFACT D.13A

 

25 February 2019

  •  X12\HIPAA reader performance improvements for transactions containing "ISA" as part of the payload.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.2 9.8.3
    EdiFabric.Core 9.8.2 9.8.3
    EdiFabric. Plugins. Ack. X12 9.8.2 9.8.3
    EdiFabric. Plugins. Ack.Edifact 9.8.2 9.8.3

 

25 January 2019

  • Added EANCOM Keyman template to EdiFabric.Core.
  • Added FlattenRawSegments method to EdiMessage that returns a list of segments as raw strings.
  • Changed Separators to allow modification.
  • Bugfix for EdiMessage DataContract serialization.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.1 9.8.2
    EdiFabric.Core 9.8.1 9.8.2
    EdiFabric. Plugins. Ack. X12 9.8.1 9.8.2
    EdiFabric. Plugins. Ack.Edifact 9.8.1 9.8.2

 

20 December 2018

  • Allow X12 transactions without envelopes, but with explicit version at the ST segment, to be read with an assembly factory.
  • Fix for the splitter to maintain a full copy of the segments in the splitting path.
  • Fix for EDIFACT UNH JSON serialization.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.8.0 9.8.1
    EdiFabric.Core 9.8.0 9.8.1
    EdiFabric. Plugins. Ack. X12 9.8.0 9.8.1
    EdiFabric. Plugins. Ack.Edifact 9.8.0 9.8.1

 

09 December 2018

  • Moved all IsValid() parameters to a new class, ValidationSettings.
  • Changed IControlSegment interface to ControlSegment abstract class.
  • Reworked the splitting logic to allow:
    - splitting on any loop at any level (not just the loops at the top level)
    - all parts retain the parsed segments that are outside the loop being split by
  • VDA validation bug fixes.
  • GS time bug fix to allow 8 length time format.
  • Templates marked for splitting can now be used for both splitting and no splitting by setting a DiscardSplit flag in ReaderSettings.
  • Added Template property to EdiMessage.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.9 9.8.0
    EdiFabric.Core 9.7.9 9.8.0
    EdiFabric. Plugins. Ack. X12 9.7.9 9.8.0
    EdiFabric. Plugins. Ack.Edifact 9.7.9 9.8.0

 

07 November 2018

  • Added validation for empty\blank data elements annotated with the following attributes: StringLength, DataElement, Required.
    Data elements initialized with empty strings will now be treated as containing data and will be considered invalid if:
    - are marked with Required, a mandatory data element can't be empty\blank
    - are marked with StringLength and min length is greater than 1
    - are marked with DataElement and the data type does not allow empty\blank, such as date, numeric, or alphanumeric when a syntax set is used
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.8 9.7.9
    EdiFabric.Core 9.7.8 9.7.9
    EdiFabric. Plugins. Ack. X12 9.7.8 9.7.9
    EdiFabric. Plugins. Ack.Edifact 9.7.8 9.7.9

 

22 October 2018

  • The generation of group and interchange trailers is now configurable when writing. By default, all trailers are written automatically.
  • Added async read and async write for Edifact, X12, and Vda.
  • Added VDA validation by IsValid method of EdiMessage. Does not validate structure, e.g. matching number of segments and control numbers.
  • Control segments (ISA, UNB, etc) can be converted to a string with ToEdi.
  • All control segments (ISA, UNB, etc) are attributed with DataContract and MemberContract to improve XML serialization using DataContractSerializer.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.7 9.7.8
    EdiFabric.Core 9.7.7 9.7.8
    EdiFabric. Plugins. Ack. X12 9.7.7 9.7.8
    EdiFabric. Plugins. Ack.Edifact 9.7.7 9.7.8

 

05 September 2018

  • Bugfix for HIPAA out-of-order (All) groups with segments.
  • Added a new method, ToEdi, to EdiMessage, which outputs the transaction as EDI string
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.6 9.7.7
    EdiFabric.Core 9.7.6 9.7.7
    EdiFabric. Plugins. Ack. X12 9.7.6 9.7.7
    EdiFabric. Plugins. Ack.Edifact 9.7.6 9.7.7

 

03 August 2018

  • Bugfix  - when writing to a file, the file remains locked even after the writer was disposed of. 
    The fix resolves writing to file. 
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.5 9.7.6
    EdiFabric.Core 9.7.5 9.7.6
    EdiFabric. Plugins. Ack. X12 9.7.5 9.7.6
    EdiFabric. Plugins. Ack.Edifact 9.7.5 9.7.6

 

31 July 2018

  • Added the ability to read EDI files\streams without envelope headers and trailers.
  • Edifact and X12 reader constructors were refactored to take EdifactReaderSettings and X12ReaderSettings parameters (Breaking change)
  • Added the ability to write EDI files\streams without envelope headers and trailers.
  • Edifact and X12 writer constructors were refactored to take EdifactWriterSettings and X12WriterSettings parameters (Breaking change)
  • Added AUTACK Edifact template to EdiFabric.Core.Model
  • Added NuGet target for Net Standard 2.0
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.4 9.7.5
    EdiFabric.Core 9.7.4 9.7.5
    EdiFabric. Plugins. Ack. X12 9.7.4 9.7.5
    EdiFabric. Plugins. Ack.Edifact 9.7.4 9.7.5

 

29 June 2018

  • Splitting is now configured by applying a new [SplitterAttribute] to the loop property to split by.
  • Retired Complete() in AckMan, which must now be disposed of.
  • EdiItem was renamed to IEdiItem.
  • Regenerated all templates. Eancom templates completely new.
  • Added BytesRead property to the readers.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.7.0 9.7.4
    EdiFabric.Core 9.7.0 9.7.4
    EdiFabric. Plugins. Ack. X12 9.7.0 9.7.4
    EdiFabric. Plugins. Ack.Edifact 9.7.0 9.7.4

 

04 June 2018

  • Deprecated Flush in all writers.
  • Refactored the HIPAA templates  - all segments and complex elements implement interfaces instead of having base classes.
  • Performance improvements.
  • Renamed all non-trial NuGet packages to:
    • EdiFabric.Core.Full
    • EdiFabric.Framework.Full
    • EdiFabric.Plugins.Ack.Edifact.Full
    • EdiFabric.Plugins.Ack.X12.Full
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.6.4 9.7.0
    EdiFabric.Core 9.6.4 9.7.0
    EdiFabric. Plugins. Ack. X12 9.6.4 9.7.0
    EdiFabric. Plugins. Ack.Edifact 9.6.4 9.7.0

 

23 May 2018

  • Fixed a bug for X12 999 & 997 acknowledgments generation in AK9
  • Moved flushing logic to EdiWriter's Dispose method. Flush is now marked as obsolete.
  • Updated the framework to support inheritance.
  • Created new EDI templates for HIPAA, where all segments and complex elements have base classes.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.6.2 9.6.4
    EdiFabric.Core 9.6.2 9.6.4
    EdiFabric. Plugins. Ack. X12 9.6.2 9.6.4
    EdiFabric. Plugins. Ack.Edifact 9.6.2 9.6.4

 

24 April 2018

  • Single NuGet package targeting multiple .NET versions.
  • Separate package for .NET Core 2.0 to be used directly instead of referencing .NET Standard 1.6.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.6.0 9.6.2
    EdiFabric.Core 9.6.0 9.6.2
    EdiFabric. Plugins. Ack. X12 9.6.0 9.6.2
    EdiFabric. Plugins. Ack.Edifact 9.6.0 9.6.2

 

27 March 2018

  • Allows custom properties in the templates, that are not used as part of the parsing. Sample usage is to have a database ID. All non-parsing related properties should not be annotated with Pos attribute.
  • Support for inheritance in the template classes. A sample usage would be to have a base segment class, containing some properties, and then new segment classes inheriting from the base, having different validation attributes for the same property.
  • Ability to override properties in the base class - related to the previous. If a base class and a derived class both have a property annotated with the same position, e.g. Pos(3), the property in the derived class will override that in the base class.
  • Multiple performance improvements to the splitting functionality. The parsing speed when splitting is now comparable to that without splitting.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.5.0 9.6.0
    EdiFabric.Core 9.5.0 9.6.0
    EdiFabric. Plugins. Ack. X12 9.5.0 9.6.0
    EdiFabric. Plugins. Ack.Edifact 9.5.0 9.6.0

 

06 March 2018

  • Fixed issue with validating empty HIPAA transactions
  • Fixed issue with ISA 11 and repetition separators for X12
  • Fixed issue with continuing on error - to mark unread data
  • Fixed issue with RD8 validation with a single date
  • Added validation to ST and SE segments for X12
  • All assemblies were obfuscated
  • Baseline version across all assemblies
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.3.4 9.5.0
    EdiFabric.Core 2.2.4 9.5.0
    EdiFabric. Plugins. Ack. X12 3.2.5 9.5.0
    EdiFabric. Plugins. Ack.Edifact 1.2.4 9.5.0

 

05 February 2018

  • Bugfix for X12 interchange batches containing interchanges with different delimiters and postfixes.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.3.3 9.3.4

 

31 January 2018

  • Fixed an issue for repeating complex data elements. Affects all EDIFACT and EANCOM messages.
  • Affected assemblies:

    Assembly Old version New version
    EdiFabric.Framework 9.2.4 9.3.3
Share this:

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.