How to read and insert record from a CSV file
using X++ code into Microsoft Dynamics AX 2012 table.
This article helps you to understand how to read data from a CSV file and insert into Microsoft Dynamics AX 2012 table.
Dialog dialog = new Dialog();
DialogField dialogField;
AsciiIo importFile;
str filePath,fileNameOnly;
filetype type;
container record;
str delimiter = ",";
int totalRecords;
CustGroup custGrp;
dialogField=dialog.addField(extendedTypeStr(FilenameOpen),"Select File","Select file to import");
dialog.caption("File Picker");
dialog.filenameLookupFilter(['csv','*.csv']);
warning("Error in opening import file");
throw(Exception::Error);
}
ttsbegin;
custGrp.clear();
record = importFile.read(); // First row - Column name - Header
record = importFile.read();
if(!record)
break;
ttscommit;
}
Throw(Exception::Error);
}
Sample .CSV file image.
This article helps you to understand how to read data from a CSV file and insert into Microsoft Dynamics AX 2012 table.
Applied on: Dynamics AX 2012 R3.
Prerequisite: Basic Dynamics AX 2012 programming knowledge.
Target audience: AX programmers.
Assumption: You are familiar with Dynamics AX 2012 and CSV file
Prerequisite: Basic Dynamics AX 2012 programming knowledge.
Target audience: AX programmers.
Assumption: You are familiar with Dynamics AX 2012 and CSV file
Below job inserts records from a CSV file to CustGroup table.
static void
CustGroupCSVInsert(Args _args)
{Dialog dialog = new Dialog();
DialogField dialogField;
AsciiIo importFile;
str filePath,fileNameOnly;
filetype type;
container record;
str delimiter = ",";
int totalRecords;
CustGroup custGrp;
dialogField=dialog.addField(extendedTypeStr(FilenameOpen),"Select File","Select file to import");
dialog.caption("File Picker");
dialog.filenameLookupFilter(['csv','*.csv']);
if(!dialog.run())
return;
[filePath, fileNameOnly, type] = fileNameSplit(dialogField.value());
importFile = new
AsciiIo(dialogField.value(), 'R');
if((!importFile)
|| (importFile.status() != IO_Status::Ok))
{warning("Error in opening import file");
throw(Exception::Error);
}
importFile.inFieldDelimiter(Delimiter);
try
{ttsbegin;
custGrp.clear();
record = importFile.read(); // First row - Column name - Header
while(importFile.status() == IO_Status::Ok)
{record = importFile.read();
if(!record)
break;
totalRecords = totalRecords + 1;
custGrp.clear();
custGrp.CustGroup = conPeek(record,
1);
custGrp.Name = conPeek(record,2);
custGrp.insert();
}ttscommit;
}
catch(Exception::Error)
{Throw(Exception::Error);
}
info(strFmt("Total
Read Records = %1",totalRecords));
}Sample .CSV file image.
No comments:
Post a Comment