clear

        * CREATES EDI DOCUMENT OBJECT 
        oEdiDoc = createobject("fredi.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.
        oSchemas = oEdiDoc.GetSchemas
        oSchemas.EnableStandardReference = .F.
 
        * ENABLES FORWARD WRITE, AND INCREASES BUFFER I/O TO IMPROVE PERFORMANCE
        oEdiDoc.CursorType = 2
        oEdiDoc.Property(1002) = 200 
 
        * SET TERMINATORS
        oEdiDoc.SegmentTerminator = "~{13:10}"
        oEdiDoc.ElementTerminator = "*"
        oEdiDoc.CompositeTerminator = ">"
 
        * LOADS SEF FILE
        oSchema = oEdiDoc.LoadSchema("211_003070.SEF", 0)
 
        * CREATES THE ISA SEGMENT
        oInterchange = oEdiDoc.CreateInterchange("X","003070")
        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) = "AABB           "     && Interchange Sender ID
        oSegment.DataElementValue(7) = "01"     && Interchange ID Qualifier
        oSegment.DataElementValue(8) = "112233445      "     && Interchange Receiver ID
        oSegment.DataElementValue(9) = "080304"     && Interchange Date
        oSegment.DataElementValue(10) = "1116"     && Interchange Time
        oSegment.DataElementValue(11) = "U"     && Interchange Control Standards Identifier
        oSegment.DataElementValue(12) = "00307"     && Interchange Control Version Number
        oSegment.DataElementValue(13) = "000017859"     && Interchange Control Number
        oSegment.DataElementValue(14) = "0"     && Acknowledgment Requested
        oSegment.DataElementValue(15) = "P"     && Usage Indicator
        oSegment.DataElementValue(16) = ">"     && Component Element Separator
 
        * CREATES THE GS SEGMENT
        oGroup = oInterchange.CreateGroup("003070")
        oSegment = oGroup.GetDataSegmentHeader
        oSegment.DataElementValue(1) = "BL"     && Functional Identifier Code
        oSegment.DataElementValue(2) = "AABB"     && Application Sender's Code
        oSegment.DataElementValue(3) = "112233445"     && Application Receiver's Code
        oSegment.DataElementValue(4) = "080304"     && Date
        oSegment.DataElementValue(5) = "1116"     && Time
        oSegment.DataElementValue(6) = "1"     && Group Control Number
        oSegment.DataElementValue(7) = "X"     && Responsible Agency Code
        oSegment.DataElementValue(8) = "003070"     && Version / Release / Industry Identifier Code
 
        * CREATES THE ST SEGMENT
        oTransactionset = oGroup.CreateTransactionSet("211")
        oSegment = oTransactionset.GetDataSegmentHeader
        oSegment.DataElementValue(1) = "211"     && Transaction Set Identifier Code
        oSegment.DataElementValue(2) = "000010001"     && Transaction Set Control Number
 
        * BOL - BEGINNING SEGMENT FOR THE MOTOR CARRIER BILL OF LADING
        oSegment = oTransactionset.CreateDataSegment("BOL")
        oSegment.DataElementValue(1) = "SCAC"     && Standard Carrier Alpha Code
        oSegment.DataElementValue(2) = "PP"     && Shipment Method of Payment
        oSegment.DataElementValue(3) = "12345"     && Shipment Identification Number
        oSegment.DataElementValue(4) = "990501"     && Date
        oSegment.DataElementValue(6) = "1231234561"     && Reference Identification
 
        * B2A - SET PURPOSE
        oSegment = oTransactionset.CreateDataSegment("B2A")
        oSegment.DataElementValue(1) = "00"     && Transaction Set Purpose Code
 
        * MS2 - EQUIPMENT OR CONTAINER OWNER AND TYPE
        oSegment = oTransactionset.CreateDataSegment("MS2")
        oSegment.DataElementValue(1) = "SCAC"     && Standard Carrier Alpha Code
        oSegment.DataElementValue(2) = "123456"     && Equipment Number
 
        * N1 - NAME
        oSegment = oTransactionset.CreateDataSegment("N1\N1")
        oSegment.DataElementValue(1) = "SH"     && Entity Identifier Code
        oSegment.DataElementValue(2) = "SHIPPER NAME"     && Name
        oSegment.DataElementValue(3) = "93"     && Identification Code Qualifier
        oSegment.DataElementValue(4) = "123456789"     && Identification Code
 
        * N3 - ADDRESS INFORMATION
        oSegment = oTransactionset.CreateDataSegment("N1\N3")
        oSegment.DataElementValue(1) = "9999 SHIPPER STREET"     && Address Information
        oSegment.DataElementValue(2) = "ADDITIONAL ADDRESS LINE"     && Address Information
 
        * N4 - GEOGRAPHIC LOCATION
        oSegment = oTransactionset.CreateDataSegment("N1\N4")
        oSegment.DataElementValue(1) = "SHIPPER CITY"     && City Name
        oSegment.DataElementValue(2) = "ST"     && State or Province Code
        oSegment.DataElementValue(3) = "00000"     && Postal Code
 
        * N1 - NAME
        oSegment = oTransactionset.CreateDataSegment("N1(2)\N1")
        oSegment.DataElementValue(1) = "CN"     && Entity Identifier Code
        oSegment.DataElementValue(2) = "CONSIGNEE NAME"     && Name
 
        * N3 - ADDRESS INFORMATION
        oSegment = oTransactionset.CreateDataSegment("N1(2)\N3")
        oSegment.DataElementValue(1) = "9999 CONSIGNEE STREET"     && Address Information
        oSegment.DataElementValue(2) = "ADDITIONAL ADDRESS LINE"     && Address Information
 
        * N4 - GEOGRAPHIC LOCATION
        oSegment = oTransactionset.CreateDataSegment("N1(2)\N4")
        oSegment.DataElementValue(1) = "CONSIGNEE CITY"     && City Name
        oSegment.DataElementValue(2) = "ST"     && State or Province Code
        oSegment.DataElementValue(3) = "99999"     && Postal Code
 
        * G61 - CONTACT
        oSegment = oTransactionset.CreateDataSegment("N1(2)\G61")
        oSegment.DataElementValue(1) = "DC"     && Contact Function Code
        oSegment.DataElementValue(2) = "DELIVERY CONTACT NAME"     && Name
        oSegment.DataElementValue(3) = "TE"     && Communication Number Qualifier
        oSegment.DataElementValue(4) = "5559999999"     && Communication Number
 
        * AT1 - BILL OF LADING LINE ITEM NUMBER
        oSegment = oTransactionset.CreateDataSegment("AT1\AT1")
        oSegment.DataElementValue(1) = "1"     && Lading Line Item Number
 
        * L11 - BUSINESS INSTRUCTIONS AND REFERENCE NUMBER
        oSegment = oTransactionset.CreateDataSegment("AT1\L11")
        oSegment.DataElementValue(1) = "999"     && Reference Identification
        oSegment.DataElementValue(2) = "AE"     && Reference Identification Qualifier
 
        * AT4 - BILL OF LADING DESCRIPTION
        oSegment = oTransactionset.CreateDataSegment("AT1\AT4")
        oSegment.DataElementValue(1) = "COMMODITY 1"     && Lading Description
 
        * AT2 - BILL OF LADING LINE ITEM DETAIL
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\AT2")
        oSegment.DataElementValue(1) = "5"     && Lading Quantity
        oSegment.DataElementValue(2) = "CTN"     && Packaging Form Code
        oSegment.DataElementValue(3) = "N"     && Weight Qualifier
        oSegment.DataElementValue(4) = "L"     && Weight Unit Code
        oSegment.DataElementValue(5) = "210"     && Weight
        oSegment.DataElementValue(9) = "999999-01"     && Commodity Code
 
        * MAN - MARKS AND NUMBERS
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\MAN")
        oSegment.DataElementValue(1) = "GM"     && Marks and Numbers Qualifier
        oSegment.DataElementValue(2) = "00000858050113093100"     && Marks and Numbers
 
        * MAN - MARKS AND NUMBERS
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\MAN(2)")
        oSegment.DataElementValue(1) = "GM"     && Marks and Numbers Qualifier
        oSegment.DataElementValue(2) = "00000858050113093101"     && Marks and Numbers
 
        * MAN - MARKS AND NUMBERS
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\MAN(3)")
        oSegment.DataElementValue(1) = "GM"     && Marks and Numbers Qualifier
        oSegment.DataElementValue(2) = "00000858050113093102"     && Marks and Numbers
 
        * MAN - MARKS AND NUMBERS
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\MAN(4)")
        oSegment.DataElementValue(1) = "GM"     && Marks and Numbers Qualifier
        oSegment.DataElementValue(2) = "00000858050113093103"     && Marks and Numbers
 
        * MAN - MARKS AND NUMBERS
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\MAN(5)")
        oSegment.DataElementValue(1) = "GM"     && Marks and Numbers Qualifier
        oSegment.DataElementValue(2) = "00000858050113093104"     && Marks and Numbers
 
        * SPO - SHIPMENT PURCHASE ORDER DETAIL
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\SPO")
        oSegment.DataElementValue(1) = "PO123567"     && Purchase Order Number
        oSegment.DataElementValue(2) = "RF1144"     && Reference Identification
        oSegment.DataElementValue(3) = "CP"     && Unit or Basis for Measurement Code
        oSegment.DataElementValue(4) = "12"     && Quantity
 
        * SPO - SHIPMENT PURCHASE ORDER DETAIL
        oSegment = oTransactionset.CreateDataSegment("AT1\AT2\SPO(2)")
        oSegment.DataElementValue(1) = "PO456789"     && Purchase Order Number
        oSegment.DataElementValue(2) = "RF1144"     && Reference Identification
        oSegment.DataElementValue(3) = "CP"     && Unit or Basis for Measurement Code
        oSegment.DataElementValue(4) = "15"     && Quantity
 
        * TRAILING SEGMENTS ARE AUTOMATICALLY CREATED

        * DISPLAY EDI STRING
        ? oEdiDoc.GetEdiString()

        * SAVE THE EDI DOCUMENT OBJECT INTO AN EDI FILE.
        oEdiDoc.Save("211Output.X12",0)

        ?
        ? "Done"
    

    Click here to download a trial version of the Framework EDI