Tuesday, January 8, 2019
Product Master Dim Variant Creation
static void OGSProductMastersDimVariantCreate(Args _args)
{
EcoResProductMaster ecoResProductMaster;
EcoResProductDimensionGroupProduct ecoResProductDimensionGroupProduct;
EcoResConfiguration ecoResConfiguration;
EcoResProductMasterConfiguration ecoResProductMasterConfiguration,ecoResProductMasterConfiguration2;
EcoResStyle ecoResStyle;
EcoResProductMasterStyle ecoResProductMasterStyle;
EcoResSize ecoResSize;
EcoResProductMasterSize ecoResProductMasterSize;
EcoResColor ecoResColor;
EcoResProductMasterColor ecoResProductMasterColor;
EcoResDistinctProductVariant ecoResDistinctProductVariant;
EcoResProductVariantConfiguration ecoResProductVariantConfiguration;
EcoResProductVariantDimensionValue ecoResProductVariantDimensionValue;
RefRecId ecoResDistinctProductVariantRecId;
EcoResProductReleaseManagerBase eleaseManager;
container productDimensions;
int success = 0, failed = 0;
while select ecoResProductMaster notexists join ecoResProductMasterConfiguration2
where ecoResProductMasterConfiguration2.ConfigProductMaster == ecoResProductMaster.RecId
//where ecoResProductMaster.DisplayProductNumber == '73-88381-ISP'
{
try
{
//Configuration
ecoResConfiguration = EcoResConfiguration::findByName("default");
//Configuration assigned to product master
ecoResProductMasterConfiguration.clear();
ecoResProductMasterConfiguration.initValue();
ecoResProductMasterConfiguration.Configuration = ecoResConfiguration.RecId;
ecoResProductMasterConfiguration.ConfigProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, ConfigId));
ecoResProductMasterConfiguration.ConfigProductMaster = ecoResProductMaster.RecId;
try
{
ecoResProductMasterConfiguration.insert();
}
catch
{
failed++;
continue;
}
//Style
ecoResStyle = EcoResStyle::findByName("default");
//Style assigned to product master
ecoResProductMasterStyle.clear();
ecoResProductMasterStyle.initValue();
ecoResProductMasterStyle.Style = ecoResStyle.RecId;
ecoResProductMasterStyle.StyleProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventStyleId));
ecoResProductMasterStyle.StyleProductMaster = ecoResProductMaster.RecId;
try
{
ecoResProductMasterStyle.insert();
}
catch
{
failed++;
continue;
}
//Color
ecoResColor = EcoResColor::findByName("default");
//Color assigned to product master
ecoResProductMasterColor.clear();
ecoResProductMasterColor.initValue();
ecoResProductMasterColor.Color = ecoResColor.RecId;
ecoResProductMasterColor.ColorProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventColorId));
ecoResProductMasterColor.ColorProductMaster = ecoResProductMaster.RecId;
try
{
ecoResProductMasterColor.insert();
}
catch
{
failed++;
continue;
}
//Size
ecoResSize = EcoResSize::findByName("default");
//Size assigned to product master
ecoResProductMasterSize.clear();
ecoResProductMasterSize.initValue();
ecoResProductMasterSize.Size = ecoResSize.RecId;
ecoResProductMasterSize.SizeProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventSizeId));
ecoResProductMasterSize.SizeProductMaster = ecoResProductMaster.RecId;
try
{
ecoResProductMasterSize.insert();
}
catch
{
failed++;
continue;
}
//Create a container to hold dimension values
productDimensions = EcoResProductVariantDimValue::getDimensionValuesContainer(ecoResConfiguration.Name,
ecoResSize.Name,
ecoResColor.Name,
ecoResStyle.Name);
////Create Product search name. If variant name is different from product name
//ecoResDistinctProductVariant.DisplayProductNumber = EcoResProductNumberBuilderVariant::buildFromProductNumberAndDimensions(
// EcoResProduct::find(InventTable.Product).productNumber(),
// productDimensions);
//Create Product variant with Product and dimensions provided
ecoResDistinctProductVariantRecId = EcoResProductVariantManager::createProductVariant(ecoResProductMaster.RecId,ecoResProductMaster.SearchName,productDimensions);
success++;
}
catch
{
failed++;
error("Error!");
return;
}
}
info(strFmt("Done! %1 success,%2 skipped",success,failed));
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment