Monday, 7 May 2018

Using Macro Display Error Image (or) Ok image in Ax 2012

display Integer errorlist()
{
    Na_ImageChange          na_ImageChange;
    #resAppl
    select na_ImageChange where na_ImageChange.Userid == this.Userid
                            &&  na_ImageChange.Status == NoYes::Yes;
    if( na_ImageChange.Status == NoYes::Yes)
    {
        return  #ImageOK;

    }
    return  #ImageError;
}

Export Project Details Using X++ in Ax 2012

static void Dipl_ProjectDetails(Args _args)
{
   
    SysExcelApplication                         application;
    SysExcelWorkbooks                           workbooks;
    SysExcelWorkbook                            workbook;
    SysExcelWorksheets                          worksheets;
    SysExcelWorksheet                           worksheet;
    SysExcelCells                               cells;
    SysExcelCell                                cell;
    SysExcelFont                                font;
    int                                         row;
    str                                         type;
   
    ProjTable                                   projTable;
    ProjGroup                                   projGroup;
    ProjPosting                                 projPosting;
    DimensionAttributeValueCombination          dimensionAttributeValueCombination;
   
    application         = SysExcelApplication::construct();
    workbooks           = application.workbooks();
    workbook            = workbooks.add();
    worksheets          = workbook.worksheets();
    worksheet           = worksheets.itemFromNum(1);
    cells               = worksheet.cells();
    cells.range('A:A').numberFormat('@');
   
    // intializing classes to export excel
    // Setting Header values
    cell = cells.item(1, 1);
    cell.value('ProjectId');
    font = cell.font();
    font.bold(true);

    cell = cells.item(1, 2);
    cell.value('Project Name');
    font = cell.font();
    font.bold(true);
 
   
    cell = cells.item(1, 3);
    cell.value('Project Group');
    font = cell.font();
    font.bold(true);

    cell = cells.item(1, 4);
    cell.value('project Type');
    font = cell.font();
    font.bold(true);
 

    cell = cells.item(1, 5);
    cell.value('Cost Account');
    font = cell.font();
    font.bold(true);

    cell = cells.item(1, 6);
    cell.value('Revenue Account');
    font = cell.font();
    font.bold(true);
    row = 1;

  while  select projTable
                        join projGroup
                                where projGroup.ProjGroupId == projTable.ProjGroupId
                        join ProjPosting
                                where ProjPosting.ProjCode == 1
                               && ProjPosting.ProjRelation == projGroup.ProjGroupId
                        join dimensionAttributeValueCombination
                                where dimensionAttributeValueCombination.RecId == ProjPosting.LedgerDimension
    {
        row++;
        type  = enum2str(projTable.Type);
        cell = cells.item(row, 1);
        cell.value(projTable.ProjId);
        cell = cells.item(row, 2);
        cell.value(projTable.Name);
        cell = cells.item(row, 3);
        cell.value(projTable.ProjGroupId);
        cell = cells.item(row, 4);
        cell.value(type);
        if(ProjPosting.RecId && ProjPosting.ProjAccountType == ProjAccountType::CostAccount)
        { 
            cell = cells.item(row, 5);
            cell.value(dimensionAttributeValueCombination.DisplayValue);
        }
        else if(ProjPosting.RecId && ProjPosting.ProjAccountType == ProjAccountType::RevenueAccount)
        {
            cell = cells.item(row, 6);
            cell.value(dimensionAttributeValueCombination.DisplayValue);
        }
    }
    application.visible(true);
} 

Create Product Master and Released Product Using x++ in Ax 2012

