Wednesday, May 30, 2018

How to always open visual studio as Administrator

Set this property on Visual studio shortcut

Monday, May 28, 2018

"The breakpoint will not currently be hit. No symbols have been loaded for this document."

If you encounter this and are not able to debug X++ code in Dynamics 365 for Finance and Operations, then you need check these two options:

1. In visual studio go to Dynamics 365 > Options menu
Uncheck this option
Load symbols only for items in the solution

1. In visual studio go to Debug > Options menu
Check this option
Automatically load symbols for - All modules
















Now you should be able to debug D365 code in Visual studio.












Monday, May 2, 2016

Business Intelligence features in the new Microsoft Dynamics AX

New BI features in AX:

In-memory aggregate models -  These aggregate models have replaced SSAS cubes.

Aggregate data entities - These are the read-only entities used for reporting purposes. When creating charts and client controls, data entities can be added as datasoure to forms. The entities can then be consumed programatically.

Aggregate programming model - This enables a developer to consume this data using x++ or C#.
Method expressions can be used to build rich expressions using aggregate data. These method expressions
are written in X++ and KPIs can be modeled using them which eliminates the use of complex MDX queries.

Aggregate Measurements and dimensions - Aggregate measurements is a model that contains a collection of measures together with their corresponding  dimensions. Aggregate measurement help you analyze data in a new way. These are the evolution of cubes.
Aggregate dimensions is another concept that is shared across an AX implementation. Aggregate measurements associate themselves with relevant aggregate dimensions. Aggregate dimensions and measurements are modeled n AX using Visual studio tools

KPI definition - In AX users can use a rich client form to modify a KPI definition. Users can create KPI using Aggregate data that is contained in Aggregate measurements. After KPI is defined, user can customize it at run time.

Monday, March 14, 2016

Microsoft Dynamics Technical Conference 2016 recordings

The Microsoft Dynamics Technical Conference 2016 recordings are now available on the Microsoft learning portal. This is the link https://mbspartner.microsoft.com/AX/Topic/48
One can access using their customer or partner accounts.

Thursday, March 10, 2016

How to open Table Browser in a different company/Legal entity in AX

How to change company for a table browser.?
I do not see any data in InventTable everytime i look at the table browser. The data thats showing here is in DAT company. How do i change the company? so that i can see data from other companies for example USRT.

Go to System Administration - Users - Users
























On the Users form select the user you want to edit








Edit and change the company to USMF. Save the record



Go back to the table browser and you will see the data from USMF company now.














Thanks,
Swapna.


Monday, November 26, 2012

Lookups on Dialog: SysTableLookup and registerOverrideMethod

SysTableLookup can be used in dialogs to create custom lookups.
control.registerOverrideMethod can be used to register the methods to override by an object
Here is the example which shows basic usage of both. We will create a dialog and get a lookup of account numbers on a control
protected Object dialog()
{
    FormStringControl control;
    ;

    dialog = super();
    dialogFeildAccountNum = dialog.addField(extendedTypeStr(AccountNum));
    control = dialogFeildAccountNum.control();
    control.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(DialogLookup, accountNumLookup), this);
   
    return dialog;
}
Here is the method:
private void accountNumLookup(FormStringControl _control)
{
    SysTableLookup          sysTableLookup;
    QueryBuildDataSource    queryBuildDataSource;
    Query                   query = new Query();

    queryBuildDataSource = query.addDataSource(tablenum(CustTable));

    sysTableLookup = SysTableLookup::newParameters(tablenum(CustTable), _control);
    sysTableLookup.addLookupfield(fieldnum(CustTable, AccountNum),  true);
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}