/** Extract all segments included in ST - SE Segment */ public void extract() throws OBOEException { ediInp856Vw = EdiInp856View.createValue(); ediInp856Vw.setItems(new EdiInp856ItemViewVector()); Table table = ts.getHeaderTable(); if (table != null) { extractHeaderBSN(table); } table = ts.getDetailTable(); if (table != null) { int HLLoopSize = table.getLoopCount("HL"); for (int i = 0; i < HLLoopSize; i++) { Loop loop = table.getLoop("HL", i); Segment segment = loop.getSegment("HL"); String levelCode = getField(segment, 3, true, "Missing Hierarchical Level Code in segment HL*" + i); if (levelCode == null) { errorMsgs.add("Level Code is null"); setValid(false); continue; } if (i == 0) { if (!"S".equals(levelCode)) { errorMsgs.add("Invalid Hierarchical Level Code in segment HL*0 : " + levelCode); setValid(false); continue; } extractShipmentLevelREF(loop); extractShipmentDTM(loop); extractShipmentTD5(loop); extractShipByN1(loop); } else if (i == 1) { if (!"O".equals(levelCode)) { errorMsgs.add("Invalid Hierarchical Level Code in segment HL*1 : " + levelCode); setValid(false); continue; } extractPurchaseOrderReferencePRF(loop); extractReferenceIdentificationREF(loop); } else { if ("O".equals(levelCode)) { extractPurchaseOrderReferencePRF(loop); extractReferenceIdentificationREF(loop); } else if (!"I".equals(levelCode)) { errorMsgs.add( "Invalid value of Hierarchical Level Code in segment HL *" + i + " : " + levelCode); setValid(false); continue; } else { ediInp856ItemVw = EdiInp856ItemView.createValue(); ediInp856Vw.getItems().add(ediInp856ItemVw); extractItemIdentificationLIN(loop); extractItemShipmentDetailSN1(loop); extractItemIdentificationREF(loop); } } } } table = ts.getSummaryTable(); if (table != null) { // extractHeaderTDS(table); // extractHeaderSAC(table); } }