AX2012 R2: Creating Product or Product Master through X++
static void
CreateEcoResProduct(Args _args)
{
   
EcoResEcoResProduct_TrackingDimGroup        tracDimGroup;
   
EcoResEcoResProduct_Product_Master          productMaster;
   
EcoResEcoResProduct_Product_Distinct        distMaster;
   
EcoResEcoResProduct_ProductDimGroup         prodDimGroup;
   
EcoResEcoResProduct_StorageDimGroup         storDimGroup;
   
EcoResEcoResProduct_translation             translation;
   
EcoResEcoResProduct_Identifier              identifier;
    EcoResProductService                        ecoProdSvc;
   
EcoResProductNumber                         lEcoResProductNumber;
   
NumberSequenceTable                         numberSequenceTable;
   
EcoResEcoResProduct                         ecoResProd;
    EcoResProductType                           ecoResProductType;
    boolean                                     isMaster =
false;
   
EcoResProductSearchName                     _ecmProductName;
   
EcoResProductSubtype                        prodSubType;
    ;
    prodSubType =
EcoResProductSubtype::ProductMaster;
   
_ecmProductName = " IDB test 09";
   
lEcoResProductNumber = "IDB -099";
    try
    {
        //
create product by initializing the Service object
       
ecoProdSvc = EcoResProductService::construct();
        //
initialize the EcoResEcoResProduct object
       
ecoResProd = new EcoResEcoResProduct();
       //
numberSequenceTable =
EcoResProductParameters::numRefProductNumber().numberSequenceTable(); //
Automated
      //  lEcoResProductNumber =
NumberSeq::newGetNumFromId(numberSequenceTable.RecId).num(); // Automated
       
ecoResProductType = EcoResProductType::Item;
        if(prodSubType
== EcoResProductSubtype::ProductMaster)
        {
            isMaster = true;
            //Create
a new product master
           
productMaster = new EcoResEcoResProduct_Product_Master();
            //initialize
product master
           
productMaster.parmDisplayProductNumber(lEcoResProductNumber);
            productMaster.parmProductType(ecoResProductType);
           
productMaster.parmSearchName(_ecmProductName);
           
productMaster.parmProductType(EcoResProductType::Service);
           
productMaster.parmVariantConfigurationTechnology(EcoResVariantConfigurationTechnologyType::PredefinedVariants);
            //create
a product master Translation Object
           
translation = productMaster.createTranslation().addNew();
            //
create a new identifier object
           
Identifier = productMaster.createIdentifier().AddNew();
            //
Create the ProductDimensionGroup
           
prodDimGroup = productMaster.createProductDimGroup().addNew();
           
prodDimGroup.parmProduct(lEcoResProductNumber);
            prodDimGroup.parmProductDimensionGroup('Con-Dim');
            //
Create the StorageDimgroup object
           
storDimGroup = productMaster.createStorageDimGroup().addNew();
           
storDimGroup.parmProduct(lEcoResProductNumber);
            storDimGroup.parmStorageDimensionGroup("Con-Dim");
// Storage dimension group
            //
Create the TrackingDimGroup object
           
tracDimGroup = productMaster.createTrackingDimGroup().addNew();
           
tracDimGroup.parmProduct(lEcoResProductNumber);
           
tracDimGroup.parmTrackingDimensionGroup("Con-Dim"); //
Tracking dimension group
        }
        else
        {
            //
Create a new product distinct master
           
distMaster = new EcoResEcoResProduct_Product_Distinct();
            //
Take the newly created and initialize ProdMaster - variable and fill with
product data
           
distMaster.parmDisplayProductNumber(lEcoResProductNumber);
           
distMaster.parmProductType(ecoResProductType);
           
distMaster.parmSearchName(_ecmProductName);
            //
Create a translation object
           
translation = distMaster.createTranslation().addNew();
            //
Create a new identifier object
           
Identifier = distMaster.createIdentifier().addNew();
            //
Create the StorageDimgroup object
           
storDimGroup = distMaster.createStorageDimGroup().addNew();
           
storDimGroup.parmProduct(lEcoResProductNumber);
           
storDimGroup.parmStorageDimensionGroup("Con-Dim");
            // Create the TrackingDimGroup object
           
tracDimGroup = distMaster.createTrackingDimGroup().addNew();
           
tracDimGroup.parmProduct(lEcoResProductNumber);
           
tracDimGroup.parmTrackingDimensionGroup("Con-Dim");
        }
        //
fill the translation object
       
translation.parmDescription(_ecmProductName);
       
translation.parmLanguageId('en-us');
        //translati
       
translation.parmName(_ecmProductName);
        //
fill the identifier
       
identifier.parmProductNumber(lEcoResProductNumber);
        // add
the product to ecoResProd
        if(isMaster)
           
ecoResProd.createProduct().add(productMaster);
        else
           
ecoResProd.createProduct().add(distMaster);
        //
create the product using service
       
ecoProdSvc.create(ecoResProd);
    }
    catch(Exception::Error)
    {
        throw
Exception::Error;
    }
    catch(Exception::Deadlock)
    {
        retry;
    }
    catch(Exception::UpdateConflict)
    {
        if(appl.ttsLevel() == 0)
        {
            if(xSession::currentRetryCount()
>= 4)
            {
                throw
Exception::UpdateConflictNotRecovered;
            }
            else
            {
                retry;
            }
        }
        else
        {
            throw
Exception::UpdateConflict;
        }
    }
}
Above code creates the record
for product in EcoResProduct Table and Once you get the data in product
form(EcoResProduct -Table) you can easily release those product in specified
company in a single go, by selecting multiple products. It doesn't take much
time as well. Release product will be saved in InventTable. 
Happy Daxing :)
 
 
 
 
 
 
 
 
 
 
 
 
Hi Friend,
ReplyDeleteHow can I get the price value depend upon the variant?
Exampe: I have one product called "AAA", I have 2 variance(Color, Size).
In inventory "AAA" product have 10 quantity.
1). AAA - size 10, color Black - 5 quantity
2). AAA - size 12, color White - 5 quantity
Friend, how can I get the quantity value for that variance 1, 2 through X++.
I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have enjoyed reading. Wholesale firearms supplier in europe
ReplyDelete