Financial dimensions is an advanced topic in Dynamics AX 2012. There are various aspects to learn this topic. My original requirement was to setup a new financial dimension and define some data for it. Adding a new financial dimension is as easy as pie. You can create a new financial dimension by following the following path:
GL > Setup > Financial Dimensions > Financial Dimensions

Due to the extra ordinary flexibility built in by Microsoft in Dynamics AX 2012, you can create as much as financial dimensions (aka ledger dimensions) as you wish. However as per the best practices and common usages, pretty fair amount of such dimension types are built in the system. As you can see from the image below, there is an option of 'custom dimension' available with the other pre defined dimension types.
Fig a. Creating new dimension

So adding a financial dimension is really as easy as APIE. What was a surprise for me (due to my own lack of knowledge :D, pretty dumb huh ) was the method of defining data for these new dimensions.

Normally one would expect to have a dedicated form for adding data for a dimension. And this is what the case really is if you see the highlighted area in the following image.
Fig b. Financial dimension values

The surprise is that when the button "Financial dimension values" is clicked to open the concerned form, the new button is disabled. And it remains disabled for each dimension that I add. The question arising in my mind "Where to add data for this dimension ? Where to define the expense purposes ? where to define data for each of these system defined dimensions"

And this is where Google is very handy. See in my scenario, I had to define expense purposes (cause that will enable me import an account structure and add some gen journals from code), so I googled "dynamics ax 2012 new expense purpose" and the first post actually resolved my query :D

Each dimension's value is based on the selection you make in the dimension setup form ( see fig a above ). These are all existing modules of the system and the value forms and menu items already exist. To add new values for a dimension based on these system modules, you have to browse those relevant forms, fill the data there and expect the values to reflect here :)

Take expense purposes for example. If you have added an expense purposes financial dimension into your account structure, you can define the data for this dimension from Travel and expense > Setup > Optional Setup > Expense purposes

I will share a few important ones for you as follows;

  • Fixed assets: Fixed assets > Setup > Fixed asset groups
  • ProjectContract: Project management and accounting > Projects > Project contract

The 2nd question arises ? Does that Financial dimension values > New button enables ever or is it just dropped there mistakenly. The answer is "Custom Dimension". Yes its the custom dimension whose data is definable here. See the image below please;

Fig c. New financial dimension value

A few more related things
Chart of accounts is one thing, and account structure is another.
Chart of accounts
It is the collection of all the main accounts that we create. Every single account exists in the chart of accounts (table: MainAccount)

Account Structure
Account structure is the combination of main accounts with the defined financial dimensions. This means what financial dimensions will used along with accounts generally for transactions. Consider the following image.
Fig d. Define accounting structure 

As you can see, the fully qualified account structure is composed of the main account followed by department > cost center > expense purpose. And for the explanation of extending the account structure, the  "Add segment" button functionality is shown in which you can select available dimensions to further enhance and granulate the main accounts.

Though it has been very boring and time consuming for me in the beginning, yet it ended quite fruitful to me in the end :)

Without further delay, one of the most common and basic task when implementing an enterprise system is to import the legacy system setup data into the new system. The objective of this post is to share all the basic tools and scenarios you will need to import / export data.

This post will specifically provide guidance on importing records from external sources like excel file into Microsoft Dynamics AX 2012. But first of all, lets see how much variety has Microsoft provided in the regards of data import export and migration between the AX and other system;

http://technet.microsoft.com/en-us/library/aa548629.aspx : A worthy resource to begin with. Read the small article and get a good basic idea of all the tools provided by Microsoft and their purposes.

Secondly lets get hands on importing a few records in some setup table of AX, say MainAccount (chart of accounts table). By the way you can import data into any AX table

Quoting from the above mentioned post:
Microsoft Excel Add-in: Excel import is a tool that can be used for data in an Excel format, or in a comma-separated list. You can use built-in or custom templates to help users import data. Use this tool in the following situations:
  • Minimal data cleansing by end users is required.
  • You are handling low to medium data volumes (< 10,000 records).
  • You are working with simple data structures that can easily be flattened.
  • No business logic is required outside an existing document service.
Now since this is quite a handy and straight forward tool powerful enough to handle around 10000 records, it would be the pick for us for basic setup data import. Hence we will use excel add in for setup data imports.

For installation and configuration with AX, see these posts:

The usage as far as import is concerned is fantastically straight forward. And if the tool is rightly configured (i was lucky to got it configured already at my place :) ),  its as easy as PIE literally. All you have to do is to follow the following straight points:
  • Create a new document.
  • Go to Dynamics AX tab
  • Scroll click the Action Pane > Design > Add Data command menu button
  • Click Add tables menu item
  • Select the desired table (all tables are provided, in our example we will select the MainAccount table)
  • This will enhance the excel UI with a Field chooser left bar (showing all the fields) and a few mandatory fields (typically the PK and FKs) dropped over the worksheet.
  • Select at least all the mandatory fields required to save a valid record in the selected table. In our example, we will drop the following fields;
    • Chart of accounts
    • Main account
    • Name
    • Main account type
    • Reference ID
  • To load data from the table: Close the field bar (which should enable the publish button) and hit Action Pane > Update > Publish
  • Start creating records by simple typing and tabbing to next fields and to next records.
  • To save your work back in AX, hit the publish button and you are done
  • Publish button disabled: Close the field bar on the left. You should close this bar as soon as you are done with choosing the fields. Closing the field bar may result in wiping all the newly created records. Make sure you close it as soon as you are done adding the fields
There are quite a lot worthier posts on the internet on the topic. The goal of this post is to bring under 1 umbrella all the basic steps required to start importing data and share / reuse existing worthy resources over the internet on this topic. The most worthy of them I found are the data import series blogs here: https://community.dynamics.com/ax/b/ax2012exceldataimport/default.aspx

Enjoy importing data into Dynamics AX like APIE :)
In continuation to a post written several months ago [http://dotnetxperience.blogspot.com/2012/07/number-sequence-framework-in-dynamics.html ], I thought to make a class diagram in order to show all the related objects required for successfully implementing the number sequence framework. The original motive was to write one COMPLETE post depicting all aspects fo the framework however i am not satisfied from my effort. I will improve it for all of you and for myself as well.

At the moment, I am sharing the class diagram. It s not the best of them, but for sure it will assists all of us in better understanding of the framework.