Thursday, February 11, 2016

Error on deploying SSRS report



Problem: Once we completed all the Dynamics ax installation and configuration. we get into SSRS report deployment. Every setup was correct but we couldn't able to deploy the reports, instead we are getting the following error on management shell as well as event viewer

  1. 1. An error occurred : The specified directory service attribute or value does not exist.If User Account Control (UAC) is enabled on the machine, close the application, right-click the application, and then click Run as administrator.
  2. The deployment was aborted. You do not have privileges to deploy to server: *****. For deployment, you must have administrative rights to the SQL Server Reporting Services (SSRS) server. Contact your administrator to deploy.

Resolution:
We tried everything like, deploying the report directly from AOT, opening the AX with run as administrator as well as management shell. Nothing works. finally, I got the help from Microsoft support team.

Its a simple solution, but which is nowhere related to Dynamics ax box.

the service "Remote Registry" has to be running while deploying the report





Monday, November 23, 2015

Error while creating custom workflow

Problem: One of my colleague recently created a custom workflow (which is not shipped out of the box). he followed the step by step process to create the workflow. when he tries to run the workflow configuration he got the following error.

An unexpected error has occurred while opening the workflow. See the event log on the AOS and contact your system administrator to resolve the issue.

Resolution: ITs a simple resolution, just generate the CIL it will resolve the issue.



The above code requires the CIL for the classes we created.

While you creating the workflow wizard it will warn you for CIL compilation. As you have noticed you will not run into this issue.
 

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();