Public void Create_ProductMaster(ItemId _itemid,ItemName _itemname,Name _searchname,Name _name,ProductType _ProductType)
{
 EcoResProductMaster                    ecoResProductMaster;
 EcoResProductIdentifier                ecoResProductIdentifier;
 EcoResProductDimensionGroupProduct     ecoResProductDimensionGroupProduct;
 EcoResProductMasterModelingPolicy      ecoResProductMasterModelingPolicy;

 EcoResStorageDimensionGroupProduct     ecoResStorageDimensionGroupProduct;
 EcoResTrackingDimensionGroupProduct    ecoResTrackingDimensionGroupProduct;

 EcoResConfiguration                    ecoResConfiguration;
 EcoResProductMasterConfiguration       ecoResProductMasterConfiguration;

 EcoResSize                             ecoResSize;
 EcoResProductMasterSize                ecoResProductMasterSize;

 EcoResColor                            ecoResColor;
 EcoResProductMasterColor               ecoResProductMasterColor;

 EcoResDistinctProductVariant           ecoResDistinctProductVariant;
 EcoResProductVariantConfiguration      ecoResProductVariantConfiguration;
 EcoResProductVariantColor              ecoResProductVariantColor;
 EcoResProductVariantSize               ecoResProductVariantSize;

 InventTable                            inventTable;
 InventTableModule                      inventTableModule;
 InventItemSetupSupplyType              inventItemSetupSupplyType;

 EcoResStorageDimensionGroupItem        ecoResStorageDimensionGroupItem;
 EcoResTrackingDimensionGroupItem       ecoResTrackingDimensionGroupItem;

 InventModelGroupItem                   inventModelGroupItem;
 InventItemGroupItem                    inventItemGroupItem;

 InventDim                              inventDim;
 InventDimCombination                   inventDimCombination;

try
 {
     //ProductMaster
         ecoResProductMaster.clear();
         ecoResProductMaster.initValue();
         ecoResProductMaster.ProductType                    = EcoResProductType::Item;
         ecoResProductMaster.DisplayProductNumber           = _itemid;
         ecoResProductMaster.SearchName                     = _searchname;
         ecoResProductMaster.VariantConfigurationTechnology = EcoResVariantConfigurationTechnologyType::PredefinedVariants;
         if (ecoResProductMaster.validateWrite())
         {
            ecoResProductMaster.insert();
         }

     //Product Identifer
        ecoResProductIdentifier.clear();
        ecoResProductIdentifier.initValue();
        ecoResProductIdentifier.ProductNumber = _itemid;
        ecoResProductIdentifier.Product       = ecoResProductMaster.RecId;
        ecoResProductIdentifier.insert();

    //Product dimension group
        ecoResProductDimensionGroupProduct.clear();
        ecoResProductDimensionGroupProduct.initValue();
        ecoResProductDimensionGroupProduct.initFromProduct(ecoResProductMaster);
        ecoResProductDimensionGroupProduct.ProductDimensionGroup = EcoResProductDimensionGroup::findByDimensionGroupName("SizeColCon").RecId;
        if(ecoResProductDimensionGroupProduct.validateWrite())
        {
            ecoResProductDimensionGroupProduct.insert();
        }

    //Storage dimension group
        ecoResStorageDimensionGroupProduct.clear();
        ecoResStorageDimensionGroupProduct.initValue();
        ecoResStorageDimensionGroupProduct.Product               = ecoResProductMaster.RecId;
        ecoResStorageDimensionGroupProduct.StorageDimensionGroup = EcoResStorageDimensionGroup::findByDimensionGroupName("Site").RecId;
        if (ecoResStorageDimensionGroupProduct.validateWrite())
        {
            ecoResStorageDimensionGroupProduct.insert();
        }

    //Tracking dimension group
        ecoResTrackingDimensionGroupProduct.clear();
        ecoResTrackingDimensionGroupProduct.initValue();
        ecoResTrackingDimensionGroupProduct.Product                = ecoResProductMaster.RecId;
        ecoResTrackingDimensionGroupProduct.TrackingDimensionGroup = EcoResTrackingDimensionGroup::findByDimensionGroupName("Serial").RecId;
        if (ecoResTrackingDimensionGroupProduct.validateWrite())
        {
            ecoResTrackingDimensionGroupProduct.insert();
        }

    //Product modeling policy
        ecoResProductMasterModelingPolicy.clear();
        ecoResProductMasterModelingPolicy.initValue();
        ecoResProductMasterModelingPolicy.ProductMaster = ecoResProductMaster.RecId;
        if (ecoResProductMasterModelingPolicy.validateWrite())
        {
            ecoResProductMasterModelingPolicy.insert();
        }

    //Product translation
       EcoResProductTranslation::createOrUpdateTranslation(ecoResProductMaster.RecId, _itemname, _searchname);

    //Configuration
         ecoResConfiguration = EcoResConfiguration::findByName("NoteBook");
         if (!ecoResConfiguration)
         {
             ecoResConfiguration.clear();
             ecoResConfiguration.initValue();
             ecoResConfiguration.Name = "NoteBook ";
             ecoResConfiguration.insert();
         }

    //Size
         ecoResSize = EcoResSize::findByName("1");
         if(!ecoResSize)
         {
             ecoResSize.clear();
             ecoResSize.initValue();
             ecoResSize.Name = "1 ";
             ecoResSize.insert();
         }
    //color
        ecoResColor = EcoResColor::findByName("Black");
        if(!ecoResColor)
        {
            ecoResColor.clear();
            ecoResColor.initValue();
            ecoResColor.Name = "Black";
            ecoResColor.insert();
        }

    //InventDimId Creating
        inventDim.clear();
        inventDim.ConfigId = "NoteBook";/*ConfigId*/
        inventDim.InventSizeId =  "1";  //size
        inventDim.InventColorId = "Black"; // name
        inventDim = InventDim::findOrCreate(inventDim);

    //Configuration assigned to product master
        ecoResProductMasterConfiguration.clear();
        ecoResProductMasterConfiguration.initValue();
        ecoResProductMasterConfiguration.Configuration = ecoResConfiguration.RecId;
        ecoResProductMasterConfiguration.ConfigProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, ConfigId));
        ecoResProductMasterConfiguration.ConfigProductMaster = ecoResProductMaster.RecId;
        ecoResProductMasterConfiguration.insert();

    //Size assigned to product master
        ecoResProductMasterSize.clear();
        ecoResProductMasterSize.initValue();
        ecoResProductMasterSize.Size = ecoResSize.RecId;
        ecoResProductMasterSize.SizeProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventSizeId));
        ecoResProductMasterSize.SizeProductMaster    = ecoResProductMaster.RecId;

    //color assigned to product master
        ecoResProductMasterColor.clear();
        ecoResProductMasterColor.initValue();
        ecoResProductMasterColor.Color = ecoResColor.RecId;
        ecoResProductMasterColor.ColorProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventColorId));
        ecoResProductMasterColor.ColorProductMaster = ecoResProductMaster.RecId;

    //Product variant
        ecoResDistinctProductVariant.clear();
        ecoResDistinctProductVariant.initValue();
        ecoResDistinctProductVariant.DisplayProductNumber = EcoResProductNumberBuilderVariant::buildFromProductNumberAndDimensions(
        ecoResProductMaster.productNumber(),
        EcoResProductVariantDimValue::getDimensionValuesContainer(_itemname, "1", "Black",""));
        ecoResDistinctProductVariant.SearchName = ecoResProductMaster.SearchName /*ConfigId*/;
        ecoResDistinctProductVariant.ProductType = ecoResProductMaster.ProductType;
        ecoResDistinctProductVariant.ProductMaster = ecoResProductMaster.RecId;
        ecoResDistinctProductVariant.insert();

    //Product variant configuration
        ecoResProductVariantConfiguration.clear();
        ecoResProductVariantConfiguration.initValue();
        ecoResProductVariantConfiguration.initFromDistinctProductVariant(ecoResDistinctProductVariant);
        ecoResProductVariantConfiguration.ProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, ConfigId));
        ecoResProductVariantConfiguration.Configuration = ecoResConfiguration.RecId;
        ecoResProductVariantConfiguration.insert();

    //product variant size
        ecoResProductVariantSize.clear();
        ecoResProductVariantSize.initValue();
        ecoResProductVariantSize.initFromDistinctProductVariant(ecoResDistinctProductVariant);
        ecoResProductVariantSize.ProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventSizeId));
        ecoResProductVariantSize.Size                      = ecoResSize.RecId;
        ecoResProductVariantSize.insert();

    //product variant color
        ecoResProductVariantColor.clear();
        ecoResProductVariantColor.initValue();
        ecoResProductVariantColor.initFromDistinctProductVariant(ecoResDistinctProductVariant);
        ecoResProductVariantColor.ProductDimensionAttribute = EcoResProductDimensionAttribute::inventDimFieldId2DimensionAttributeRecId(fieldNum(InventDim, InventColorId));
        ecoResProductVariantColor.Color                     = ecoResColor.RecId;
        ecoResProductVariantColor.insert();


    //Product variant translation
         EcoResProductTranslation::createOrUpdateTranslation(ecoResDistinctProductVariant.RecId, _itemname, _searchname);

    //Released product
        inventTable.clear();
        inventTable.initValue();
        inventTable.initFromEcoResProduct(ecoResProductMaster);
        inventTable.ItemId    =_itemid;
        inventTable.NameAlias =_searchname;
        if(inventTable.validateWrite())
        {
            inventTable.insert();
        }

    //Inventory model group
        inventModelGroupItem.clear();
        inventModelGroupItem.initValue();
        inventModelGroupItem.ItemDataAreaId = inventTable.dataAreaId;
        inventModelGroupItem.ItemId         = inventTable.ItemId;
        inventModelGroupItem.ModelGroupId   = "FIFO";
        inventModelGroupItem.ModelGroupDataAreaId = curext();
        inventModelGroupItem.insert();

    //Item group
        inventItemGroupItem.clear();
        inventItemGroupItem.initValue();
        inventItemGroupItem.ItemDataAreaId = inventTable.dataAreaId;
        inventItemGroupItem.ItemId         = inventTable.ItemId;
        inventItemGroupItem.ItemGroupId    = "Parts";
        inventItemGroupItem.ItemGroupDataAreaId = curext();
        inventItemGroupItem.insert();

    //Extended product details – Inventory
        inventTableModule.clear();
        inventTableModule.initValue();
        inventTableModule.ItemId     = inventTable.ItemId;
        inventTableModule.ModuleType = ModuleInventPurchSales::Invent;
        inventTableModule.insert();

    //Extended product details – Purchase
        inventTableModule.clear();
        inventTableModule.initValue();
        inventTableModule.ItemId     = inventTable.ItemId;
        inventTableModule.ModuleType = ModuleInventPurchSales::Purch;
        inventTableModule.insert();

    //Extended product details – Sales
        inventTableModule.clear();
        inventTableModule.initValue();
        inventTableModule.ItemId     = inventTable.ItemId;
        inventTableModule.ModuleType = ModuleInventPurchSales::Sales;
        inventTableModule.insert();

    //Warehouse items
        InventItemLocation::createDefault(inventTable.ItemId);

    //Supply type setup
        inventItemSetupSupplyType.clear();
        inventItemSetupSupplyType.initValue();
        inventItemSetupSupplyType.ItemId         = inventTable.ItemId;
        inventItemSetupSupplyType.ItemDataAreaId = inventTable.DataAreaId;
        inventItemSetupSupplyType.insert();

    //Product storage dimension group
        ecoResStorageDimensionGroupProduct = EcoResStorageDimensionGroupProduct::findByProduct(ecoResProductMaster.RecId);
        if (ecoResStorageDimensionGroupProduct.RecId)
        {
            ecoResStorageDimensionGroupItem.clear();
            ecoResStorageDimensionGroupItem.initValue();
            ecoResStorageDimensionGroupItem.ItemDataAreaId        = inventTable.DataAreaId;
            ecoResStorageDimensionGroupItem.ItemId                = inventTable.ItemId;
            ecoResStorageDimensionGroupItem.StorageDimensionGroup = ecoResStorageDimensionGroupProduct.StorageDimensionGroup;
            ecoResStorageDimensionGroupItem.insert();
        }

    //Product tracking dimension group
        ecoResTrackingDimensionGroupProduct = EcoResTrackingDimensionGroupProduct::findByProduct(ecoResProductMaster.RecId);
        if (ecoResTrackingDimensionGroupProduct.RecId)
        {
            ecoResTrackingDimensionGroupItem.clear();
            ecoResTrackingDimensionGroupItem.initValue();
            ecoResTrackingDimensionGroupItem.ItemDataAreaId         = inventTable.DataAreaId;
            ecoResTrackingDimensionGroupItem.ItemId                 = inventTable.ItemId;
            ecoResTrackingDimensionGroupItem.TrackingDimensionGroup = ecoResTrackingDimensionGroupProduct.TrackingDimensionGroup;
            ecoResTrackingDimensionGroupItem.insert();
        }

    //Released product variant
        inventDimCombination.clear();
        inventDimCombination.initValue();
        inventDimCombination.DistinctProductVariant = ecoResDistinctProductVariant.RecId;
        inventDimCombination.ItemId                 = inventTable.ItemId;
        inventDimCombination.InventDimId            = inventDim.InventDimId;
        inventDimCombination.insert();
        info("Done!");
    }
   catch
   {
      error("Error!");
      return;
   }
}

