UNPKG

rdpcrystal-edi-library

Version:

ASCII X12 EDI Library, Create, Parse, Load, Validate, View, Edit, Split, Join And Scrub EDI Data

65 lines (54 loc) 2.27 kB
/// <reference path="../../lib/RDPCrystalEDILibrary.d.ts" /> const fs = require('fs'); const edi = require('../../lib/RDPCrystalEDILibrary').RDPCrystalEDILibrary; const enumMap = require('./enummap'); let map = new enumMap(); //Create a new validator let validator = new edi.EDIValidator(); //Load a 5010 270 validation rules let validationRules = fs.readFileSync('../../validationrules/5010/Rules_5010_270_005010X279A1.Rules').toString(); validator.EDIRulesFileData = validationRules; //Set the EDI data to validate and load. This can also be read in from a file validator.EDIDataString = "ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~" + "GS*Hk*SENDER CODE*RECEIVERCODE*19991231*0802*1*X*005010X279A1~" + "ST*271*1234*005010X279A1~" + "BHT*0022*13*10001234*20060501*1319~" + "HL*1**20*1~" + "NM1*PR*2*ABC COMPANY*****PI*842610001~" + "HL*2*1*21*1~" + "NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~" + "HL*3*2*22*0~" + "TRN*1*93175-012547*9877281234~" + "NM1*IL*1*SMITH*ROBERT****MI*11122333301~" + "DMG*D8*19430519~" + "DTP*291*D8*20060501~" + "EQ*30~" + "SE*13*1234~" + "GE*1*1~" + "IEA*1*000000905~"; console.log("Validating 5010 271 EDI Files"); validator.validate(); console.log("Errors Found->"); //Get all errors from the EDI data for (let i = 0; i < validator.Errors.Count; i++) { let error = validator.Errors.getItem(i); console.log( { Type: "Error", Line: error.LineNumber, Transaction: "", SnipLevel: map.SnipLevelTypes[error.SnipLevel], Message: map.MessageTypes[error.Message], Loop: error.Loop, Segment: error.Segment, Element: error.ElementOrdinal, Composite: error.CompositeElementOrdinal, Description: error.Description, Ordinal: error.SegmentOrdinal }); } console.log("Generated 5010 999 Acknowledgment File"); //Generate 5010 999 Acknowledgment File let ack999Generator = new edi.Ack999Generator(); let ackDocument = ack999Generator.generate(validator); console.log(ackDocument.generateEDIData());