Skip to main content

Importing Products into AX 2012

EcoResProductServiceClient service = new EcoResProductServiceClient();
            CallContext ctx = new CallContext();
            ctx.Company = "ceu";
            AxdEcoResProduct axdProduct = new AxdEcoResProduct();
           
            //first, create a distinct product
            AxdEntity_Product_EcoResDistinctProduct distinctProduct = new AxdEntity_Product_EcoResDistinctProduct();
            distinctProduct.DisplayProductNumber = "Bulb60W";
            distinctProduct.ProductType = AxdEnum_EcoResProductType.Item;
            distinctProduct.SearchName = "Bulb60W";
           
           
            AxdEntity_Translation tran = new AxdEntity_Translation();
            tran.LanguageId = "en-us";
            tran.Name = "Transparent Bulb 60W";
            distinctProduct.Translation = new AxdEntity_Translation[1] { tran };
           
            AxdEntity_Identifier ident = new AxdEntity_Identifier();
            ident.ProductNumber = "Bulb60W";
            distinctProduct.Identifier = new AxdEntity_Identifier[1] {ident};
            AxdEntity_StorageDimGroup storage = new AxdEntity_StorageDimGroup();
            storage.Product = "Bulb60W";
            storage.StorageDimensionGroup = "PG_30";
            distinctProduct.StorageDimGroup = new AxdEntity_StorageDimGroup[1] {storage};
           
            AxdEntity_TrackingDimGroup tracking = new AxdEntity_TrackingDimGroup();
            tracking.Product = "Bulb60W";
            tracking.TrackingDimensionGroup = "PG_30";
            distinctProduct.TrackingDimGroup = new AxdEntity_TrackingDimGroup[1] {tracking};
           
            axdProduct.Product = new AxdEntity_Product_EcoResProduct[1] { distinctProduct };
            try
            {
                service.create(ctx, axdProduct);
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                System.Console.ReadKey();
            }

            //Then, release the product by calling the ItemService
            ItemServiceClient itemService = new ItemServiceClient();
            CallContext ctx2 = new CallContext();
            ctx2.Company = "ceu";
            AxdItem item = new AxdItem();
            AxdEntity_InventTable inventTable = new AxdEntity_InventTable();
            inventTable.ItemId = "Bulb60W";
            inventTable.Product = "Bulb60W";
           
            AxdEntity_Invent inventItem = new AxdEntity_Invent();
            inventItem.ItemId = "Bulb60W";
            inventItem.UnitId = "Box";
            inventTable.Invent = new AxdEntity_Invent[1] {inventItem};
           
            AxdEntity_Purch purchitem = new AxdEntity_Purch();
            purchitem.ItemId = "Bulb60W";
            purchitem.UnitId = "Box";
            inventTable.Purch = new AxdEntity_Purch[1] {purchitem};
                       
            AxdEntity_Sales salesitem = new AxdEntity_Sales();
            salesitem.ItemId = "Bulb60W";
            salesitem.UnitId = "Pcs";
            inventTable.Sales = new AxdEntity_Sales[1] {salesitem};
            item.InventTable = new AxdEntity_InventTable[1] { inventTable };
           
            try
            {
                itemService.create(ctx2, item);
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                System.Console.ReadKey();
            }

Popular posts from this blog

Dynamics Axapta: Sales Orders & Business Connector

Well, again folllowing my same idea of writting close to nothing and pasting code, I'll paste in some code to create a sales order from some basic data and the invoice it. I'll try to explain more in the future. AxaptaObject axSalesTable = ax.CreateAxaptaObject("AxSalesTable"); AxaptaRecord rcInventDim = ax.CreateAxaptaRecord("InventDim"); AxaptaRecord rcCustTable = ax.CreateAxaptaRecord("CustTable"); rcCustTable.ExecuteStmt("select * from %1 where %1.AccountNum == '" + MySalesOrderObject.CustAccount + "'"); if (MySalesOrderObject.CurrencyCode.Trim().Length == 0) MySalesOrderObject.CurrencyCode = rcCustTable.get_Field("Currency").ToString().Trim(); string sTaxGroup = rcCustTable.get_Field("taxgroup").ToString().Trim(); //set header level fields axSalesTable.Call("parmSalesName", MySalesOrderObject.SalesName.Trim()); axSalesTable.Call("parmCustAccount", M

Passing values between form and class

Class name is EmplDuplication and Form is EmplTable . void clicked() {    MenuFunction mf;    args args = new Args();    ;     args.record(EmplTable);     mf = new menufunction(identifierstr(EmplDuplication), MenuItemType::Action); mf.run(args); } Meanwhile, in the main() method of the EmplDuplication class, we need to put this Axapta x++ code to get the datasource: static void main(Args args) {     EmplDuplication EmplDuplication; EmplTable localEmplTable; ;     if(args.record().TableId == tablenum(EmplTable)) localEmplTable = args.record();     ... }