procedure TForm1.Button1Click(Sender: TObject); begin //This is just an example program to demonstrate how to acknowledge and create a CONTRL acknowledgment //file in Delphi using Framework EDI component sPath := Trim(GetCurrentDir) + '\';' // CREATES OEDIDOC OBJECT oEdidoc := coedidocument.Create; // SETS TERMINATORS oEdiDoc.SegmentTerminator := '''{13:10}'; oEdiDoc.ElementTerminator := '+'; oEdiDoc.CompositeTerminator := ':'; oEdiDoc.ReleaseIndicator := '?'; //By default, FREDI uses the universal coordinated time (UTC), however you can change it to local time oEdiDoc.Option[5] := 1; //Stops FREDI from using the internal standard reference oSchemas := oEdiDoc.GetSchemas as IediSchemas; oSchemas.EnableStandardReference := False; // YOU MUST LOAD BOTH THE CONTRL SEF FILE (FOR FREDI TO CREATE AN EDI CONTRL FILE), // AS WELL AS THE SEF FILE THAT WILL BE USED TO VALIDATE THE EDI FILE. // PLEASE NOTE THAT YOU MUST LOAD THE CORRECT VERSION OF THE CONTRL SEF FILE. oEdiDoc.LoadSchema(sPath + 'CONTRL.SEF', 0); oEdiDoc.LoadSchema(sPath + 'INVOIC_S93A.SEF', 0); // THIS OPTIONS STOPS FREDI FROM LOADING ALL OF THE SEGMENTS IN THE EDI FILE INTO MEMORY. oEdiDoc.CursorType := 1; // CREATES THE ACKNOWLEDGMENT OBJECT oAck := oEdiDoc.GetAcknowledgment as IediAcknowledgment; // ENABLES THE CREATION OF THE FUNCTIONAL ACKNOWLEDGMENT WHEN FREDI LOADS AN EDI FILE. oAck.EnableFunctionalAcknowledgment := True; // LOADS THE EDI FILE. NOTE THAT WHEN THE CURSOR TYPE FORWARD IS ENABLED, ONLY THE FIRST // DATA SEGMENT IS LOADED; OTHERWISE THE WHOLE EDI FILE GETS LOADED INTO MEMORY oEdiDoc.LoadEdi('INVOIC.TXT'); // IF THE CURSOR TYPE FORWARD IS ENABLED, YOU MUST TRAVERSE THRU THE WHOLE EDI FILE // SO THAT IT ALLOWS FREDI TO LOAD EACH SEGMENT AND ANALYZE THEM. (FREDI DOES NOT KEEP // THE SEGMENTS IN MEMORY, BUT DISCARDS THEM ONCE THEY HAVE BEEN READ) oSegment := oEdiDoc.FirstDataSegment as IediDataSegment; While oSegment <> Nil do begin oSegment := oSegment.Next as IediDataSegment; end; // ONCE THE WHOLE EDI FILE HAS BEEN READ, CAN YOU THEN MANAGE AND MANIPULATE DATA // OF THE ACK OBJECT THAT FREDI CREATED AUTOMATICALLY. // GETS THE FIRST DATA SEGMENT OF THE ACK OBJECT // oSegment := oAck.GetFirstContrlDataSegment as IediDataSegment; // oSegment := oSegment.GetDataSegmentByPos('\UNB\UNH\UNC') as IediDataSegment; // if oSegment.DataElementValue[3] = "7" then begin // end; // WRITES THE ACKNOWLEDGMENT INTO A FILE. oAck.Save(sPath + 'INVOIC_CONTRL.TXT'); ShowMessage('Done. Output = ' + sPath + 'INVOIC_CONTRL.TXT'); end;