Sunday, November 1, 2015

Installation of Visual Studio tools on Dynamics AX 2012 R3 CU9



Its been a long time that i have written my last post. I was tied up with some work.

Problem: I was trying to install visual studio tools on Dynamics AX R3 CU9 version. But i was keep getting an error that "Installation package missing".

Solution: I was aware of the compatibility that CU9 works with VS 2013 Update 2 and above but my AX installer package keep giving me a error. So i got to know that VS tools for CU9 missing from my installer package. 

What it means that my installation folder doesnt contain the necessary VS tool files to install it. I downloaded CU9 slipstream file and copy the  folders to my installation folder then no longer i am seeing the error, I am able to install the VS tools. Following link helped me on the process. I hope you find this useful

http://blogs.msdn.com/b/axsupport/archive/2015/04/21/how-to-slip-stream-ax-2012-r3-cu-8.aspx

Dynamics AX community


Saturday, March 8, 2014

Misconception and common guidelines on Dynamics AX 2012 infrastructures


Common misconception on infrastructures
Following points are gathered from the Microsoft training,
It includes some best practices also

1. Virtualization may be the smartest way of handling your infrastructures.
But having DAtabase server on virtualization seriously affect the performance of AX system. It reduces 14.5 % performance down compared to physical servers.

2. Putting more Memory and Processin...g power Wouldnt help if you dont know the sizing   guidelines
For example,
AOS Server Sizing,
5K Lines Per Hour Per Core (usually 4 to 12 core box)
2 GB Memory for Each Core (usually 4 to 8 GB per AOS instance)
User Concurrency is a good Marker. Based on Transaction Complexity, between 50 Users Per Core to 150 Users Per Core (average of 60)

3. Database Thumb rule is 2 to 6 GB memory for each CPU core. Next you have to set SQL Server maximum server memory correctly. Always leave a percentage for OS and other services running on the box
        
                                                                                                                            - to be continued

Friday, January 17, 2014

Total purchase invoice amount through X++

How to get a total invoice amount for a purchase order table, You had to take it in consideration for all the charges calculated (ex: tax). I tried to search the purchtable and purcline table for any existing methods. I found one class called purchtotals. there Microsoft calculating all the total amounts of incoice amount, order amount etc. Her...e is the code for this total calculation

PurchtotalsForm totalsForm;
;
totalsForm = PurchtotalsForm::newPurchTotalsForm(this, 1);
totalsForm.calctotals();
return totalsForm.invoiceAmountValue();

not only you can calculate invoice amount here is the list things you can get it from this class.

purchTaxTotal,
purchRoundOff,
purchTotalAmount,
purchTaxRoundOff,
purchCashDiscDate,
purchPrepayLimit,
purchPrepayAvailable,
purchTaxWithholdTotal

Friday, January 10, 2014

Import retail categories through code in dynamics ax 2012

Simple code to import Retail Product category

 EcoResCategory ecoResCategory
 ; 
 ecoResCategory.clear();
 ecoResCategory.initValue();
 ecoResCategory.initFromParent(EcoResCategory::findByName('HAL',ecoResCategory.CategoryHierarchy);
 ecoResCategory.Code = 'Test_categoryimport';
 ecoResCategory.Name = 'Test_Categoryimport';
 ecoResCategory.addToHierarchy();

import barcode through X++ in dynamics ax 2012

Some simple code for barcode import

 inventItemBarCode.barcodeSetupId = RetailInventTable::find(itemCode).BarcodeSetupId;
 inventItemBarCode.inventDimId = InventDim::findOrCreate(inventDim).inventDimId;
 inventItemBarCode.RetailVariantId = InventDimCombination::find(itemCode,inventItemBarCode.inventDimId).RetailVariantId;
 inventItemBarCode.itemId = itemCode;
 inventItemBarCode.description = InventTable::find(itemCode).defaultProductName();
 inventItemBarCode.UnitID = InventTable::find(itemCode).salesUnitId();
 inventItemBarCode.qty = qty;
 inventItemBarCode.useForInput = NoYes::Yes;
 inventItemBarCode.useForPrinting = NoYes::Yes;
 inventItemBarCode.itemBarCode = barcode;
 if(inventItemBarCode.validateWrite())
 inventItemBarCode.insert();

Partial sales order through code in Dynamics ax 2012 R2

I had been searching the internet to find the code. But i couldnt, every code leads to full invoice or line by line invoice. so i did some exploring to come up with a below code it will invoice partial quantity

I updated the partial sales invoice through code...

 SalesFormLetter salesFormLetter =  SalesFormLetter::construct(DocumentStatus::Invoice);
 SalesTable salesTAble;
 SalesParmLine parmLine;
 ;
 salesTable = SalesTable::find('FUAE-000002');
 salesFormLetter.salesTable(salesTAble);
 salesFormLetter.transDate (systemDateGet());
 salesFormLetter.specQty (SalesUpdate::All);
 //If you want proforma you can enable the code
 //salesFormLetter.proforma (true);
 //salesFormLetter.printFormLetter (true);
 salesFormLetter.createParmUpdateFromParmUpdateRecord(salesFormLetter.s alesParmUpdate());
 salesFormLetter.initParmSalesTable(salesTAble);

 salesFormLetter.initParameters(salesFormLetter.salesParmUpdate(),Printout::After);
 salesFormLetter.initLinesQuery();
 while select forUpdate parmLine where parmLine.ParmId == salesFormLetter.parmId()
 {
 ttsBegin;
 parmLine.DeliverNow = 10;
 parmLine.setQty(parmLine.salesParmTable().ordering, salesFormLetter.SalesParmUpdate().creditRemaining);
 parmLine.setInventDeliverNow();
 parmLine.setLineAmount(); 
 parmLine.update();
 ttsCommit;
 }
 salesFormLetter.run();

Monday, July 22, 2013

Exchange rate update add-on


Problem:
 
I was asked to create exchange rate add-on, It will update the exchange rate from online
  • This update add-on should have the ability to work automatically (without human intervention)
  • Given option to manual update also
  • Average update and Closing rate update for consolidation companies.
Solved: 
There is no inbuilt functionality for exchange rate updating in dynamics AX 2009. Following are the screenshots and functionality of the add-on that I created,
  • Configurable in batch job so that it automatically updates the exchange rate in exchange rate table. 
  • Based on the batch job, it will update the value in exchange rate table.
  • Notifications, errors and warnings will be updated in the log and shown to peoples.
  • Manual update option would be given to end user
  • Staging table : Its the mediator between actual exchange rate table and downloaded data from internet. It also can be viewable from the content pane 

 



If anybody need this add-on contact me on (mdashraf@live.in, india - 919043440941)
It is two hour development cost only

Following are the advantage of deploying this add-on to your company
  • It is automatic and highly customizable by end user
  • Easy deployment package
  • Enhancement can be made according to the customer (within the cost of this add-on)
  • support will be provided at free of cost
  • I am a freelancer so interested customer can contact me for apart from this development also