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
JavaScript
/// <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());