Create Product and Released Product using X++ code in Ax 2012

public void Create_Product(ItemId _itemid,ItemName _itemname,Name _searchname,Name _name,ProductType _ProductType)
{
  //Classes
    EcoResProductService                            ecoResProdService;
    EcoResEcoResProduct                             ecoResEcoResProduct;
    EcoResEcoResProduct_Product_Distinct            ecoResEcoResProduct_Product_Distinct;
    EcoResEcoResProduct_Translation                 ecoResEcoResProduct_Translation;
    EcoResEcoResProduct_Identifier                  ecoResEcoResProduct_Identifier;

 //Tables
    InventTable                                     inventTable;
    InventTableModule                               inventTableModule;
    InventItemSetupSupplyType                       inventItemSetupSupplyType;
    InventModelGroupItem                            inventModelGroupItem;
    InventItemGroupItem                             inventItemGroupItem;
    NumberSequenceTable                             numberSequenceTable;

    EcoResProduct                                   ecoResProduct;
    EcoResStorageDimensionGroupProduct              ecoResStorageDimensionGroupProduct;
    EcoResTrackingDimensionGroupProduct             ecoResTrackingDimensionGroupProduct;
    EcoResStorageDimensionGroupItem                 ecoResStorageDimensionGroupItem;
    EcoResTrackingDimensionGroupItem                ecoResTrackingDimensionGroupItem;
    DataAreaId                                      _dataAreaId=curext();

 //Object Creating Class
    ecoResProdService                       = EcoResProductService::construct();
    ecoResEcoResProduct                     = new EcoResEcoResProduct();
    ecoResEcoResProduct_Product_Distinct    = new EcoResEcoResProduct_Product_Distinct();

//Newly created and initialize product
    ecoResEcoResProduct_Product_Distinct.parmDisplayProductNumber(_itemid);
    ecoResEcoResProduct_Product_Distinct.parmProductType(EcoResProductType::Item);
    ecoResEcoResProduct_Product_Distinct.parmSearchName(_searchname);

//Create a new translation object:
    ecoResEcoResProduct_Translation = ecoResEcoResProduct_Product_Distinct.createTranslation().addNew();
    ecoResEcoResProduct_Translation.parmDescription(_searchname);
    ecoResEcoResProduct_Translation.parmLanguageId(CompanyInfo::languageId());
    ecoResEcoResProduct_Translation.parmName(_itemname);

//Create a new Identifier object:
    ecoResEcoResProduct_Identifier = ecoResEcoResProduct_Product_Distinct.createIdentifier().addNew();
    ecoResEcoResProduct_Identifier.parmProductNumber(_itemid);

//Assign Product Class to table
    ecoResEcoResProduct.createProduct().add(ecoResEcoResProduct_Product_Distinct);
    ecoResProdService.create(ecoResEcoResProduct);
    info("Product is Creted");

 //Realsed Product
    select firstOnly ecoResProduct where EcoResProduct.DisplayProductNumber == _itemid;

//Storage dimension group
    ecoResStorageDimensionGroupProduct.clear();
    ecoResStorageDimensionGroupProduct.initValue();
    ecoResStorageDimensionGroupProduct.Product               = ecoResProduct.RecId;
    ecoResStorageDimensionGroupProduct.StorageDimensionGroup = EcoResStorageDimensionGroup::findByDimensionGroupName("Site").RecId;
    if (ecoResStorageDimensionGroupProduct.validateWrite())
    {
        ecoResStorageDimensionGroupProduct.insert();
    }

 //Tracking dimension group
    ecoResTrackingDimensionGroupProduct.clear();
    ecoResTrackingDimensionGroupProduct.initValue();
    ecoResTrackingDimensionGroupProduct.Product                = ecoResProduct.RecId;
    ecoResTrackingDimensionGroupProduct.TrackingDimensionGroup = EcoResTrackingDimensionGroup::findByDimensionGroupName("Serial").RecId;
    if (ecoResTrackingDimensionGroupProduct.validateWrite())
    {
        ecoResTrackingDimensionGroupProduct.insert();
    }


    if (!numberSequenceTable.RecId || numberSequenceTable.Manual)
    {
        itemId = ecoResProduct.productNumber();
    }
    else //number sequence auto, get a number
    {
        itemId = NumberSeq::newGetNumFromId(numberSequenceTable.RecId).num();
    }
    inventTable.clear();
    inventTable.initValue();
    inventTable.initFromEcoResProduct(ecoResProduct);
    inventTable.ItemId = ItemId;
    inventTable.NameAlias = ecoResProduct.SearchName;
    inventTable.insert(true);

// Create inventTableModules
    inventTableModule.clear();
    inventTableModule.initValue();
    inventTableModule.ItemId = inventTable.ItemId;
    inventTableModule.ModuleType = ModuleInventPurchSales::Invent;
    inventTableModule.insert();

    inventTableModule.clear();
    inventTableModule.initValue();
    inventTableModule.ItemId = inventTable.ItemId;
    inventTableModule.ModuleType = ModuleInventPurchSales::Purch;
    inventTableModule.insert();

    inventTableModule.clear();
    inventTableModule.initValue();
    inventTableModule.ItemId = inventTable.ItemId;
    inventTableModule.ModuleType = ModuleInventPurchSales::Sales;
    inventTableModule.insert();

//Inventory model group
    inventModelGroupItem.clear();
    inventModelGroupItem.initValue();
    inventModelGroupItem.ItemDataAreaId = inventTable.dataAreaId;
    inventModelGroupItem.ItemId         = inventTable.ItemId;
    inventModelGroupItem.ModelGroupId   = "FIFO";
    inventModelGroupItem.ModelGroupDataAreaId = curext();
    inventModelGroupItem.insert();

//Item group
    inventItemGroupItem.clear();
    inventItemGroupItem.initValue();
    inventItemGroupItem.ItemDataAreaId = inventTable.dataAreaId;
    inventItemGroupItem.ItemId         = inventTable.ItemId;
    inventItemGroupItem.ItemGroupId    = "Sevices";
    inventItemGroupItem.ItemGroupDataAreaId = curext();
    inventItemGroupItem.insert();

//Create inventItemLocation
    InventItemLocation::createDefault(inventTable.ItemId);

// Creates a new item default order type for the product that is released.
    inventItemSetupSupplyType.clear();
    inventItemSetupSupplyType.initValue();
    inventItemSetupSupplyType.ItemId = inventTable.ItemId;
    inventItemSetupSupplyType.ItemDataAreaId = inventTable.DataAreaId;
    inventItemSetupSupplyType.insert();

//create relationship tables to dimension groups.
    ecoResStorageDimensionGroupProduct  = EcoResStorageDimensionGroupProduct::findByProduct(ecoResProduct.RecId);
    ecoResTrackingDimensionGroupProduct = EcoResTrackingDimensionGroupProduct::findByProduct(ecoResProduct.RecId);

// mandatory storage dimension group for the product
    if (ecoResStorageDimensionGroupProduct.RecId)
    {
        ecoResStorageDimensionGroupItem.clear();
        ecoResStorageDimensionGroupItem.ItemDataAreaId = inventTable.DataAreaId;
        ecoResStorageDimensionGroupItem.ItemId = inventTable.ItemId;
        ecoResStorageDimensionGroupItem.StorageDimensionGroup = ecoResStorageDimensionGroupProduct.StorageDimensionGroup;
        ecoResStorageDimensionGroupItem.insert();
    }
 // mandatory tracking dimension group for the product
    if (ecoResTrackingDimensionGroupProduct.RecId)
    {
        ecoResTrackingDimensionGroupItem.clear();
        ecoResTrackingDimensionGroupItem.ItemDataAreaId = inventTable.DataAreaId;
        ecoResTrackingDimensionGroupItem.ItemId = inventTable.ItemId;
        ecoResTrackingDimensionGroupItem.TrackingDimensionGroup = ecoResTrackingDimensionGroupProduct.TrackingDimensionGroup;
        ecoResTrackingDimensionGroupItem.insert();
    }
    info(strfmt("Product successfully released to UsMf legal entity"));
}

