static void renameFromCSV(Args _args)
{
#File
CommaIO file;
Container values;
Dialog dialog;
DialogField dfFileName;
LineNum lineNum;
ItemID itemIDfrom;
ItemID itemIDto;
InventTable inventTable;
;
setPrefix(funcName());
dialog = new Dialog("Rename items");
dialog.filenameLookupFilter(["@SYS39829", #AllFilesName + #csv]);
dfFileName = dialog.addField(typeid(FileNameOpen));
if (!dialog.run() || !dfFileName.value())
return;
if (!WinAPI::fileExists(dfFileName.value()))
throw error(strfmt("@SYS18678", dfFileName.value()));
file = new CommaIO(dfFileName.value(), #io_read);
if (!file)
throw error("@SYS74299");
values = file.read();
while (values != connull())
{
setPrefix(strfmt("Row %1 for %2", lineNum, conpeek(values, 1)));
if (conlen(values) != 2)
throw error('Bad row');
itemIDfrom = conpeek(values, 1);
itemIDto = conpeek(values, 2);
if (InventTable::exist(itemIDfrom))
{
if (!InventTable::exist(itemIDto))
{
ttsbegin;
inventTable = InventTable::find(itemIDfrom, true);
inventTable.ItemId = itemIDto;
inventTable.renamePrimaryKey();
ttscommit;
info(strfmt("%1 to %2", itemIDfrom, itemIDto));
}
else
error(strfmt("@SYS93964", itemIDto));
}
else
error(strfmt("@SYS94719", itemIDfrom));
lineNum++;
values = file.read();
}
info("@SYS78985");
}
Tips and Tricks for Microsoft Dynamics AX, now Microsoft Dynamics 365 for Finance and Operations, also formerly known as Dynamics AX 4.0, 2009, 2012 and even Axapta.
Monday, October 4, 2010
Rename items quickly
Here is a little script to rename items quickly. Just provide a CSV file with old and new item number. I found that making the CSV file was faster than making a job to intelligently rename items because I could use Excel functions and review the new item numbers faster.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment