To import Retail, Basic properties and attributegroups:
static void ImportHierarchyValues(Args _args)
{
RetailAttributesGlobalLookup globLookup;
RetailAttributesLegalEntityLookup entlookup;
EcoResCategoryAttributeGroup categoryAttributeGroup;
EcoResCategoryInstanceValue ecorescatindval;
EcoResCategory catCurnt;
Dialog dialog = new Dialog("To Import hierarchy values from a file.");
DialogField fileNameToImport = Dialog.addField(extendedTypeStr(FilenameOpen)),
companyNameToImport = Dialog.addfield(extendedTypeStr(CompanyId), "Company Id");
TextIo iOImport;
RecId LegEntityRecId;
container importContainer;
#File
;
dialog.run();
if(dialog.closedOk())
{
if(!System.IO.File::Exists(fileNameToImport.value()) || !fileNameToImport.value())
{
throw error("Invalid file!");
}
iOImport = new TextIo(fileNameToImport.value(), #IO_Read);
iOImport.inFieldDelimiter("|");
iOImport.inRecordDelimiter("\r\n");
LegEntityRecId = CompanyInfo::findByCompany_IN(companyNameToImport.value()).RecId;
importContainer = iOImport.read();
while(conLen(importContainer))
{
ttsBegin;
catCurnt = EcoResCategory::findByName(conPeek(importContainer,1),EcoResCategoryHierarchy::findByName(conPeek(importContainer,2)).RecId);
if(catCurnt)
{
if (conPeek(importContainer,3))
{
categoryAttributeGroup = EcoResCategoryAttributeGroup::findByGroupAndCategory(EcoResAttributeGroup::findByName(conPeek(importContainer,3)).RecId, catCurnt.RecId,true);
if (!categoryAttributeGroup)
{
categoryAttributeGroup.initValue();
}
categoryAttributeGroup.AttributeGroup = EcoResAttributeGroup::findByName(conPeek(importContainer,3)).RecId;
categoryAttributeGroup.Category = catCurnt.RecId;
categoryAttributeGroup.Modifier = EcoResCategoryAttributeModifier::Product;
categoryAttributeGroup.write();
}
EcoResCategoryAttributeLookup::synchronizeWithCategoryAttribute(catCurnt);
ecorescatindval = EcoResCategoryInstanceValue::findByCategoryInstance(catCurnt.RecId,LegEntityRecId);
entlookup = RetailAttributesLegalEntityLookup::findByCategory(catCurnt.RecId,LegEntityRecId,true);
if(!entlookup)
{
entlookup = RetailAttributesLegalEntityLookup::findByInstance(ecorescatindval.RecId, true);
}
if(!entlookup)
{
RetailProductAttributesLookup::synchronizeCategory(catCurnt.RecId);
entlookup = RetailAttributesLegalEntityLookup::findByCategory(catCurnt.RecId,LegEntityRecId,true);
}
if(entlookup)
{
entlookup.BarCodeSetup = conPeek(importContainer,10);
entlookup.SiteId = conPeek(importContainer,11);
entlookup.WarehouseInvent = conPeek(importContainer,12);
entlookup.WarehousePurch = conPeek(importContainer,13);
entlookup.WarehouseSales = conPeek(importContainer,14);
entlookup.GroupItemGroup = conPeek(importContainer,15);
entlookup.GroupInventoryModel = conPeek(importContainer,16);
entlookup.UnitInvent = UnitOfMeasure::findBySymbol(conPeek(importContainer,17)).RecId;
entlookup.UnitPurchase = UnitOfMeasure::findBySymbol(conPeek(importContainer,18)).RecId;
entlookup.UnitSales = UnitOfMeasure::findBySymbol(conPeek(importContainer,19)).RecId;
entlookup.update();
}
globLookup = RetailAttributesGlobalLookup::findByCategory(catCurnt.RecId,true);
if(globLookup)
{
globLookup.BarCodeUseEANStandard = conPeek(importContainer,7);
globLookup.GroupProductDimension = conPeek(importContainer,4);
globLookup.GroupStorageDimension = conPeek(importContainer,5);
globLookup.GroupTrackingDimension = conPeek(importContainer,6);
globLookup.cnlSPM = conPeek(importContainer,8);
globLookup.cnlWFJProductType = conPeek(importContainer,9);
globLookup.update();
}
}
ttsCommit;
importContainer = iOImport.read();
}
}
}