0.3.0 Milestone 7
Pre-releaseThis milestone will break backward compatibility with the previous milestones for 0.3.0
Updated ASN Segments
Several segments used BigDecimal to capture data elements. These have been switched to a String. This will prevent Gozer from throwing an X12ParserException
when a supplier passes a non-numeric value. This will allow users of the framework to check the values and to easily generate an 824 file indicating the problem as well as include the pertinent identifying information for the EDI file and transaction set.
- SN1ItemDetail
-- no longer uses BigDecimal for segment data elements - TD1CarrierDetail
-- no longer uses BigDecimal for segment data elements - N1PartyIdentification
-- updated N3 segment to a List
-- added REF as a List
The ConversionUtil
will remain part of Gozer so that applications can use it to convert values to a BigDecimal.
Updated ASN Loops
The primary reason is the following segments have been updated on the ASN loops based on comparison with the various EDI guides used in Walmart
- Shipment
-- updated TD1 segment to a List
-- updated TD5 segment to a List
-- updated TD3 segment to a List - Order
-- added TD1 segment as a List - Tare
-- updated PKG segment to a List
-- added PAL segment
-- updated MAN segment to a List - Pack
-- updated MAN segment to a List
-- added N1 segment
-- added PO4 segment
-- added TD1 segment as a List - Item
-- added DTM segment as a List
-- added REF segment as a List
Access to unparsed segments on Loops
The X12ParsedLoop
has a new attribute - a list of unparsedSegments
When an unexpected segment is encountered on a Loop it will be added to this list.
An example:
private void doTareSegments(X12Segment segment, SegmentIterator segmentIterator, Tare tare) {
switch (segment.getIdentifier()) {
case PKGPackaging.IDENTIFIER:
tare.addPKGPackaging(PKGPackagingParser.parse(segment));
break;
case PALPalletType.IDENTIFIER:
tare.setPal(PALPalletTypeParser.parse(segment));
break;
case MANMarkNumber.IDENTIFIER:
tare.addMANMarkNumber(MANMarkNumberParser.parse(segment));
break;
default:
tare.addUnparsedSegment(segment);
break;
}
}