Import Vendor postal Address in Ax 2012

void clicked()
{
    SysExcelApplication         application;
    SysExcelWorkbooks           workbooks;
    SysExcelWorkbook            workbook;
    SysExcelWorksheets          worksheets;
    SysExcelWorksheet           worksheet;
    SysExcelCells               cells;
    COMVariantType              type1;
    Name                        name;
    FileName                    filename;
    VendTable                   vendorTable;
    DirPartyTable               dirPartyTable1;
    LogisticsPostalAddress      postalAddress;
    LogisticsLocation           location;
    LogisticsLocationRole       locationRole;
    DirPartyLocationRole        partyLocationRole;
    DirPartyLocation            partyLocation;
 

    int                         row;
    str                         VendAccount;
    str                         vendnameName,vendGroup,currency;
    str                         site,warehouse,payterid,paymode;
    str  100                    Address,Description;
    Dialog                      _dialog;
    DialogField                 _file;

     str COMVariant2Str(COMVariant _cv, int _decimals = 0,int _characters = 0,int _separator1 = 0,int _separator2 = 0)
       {
            switch(_cv.variantType())
            {
                case (COMVariantType::VT_BSTR):
                    return _cv.bStr();
                case (COMVariantType::VT_R4):
                    return num2str(_cv.float(),_characters,_decimals, _separator1,_separator2);
                case (COMVariantType::VT_R8):
                    return num2str(_cv.double(),_characters,_decimals,_separator1,_separator2);
                case (COMVariantType::VT_DECIMAL):
                    return num2str(_cv.decimal(),_characters,_decimals, _separator1, _separator2);
                case (COMVariantType::VT_DATE):
                    return date2str(_cv.date(),123,2,1,2, 1,4);
                case (COMVariantType::VT_EMPTY):
                    return "";
                default:
                    throw error(strfmt("@SYS26908",_cv.variantType()));
            }
            return "";
        }
    ;
    _dialog = new Dialog("Please select the file to load");
    _dialog.addText("Select file:");
    _file = _dialog.addField(ExtendedTypeStr("FilenameOpen"));
    _dialog.run();

    application = SysExcelApplication::construct();
    workbooks = application.workbooks();
    filename = _file.value();
    try
    {
        workbooks.open(filename);
    }
    catch (Exception::Error)
    {
        throw error("File cannot be opened.");
    }
    workbook = workbooks.item(1);
    worksheets = workbook.worksheets();
    worksheet = worksheets.itemFromNum(1);
    cells = worksheet.cells();
    row =1;
    do
    {
        row++;
        VendAccount     = cells.item(row, 1).value().bStr();
        vendnameName    = cells.item(row, 2).value().bStr();
        vendGroup       = COMVariant2Str(cells.item(row, 3).value());
        site            = COMVariant2Str(cells.item(row, 4).value());
        warehouse       = COMVariant2Str(cells.item(row, 5).value());
        currency        = cells.item(row, 6).value().bStr();
        payterid        = cells.item(row, 7).value().bStr();
        paymode         = cells.item(row, 8).value().bStr();
        Address         = cells.item(row, 9).value().bStr();
        Description     = cells.item(row, 10).value().bStr();
        select vendorTable where vendorTable.AccountNum == cells.item(row, 1).value().bStr();


        if(vendorTable.AccountNum == VendAccount)
        {
            select forupdate dirPartyTable1 join vendorTable  where vendorTable.AccountNum == cells.item(row, 1).value().bStr()
                                                                   && dirPartyTable1.RecId == vendorTable.Party;
            if(dirPartyTable1.RecId)
            {
                ttsBegin;
                dirPartyTable1.Name        = vendnameName;
                dirPartyTable1.update();
                ttsCommit;
            }
            select forupdate postalAddress join location join dirPartyTable1 join  vendorTable where vendorTable.AccountNum == cells.item(row, 1).value().bStr()
                                                                                                        && vendorTable.Party == dirPartyTable1.RecId
                                                                                                        && Location.RecId == dirPartyTable1.PrimaryAddressLocation
                                                                                                        && postalAddress.Location == location.RecId;


            if(postalAddress.RecId)
            {
                ttsBegin;
                postalAddress.Address      = Address;
                postalAddress.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction);
                postalAddress.update();
                ttsCommit;
            }
             if(Location.RecId)
              {
                   ttsBegin;
                   Location.Description       = Description;
                   Location.selectForUpdate(true);
                   Location.update();
                   ttsCommit;
              }
            vendorTable.VendGroup      = vendGroup;
            vendorTable.Currency       = currency;
            vendorTable.InventSiteId   = site;
            vendorTable.InventLocation = warehouse;
            vendorTable.PaymTermId     = payterid;
            vendorTable.PaymMode       = paymode;
            ttsBegin;
            vendorTable.selectForUpdate(true);
            vendorTable.update();
            ttsCommit;
            info("Updated Successfully");
        }
        else
        {
            dirPartyTable1.clear();
            dirPartyTable1.initValue();
            dirPartyTable1.Name             = vendnameName;
            dirPartyTable1.insert();

            location.clear();
            location.initValue();
            location.Description            = Description;
            location.IsPostalAddress        = NoYes::Yes;
            location.insert();

            postalAddress.clear();
            postalAddress.initValue();

            postalAddress.Address           = Address;
            postalAddress.CountryRegionId   = "IND";
            postalAddress.Street            ="Kukatpally";
            postalAddress.State             ="Telanaga";
            postalAddress.Location          = location.RecId;
            postalAddress.insert();

            partyLocation.clear();
            partyLocation.initValue();
            partyLocation.Party             = dirPartyTable1.RecId;
            partyLocation.Location          = location.RecId;
            partyLocation.IsPostalAddress   = NoYes::Yes;
            partyLocation.IsPrimary         = NoYes::Yes;
            partyLocation.insert();

            partyLocationRole.clear();
            partyLocationRole.initValue();
            partyLocationRole.LocationRole  = LogisticsLocationRole::findBytype(LogisticsLocationRoleType::Business).RecId;
            partyLocationRole.PartyLocation = partyLocation.RecId;
            partyLocationRole.insert();

            vendorTable.AccountNum     = VendAccount;
            vendorTable.VendGroup      = vendGroup;
            vendorTable.Currency       = currency;
            vendorTable.InventSiteId   = site;
            vendorTable.InventLocation = warehouse;
            vendorTable.PaymTermId     = payterid;
            vendorTable.PaymMode       = paymode;
            vendorTable.Party          = dirPartyTable1.RecId;
            vendorTable.insert();
            info("Record is inserted");
        }
            type1 = cells.item(row+1, 1).value().variantType();

    }
    while (type1 != COMVariantType::VT_EMPTY);

    application.quit();
    super();
}

