Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

22
Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

description

Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui. Agenda. What are dimensions? Dimension Terms Configure Account Structure and Advanced rule. Dimension Data Model How an offset account (10110-D10-CC2) in the Lines Journal saved in the dimension. - PowerPoint PPT Presentation

Transcript of Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Page 1: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension Framework in AX 6

By,Nasheet Ahmed Siddiqui

Page 2: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Agenda• What are dimensions?• Dimension Terms• Configure Account Structure and Advanced rule.• Dimension Data Model• How an offset account (10110-D10-CC2) in the Lines Journal

saved in the dimension.• Patterns Details and Implementation.• Dimension APIs

Page 3: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

What are dimensions?• Dimension are sub account to the general ledger chart of

accounts.• They allow an account to be broken-down into additional

detail for reporting and analysis.

Page 4: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension Example• Account 3000 has a balance of 100$. This balance can be

analyzed by dimension.

Page 5: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension Example•

Page 6: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension TermsTerm Definition

Chart of accounts A collection of ledger accounts

account structure A configuration of the main account financial dimension and other financial dimensions.Example: Account Structure for expense accounts {Company, Main Acct, Cost Center, Campaign, Country}

account rule A rule in an accounting system that controls the valid financial dimension value combinations when the requirements of the financial dimension structure condition are met.

financial dimension A piece, or slice, of information that a company chooses to capture. ORA data classifier created from the parties, locations, products, and activities in an organization and used for management reporting.

financial dimension value

A data element in the domain of a financial dimension.For example, if ‘Project’ is setup as a Dimension, ‘Project A’ and ‘Project B’ would be considered dimension values for that dimension.

Page 7: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension TermsTerm Definition

Dimension Focus Grouping of dimension attributes listed in a specific order used in the creation of financial statements and financial reports within Dynamics AX

ledger account A classifier created from the combination of main account value and other financial dimension values listed in a chart of accounts and used to classify the financial consequences of economic activity.

ledger account alias A shortcut that is used to retrieve a complete or partial ledger account.

main account A classifier of economic resource value based on the claims parties make on the economic resources owned by a legal entity and that is used to classify debit and credit entries in an accounting system.

Dimension Specifiers A dimension specifier represents a dimension attribute value, and is stored by means of a container. A dimension specifier is not exposed by itself. Rather, a collection of dimension specifies is exposed through a Map object

Page 8: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Demo•

This Document includes:Account Structure ConfigurationAccount Structure Configuration effect on GLAdvanced Rule application on Account StructureAdvanced rule effect on GL

Steps to configure Account Structure and Advanced rule

Page 9: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Data Model•

Page 10: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

How an offset account (10110-D10-CC2) in the Lines Journal saved in the dimension.

• Segmented control works with the DimensionStorage class to create the combination

• So; we break apart the combination into each structure [10110 - D1] [CC2}. We first save the Account Structure portion of the combination. Then we save the Account/Advanced Rule structure portion (as there could be multiples added thru multiple rules). In the end, this is what that combination will look like across all 4 tables shown in the combination storage block in the Data model bound to the LedgerDimension.

Page 11: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

How an offset account (10110-D10-CC2) in the Lines Journal saved in the dimension.

• Configure an account structure that looks like this: Main Account + Department

• (See the attached document for how to configure account structure)

• • Create an advanced rule attached to account structure to say

that when you enter 10110 - D1 you also need to specify a Cost Center.

• (See the attached document for how to create advanced rule)

Page 12: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

How an offset account (10110-D10-CC2) in the Lines Journal saved in the dimension.

• An Segmented entry control will look like this • As account structure configure there are 2 segments that must

be filled.• Type 10110 and tab it looks like this: 10110 -• Type D1 in the second segment and tab • As tab press we pick up the fact that a rule is attached and a

3rd dimension must be added to the combination so it looks like this: 10110 - D1 -

• Now the user enters CC2 and tabs from the control 10110 - D1 - CC2

Page 13: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

How an offset account (10110-D10-CC2) in

the Lines Journal saved in the dimension.• DimensionAttributeValueCombination: • DisplayValue: "10110 - D1 – CC2"

RecId: 400• • DimensionAttributeValueGroupCombination:• DimensionAttributeValueCombination: 400

DimensionAttributeValueGroup: 500 RecID: 201

• DimensionAttributeValueGroupCombination:•

DimensionAttributeValueCombination: 400DimensionAttributeValueGroup: 501RecID: 202

• • • DimensionAttributeValueGroup:• DimensionHierarchy: AccountStructure(MA+DEPT)

