public void extractShipmentDTM(Loop inLoop) throws OBOEException { Segment segment = null; // valid = false; int qty = inLoop.getSegmentCount("DTM"); for (int ii = 0; ii < qty; ii++) { try { segment = inLoop.getSegment("DTM", ii); } catch (Exception exc) { } if (segment == null) { errorMsgs.add("Segments DTM missing," + ii); setValid(false); return; } String dateTimeQualifier = getField(segment, 1, true, "Missing Date/Time Qualifier in segment DTM"); if (dateTimeQualifier == null) { errorMsgs.add("Date/Time Qualifier is null"); setValid(false); return; } if (!"011".equals(dateTimeQualifier)) { errorMsgs.add("Invalid value of Date/Time Qualifier in segment DTM: " + dateTimeQualifier); setValid(false); return; } String shipmentDateS = getField(segment, 2, true, "Missing Shipment Date in segment DTM"); if (shipmentDateS == null) { errorMsgs.add("Shipment Date is null"); setValid(false); return; } if (shipmentDateS.length() != 8) { errorMsgs.add("Invalid value of Shipment Date: " + shipmentDateS); setValid(false); return; } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Date shipmentDate = null; try { shipmentDate = sdf.parse(shipmentDateS); } catch (Exception exc) { errorMsgs.add("Invalid value of Shipment Date: " + shipmentDateS); setValid(false); return; } if (!shipmentDateS.equals(sdf.format(shipmentDate))) { errorMsgs.add("Invalid value of Shipment Date: " + shipmentDateS); setValid(false); return; } ediInp856Vw.setShipDate(shipmentDate); } return; }