package com.digertech.sdk.samples; import java.io.File; import java.io.RandomAccessFile; import com.digertech.sdk.reader.*; import com.digertech.sdk.records.*; import com.digertech.sdk.records.x9100.*; import com.digertech.sdk.records.x937.*; import com.digertech.sdk.writer.DTFileWriter; /** * This sample writes ICL records to an ICL file. * * To run this sample, a jar file in the lib folder should * be included in the classpath: * FileProcessingSDK.jar * * Execute the commmand to run the sample : * java com.digertech.sdk.samples.SampleICLFileWriter [ICL file] [license key] * [ICL file] - ICL file full path name. * [license key] - File processing SDK license key. */ public class SampleICLFileWriter { private long bundleAmount = 0; private long cashLeterAmount = 0; private long fileAmount = 0; private int bundleItem = 0; private int cashLeterItem = 0; private int fileItem = 0; private int bundleImage = 0; private int cashLeterImage = 0; private int bundleCount = 0; private int cashLetterCount = 0; private int recordCount = 0; private boolean forward = true; public SampleICLFileWriter() { super(); } public void writeRecords(File file, int format, boolean forward) throws FileIOException { DTFileWriter writer = null; byte[] imageData = null; int imageSize = 0; this.forward = forward; try { writer = new DTFileWriter(file); // all records should be written to the file in order // the SDK will not validate the order of the records. writer.writeRecord(getType01Record(format)); System.out.println("Write Type 01 record."); writer.writeRecord(getType10Record(format)); System.out.println("Write Type 10 record."); writer.writeRecord(getType20Record(format)); System.out.println("Write Type 20 record."); if (forward) { writer.writeRecord(getType25Record(format)); System.out.println("Write Type 25 record."); writer.writeRecord(getType26Record(format)); System.out.println("Write Type 26 record."); writer.writeRecord(getType27Record(format)); System.out.println("Write Type 27 record."); writer.writeRecord(getType28Record(format)); System.out.println("Write Type 28 record."); } else { writer.writeRecord(getType31Record(format)); System.out.println("Write Type 31 record."); writer.writeRecord(getType32Record(format)); System.out.println("Write Type 32 record."); writer.writeRecord(getType33Record(format)); System.out.println("Write Type 33 record."); writer.writeRecord(getType34Record(format)); System.out.println("Write Type 34 record."); writer.writeRecord(getType35Record(format)); System.out.println("Write Type 35 record."); } imageData = getImageData(true); imageSize = imageData == null ? 0 : imageData.length; writer.writeRecord(getType50Record(format, imageSize, true)); System.out.println("Write Type 50 record."); writer.writeRecord(getType52Record(format, imageData)); System.out.println("Write Type 52 record."); writer.writeRecord(getType54Record(format)); System.out.println("Write Type 54 record."); imageData = getImageData(false); imageSize = imageData == null ? 0 : imageData.length; writer.writeRecord(getType50Record(format, imageSize, false)); System.out.println("Write Type 50 record."); writer.writeRecord(getType52Record(format, imageData)); System.out.println("Write Type 52 record."); writer.writeRecord(getType54Record(format)); System.out.println("Write Type 54 record."); writer.writeRecord(getType70Record(format)); System.out.println("Write Type 70 record."); writer.writeRecord(getType90Record(format)); System.out.println("Write Type 90 record."); writer.writeRecord(getType99Record(format)); System.out.println("Write Type 99 record."); } catch (RecordException ex) { throw new FileIOException(ex.toString()); } catch (Exception ex) { throw new FileIOException(ex.toString()); } finally { if (writer != null) { writer.close(); System.out.println("File is closed."); } } } private byte[] getImageData(boolean front) { byte[] imageData = null; RandomAccessFile raf = null; try { if (front) { raf = new RandomAccessFile("images/front.tif", "r"); } else { raf = new RandomAccessFile("images/back.tif", "r"); } imageData = new byte[(int)raf.length()]; raf.read(imageData); } catch (Exception e) { e.printStackTrace(); } finally { if (raf != null) { try { raf.close(); } catch (Exception e) { e.printStackTrace(); } } } return imageData; } private X9Record getType01Record(int format) throws RecordException { this.fileAmount = 0; this.fileItem = 0; this.cashLetterCount = 0; this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type01Record t01 = new X9100Type01Record(RecordDefines.X9100_180); t01.setStandardLevel("20"); t01.setTestFileInd("P"); t01.setDestRoutingNum("123456789"); t01.setOriginRoutingNum("987654321"); t01.setFileCreateDate("20090805"); t01.setFileCreateTime("0828"); t01.setResendInd("N"); t01.setDestName("Destation Bank"); t01.setOriginName("Origin Bank"); t01.setFileIdModifier(""); t01.setCountryCode(""); t01.setUserField(""); t01.setReserved(""); return t01; } else { X937Type01Record t01 = new X937Type01Record(RecordDefines.X937_2003); t01.setStandardLevel("03"); t01.setTestFileInd("P"); t01.setDestRoutingNum("123456789"); t01.setOriginRoutingNum("987654321"); t01.setFileCreateDate("20090805"); t01.setFileCreateTime("0828"); t01.setResendInd("N"); t01.setDestName("Destation Bank"); t01.setOriginName("Origin Bank"); t01.setFileIdModifier(""); t01.setCountryCode(""); t01.setUserField(""); t01.setReserved(""); return t01; } } private X9Record getType10Record(int format) throws RecordException { this.cashLeterAmount = 0; this.cashLeterImage = 0; this.cashLeterItem = 0; this.bundleCount = 0; this.cashLetterCount ++; this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type10Record t10 = new X9100Type10Record(RecordDefines.X9100_180); t10.setCollectionTypeInd(this.forward ? "01" : "03"); t10.setDestRoutingNum("123456789"); t10.setInstitutionRoutingNum("987654321"); t10.setBusinessDate("20090805"); t10.setCreateDate("20090805"); t10.setCreateTime("0828"); t10.setRecordTypeInd("F"); t10.setDocTypeInd("C"); t10.setCashletterID("21153223"); t10.setOrigContactName(""); t10.setOrigContactPhone(""); t10.setFedWorkType(""); t10.setUserField(""); return t10; } else { X937Type10Record t10 = new X937Type10Record(RecordDefines.X937_2003); t10.setCollectionTypeInd("01"); t10.setDestRoutingNum("123456789"); t10.setInstitutionRoutingNum("987654321"); t10.setBusinessDate("20090805"); t10.setCreateDate("20090805"); t10.setCreateTime("0828"); t10.setRecordTypeInd("F"); t10.setDocTypeInd("C"); t10.setCashletterID("21153223"); t10.setOrigContactName(""); t10.setOrigContactPhone(""); t10.setFedWorkType(""); t10.setUserField(""); t10.setReserved(""); return t10; } } private X9Record getType20Record(int format) throws RecordException { this.bundleAmount = 0; this.bundleImage = 0; this.bundleItem = 0; this.bundleCount++; this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type20Record t20 = new X9100Type20Record(RecordDefines.X9100_180); t20.setCollectionTypeInd(this.forward ? "01" : "03"); t20.setDestRoutingNum("123456789"); t20.setInstitutionRoutingNum("987654321"); t20.setBusinessDate("20090805"); t20.setCreateDate("20090805"); t20.setBundleID("0000100400"); t20.setBundleSeqNum("0001"); t20.setCycleNum("02"); t20.setReturnRoutingNum("100000010"); t20.setBundleCreateTime("0829"); t20.setUserField(""); t20.setReserved(""); return t20; } else { X937Type20Record t20 = new X937Type20Record(RecordDefines.X937_2003); t20.setCollectionTypeInd("01"); t20.setDestRoutingNum("123456789"); t20.setInstitutionRoutingNum("987654321"); t20.setBusinessDate("20090805"); t20.setCreateDate("20090805"); t20.setBundleID("0000100400"); t20.setBundleSeqNum("0001"); t20.setCycleNum("02"); t20.setReturnRoutingNum("100000010"); t20.setUserField(""); t20.setReserved(""); return t20; } } private X9Record getType25Record(int format) throws RecordException { this.recordCount++; this.bundleAmount += 19800; this.cashLeterAmount += 19800; this.fileAmount += 19800; this.bundleItem++; this.cashLeterItem++; this.fileItem++; if (format == RecordDefines.X9100_180) { X9100Type25Record t25 = new X9100Type25Record(RecordDefines.X9100_180); t25.setAuxOnUs(" 100008"); t25.setExtProcCode(""); t25.setRoutingNum("123456789"); t25.setOnUsField(" 98989898618/"); t25.setAmount(19800); t25.setItemSeqNum("000002800012001"); t25.setDocTypeInd("C"); t25.setRetAcceptInd("6"); t25.setMicrValidInd(""); t25.setBofdInd("U"); t25.setAddendumCount(3); t25.setCorrectionInd(""); t25.setArchiveTypeInd(""); return t25; } else { X937Type25Record t25 = new X937Type25Record(RecordDefines.X937_2003); t25.setAuxOnUs(" 100008"); t25.setExtProcCode(""); t25.setRoutingNum("12345678"); t25.setRoutingNumCheckDigit("9"); t25.setOnUsField(" 98989898618/"); t25.setAmount(19800); t25.setItemSeqNum("000002800012001"); t25.setDocTypeInd("C"); t25.setRetAcceptInd("6"); t25.setMicrValidInd(""); t25.setBofdInd("U"); t25.setAddendumCount(3); t25.setCorrectionInd(""); t25.setArchiveTypeInd(""); return t25; } } private X9Record getType26Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type26Record t26 = new X9100Type26Record(RecordDefines.X9100_180); t26.setAddendumNum("1"); t26.setBofdRoutingNum("987654321"); t26.setBofdBusinessDate("20090805"); t26.setBofdItemSeqNum("000002800012001"); t26.setBofdDepositAccountNum(""); t26.setBofdDepositBranch(""); t26.setPayeeName(""); t26.setTruncationInd("Y"); t26.setBofdConversionInd("2"); t26.setBofdCorrectionInd("0"); t26.setMagneticReadInd("3"); t26.setUserField(""); t26.setReserved(""); return t26; } else { X937Type26Record t26 = new X937Type26Record(RecordDefines.X937_2003); t26.setAddendumNum("1"); t26.setBofdRoutingNum("987654321"); t26.setBofdBusinessDate("20090805"); t26.setBofdItemSeqNum("000002800012001"); t26.setBofdDepositAccountNum(""); t26.setBofdDepositBranch(""); t26.setPayeeName(""); t26.setTruncationInd("Y"); t26.setBofdConversionInd("2"); t26.setBofdCorrectionInd("0"); t26.setUserField(""); t26.setReserved(""); return t26; } } private X9Record getType27Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type27Record t27 = new X9100Type27Record(RecordDefines.X9100_180); t27.setDescription("Description"); t27.setImgCaptureDate("20090805"); t27.setImgCaptureTime("0806"); t27.setMicroArchiveSeqNum("0123456"); t27.setImgArchiveLocatorLen(34); t27.setCapturedUnparsedMICRDataLen(27); t27.setCapturedHighUnparsedMICRDataLen(28); t27.setCorrectedUnparsedMICRDataLen(29); t27.setCorrectedHighUnparsedMICRDataLen(30); t27.setUserDataLen(31); t27.setReserved(""); t27.setImgArchiveLocator("Image Archive Locator"); t27.setCapturedUnparsedMICRData("capturedUnparsedMICRData"); t27.setCapturedHighUnparsedMICRData("capturedHighUnparsedMICRData"); t27.setCorrectedUnparsedMICRData("correctedUnparsedMICRData"); t27.setCorrectedHighUnparsedMICRData("correctedHighUnparsedMICRData"); t27.setUserField("UserField"); return t27; } else { X937Type27Record t27 = new X937Type27Record(RecordDefines.X937_2003); t27.setVarRecordInd("0"); t27.setMicroArchiveSeqNum("0123456"); t27.setImgArchiveLocatorLen(34); t27.setImgArchiveLocator("Image Archive Locator"); t27.setDescription("Description"); t27.setUserField("UserField"); t27.setReserved(""); return t27; } } private X9Record getType28Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type28Record t28 = new X9100Type28Record(RecordDefines.X9100_180); t28.setAddendumRecordNum("01"); t28.setRoutingNum("987654321"); t28.setEndorsingDate("20090805"); t28.setItemSeqNum("000002800012001"); t28.setTruncationInd("N"); t28.setConversionInd("2"); t28.setCorrectionInd("0"); t28.setReturnReason(""); t28.setMagneticReadInd("3"); t28.setBankId("0"); t28.setDepositAccount("0123456789"); t28.setUserField(""); t28.setReserved(""); return t28; } else { X937Type28Record t28 = new X937Type28Record(RecordDefines.X937_2003); t28.setAddendumRecordNum("01"); t28.setRoutingNum("987654321"); t28.setEndorsingDate("20090805"); t28.setItemSeqNum("000002800012001"); t28.setTruncationInd("N"); t28.setConversionInd("2"); t28.setCorrectionInd("0"); t28.setReturnReason(""); t28.setUserField(""); t28.setReserved(""); return t28; } } private X9Record getType31Record(int format) throws RecordException { this.recordCount++; this.bundleAmount += 19800; this.cashLeterAmount += 19800; this.fileAmount += 19800; this.bundleItem++; this.cashLeterItem++; this.fileItem++; if (format == RecordDefines.X9100_180) { X9100Type31Record t31 = new X9100Type31Record(RecordDefines.X9100_180); t31.setAuxOnUs(" 100008"); t31.setExtProcCode(""); t31.setRoutingNum("123456789"); t31.setOnUs(" 98989898618/"); t31.setAmount(19800); t31.setItemSeqNum("000002800012001"); t31.setAddendumCount(4); t31.setReserved(""); return t31; } else { X937Type31Record t31 = new X937Type31Record(RecordDefines.X937_2003); t31.setRoutingNum("12345678"); t31.setRoutingNumCheckDigit("9"); t31.setOnUs(" 98989898618/"); t31.setAmount(19800); t31.setReturnReason("W"); t31.setAddendumCount(4); t31.setDocTypeInd("C"); t31.setForwardBundleDate("20090801"); t31.setItemSeqNum("000002800012001"); t31.setExtProcCode(""); t31.setNotificationInd("2"); t31.setArchiveTypeInd(""); t31.setReserved(""); return t31; } } private X9Record getType32Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type32Record t32 = new X9100Type32Record(RecordDefines.X9100_180); t32.setAddendumNum("1"); t32.setBofdRoutingNum("987654321"); t32.setBofdBusinessDate("20090805"); t32.setBofdItemSeqNum("000002800012001"); t32.setBofdDepositAccountNum(""); t32.setBofdDepositBranch(""); t32.setPayeeName(""); t32.setTruncationInd("Y"); t32.setBofdConversionInd("2"); t32.setBofdCorrectionInd("0"); t32.setMagneticReadInd("3"); t32.setUserField(""); t32.setReserved(""); return t32; } else { X937Type32Record t32 = new X937Type32Record(RecordDefines.X937_2003); t32.setAddendumNum("1"); t32.setBofdRoutingNum("987654321"); t32.setBofdBusinessDate("20090805"); t32.setBofdItemSeqNum("000002800012001"); t32.setBofdDepositAccountNum(""); t32.setBofdDepositBranch(""); t32.setPayeeName(""); t32.setTruncationInd("Y"); t32.setBofdConversionInd("2"); t32.setBofdCorrectionInd("0"); t32.setUserField(""); t32.setReserved(""); return t32; } } private X9Record getType33Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type33Record t33 = new X9100Type33Record(RecordDefines.X9100_180); t33.setReturnReason("W"); t33.setForwardBundleDate("20090801"); t33.setAdditionalReturnReason("U"); t33.setNumReturned("0"); t33.setRetDocTypeInd("C"); t33.setArchiveTypeInd(""); t33.setPayorBankName("Payor Bank Name"); t33.setPayBankItemSeqNum("000002800012001"); t33.setPayBankBusinessDate("20090805"); t33.setPayAccountName("Pay Account Name"); return t33; } else { X937Type33Record t33 = new X937Type33Record(RecordDefines.X937_2003); t33.setPayorBankName("Payor Bank Name"); t33.setAuxOnUs(" 100008"); t33.setPayBankItemSeqNum("000002800012001"); t33.setPayBankBusinessDate("20090805"); t33.setPayAccountName("Pay Account Name"); return t33; } } private X9Record getType34Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type34Record t34 = new X9100Type34Record(RecordDefines.X9100_180); t34.setDescription("Description"); t34.setImgCaptureDate("20090805"); t34.setImgCaptureTime("0806"); t34.setMicroArchiveSeqNum("0123456"); t34.setImgArchiveLocatorLen(34); t34.setCapturedUnparsedMICRDataLen(27); t34.setCapturedHighUnparsedMICRDataLen(28); t34.setCorrectedUnparsedMICRDataLen(29); t34.setCorrectedHighUnparsedMICRDataLen(30); t34.setUserDataLen(31); t34.setReserved(""); t34.setImgArchiveLocator("Image Archive Locator"); t34.setCapturedUnparsedMICRData("capturedUnparsedMICRData"); t34.setCapturedHighUnparsedMICRData("capturedHighUnparsedMICRData"); t34.setCorrectedUnparsedMICRData("correctedUnparsedMICRData"); t34.setCorrectedHighUnparsedMICRData("correctedHighUnparsedMICRData"); t34.setUserField("UserField"); return t34; } else { X937Type34Record t34 = new X937Type34Record(RecordDefines.X937_2003); t34.setVarRecordInd("0"); t34.setMicroArchiveSeqNum("0123456"); t34.setImgArchiveLocatorLen(34); t34.setImgArchiveLocator("Image Archive Locator"); t34.setDescription("Description"); t34.setUserField("UserField"); t34.setReserved(""); return t34; } } private X9Record getType35Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type35Record t35 = new X9100Type35Record(RecordDefines.X9100_180); t35.setAddendumRecordNum("01"); t35.setRoutingNum("987654321"); t35.setEndorsingDate("20090805"); t35.setItemSeqNum("000002800012001"); t35.setTruncationInd("N"); t35.setConversionInd("2"); t35.setCorrectionInd("0"); t35.setReturnReason(""); t35.setMagneticReadInd("3"); t35.setBankId("0"); t35.setDepositAccount("0123456789"); t35.setUserField(""); t35.setReserved(""); return t35; } else { X937Type35Record t35 = new X937Type35Record(RecordDefines.X937_2003); t35.setAddendumRecordNum("01"); t35.setRoutingNum("987654321"); t35.setEndorsingDate("20090805"); t35.setItemSeqNum("000002800012001"); t35.setTruncationInd("N"); t35.setConversionInd("2"); t35.setCorrectionInd("0"); t35.setReturnReason(""); t35.setUserField(""); t35.setReserved(""); return t35; } } private X9Record getType40Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type40Record t40 = new X9100Type40Record(RecordDefines.X9100_180); t40.setDestRoutingNum("987654321"); t40.setLowAccount("0123456789"); t40.setHighAccount("9876543210"); t40.setTotalItemCount(1); t40.setTotalItemAmount(19800); t40.setUserField(""); t40.setReserved(""); return t40; } else { X937Type40Record t40 = new X937Type40Record(RecordDefines.X937_2003); t40.setDestRoutingNum("987654321"); t40.setLowAccount("0123456789"); t40.setHighAccount("9876543210"); t40.setTotalItemCount(1); t40.setTotalItemAmount(19800); t40.setUserField(""); t40.setReserved(""); return t40; } } private X9Record getType41Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type41Record t41 = new X9100Type41Record(RecordDefines.X9100_180); t41.setDestRoutingNum("987654321"); t41.setNonHitInd("O"); t41.setTotalItemCount(1); t41.setTotalItemAmount(19800); t41.setUserField(""); t41.setReserved(""); return t41; } else { X937Type41Record t41 = new X937Type41Record(RecordDefines.X937_2003); t41.setDestRoutingNum("987654321"); t41.setNonHitInd("O"); t41.setTotalItemCount(1); t41.setTotalItemAmount(19800); t41.setUserField(""); t41.setReserved(""); return t41; } } private X9Record getType50Record(int format, long imageSize, boolean front) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type50Record t50 = new X9100Type50Record(RecordDefines.X9100_180); t50.setImageInd("1"); t50.setRoutingNum("987654321"); t50.setCreateDate("20090805"); t50.setViewFormatInd("00"); t50.setViewCompression("00"); t50.setViewType("0"); t50.setViewSideInd(front ? "0" : "1"); t50.setViewDescriptor("00"); t50.setDigSignInd("0"); t50.setDigSignHashFuncMethod(""); t50.setDigSignCryptAlgrMethod(""); t50.setDsaKeySize("0000000000"); t50.setDigCertfInd("0"); t50.setDigCertfFormat(""); t50.setDigCertfConvMethod(""); t50.setProtectedDataStart("0000000"); t50.setProtectedDatatLen("0000000"); t50.setImgRecreateInd("1"); t50.setImgTestOverrideInd("0"); t50.setImgCaptureTime("0806"); t50.setUserField(""); t50.setReserved(""); return t50; } else { X937Type50Record t50 = new X937Type50Record(RecordDefines.X937_2003); t50.setImageInd("1"); t50.setRoutingNum("987654321"); t50.setCreateDate("20090805"); t50.setViewFormatInd("00"); t50.setViewCompression("00"); t50.setViewDataSize(String.valueOf(imageSize)); t50.setViewSideInd(front ? "0" : "1"); t50.setViewDescriptor("00"); t50.setDigSignInd("0"); t50.setDigSignMethod("00"); t50.setSecurityKeySize("00000"); t50.setProtectedDataStart("0000000"); t50.setProtectedDatatLen("0000000"); t50.setImgRecreateInd("1"); t50.setUserField(""); t50.setReserved(""); return t50; } } private X9Record getType52Record(int format, byte[] imageData) throws RecordException { this.recordCount++; this.bundleImage++; this.cashLeterImage++; if (format == RecordDefines.X9100_180) { X9100Type52Record t52 = new X9100Type52Record(RecordDefines.X9100_180); t52.setRoutingNum("987654321"); t52.setBusinessDate("20090805"); t52.setCycleNum("02"); t52.setItemSeqNum("000002800012001"); t52.setSecurityOrigName(""); t52.setSecurityAuthName(""); t52.setSecurityKeyName(""); t52.setClippingOrigin("0"); t52.setClippingCoordinateH1(""); t52.setClippingCoordinateH2(""); t52.setClippingCoordinateV1(""); t52.setClippingCoordinateV2(""); t52.setAncillaryDataInd("0"); t52.setImageRefKeyLen(12); t52.setImageRefKey("012345678901"); t52.setDigSigLen(0); t52.setDigSig(null); t52.setDigCertfIssuerDistNameLen(18); t52.setDigCertfIssuerDistName("digCertfIssuerDistName"); t52.setDigCertfSerialNumLen(19); t52.setDigCertfSerialNum("digCertfSerialNum"); t52.setDigCertfLen(0); t52.setDigCertf(null); if (imageData == null || imageData.length == 0) { t52.setImageDataLen(0); t52.setImageData(null); } else { t52.setImageDataLen(imageData.length); t52.setImageData(imageData); } t52.setAncillaryDataLen(0); t52.setAncillaryData(null); return t52; } else { X937Type52Record t52 = new X937Type52Record(RecordDefines.X937_2003); t52.setRoutingNum("987654321"); t52.setBusinessDate("20090805"); t52.setCycleNum("02"); t52.setItemSeqNum("000002800012001"); t52.setSecurityOrigName(""); t52.setSecurityAuthName(""); t52.setSecurityKeyName(""); t52.setClippingOrigin("0"); t52.setClippingCoordinateH1(""); t52.setClippingCoordinateH2(""); t52.setClippingCoordinateV1(""); t52.setClippingCoordinateV2(""); t52.setImageRefKeyLen(12); t52.setImageRefKey("012345678901"); t52.setDigSigLen(0); t52.setDigSig(null); if (imageData == null || imageData.length == 0) { t52.setImageDataLen(0); t52.setImageData(null); } else { t52.setImageDataLen(imageData.length); t52.setImageData(imageData); } return t52; } } private X9Record getType54Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type54Record t54 = new X9100Type54Record(RecordDefines.X9100_180); t54.setGlobalImageQuality("0"); t54.setGlobalImageUsability("0"); t54.setImageBankSpecificTest("0"); t54.setPartialImage("0"); t54.setExcessImageSkew("0"); t54.setPiggybackImage("0"); t54.setTooLight("0"); t54.setTooDark("0"); t54.setStreakBands("0"); t54.setBelowMinImageSize("0"); t54.setExceedMaxImageSize("0"); t54.setReserved12_24(""); t54.setImageEnabledPod("0"); t54.setSourceDocBad("0"); t54.setDateUsability("0"); t54.setPayeeUsability("0"); t54.setConvenientAmountUsability("0"); t54.setAmountWordsUsability("0"); t54.setSignatureUsability("0"); t54.setPayorNameAddressUsability("0"); t54.setMicrLineUsability("0"); t54.setMemoLineUsability("0"); t54.setPayorBankNameAddressUsability("0"); t54.setPayeeEndorsementUsability("0"); t54.setBofdEndorsementUsability("0"); t54.setTransitEndorsementUsability("0"); t54.setReserved39_44(""); t54.setUserField(""); t54.setReserved(""); return t54; } else { X937Type54Record t54 = new X937Type54Record(RecordDefines.X937_2003); t54.setGlobalImageQuality("0"); t54.setGlobalImageUsability("0"); t54.setImageBankSpecificTest("0"); t54.setPartialImage("0"); t54.setExcessImageSkew("0"); t54.setPiggybackImage("0"); t54.setTooLightOrDark("0"); t54.setStreakBands("0"); t54.setBelowMinImageSize("0"); t54.setExceedMaxImageSize("0"); t54.setReserved12_24("0000000000000"); t54.setImageEnabledPod("0"); t54.setSourceDocBad("0"); t54.setDateUsability("0"); t54.setPayeeUsability("0"); t54.setConvenientAmountUsability("0"); t54.setAmountWordsUsability("0"); t54.setSignatureUsability("0"); t54.setPayorNameAddressUsability("0"); t54.setMicrLineUsability("0"); t54.setMemoLineUsability("0"); t54.setPayorBankNameAddressUsability("0"); t54.setPayeeEndorsementUsability("0"); t54.setBofdEndorsementUsability("0"); t54.setTransitEndorsementUsability("0"); t54.setReserved39_44("000000"); t54.setUserField(""); t54.setReserved(""); return t54; } } private X9Record getType70Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type70Record t70 = new X9100Type70Record(RecordDefines.X9100_180); t70.setItemCount(this.bundleItem); t70.setTotalAmount(this.bundleAmount); t70.setMicrTotalAmount(0); t70.setImageCount(this.bundleImage); t70.setCreditTotalAmount(0); t70.setCreditItemCount(0); t70.setUserField(""); t70.setReserved(""); return t70; } else { X937Type70Record t70 = new X937Type70Record(RecordDefines.X937_2003); t70.setItemCount(this.bundleItem); t70.setTotalAmount(this.bundleAmount); t70.setMicrTotalAmount(0); t70.setImageCount(this.bundleImage); t70.setUserField(""); t70.setReserved(""); return t70; } } private X9Record getType75Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type75Record t75 = new X9100Type75Record(RecordDefines.X9100_180); t75.setDestRoutingNum("987654321"); t75.setSeqNum("001"); t75.setBundleCount(1); t75.setNumberId("00000001"); t75.setTotalAmount(this.bundleAmount); t75.setTotalCreditAmount(0); t75.setReserved(""); return t75; } else { X937Type75Record t75 = new X937Type75Record(RecordDefines.X937_2003); t75.setDestRoutingNum("987654321"); t75.setSeqNum("001"); t75.setBundleCount(1); t75.setNumberId("00000001"); t75.setTotalAmount(this.bundleAmount); t75.setReserved(""); return t75; } } private X9Record getType85Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type85Record t85 = new X9100Type85Record(RecordDefines.X9100_180); t85.setRoutingNum("987654321"); t85.setTotalAmount(this.bundleAmount); t85.setItemCount(this.bundleItem); t85.setCreditTotalAmount(0); t85.setUserField(""); t85.setReserved(""); return t85; } else { X937Type85Record t85 = new X937Type85Record(RecordDefines.X937_2003); t85.setRoutingNum("987654321"); t85.setTotalAmount(this.bundleAmount); t85.setItemCount(this.bundleItem); t85.setUserField(""); t85.setReserved(""); return t85; } } private X9Record getType90Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type90Record t90 = new X9100Type90Record(RecordDefines.X9100_180); t90.setBundleCount(this.bundleCount); t90.setItemCount(this.cashLeterItem); t90.setTotalAmount(this.cashLeterAmount); t90.setImageCount(this.cashLeterImage); t90.setInstitutionName(""); t90.setSettlementDate(""); t90.setCreditItemCount(0); t90.setCreditTotalAmount(0); return t90; } else { X937Type90Record t90 = new X937Type90Record(RecordDefines.X937_2003); t90.setBundleCount(this.bundleCount); t90.setItemCount(this.cashLeterItem); t90.setTotalAmount(this.cashLeterAmount); t90.setImageCount(this.cashLeterImage); t90.setInstitutionName(""); t90.setSettlementDate(""); t90.setReserved(""); return t90; } } private X9Record getType99Record(int format) throws RecordException { this.recordCount++; if (format == RecordDefines.X9100_180) { X9100Type99Record t99 = new X9100Type99Record(RecordDefines.X9100_180); t99.setCashletterCount(this.cashLetterCount); t99.setTotalRecordCount(this.recordCount); t99.setTotalItemCount(this.fileItem); t99.setTotalAmount(this.fileAmount); t99.setContactName(""); t99.setContactPhone(""); t99.setCreditTotalAmount(0); return t99; } else { X937Type99Record t99 = new X937Type99Record(RecordDefines.X937_2003); t99.setCashletterCount(this.cashLetterCount); t99.setTotalRecordCount(this.recordCount); t99.setTotalItemCount(this.fileItem); t99.setTotalAmount(this.fileAmount); t99.setContactName(""); t99.setContactPhone(""); t99.setReserved(""); return t99; } } public static void setLicenseKey() { // The license key contains 25 chars. You will recieve the license key after you // purchase the SDK product. String licenseKey = "XXXXXXXXXXXXXXXXXXXXXXXXX"; setLicenseKey(licenseKey); } public static void setLicenseKey(String licenseKey) { System.out.println("***********************************************"); System.out.println("* DigerTech Inc. ICL File Writer SDK Sample *"); System.out.println("* *"); System.out.println("* Version : " + FPLicenseInfo.VERSION + " *"); System.out.println("***********************************************"); System.out.println(" "); // Make sure the license key is set to the SDK before it starts to process files. // Set the license key only one time when the JVM starts. // If the license key is valid, SDK will return the valid product id of the license. // othwise the productId is free version int productId = DTFileWriter.setLicenseKey(licenseKey); if (productId == DTFileWriter.SDK_FILE_WRITER_DEVELOPER) { System.out.println("This is a Developer version SDK license. SDK can process file less than 500 items."); } else if (productId == DTFileWriter.SDK_FILE_WRITER_ENTERPRISE_I) { System.out.println("This is an Enterprise I version SDK license. SDK can process file less than 10000 items."); } else if (productId == DTFileWriter.SDK_FILE_WRITER_ENTERPRISE_II) { System.out.println("This is an Enterprise II version SDK license. SDK can process file unlimited items."); } else { System.out.println("This is a free version SDK license. SDK can process file less than 10 items."); } FPLicenseInfo fpLicenseInfo = DTFileWriter.getLicenseInfo(); System.out.println("------------------------- "); System.out.println("Computer Id = " + fpLicenseInfo.getComputerId()); System.out.println("Product Id = " + fpLicenseInfo.getProductId()); System.out.println("Version = " + fpLicenseInfo.getVersion()); System.out.println("Permanent = " + fpLicenseInfo.isPermanent()); System.out.println("Expired = " + fpLicenseInfo.isExpired()); System.out.println("Maintiance Expired Date = " + fpLicenseInfo.getMaintainanceDate()); System.out.println("------------------------- "); } public static void main(String args[]) { if (args == null || args.length < 1) { System.out.println(new StringBuffer().append("Usage: \n") .append("java com.digertech.sdk.samples.SampleICLFileWriter [ICL file] [license key]\n") .append(" [ICL file] - ICL file with full path name.\n") .append(" [license key] - File processing SDK license key.\n") .toString()); } else { // Set the SDK license key before we process any files. // If it is better to set SDK license key when the JVM starts. if (args.length == 2) { setLicenseKey(args[1]); } else { setLicenseKey(); } File file = new File(args[0]); SampleICLFileWriter writer = new SampleICLFileWriter(); try { // Call the writeRecords method in this sample class // to create and write ICL records to the file. writer.writeRecords(file, RecordDefines.X937_2003, true); // writer.writeRecords(file, RecordDefines.X9100_180, false); } catch (FileIOException e) { System.out.println("Error writing ICL file. " + e.toString()); } } } }