Hi Friends,
I have been completed the Product master data import by running Job through CSV file. Here is the code which i have given below and some of the fields which has been customized. So if you want those code remove all customized fields and do your own. If you have any query about my code please feel free to contact me.
Code:
static void IT_Abs_ProdMasterDataImport(Args _args)
{
CommaIO csvFile;
container readCon;
counter icount,inserted;
container line;
Dialog dialog;
DialogField dfFileName;
FileName fileName;
IT_TestImport _IT_TestImport,it_update;
EcoResDistinctProduct _ecodist;
EcoResProductTranslation _ecotrans, _EcoResProdTrans;
EcoResProductIdentifier _ecoident;
EcoResStorageDimensionGroup _stodim;
EcoResTrackingDimensionGroup _trackdim;
EcoResStorageDimensionGroupProduct _ecostoragedimpro;
EcoResTrackingDimensionGroupProduct _ecotrackingdimpro;
EcoResProduct _ecoprd,_Ecoresprod,_ecoprupdate;
EcoResStorageDimensionGroup _EcoResStorageDimensionGroup;
EcoResTrackingDimensionGroup _EcoResTrackingDimensionGroup;
RetailInventTable _RetailInventTable;
Inventtable _InventTable,inventcheck;
Inventtablemodule _Inventtablemodule;
EcoResReleaseSessionProduct _EcoResReleaseSessionProduct;
EcoResReleaseSession _EcoResReleaseSession;
EcoResReleaseProductLegalEntity _EcoResReleaseProductLegalEntity;
EcoResStorageDimensionGroupItem _EcoResStorageDimensionGroupItem;
EcoResTrackingDimensionGroupItem _EcoResTrackingDimensionGroupItem;
InventModelGroup _InventModelGroup;
InventModelGroupItem _InventModelGroupItem;
InventItemGroupItem _InventItemGroupItem;
EcoResProductCategory _EcoResProductCategory;
EcoResCategory _EcoResCategory;
EcoResCategoryHierarchy _EcoResCategoryHierarchy;
DataArea _DataArea;
EcoResStorageDimensionGroupName _StorageDimensionGroupName;
EcoResTrackingDimensionGroupName _TrackingDimensionGroupName;
InventModelGroupId _InventModelGroupId;
EcoResCategoryHierarchyName _HierarchyName;
EcoResCategoryName _CategoryName;
RecId _HierarchyNameRecId,_CategoryNameRecId,_ProductRecId;
InventItemLocation _itemlocation;
InventItemSetupSupplytype _setupsupplytype;
TransDate _startdate,enddate;
str _start,_end;
TimeOfDay _sttime,_endtime;
NoYes _noyes;
str _noyesstr;
EcoResProductType _EcoResProductType;
ItemType _itemtype;
str _prodtypestr,_itemtypestr;
EcoResProductMaster _ecoresprodmaster;
EcoResColor _ecorescolor;
EcoResSize _ecoressize;
EcoResStyle _ecoresstyle;
EcoResConfiguration _ecoresconfig,_ecoresconfigIns,_ecoresconfig2;
EcoResSizeName _EcoResSizeName;
EcoResStyleName _EcoResStyleName;
EcoResColorName _EcoResColorName;
EcoResConfigurationName _EcoResConfigName;
EcoResProductDimensionGroup _EcoResProdDimGroup;
EcoResProductDimensionGroupProduct _EcoResProdDimGroupProd;
EcoResProductMasterModelingPolicy _EcoResProdMasterModelingPolicy;
EcoResVariantConfigurationTechnologyType _variantconfigtechenum;
EcoResProductMasterColor _EcoResProdMasterColor;
EcoResProductMasterSize _EcoResProdMasterSize;
EcoResProductMasterStyle _EcoResProdMasterstyle;
EcoResProductMasterConfiguration _EcoResProdMasterConfig;
EcoResProductDimensionAttribute _EcoResProdDimAttr1,_EcoResProdDimAttr2,_EcoResProdDimAttr3,_EcoResProdDimAttr4;
EcoResProductVariantColor _EcoResProdVariantColor;
EcoResProductVariantSize _EcoResProdVariantSize;
EcoResProductVariantStyle _EcoResProdVariantStyle;
EcoResProductVariantConfiguration _EcoResProdVariantConfig;
EcoResDistinctProductVariant _EcoResDistProdVariant;
InventDimCombination _InventDimCombination;
str _variantconfigtechstr;
RefRecId _RefRecId;
EcoResProductDimensionGroupName _EcoResProdDimGrpName;
InventDim _invtdim;
#File
;
inserted= 0;
dialog = new Dialog(“Select File to Import Item Master”);
dfFileName = dialog.addField(extendedTypeStr(FileNameOpen));
dialog.filenameLookupFilter([“All files”, #AllFiles]);
if (dialog.run())
{
filename = dfFileName.value();
}
_startdate = systemDateGet();
_sttime = timeNow();
_start = time2str(_sttime,TimeSeparator::Colon, TimeFormat::AMPM);
csvFile = new CommaIO(filename, ‘r’);
if (csvFile)
{
while (csvFile.status() == IO_Status::OK)
{
readCon = csvFile.read();
icount++;
if(icount != 1)
{
if (readCon)
{
ttsBegin;
_IT_TestImport.Prodnum = conPeek(readCon,1);
_IT_TestImport.Searchname = conPeek(readCon,2);
_IT_TestImport.ProductName = conPeek(readCon,3);
_IT_TestImport.StorageDimGroup = conPeek(readCon,4);
_IT_TestImport.InventUnit = conPeek(readCon,6);
_IT_TestImport.PurchUnit = conPeek(readCon,7);
_IT_TestImport.SalesUnit = conPeek(readCon,8);
_IT_TestImport.ProdCompany = conPeek(readCon,9);
_IT_TestImport.ItemGroupId = conPeek(readCon,10);
_prodtypestr = conPeek(readCon,11);
_itemtypestr = conPeek(readCon,11);
_IT_TestImport.Itemtype = str2enum(_itemtype,_itemtypestr);
_IT_TestImport.InventModelGrpId = conPeek(readCon,12);
_IT_TestImport.TrackingDimGroup = conPeek(readCon,24);
_IT_TestImport.Description = conPeek(readCon,32);
_IT_TestImport.OldItemNum = conPeek(readCon,37);
_IT_TestImport.ExpireDays = conPeek(readCon,38);
_IT_TestImport.BarcodesetupId = conPeek(readCon,39);
_noyesstr = conPeek(readCon,40);
_IT_TestImport.ScaleItem = str2enum(_noyes,_noyesstr);
_IT_TestImport.ConcessionVendAcc = conPeek(readCon,41);
_IT_TestImport.CategoryName = conPeek(readCon,43);
_IT_TestImport.CategoryHierarichy = conPeek(readCon,44);
_IT_TestImport.doInsert();
_EcoResColorName = conPeek(readCon,46);
_EcoResSizeName = conPeek(readCon,47);
_EcoResStyleName = conPeek(readCon,48);
_EcoResConfigName = conPeek(readCon,50);
select _ecorescolor where _ecorescolor.Name == _EcoResColorName;
select _ecoressize where _ecoressize.Name == _EcoResSizeName;
select _ecoresstyle where _ecoresstyle.Name == _EcoResStyleName;
if(_EcoResConfigName)
{
select _ecoresconfig where _ecoresconfig.Name == _EcoResConfigName;
if(!_ecoresconfig)
{
_ecoresconfigIns.Name = _EcoResConfigName;
_ecoresconfigIns.insert();
}
}
_ecoresprodmaster.DisplayProductNumber = _IT_TestImport.Prodnum;
_ecoresprodmaster.SearchName = _IT_TestImport.Searchname;
_ecoresprodmaster.ProductType = str2enum(_EcoResProductType,_prodtypestr);
_ecoresprodmaster.CIT_AL_ItemGroupId = _IT_TestImport.ItemGroupId ;
_variantconfigtechstr = conPeek(readCon,49);
_ecoresprodmaster.VariantConfigurationTechnology = str2enum(_variantconfigtechenum,_variantconfigtechstr);
_ecoresprodmaster.insert();
_RefRecId = _ecoresprodmaster.RecId;
_EcoResProdDimGrpName = conPeek(readCon,45);
select _EcoResProdDimGroup where _EcoResProdDimGroup.Name == _EcoResProdDimGrpName;
_EcoResProdDimGroupProd.Product = _RefRecId;
_EcoResProdDimGroupProd.ProductDimensionGroup = _EcoResProdDimGroup.RecId;
_EcoResProdDimGroupProd.insert();
_EcoResProdMasterModelingPolicy.ProductMaster = _RefRecId;
_EcoResProdMasterModelingPolicy.IsVariantGenerationEnabled = NoYes::No;
_EcoResProdMasterModelingPolicy.insert();
_ecotrans.Product = _RefRecId;
_ecotrans.LanguageId = “en-us”;
_ecotrans.Name = _IT_TestImport.Searchname;
_ecotrans.Description = _IT_TestImport.Description;
_ecotrans.insert();
_ecoident.Product = _RefRecId;
_ecoident.ProductNumber = _IT_TestImport.Prodnum;
_ecoident.insert();
_EcoResDistProdVariant.ProductMaster = _RefRecId;
_EcoResDistProdVariant.DisplayProductNumber = strFmt("%1: %2: %3: %4: %5",_IT_TestImport.Prodnum,_EcoResConfigName,_EcoResSizeName,_EcoResColorName,_EcoResStyleName);
_EcoResDistProdVariant.ProductType = str2enum(_EcoResProductType,_prodtypestr);
_EcoResDistProdVariant.CIT_AL_ItemGroupId = _IT_TestImport.ItemGroupId ;
_EcoResDistProdVariant.SearchName = _IT_TestImport.Searchname;
_EcoResDistProdVariant.insert();
_EcoResProdTrans.Product = _EcoResDistProdVariant.RecId;
_EcoResProdTrans.LanguageId = “en-us”;
_EcoResProdTrans.Name = _IT_TestImport.Searchname;
_EcoResProdTrans.Description = _IT_TestImport.Description;
_EcoResProdTrans.insert();
if(_EcoResColorName)
{
select _EcoResProdDimAttr1 where _EcoResProdDimAttr1.DimensionTableId == _ecorescolor.TableId;
_EcoResProdMasterColor.ColorProductMaster = _RefRecId;
_EcoResProdMasterColor.Color = _ecorescolor.RecId;
_EcoResProdMasterColor.ColorProductDimensionAttribute = _EcoResProdDimAttr1.RecId;
_EcoResProdMasterColor.insert();
_EcoResProdVariantColor.Color = _ecorescolor.RecId;
_EcoResProdVariantColor.DistinctProductVariant = _EcoResDistProdVariant.RecId;
_EcoResProdVariantColor.ProductDimensionAttribute = _EcoResProdDimAttr1.RecId;
_EcoResProdVariantColor.insert();
}
if(_EcoResSizeName)
{
select _EcoResProdDimAttr2 where _EcoResProdDimAttr2.DimensionTableId == _ecoressize.TableId;
_EcoResProdMasterSize.SizeProductMaster = _RefRecId;
_EcoResProdMasterSize.Size = _ecoressize.RecId;
_EcoResProdMasterSize.SizeProductDimensionAttribute = _EcoResProdDimAttr2.RecId;
_EcoResProdMasterSize.insert();
_EcoResProdVariantSize.Size = _ecoressize.RecId;
_EcoResProdVariantSize.DistinctProductVariant = _EcoResDistProdVariant.RecId;
_EcoResProdVariantSize.ProductDimensionAttribute = _EcoResProdDimAttr2.RecId;
_EcoResProdVariantSize.insert();
}
if(_EcoResStyleName)
{
select _EcoResProdDimAttr3 where _EcoResProdDimAttr3.DimensionTableId == _ecoresstyle.TableId;
_EcoResProdMasterstyle.StyleProductMaster = _RefRecId;
_EcoResProdMasterstyle.Style = _ecoresstyle.RecId;
_EcoResProdMasterstyle.StyleProductDimensionAttribute = _EcoResProdDimAttr3.RecId;
_EcoResProdMasterstyle.insert();
_EcoResProdVariantStyle.Style = _ecoresstyle.RecId;
_EcoResProdVariantStyle.DistinctProductVariant = _EcoResDistProdVariant.RecId;
_EcoResProdVariantStyle.ProductDimensionAttribute = _EcoResProdDimAttr3.RecId;
_EcoResProdVariantStyle.insert();
}
if(_EcoResConfigName)
{
select _EcoResProdDimAttr4 where _EcoResProdDimAttr4.DimensionTableId == _ecoresconfig.TableId;
select _ecoresconfig2 where _ecoresconfig2.Name == _EcoResConfigName;
_EcoResProdMasterConfig.ConfigProductMaster = _RefRecId;
_EcoResProdMasterConfig.Configuration = _ecoresconfig2.RecId;
_EcoResProdMasterConfig.ConfigProductDimensionAttribute = _EcoResProdDimAttr4.RecId;
_EcoResProdMasterConfig.insert();
_EcoResProdVariantConfig.Configuration = _ecoresconfig2.RecId;
_EcoResProdVariantConfig.DistinctProductVariant = _EcoResDistProdVariant.RecId;
_EcoResProdVariantConfig.ProductDimensionAttribute = _EcoResProdDimAttr4.RecId;
_EcoResProdVariantConfig.insert();
}
select _stodim where _stodim.Name == _IT_TestImport.StorageDimGroup;
_ecostoragedimpro.Product = _RefRecId;
_ecostoragedimpro.StorageDimensionGroup = _stodim.RecId;
_ecostoragedimpro.insert();
select _trackdim where _trackdim.Name == _IT_TestImport.TrackingDimGroup;
_ecotrackingdimpro.Product = _RefRecId;
_ecotrackingdimpro.TrackingDimensionGroup = _trackdim.RecId;
_ecotrackingdimpro.insert();
select _ecoprd where _ecoprd.DisplayProductNumber == _IT_TestImport.Prodnum;
if(_ecoprd)
{
select ItemId from inventcheck where inventcheck.ItemId == _IT_TestImport.Prodnum
&& inventcheck.Product == _ecoprd.RecId;
if(!inventcheck)
{
select _EcoResReleaseSession;
_EcoResReleaseSessionProduct.initValue();
_EcoResReleaseSessionProduct.Product = _ecoprd.RecId;
_EcoResReleaseSessionProduct.ReleaseSession = _EcoResReleaseSession.RecId;
_EcoResReleaseSessionProduct.insert();
select _DataArea where _DataArea.id == ‘AMCG’;
_EcoResReleaseProductLegalEntity.initValue();
_EcoResReleaseProductLegalEntity.ReleaseSessionProduct = _EcoResReleaseSessionProduct.RecId;
_EcoResReleaseProductLegalEntity.LegalEntity = _DataArea.RecId;
_EcoResReleaseProductLegalEntity.insert();
_InventTable.initValue();
_InventTable.ItemId = _ecoprd.DisplayProductNumber;
_InventTable.Product = _ecoprd.RecId;
_InventTable.NameAlias = _ecoprd.SearchName;
_InventTable.ItemType = _IT_TestImport.Itemtype;
_InventTable.PmfYieldPct = 100.0;
_InventTable.PmfProductType = PmfProductType::BOM;
Select _InventItemGroupItem where _InventItemGroupItem.ItemId == _InventTable.ItemId;
if(!_InventItemGroupItem)
{
InventItemGroupItem::updateItemGroupForItem(_InventTable.ItemId,_InventTable.dataAreaId,_ecoprd.CIT_AL_ItemGroupId,_InventTable.dataAreaId);
}
_InventTable.CIT_AL_OldItemNumber = _IT_TestImport.OldItemNum;
_InventTable.CIT_AL_ExpireDays = _IT_TestImport.ExpireDays;
_InventTable.Product = _ecoprd.RecId;
_InventTable.insert();
_Inventtablemodule.initValue();
_Inventtablemodule.ItemId = _InventTable.ItemId;
_Inventtablemodule.ModuleType = ModuleInventPurchSales::Invent;
_Inventtablemodule.UnitId = _IT_TestImport.InventUnit;
_Inventtablemodule.insert();
_Inventtablemodule.initValue();
_Inventtablemodule.ItemId = _InventTable.ItemId;
_Inventtablemodule.ModuleType = ModuleInventPurchSales::Purch;
_Inventtablemodule.UnitId = _IT_TestImport.PurchUnit;
_Inventtablemodule.insert();
_Inventtablemodule.initValue();
_Inventtablemodule.ItemId = _InventTable.ItemId;
_Inventtablemodule.ModuleType = ModuleInventPurchSales::Sales;
_Inventtablemodule.UnitId = _IT_TestImport.SalesUnit;
_Inventtablemodule.insert();
_itemlocation.initValue();
_itemlocation.ItemId = _InventTable.ItemId;
_invtdim = InventDim::findOrCreateBlank();
_itemlocation.inventDimId = _invtdim.inventDimId;
_itemlocation.insert();
_setupsupplytype.ItemId = _InventTable.ItemId;
_setupsupplytype.ItemDataAreaId = _InventTable.dataAreaId;
_setupsupplytype.DefaultOrderType = ReqPOType::Purch;
_setupsupplytype.insert();
_InventDimCombination.DistinctProductVariant = _EcoResDistProdVariant.RecId;
_InventDimCombination.ItemId = _InventTable.ItemId;
_InventDimCombination.InventDimId = _itemlocation.inventDimId;
_InventDimCombination.insert();
_EcoResStorageDimensionGroupItem.initValue();
_StorageDimensionGroupName = _IT_TestImport.StorageDimGroup;
_EcoResStorageDimensionGroupItem.ItemId = _InventTable.ItemId;
&nb