RecID: 500• • DimensionAttributeValueGroup:• DimensionHierarchy: AdavancedRule (CC)

RecID: 501

Page 14: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

How an offset account (10110-D10-CC2) in the Lines Journal saved in the dimension.• DimensionAttributeLevelValue:

DimensionAttributeValueGroup: 500 Ordinal: 1 DimensionAttributeValue->10110 RecId: 601

DimensionAttributeLevelValue: DimensionAttributeValueGroup: 500 Ordinal: 2 DimensionAttributeValue->D1 RecId: 602

DimensionAttributeLevelValue: DimensionAttributeValueGroup: 501 Ordinal: 1 DimensionAttributeValue->CC2 RecId: 602

• • To insert: [10110 - D1] [CC2] we need to insert above all records as summarized below.• 1 record in DAVC

2 Records in DAVGC (to link the full combination to each sub-group)• 2 records in DAVG (one for each grouping)• 3 records in DALV (one for each segment)

Page 15: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Patterns Details and Implementation

Pattern EDT Field Field is a Foreign Key to this Table

Default Account LedgerDimensionDefaultAccount LedgerDimension DimensionAttributeValueCombination

Main Account MainAccountNum MainAccount MainAccount

Ledger Account LedgerDimensionAccount LedgerDimension DimensionAttributeValueCombination

Default Dimension DimensionDefault DefaultDimension DimensionAttributeValueSet

Page 16: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Default Account

• Default main account + structure• This pattern is referred to as the “LA.A” (Ledger Account.A) pattern. There are various

forms in the system that only needs to specify the main account plus the account structure to be used for defaulting purposes. A foreign key representing a default account is a 64 bit integer field that contains the data from the corresponding RecId field the DimensionAttributeValueCombination (LedgerDimension) table as shown here:

• •

• The Default Account Control is the combination of the Segmented Entry Control and the LedgerDimensionDefaultAccountController class. The Segmented Entry Control is a general purpose control that was introduced to AX 6 and the LedgerDimensionDefaultAccountController class is a class that handles the events raised by the Segmented Entry Control.

Page 17: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Main Account• The Main Account pattern represents just one of the potential

segments in a ledger account. When referencing a Main Account as a foreign key a developer should setup a reference to the RecId field in the MainAccount table. There is no special control for this pattern.

• The most interesting issue when doing reporting or general querying of MainAccount data is that most of the fields are shared through the chart of accounts that is specified in the MainAccount table. Each MainAccount record must have a valid chart of accounts foreign key. Only 1 chart of accounts can be specified for a given ledger.

Page 18: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Ledger Account• A ledger account contains the main account, account

structure, and each financial dimension value needed to fulfill the related account structure and account rule structures. A foreign key representing a ledger account is a 64 bit integer field that contains the data from the corresponding RecId field the DimensionAttributeValueCombination (LedgerDimension) table.

• The ledger account control uses the LedgerDimensionAccountController class as its controller class. This control handles the entry and display of ledger accounts in AX forms.

Page 19: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Default Dimension• This pattern represents a set of financial dimensions and their related

values. All default dimensions are tracked without any respect to structure or active dates or closed states. Since they are used as defaults, they get validated by the account number control or defaulting engine when used on a transaction. At that time validation is performed to determine if the default can be used or not.

• A dimension set is a list of 1 or more dimension attributes that are being tracked for a particular purpose. Each element has an enumeration value.

• In simple scenarios the changes needed on an AX form are as follows:

Page 20: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension APIs• DimensionStorage• DimensionStorage::getMainAccountFromLedgerDimension• DimensionStorage::getMainAccountNameFromLedgerDimension

• DimensionConversionHelper• DimensionConversionHelper::getNativeDefaultAccount()• DimensionConversionHelper::getNativeDefaultDimension()• DimensionConversionHelper::getNativeLedgerDimension ()

• DimensionDefaultingService• DimensionDefaultingService::serviceCreateLedgerDimension()• DimensionDefaultingService::serviceMergeLedgerDimensions()

• DimensionAttributeValueCombination• DimensionAttributeValueCombination::getDisplayValue()

Page 21: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Dimension most Useful View

Page 22: Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui

Demo - Ledger Account

How to implement Ledger account on the existing form.1. Verify that the table that holds the Foreign Key to the

DimensionAttributeValueCombination table is a data source on the form.

2. Drag the LedgerDimension field from the data source to the desired location on form design.

3. Add code for controller initialization in the init method of the form.

4. Override methods on the SegmentedEntry controls