This might help. Modify accordingly!
static void XIF_ImportInterfaceMapping(Args _args)
{
XIF_InterfaceTable interfaceTable;
XIF_FormatField formatField;
XIF_FormatLines formatLines;
XIF_DataSource dataSource;
XIF_Document document;
XIF_StartPosition startPosition;
XIF_DataSourceID dataSourceId;
XIF_FormatLineId formatLineId;
XIF_DocumentName documentName = "CVTORDERBACKFILL";
XIF_InterfaceID interfaceId = "IFCVTORDERBACKFILL";
XIF_Length length;
Description description;
container con;
AsciiIo io;
int i;
int y;
;
io = new AsciiIo("C:\\TEMP\\VCTBackfillMapping.csv", "RB");
if (!io) throw error("@SYS26757"+": C:\\TEMP\\VCTBackfillMapping.csv"); //error not defined!
io.inFieldDelimiter(";");
ttsbegin;
interfaceTable = XIF_InterfaceTable::find(interfaceId);
if(!interfaceTable.RecId)
{
interfaceTable.selectForUpdate(true);
interfaceTable.clear();
interfaceTable.InterfaceID = interfaceId;
interfaceTable.insert();
document = XIF_Document::find(documentName);
if(!document.RecId || document.InterfaceID != interfaceTable.RecId)
{
document.selectForUpdate(true);
document.clear();
document.DocumentName = documentName;
document.InterfaceID = interfaceTable.RecId;
document.insert();
}
}
y = 0;
while(io.status() == IO_Status::Ok)
{
con = connull();
con = io.read();
formatLineId = conpeek(con, 1);
dataSourceId = formatLineId + '_ds';
description = conpeek(con, 2);
length = conpeek(con, 4);
startPosition = conpeek(con, 6);
i++;
if(formatLineId == '' || formatLineId == '0')
continue;
if(!formatLines.RecId || formatLines.FormatLineId != formatLineId)
{
y++;
formatLines.selectForUpdate(true);
formatLines.clear();
formatLines.FormatLineId = formatLineId;
formatLines.Document = document.RecId;
formatLines.linenum = y;
formatLines.LineIndex = 1;
formatLines.insert();
dataSource.selectForUpdate(true);
dataSource.clear();
dataSource.DataSourceID = dataSourceId;
dataSource.FormatLineRecId = formatLines.RecId;
dataSource.insert();
i = 1;
}
formatField.selectForUpdate(true);
formatField.clear();
formatField.FormatLines = formatLines.RecId;
formatField.DataSource = dataSource.RecId;
formatField.Sequence = i;
formatField.Description = description;
formatField.StartPosition = startPosition;
formatField.Length = length;
formatField.ActiveField = NoYes::Yes;
formatField.insert();
}
ttscommit;
info('Importing has been completed.');
}