Create new item using X++ in AX 2009
Sometimes we need to add new items into the system but we have alot of itemes to add it by our hands then we need X++ code to simplify the proccess for example we have excell file contain this items :
// This can be called to create a new item , for example CreateNewItem('AA01');
void CreateNewItem(ItemId _itemId,ItemName _itemName,BOMUnitId UOM, ItemGroupId _itemGroup ,InventDimGroupId _dimGroup= 'Standard',InventModelGroupId _modelGroup='Standard', Price price1)
{
//InventTable inventTable;
InventTableModule inventTableModule;
InventItemLocation inventItemLocation;
;
ttsbegin;
// Master record in InventTable
select forupdate inventTable;
inventTable.initValue();
// If InventTable has other mandatory fields in addition to
// ItemGroupId and ItemId, they should be defined here
inventTable.ItemGroupId = _itemGroup;
inventTable.ModelGroupId=_modelGroup;
inventTable.DimGroupId=_dimGroup;
inventTable.BOMUnitId= UOM;
inventTable.ItemId = _itemId;
inventTable.ItemName = _itemName;
inventTable.ItemType = ItemType::Item;
inventTable.ItemIdCompany="";
// You can put default DimGroupId, ModelGroupId, etc. here
inventTable.insert();
// InventItemLocation for default dimension
select forupdate inventItemLocation;
inventItemLocation.initValue();
inventItemLocation.ItemId = _itemId;
inventItemLocation.InventDimId = InventDim::inventDimIdBlank();
inventItemLocation.insert();
// Three records in InventTableModule (for Cost, Purchase and Sales)
// you can also set the price, unit and other values here
select forupdate inventTableModule;
// Cost
inventTableModule.initValue();
inventTableModule.ItemId = _itemId;
inventTableModule.Price = price1;
inventTableModule.UnitId=UOM;
inventTableModule.ModuleType = ModuleInventPurchSales::Invent;
inventTableModule.insert();
// Purchase order
inventTableModule.initValue();
inventTableModule.ItemId = _itemId;
inventTableModule.Price = price1;
inventTableModule.UnitId=UOM;
inventTableModule.ModuleType = ModuleInventPurchSales::Purch;
inventTableModule.insert();
// Sales order
inventTableModule.initValue();
inventTableModule.ItemId = _itemId;
inventTableModule.Price = price1;
inventTableModule.UnitId=UOM;
inventTableModule.OverDeliveryPct=0;
inventTableModule.UnderDeliveryPct=100;
inventTableModule.ModuleType = ModuleInventPurchSales::Sales;
inventTableModule.insert();
ttscommit;
}
// This can be called to create a new item , for example CreateNewItem('AA01');
void CreateNewItem(ItemId _itemId,ItemName _itemName,BOMUnitId UOM, ItemGroupId _itemGroup ,InventDimGroupId _dimGroup= 'Standard',InventModelGroupId _modelGroup='Standard', Price price1)
{
//InventTable inventTable;
InventTableModule inventTableModule;
InventItemLocation inventItemLocation;
;
ttsbegin;
// Master record in InventTable
select forupdate inventTable;
inventTable.initValue();
// If InventTable has other mandatory fields in addition to
// ItemGroupId and ItemId, they should be defined here
inventTable.ItemGroupId = _itemGroup;
inventTable.ModelGroupId=_modelGroup;
inventTable.DimGroupId=_dimGroup;
inventTable.BOMUnitId= UOM;
inventTable.ItemId = _itemId;
inventTable.ItemName = _itemName;
inventTable.ItemType = ItemType::Item;
inventTable.ItemIdCompany="";
// You can put default DimGroupId, ModelGroupId, etc. here
inventTable.insert();
// InventItemLocation for default dimension
select forupdate inventItemLocation;
inventItemLocation.initValue();
inventItemLocation.ItemId = _itemId;
inventItemLocation.InventDimId = InventDim::inventDimIdBlank();
inventItemLocation.insert();
// Three records in InventTableModule (for Cost, Purchase and Sales)
// you can also set the price, unit and other values here
select forupdate inventTableModule;
// Cost
inventTableModule.initValue();
inventTableModule.ItemId = _itemId;
inventTableModule.Price = price1;
inventTableModule.UnitId=UOM;
inventTableModule.ModuleType = ModuleInventPurchSales::Invent;
inventTableModule.insert();
// Purchase order
inventTableModule.initValue();
inventTableModule.ItemId = _itemId;
inventTableModule.Price = price1;
inventTableModule.UnitId=UOM;
inventTableModule.ModuleType = ModuleInventPurchSales::Purch;
inventTableModule.insert();
// Sales order
inventTableModule.initValue();
inventTableModule.ItemId = _itemId;
inventTableModule.Price = price1;
inventTableModule.UnitId=UOM;
inventTableModule.OverDeliveryPct=0;
inventTableModule.UnderDeliveryPct=100;
inventTableModule.ModuleType = ModuleInventPurchSales::Sales;
inventTableModule.insert();
ttscommit;
}
*This post is locked for comments