Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'This is just an example program to show how to generate an EDI X12 130 Student Educational Record (Transcript) 'in VB.NET with Framework EDI Dim oEdiDoc As ediDocument Dim oSchema As ediSchema Dim oSchemas As ediSchemas Dim oInterchange As ediInterchange Dim oGroup As ediGroup Dim oTransactionset As ediTransactionSet Dim oSegment As ediDataSegment Dim sSefFile As String = "130_4010.SEF" Dim sEdifile As String = "130Outbound.x12" Dim sPath As String = AppDomain.CurrentDomain.BaseDirectory 'CREATES EDI DOCUMENT OBJECT ediDocument.Set(oEdiDoc, New ediDocument) 'THIS MAKES CERTAIN THAT FREDI ONLY USES THE SEF FILE PROVIDED, AND THAT IT DOES 'NOT USE ITS BUILT-IN STANDARD REFERENCE TABLE TO GENERATE THE EDI FILE. ediSchemas.Set(oSchemas, oEdiDoc.GetSchemas) oSchemas.EnableStandardReference = False 'ENABLES FORWARD WRITE, AND INCREASES BUFFER I/O TO IMPROVE PERFORMANCE oEdiDoc.CursorType = DocumentCursorTypeConstants.Cursor_ForwardWrite oEdiDoc.Property(DocumentPropertyIDConstants.Property_DocumentBufferIO) = 200 'SET TERMINATORS oEdiDoc.SegmentTerminator = "~{13:10}" oEdiDoc.ElementTerminator = "*" oEdiDoc.CompositeTerminator = "!" 'LOADS THE SEF FILE ediSchema.Set(oSchema, oEdiDoc.ImportSchema(sPath + sSefFile, 0)) 'CREATES THE ISA SEGMENT ediInterchange.Set(oInterchange, oEdiDoc.CreateInterchange("X", "004010")) ediDataSegment.Set(oSegment, oInterchange.GetDataSegmentHeader) oSegment.DataElementValue(1) = "00" 'Authorization Information Qualifier oSegment.DataElementValue(2) = " " 'Authorization Information oSegment.DataElementValue(3) = "00" 'Security Information Qualifier oSegment.DataElementValue(4) = " " 'Security Information oSegment.DataElementValue(5) = "ZZ" 'Interchange ID Qualifier oSegment.DataElementValue(6) = "SENDER ID " 'Interchange Sender ID oSegment.DataElementValue(7) = "ZZ" 'Interchange ID Qualifier oSegment.DataElementValue(8) = "RECEIVER ID " 'Interchange Receiver ID oSegment.DataElementValue(9) = "061206" 'Interchange Date oSegment.DataElementValue(10) = "0101" 'Interchange Time oSegment.DataElementValue(11) = "U" 'Interchange Control Standards Identifier oSegment.DataElementValue(12) = "00401" 'Interchange Control Version Number oSegment.DataElementValue(13) = "000000001" 'Interchange Control Number oSegment.DataElementValue(14) = "0" 'Acknowledgment Requested oSegment.DataElementValue(15) = "T" 'Usage Indicator oSegment.DataElementValue(16) = "!" 'Component Element Separator 'CREATES THE GS SEGMENT ediGroup.Set(oGroup, oInterchange.CreateGroup("004010")) ediDataSegment.Set(oSegment, oGroup.GetDataSegmentHeader) oSegment.DataElementValue(1) = "ED" 'Functional Identifier Code oSegment.DataElementValue(2) = "APP SENDER" 'Application Sender's Code oSegment.DataElementValue(3) = "APP RECEIVER" 'Application Receiver's Code oSegment.DataElementValue(4) = "01010101" 'Date oSegment.DataElementValue(5) = "01010101" 'Time oSegment.DataElementValue(6) = "1" 'Group Control Number oSegment.DataElementValue(7) = "X" 'Responsible Agency Code oSegment.DataElementValue(8) = "004010" 'Version / Release / Industry Identifier Code 'CREATES THE ST SEGMENT ediTransactionSet.Set(oTransactionset, oGroup.CreateTransactionSet("130")) ediDataSegment.Set(oSegment, oTransactionset.GetDataSegmentHeader) oSegment.DataElementValue(1) = "130" 'Transaction Set Identifier Code oSegment.DataElementValue(2) = "0001" 'Transaction Set Control Number 'BGN - BEGINNING SEGMENT ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("BGN")) oSegment.DataElementValue(1) = "00" 'Transaction Set Purpose Code oSegment.DataElementValue(2) = "1234567" 'Reference Identification oSegment.DataElementValue(3) = "20050503" 'Date oSegment.DataElementValue(4) = "103020" 'Time oSegment.DataElementValue(5) = "ET" 'Time Code 'ERP - EDUCATIONAL RECORD PURPOSE ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("ERP")) oSegment.DataElementValue(1) = "PS" 'Transaction Type Code oSegment.DataElementValue(2) = "INF" 'Status Reason Code 'REF - REFERENCE IDENTIFICATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("REF")) oSegment.DataElementValue(1) = "SY" 'Reference Identification Qualifier oSegment.DataElementValue(2) = "12345679" 'Reference Identification 'N1 - NAME Sender ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("N1\N1")) oSegment.DataElementValue(1) = "AS" 'Entity Identifier Code oSegment.DataElementValue(2) = "UNIVERSITY SENDER" 'Name 'N3 - ADDRESS INFORMATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("N1\N3")) oSegment.DataElementValue(1) = "123 SENDER AVENUE" 'Address Information 'N4 - GEOGRAPHIC LOCATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("N1\N4")) oSegment.DataElementValue(1) = "LOS ANGELES" 'City Name 'N1 - NAME Receiver ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("N1(2)\N1")) oSegment.DataElementValue(1) = "AT" 'Entity Identifier Code oSegment.DataElementValue(2) = "COLLEGE RECEIVER" 'Name 'N3 - ADDRESS INFORMATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("N1(2)\N3")) oSegment.DataElementValue(1) = "456 RECEIVER ST" 'Address Information 'N4 - GEOGRAPHIC LOCATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("N1(2)\N4")) oSegment.DataElementValue(1) = "NEW YORK" 'City Name 'IN1 - INDIVIDUAL IDENTIFICATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("IN1\IN1")) oSegment.DataElementValue(1) = "1" 'Entity Type Qualifier oSegment.DataElementValue(2) = "04" 'Name Type Code 'IN2 - INDIVIDUAL NAME STRUCTURE COMPONENTS ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("IN1\IN2")) oSegment.DataElementValue(1) = "05" 'Name Component Qualifier oSegment.DataElementValue(2) = "SMITH" 'Name 'IN2 - INDIVIDUAL NAME STRUCTURE COMPONENTS ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("IN1\IN2(2)")) oSegment.DataElementValue(1) = "02" 'Name Component Qualifier oSegment.DataElementValue(2) = "MARY" 'Name 'IN2 - INDIVIDUAL NAME STRUCTURE COMPONENTS ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("IN1\IN2(3)")) oSegment.DataElementValue(1) = "15" 'Name Component Qualifier oSegment.DataElementValue(2) = "J" 'Name 'SST - STUDENT ACADEMIC STATUS ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("SST\SST")) oSegment.DataElementValue(1) = "B18" 'Status Reason Code oSegment.DataElementValue(2) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(3) = "19871215" 'Date Time Period 'N1 - NAME ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("SST\N1")) oSegment.DataElementValue(1) = "HS" 'Entity Identifier Code oSegment.DataElementValue(2) = "ST MARY'S HIGH SCHOOL" 'Name 'N4 - GEOGRAPHIC LOCATION ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("SST\N4")) oSegment.DataElementValue(1) = "CARSON" 'City Name oSegment.DataElementValue(2) = "CA" 'State or Province Code Dim nAtvLoop As Integer For nAtvLoop = 1 To 2 'number of activities 'ATV - STUDENT ACTIVITIES AND AWARDS ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("ATV\ATV")) oSegment.DataElementValue(3) = "ATHLETE OF THE YEAR 1985" 'Entity Title 'DTP - DATE OR TIME OR PERIOD ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("ATV\DTP")) oSegment.DataElementValue(1) = "103" 'Date/Time Qualifier oSegment.DataElementValue(2) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(3) = "19871130" 'Date Time Period Next Dim nTstLoop As Integer For nTstLoop = 1 To 3 'number of tests 'TST - TEST SCORE RECORD ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("TST\TST")) oSegment.DataElementValue(1) = "CPE" 'Educational Test or Requirement Code oSegment.DataElementValue(2) = "CERTIFIED PRIMARY EDU" 'Name oSegment.DataElementValue(3) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(4) = "19791128" 'Date Time Period oSegment.DataElementValue(7) = "07" 'Level of Individual, Test, or Course Code 'SBT - SUBTEST ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("TST\SBT\SBT")) oSegment.DataElementValue(1) = "TOTAL" 'Subtest Code 'SRE - TEST SCORES ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("TST\SBT\SRE")) oSegment.DataElementValue(1) = "3" 'Test Score Qualifier Code oSegment.DataElementValue(2) = "ABA" 'Description Next 'LX - ASSIGNED NUMBER ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\LX")) oSegment.DataElementValue(1) = "123456" 'Assigned Number 'HS - HEALTH SCREENING ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\HS")) oSegment.DataElementValue(1) = "IDIDID" 'Health Screening Type Code oSegment.DataElementValue(2) = "CC" 'Date Time Period Format Qualifier oSegment.DataElementValue(3) = "A1B2C3D4E5" 'Date Time Period oSegment.DataElementValue(4) = "001" 'Status Reason Code 'IMM - IMMUNIZATION STATUS CODE ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\IMM")) oSegment.DataElementValue(1) = "FLU" 'Immunization Type Code oSegment.DataElementValue(2) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(3) = "19871128" 'Date Time Period oSegment.DataElementValue(4) = "1" 'Immunization Status Code 'IMM - IMMUNIZATION STATUS CODE ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\IMM(2)")) oSegment.DataElementValue(1) = "TETANU" 'Immunization Type Code oSegment.DataElementValue(2) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(3) = "19700219" 'Date Time Period oSegment.DataElementValue(4) = "1" 'Immunization Status Code 'IMM - IMMUNIZATION STATUS CODE ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\IMM(3)")) oSegment.DataElementValue(1) = "MUMPS" 'Immunization Type Code oSegment.DataElementValue(2) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(3) = "19750504" 'Date Time Period oSegment.DataElementValue(4) = "1" 'Immunization Status Code Dim nSesLoop As Integer For nSesLoop = 1 To 2 ' number of sessions 'SES - ACADEMIC SESSION HEADER ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\SES\SES")) oSegment.DataElementValue(1) = "20010407" 'Date Time Period oSegment.DataElementValue(4) = "4" 'Session Code oSegment.DataElementValue(5) = "SPRING QUARTER 2001" 'Name oSegment.DataElementValue(6) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(7) = "20010407" 'Date Time Period oSegment.DataElementValue(8) = "D8" 'Date Time Period Format Qualifier oSegment.DataElementValue(9) = "20010630" 'Date Time Period oSegment.DataElementValue(10) = "21" 'Level of Individual, Test, or Course Code oSegment.DataElementValue(14) = "B35" 'Status Reason Code Dim nCrsLoop As Integer For nCrsLoop = 1 To 3 'number of courses ina session 'CRS - COURSE RECORD ediDataSegment.Set(oSegment, oTransactionset.CreateDataSegment("LX\SES\CRS\CRS")) oSegment.DataElementValue(1) = "R" 'Basis for Academic Credit Code oSegment.DataElementValue(2) = "U" 'Academic Credit Type Code oSegment.DataElementValue(5) = "GRD" 'Academic Grade Qualifier oSegment.DataElementValue(6) = "AB" 'Academic Grade oSegment.DataElementValue(8) = "U" 'Academic Grade or Course Level Code oSegment.DataElementValue(12) = "12" 'Quantity oSegment.DataElementValue(14) = "BEGIN MATH" 'Name oSegment.DataElementValue(15) = "MAT101" 'Reference Identification oSegment.DataElementValue(16) = "MATH" 'Name Next 'nCrsLoop Next 'nSesLoop 'TRAILING SEGMENTS ARE AUTOMATICALLY CREATED WHEN FREDI COMMITS (SAVES) 'THE EDI DOCUMENT OBJECT INTO AN EDI FILE. oEdiDoc.Save(sPath + sEdifile) 'DESTROYS OBJECTS oSegment.Dispose() oTransactionset.Dispose() oGroup.Dispose() oInterchange.Dispose() oSchema.Dispose() oSchemas.Dispose() oEdiDoc.Dispose() MessageBox.Show("Done. Output = " + sPath + sEdifile) End Sub