'This is just an example program to demonstrate how to translate a 997 EDI file in Visual Basic using the Framework EDI
    Option Explicit
    Private oEdiDoc As Fredi.ediDocument
    Private oSegment As Fredi.ediDataSegment
    Private oSchemas As Fredi.ediSchemas
    Private sSegmentID As String
    Private sLoopSection As String
    Private nArea As String
    Private sTsCode As String

    Private Sub cmdTranslate_Click()
        Dim sPath As String
        Dim sFgControlNo As String
        Dim sFgCode As String
        Dim sTsControlNo As String
        Dim sTsCode As String
    
        Me.MousePointer = vbHourglass
        sPath = App.Path & "\"
    
        Set oEdiDoc = New Fredi.ediDocument
    
        'Disable the internal Standard Reference, and obtain schema from SEF files only
        Set oSchemas = oEdiDoc.GetSchemas
        oSchemas.EnableStandardReference = False
    
        'ForwardOnly cursor type does not keep the entire EDI file in memory.  Saves RAM and improves performance
        oEdiDoc.CursorType = Cursor_ForwardOnly
    
        'Load the SEF file
        oEdiDoc.ImportSchema sPath & "997_X12-4010.SEF", Schema_Standard_Exchange_Format

        'Load the EDI file
        oEdiDoc.LoadEdi sPath & "997_810.X12"
    
        'Traverse through the EDI file a segment at a time
    
        'Get the first data segment
        Set oSegment = oEdiDoc.FirstDataSegment
    
        Do While Not oSegment Is Nothing
    
            'segments are identified by their area, loop section they are in, and segment id
            nArea = oSegment.Area
            sLoopSection = oSegment.LoopSection
            sSegmentID = oSegment.ID
        
            If nArea = 0 Then
                If sSegmentID = "ISA" Then
                    '
                ElseIf sSegmentID = "GS" Then
                    '
                End If
            ElseIf nArea = 1 Then
                If sLoopSection = "" Then
                    If sSegmentID = "AK1" Then
                        sFgCode = oSegment.DataElementValue(1)
                        sFgControlNo = oSegment.DataElementValue(2)
                    ElseIf sSegmentID = "AK9" Then
                        If oSegment.DataElementValue(1) = "A" Then
                            MsgBox "Functional Group '" & sFgCode & "' Control No. '" & sFgControlNo & "' was accepted."
                        Else
                            MsgBox "Functional Group '" & sFgCode & "' Control No. '" & sFgControlNo & "' was rejected."
                        End If
                    End If
                ElseIf sLoopSection = "AK2" Then
                    If sSegmentID = "AK2" Then
                        sTsCode = oSegment.DataElementValue(1)
                        sTsControlNo = oSegment.DataElementValue(2)
                    ElseIf sSegmentID = "AK5" Then
                        If oSegment.DataElementValue(1) = "A" Then
                            MsgBox "Transaction '" & sTsCode & "' Control No. '" & sTsControlNo & "' in Functional Group '" & sFgCode & "' Control No. '" & sFgControlNo & "' was accepted"
                        Else
                            MsgBox "Transaction '" & sTsCode & "' Control No. '" & sTsControlNo & "' in Functional Group '" & sFgCode & "' Control No. '" & sFgControlNo & "' was rejected"
                        End If
                    End If
                End If
            End If
        
            'get next data segment
            Set oSegment = oSegment.Next
        Loop
    
        Me.MousePointer = vbNormal
        MsgBox "Done"
        cmdTranslate.Enabled = False
    
    End Sub
    

    Click here to download a trial version of the Framework EDI