
void clicked()
{
Dialog dialog;
DialogField dialogField;
FileName filename;
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
InventDim locinventDim,locToInventDim;
InventJournalTrans inventJournalTrans;
//InventJournalTable inventjournaltable;
InventTable inventTable;
InventJournalName inventJournalName;
InventJournalNameid inventJournalNameid;
DimensionAttributeValueCombination dimAttrValueCombo;
JournalId journalId1;
InventTransferLine inventTransferLine;
int row=2;
int numOfLines = 0;
// str _mainAccount='110110';
//int coun;
//JournalCheckPost inventJournalCheckPost;
//Define File name.
dialog = new Dialog("Select file");
dialogField = dialog.addField(extendedTypeStr("FileNameOpen"),"Select File Source");
if (dialog.run()) {
fileName = dialogField.value();
}
if (fileName)
{
application = SysExcelApplication::construct();
workbooks = application.workbooks();
//Open Excel workbook.
try {
workbooks.open(filename);
}
catch (Exception::Error) {
throw error("File cannot be opened.");
}
//Open Excel Sheet
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);//which shows excel sheet number.
cells = worksheet.cells();
ttsbegin;
try
{
//Below code creates journal header
inventJournalTable.clear();
inventJournalTable.JournalNameId = this.COMVariant2Str(cells.item(row,1).value());
inventJournalName = InventJournalName::find(this.COMVariant2Str(cells.item(row,1).value()));
inventJournalTable.initFromInventJournalName(inventJournalName);
info(strFmt("JournalNameId: %1", inventJournalTable.JournalNameId));
inventJournalTable.Description =this.COMVariant2Str(cells.item(row,2).value());
inventJournalTable.SystemBlocked = true;
inventJournalTable.insert();
}
catch //(Exception::Error)
{
throw error("error here");
//info(strFmt("Error while importing data. Journal name ID: %1", inventjournaltable.journalNameId));
}
ttscommit;
type = cells.item(row, 1).value().variantType();
while (cells.item(row, 1).value().variantType() != COMVariantType::VT_EMPTY)
{
//**********************************************************Start
ttsbegin;
//Below code creates lines
inventJournalTrans.clear();
inventJournalTrans.initFromInventJournalTable(inventJournalTable);
inventJournalTrans.TransDate =cells.item(row, 3).value().date(); //systemDateGet();
info(strFmt(this.COMVariant2Str(cells.item(row, 4).value())));
inventJournalTrans.ItemId =this.COMVariant2Str(cells.item(row, 4).value()); //Replace the ItemId according to your data
inventJournalTrans.initFromInventTable(InventTable::find(inventJournalTrans.ItemId));
inventJournalTrans.Qty =any2real(cells.item(row, 16).value().bStr());
info(strFmt(this.COMVariant2Str(cells.item(row, 18).value())));
info(strFmt(this.COMVariant2Str(cells.item(row, 19).value())));
inventJournalTrans.MZNQty =any2real(cells.item(row, 18).value().bStr()); //Replace the Qty according to your data
inventJournalTrans.CostPrice =any2real(cells.item(row, 19).value().bStr());
inventJournalTrans.InventDimId = InventdIm::findOrCreate(locinventDim).inventDimId;
locinventDim = InventDim::findOrCreate(locinventDim);
//***** S
locinventDim.initFromInventTable(inventJournalTrans.inventMovement().inventTable(),InventItemOrderSetupType::Invent,locinventDim);
locinventDim.configId =this.COMVariant2Str(cells.item(row, 5).value());
locinventDim.InventSizeId =this.COMVariant2Str(cells.item(row, 6).value());
locinventDim.InventColorId =this.COMVariant2Str(cells.item(row, 7).value());
locinventDim.InventStyleId =this.COMVariant2Str(cells.item(row, 8).value());
locinventDim.inventBatchId =this.COMVariant2Str(cells.item(row, 11).value());
locinventDim.wMSLocationId =this.COMVariant2Str(cells.item(row, 12).value());
locinventDim.inventSerialId =this.COMVariant2Str(cells.item(row, 13).value());
locinventdim.InventSiteId =this.COMVariant2Str(cells.item(row, 9).value()); //Replace the InventSiteId (Site) according to your data
locinventdim.InventLocationId =this.COMVariant2Str(cells.item(row, 10).value()); //Replace the InventLocationId (Warehouse) according to your data
inventJournalTrans.InventDimId =InventdIm::findOrCreate(locinventDim).inventDimId;
inventJournalTrans.MZNPurchUnit =this.COMVariant2Str(cells.item(row, 17).value());
//***** E
dimAttrValueCombo.clear();
select firstonly RecId from dimAttrValueCombo
where dimAttrValueCombo.MainAccount == MainAccount::findByMainAccountId(this.COMVariant2Str(cells.item(row, 21).value())).RecId //Replace the MainAccountId according to your data
&& dimAttrValueCombo.DisplayValue == this.COMVariant2Str(cells.item(row, 21).value()); //Replace the MainAccountId according to your data
inventJournalTrans.LedgerDimension = dimAttrValueCombo.RecId;
//inventJournalTrans.insert();
//Insert line to movement journal if quantity is non-zero
if(inventJournalTrans.MZNQty > 0)
{
inventJournalTrans.MZNQty = inventJournalTrans.MZNQty * -1;
}
numOfLines ;
inventJournalTrans.insert();
row ;
//numOfLines ;
journalId1=InventJournalTable.JournalId;
info(strFmt(journalId1));
update_recordSet inventJournalTable
setting SystemBlocked = false, NumOfLines = numOfLines
where inventJournalTable.JournalId == journalId1;
ttscommit;
info('Done');
//********************************************************** END
//coun ;
//print('coun');
//info(int2str(coun));
inventJournalTable.NumOfLines = numOfLines;
// inventJournalTable.update();
//info(strFmt("Movement Journal ID: %1", inventJournalTable.JournalId));
// application.quit();
super();
InventJournalTable_ds.refresh();
InventJournalTable_ds.research();
}
}
}
But there is a calculation behind MZNqty and Costprice fields. The issue is that records of these fields not import in lines.
I am beginner at using Dynamic AX 2012. If few changes are required in my code. please guide me .
But there is calculation behind MZNqty and Costprice fields.The issue is that records of these fields not import in lines.