Import Vendor Address and Contract Details in AX 2012

static void Na_ContactDetails(Args _args)
{
    Dialog                                              dialog;
    Dialogfield                                       dialogfield;
    VendTable                                        vendTable;

    LogisticsElectronicAddress              logisticsElectronicAddress;
    LogisticsPostalAddress                    logisticsPostalAddress;
    LogisticsLocation                             logisticsLocation,logisticsLocation1;
    LogisticsLocationRole                      logisticsLocationRole;
    DirPartyTable                                   dirPartyTable,dirPartyTable1;
    COMVariantType                             type;

    DirPartyLocation                              dirPartyLocation,dirPartyLocation1;
    DirPartyLocationRole                      dirPartyLocationRole,dirPartyLocationRole1;
    LogisticsElectronicAddressRole      logisticsElectronicAddressRole;

    SysExcelApplication                        application;
    SysExcelWorkbooks                         workBooks;
    SysExcelWorkbook                           workBook;
    SysExcelWorksheets                         workSheets;
    SysExcelWorksheet                          workSheet;
    SysExcelCells                                   cells;
    Filename                                          fileName;
    int                                                     row;

    AccountNum                                   vendAccount;
    Name                                               vendName;
    VendGroupId                                   vendGroup;
    Description                                      description;
    str 100                                              Address,phonenum,namealiyas;
    CurrencyCode                                  currency;


    str COMVariant2Str(COMVariant _cv, int _decimals = 0,int _characters = 0,int _separator1 = 0,int _separator2 = 0)
    {
        switch(_cv.variantType())
        {
            case (COMVariantType::VT_BSTR):
                return _cv.bStr();
            case (COMVariantType::VT_R4):
                return num2str(_cv.float(),_characters,_decimals, _separator1,_separator2);
            case (COMVariantType::VT_R8):
                return num2str(_cv.double(),_characters,_decimals,_separator1,_separator2);
            case (COMVariantType::VT_DECIMAL):
                return num2str(_cv.decimal(),_characters,_decimals, _separator1, _separator2);
            case (COMVariantType::VT_DATE):
                return date2str(_cv.date(),123,2,1,2, 1,4);
            case (COMVariantType::VT_EMPTY):
                return "";
            default:
                throw error(strfmt("@SYS26908",_cv.variantType()));
        }
        return "";
    }

    application =   SysExcelApplication::construct();
    workBooks   =   application.workbooks();
    dialog      = new Dialog("FileOpen");
    dialogfield = dialog.addField(extendedTypeStr(Filenameopen), "File Name");
    dialog.run();

    if (dialog.run())
    {
        filename = (dialogfield.value());
    }
    try
    {
        workBooks.open(fileName);
    }
    catch (Exception::Error)
    {
        throw error("File Cannot be opened");
    }

    workBook    =   workBooks.item(1);
    workSheets  =   workBook.worksheets();
    workSheet   =   workSheets.itemFromNum(1);
    cells      =   workSheet.cells();
    row =1;
    do
    {
        row++;


        vendAccount = cells.item(row,1).value().bStr();
        vendName    = cells.item(row,2).value().bStr();
        vendGroup   = COMVariant2Str(cells.item(row,3).value());
        phonenum    = COMVariant2Str(cells.item(row,4).value());
        description = COMVariant2Str(cells.item(row,5).value());
        Address     = cells.item(row,6).value().bStr();
        currency    = cells.item(row,7).value().bStr();
        namealiyas  = "working1";

        logisticsLocation.clear();
        logisticsLocation.initValue();
        logisticsLocation.Description                      = description;
        logisticsLocation.insert();

        logisticsLocation1.clear();
        logisticsLocation1.initValue();
        logisticsLocation1.Description                      = namealiyas;
        logisticsLocation1.insert();

        logisticsPostalAddress.clear();
        logisticsPostalAddress.initValue();
        logisticsPostalAddress.Address                      = Address;
        logisticsPostalAddress.Location                     = LogisticsLocation.RecId;
        logisticsPostalAddress.CountryRegionId              = "IND";
        logisticsPostalAddress.State                        = "Telangana";
        logisticsPostalAddress.Street                       = "Kukatpally";
        logisticsPostalAddress.insert();

        dirPartyTable.clear();
        dirPartyTable.initValue();
        dirPartyTable.Name                                  = vendName;
        dirPartyTable.PrimaryContactPhone                   = logisticsElectronicAddress.recId;
        dirPartyTable.PrimaryAddressLocation                = logisticsLocation.RecId;
        dirPartyTable.insert();

        logisticsElectronicAddress.clear();
        logisticsElectronicAddress.initValue();
        logisticsElectronicAddress.Type                     = LogisticsElectronicAddressMethodType::Phone;
        logisticsElectronicAddress.Locator                  = phonenum;
        logisticsElectronicAddress.Description              = description;
        logisticsElectronicAddress.IsPrimary                = NoYes::No;
        logisticsElectronicAddress.Location                 = logisticsLocation1.RecId;
        logisticsElectronicAddress.PrivateForParty          = dirPartyTable.RecId;
        logisticsElectronicAddress.IsMobilePhone            = NoYes::No;
        logisticsElectronicAddress.LocatorExtension         = "+91";
        logisticsElectronicAddress.insert();

        logisticsElectronicAddressRole.clear();
        logisticsElectronicAddressRole.initValue();
        logisticsElectronicAddressRole.ElectronicAddress    = logisticsElectronicAddress.RecId;
        logisticsElectronicAddressRole.LocationRole         = LogisticsLocationRole::findBytype(LogisticsLocationRoleType::Home).RecId;
        logisticsElectronicAddressRole.insert();

        vendTable.clear();
        vendTable.initValue();
        vendTable.AccountNum                                =  vendAccount;
        vendTable.Currency                                  =  currency;
        vendTable.VendGroup                                 =  vendGroup;
        vendTable.Party                                     =  dirPartyTable.RecId;
        vendTable.insert();

        dirPartyLocation.clear();
        dirPartyLocation.initValue();
        dirPartyLocation.Party                              =  dirPartyTable.RecId;
        dirPartyLocation.Location                           =  logisticsLocation.RecId;
        dirPartyLocation.IsPostalAddress                    =  NoYes::Yes;
        dirPartyLocation.IsPrimary                          =  NoYes::Yes;
        dirPartyLocation.IsRoleDelivery                     =  NoYes::No;
        dirPartyLocation.insert();

        dirPartyLocation1.clear();
        dirPartyLocation1.initValue();
        dirPartyLocation1.Party                             =  dirPartyTable.RecId;
        dirPartyLocation1.Location                          =  logisticsLocation1.RecId;
        dirPartyLocation1.IsPostalAddress                   =  NoYes::No;
        dirPartyLocation1.IsPrimary                         =  NoYes::Yes;
        dirPartyLocation1.IsRoleDelivery                    =  NoYes::No;
        dirPartyLocation1.insert();

        dirPartyLocationRole.clear();
        dirPartyLocationRole.initValue();
        dirPartyLocationRole.LocationRole                   =                  LogisticsLocationRole::findBytype(LogisticsLocationRoleType::Home).RecId;
        dirPartyLocationRole.PartyLocation                  =  dirPartyLocation.RecId;
        dirPartyLocationRole.insert();

        dirPartyLocationRole1.clear();
        dirPartyLocationRole1.initValue();
        dirPartyLocationRole1.LocationRole                  =  LogisticsLocationRole::findBytype(LogisticsLocationRoleType::Home).RecId;
        dirPartyLocationRole1.PartyLocation                 =  dirPartyLocation1.RecId;
        dirPartyLocationRole1.insert();

    }
    while (type != COMVariantType::VT_EMPTY);
    application.quit();
    workbooks.close();

    info("Done");

}

Update ProjectContract Financial Dimensions in Ax2012

static void  Na_ProjContractDimension(Args _args)
{
    DimensionAttributeValue                        dimAtrrProjValue;
    DimensionAttribute                                 dimAtrrProj;
    DimensionAttributeValueSetStorage       davss;
    RecId                                                        defaultDimension;
    VendTable                                                 vendtable;
    container                                                   defaultdimension1;
    ProjTable                                                  projTable,projTable1;
    ProjFundingSource                                  projFundingSource;
    ProjInvoiceTable                                      projInvoiceTable;
    int                                                             updatecount;


    try
    {

         select forUpdate projFundingSource join projInvoiceTable where projFundingSource.ContractId == projInvoiceTable.ProjInvoiceProjId
                                        join projTable where projInvoiceTable.ProjInvoiceProjId == projTable.ProjInvoiceProjId

        {
            select count(RecId) from projTable1 where projTable1.ProjInvoiceProjId == projFundingSource.ContractId;

            if(projTable1.RecId == 1)
            {
                if(projFundingSource.ContractId)
                {
                        davss = DimensionAttributeValueSetStorage::find(projTable::find(projTable.ProjId).DefaultDimension);
                        dimAtrrProj       = DimensionAttribute::findByName('Project');
                        dimAtrrProjValue  = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAtrrProj, ProjTable.ProjId, false, true);

                        if(dimAtrrProjValue)
                        {
                            davss.addItem(dimAtrrProjValue);
                            ttsBegin;
                            projFundingSource.DefaultDimension = davss.save();
                            projFundingSource.selectForUpdate(true);
                            projFundingSource.doUpdate();
                            ttsCommit;
                        }
                 

                }
                updatecount++;
            }
            else
            {
                info(strFmt("contractid--%1 , projid--%2",projFundingSource.ContractId,projTable.ProjId,projTable1.ProjId));

            }


        }
    }
    catch(Exception::Error)
    {
        info(strFmt("%1", projFundingSource.ContractId));
    }
     info("successfully completed");
    Box::info(strFmt("%1 Records updated ",updatecount));
}